static const yytype_uint16 yyrline[] =
{
0, 119, 119, 120, 123, 123, 123, 123, 126, 131,
- 137, 142, 143, 150, 149, 179, 182, 189, 188, 200,
- 201, 203, 204, 205, 208, 212, 216, 221, 229, 230,
- 236, 237, 238, 239, 240, 247, 252, 247, 277, 278,
- 281, 285, 291, 292, 295, 302, 303, 307, 306, 318,
- 319, 321, 322, 323, 326, 334, 348, 357, 358, 359,
- 360, 361, 367, 372, 376, 382, 383
+ 137, 143, 144, 152, 151, 181, 184, 191, 190, 202,
+ 203, 205, 206, 207, 210, 215, 220, 227, 236, 237,
+ 244, 245, 246, 247, 248, 255, 260, 255, 285, 286,
+ 289, 293, 299, 300, 303, 310, 311, 315, 314, 326,
+ 327, 329, 330, 331, 334, 342, 356, 365, 366, 367,
+ 368, 369, 375, 380, 384, 390, 391
};
#endif
#line 138 "config_parser.yy"
{
context->HandleLibrary((yyvsp[(2) - (2)].text));
+ free((yyvsp[(2) - (2)].text));
}
break;
case 12:
/* Line 1806 of yacc.c */
-#line 144 "config_parser.yy"
+#line 145 "config_parser.yy"
{
(yyval.text) = (yyvsp[(1) - (1)].text);
+ free((yyvsp[(1) - (1)].text));
}
break;
case 13:
/* Line 1806 of yacc.c */
-#line 150 "config_parser.yy"
+#line 152 "config_parser.yy"
{
String name = String((yyvsp[(3) - (3)].text));
free((yyvsp[(3) - (3)].text));
case 14:
/* Line 1806 of yacc.c */
-#line 165 "config_parser.yy"
+#line 167 "config_parser.yy"
{
TypeRuleList::Ptr ruleList = *(yyvsp[(6) - (6)].variant);
m_Type->GetRuleList()->AddRules(ruleList);
case 15:
/* Line 1806 of yacc.c */
-#line 179 "config_parser.yy"
+#line 181 "config_parser.yy"
{
(yyval.num) = 0;
}
case 16:
/* Line 1806 of yacc.c */
-#line 183 "config_parser.yy"
+#line 185 "config_parser.yy"
{
(yyval.num) = 1;
}
case 17:
/* Line 1806 of yacc.c */
-#line 189 "config_parser.yy"
+#line 191 "config_parser.yy"
{
m_RuleLists.push(boost::make_shared<TypeRuleList>());
}
case 18:
/* Line 1806 of yacc.c */
-#line 194 "config_parser.yy"
+#line 196 "config_parser.yy"
{
(yyval.variant) = new Value(m_RuleLists.top());
m_RuleLists.pop();
case 24:
/* Line 1806 of yacc.c */
-#line 209 "config_parser.yy"
+#line 211 "config_parser.yy"
{
m_RuleLists.top()->AddRequire((yyvsp[(2) - (2)].text));
+ free((yyvsp[(2) - (2)].text));
}
break;
case 25:
/* Line 1806 of yacc.c */
-#line 213 "config_parser.yy"
+#line 216 "config_parser.yy"
{
m_RuleLists.top()->SetValidator((yyvsp[(2) - (2)].text));
+ free((yyvsp[(2) - (2)].text));
}
break;
case 26:
/* Line 1806 of yacc.c */
-#line 217 "config_parser.yy"
+#line 221 "config_parser.yy"
{
TypeRule rule((yyvsp[(2) - (3)].type), (yyvsp[(3) - (3)].text), TypeRuleList::Ptr(), yylloc);
+ free((yyvsp[(3) - (3)].text));
+
m_RuleLists.top()->AddRule(rule);
}
break;
case 27:
/* Line 1806 of yacc.c */
-#line 222 "config_parser.yy"
+#line 228 "config_parser.yy"
{
TypeRule rule((yyvsp[(2) - (4)].type), (yyvsp[(3) - (4)].text), *(yyvsp[(4) - (4)].variant), yylloc);
+ free((yyvsp[(3) - (4)].text));
delete (yyvsp[(4) - (4)].variant);
m_RuleLists.top()->AddRule(rule);
}
case 29:
/* Line 1806 of yacc.c */
-#line 231 "config_parser.yy"
+#line 238 "config_parser.yy"
{
m_Type->SetParent((yyvsp[(2) - (2)].text));
+ free((yyvsp[(2) - (2)].text));
}
break;
case 34:
/* Line 1806 of yacc.c */
-#line 241 "config_parser.yy"
+#line 249 "config_parser.yy"
{
(yyval.type) = (yyvsp[(1) - (1)].type);
}
case 35:
/* Line 1806 of yacc.c */
-#line 247 "config_parser.yy"
+#line 255 "config_parser.yy"
{
m_Abstract = false;
m_Local = false;
case 36:
/* Line 1806 of yacc.c */
-#line 252 "config_parser.yy"
+#line 260 "config_parser.yy"
{
m_Item = boost::make_shared<ConfigItemBuilder>(yylloc);
case 37:
/* Line 1806 of yacc.c */
-#line 264 "config_parser.yy"
+#line 272 "config_parser.yy"
{
ExpressionList::Ptr exprl = *(yyvsp[(8) - (8)].variant);
delete (yyvsp[(8) - (8)].variant);
case 40:
/* Line 1806 of yacc.c */
-#line 282 "config_parser.yy"
+#line 290 "config_parser.yy"
{
m_Abstract = true;
}
case 41:
/* Line 1806 of yacc.c */
-#line 286 "config_parser.yy"
+#line 294 "config_parser.yy"
{
m_Local = true;
}
case 44:
/* Line 1806 of yacc.c */
-#line 296 "config_parser.yy"
+#line 304 "config_parser.yy"
{
m_Item->AddParent((yyvsp[(1) - (1)].text));
free((yyvsp[(1) - (1)].text));
case 47:
/* Line 1806 of yacc.c */
-#line 307 "config_parser.yy"
+#line 315 "config_parser.yy"
{
m_ExpressionLists.push(boost::make_shared<ExpressionList>());
}
case 48:
/* Line 1806 of yacc.c */
-#line 312 "config_parser.yy"
+#line 320 "config_parser.yy"
{
(yyval.variant) = new Value(m_ExpressionLists.top());
m_ExpressionLists.pop();
case 54:
/* Line 1806 of yacc.c */
-#line 327 "config_parser.yy"
+#line 335 "config_parser.yy"
{
Expression expr((yyvsp[(1) - (3)].text), (yyvsp[(2) - (3)].op), *(yyvsp[(3) - (3)].variant), yylloc);
free((yyvsp[(1) - (3)].text));
case 55:
/* Line 1806 of yacc.c */
-#line 335 "config_parser.yy"
+#line 343 "config_parser.yy"
{
Expression subexpr((yyvsp[(3) - (6)].text), (yyvsp[(5) - (6)].op), *(yyvsp[(6) - (6)].variant), yylloc);
free((yyvsp[(3) - (6)].text));
case 56:
/* Line 1806 of yacc.c */
-#line 349 "config_parser.yy"
+#line 357 "config_parser.yy"
{
Expression expr((yyvsp[(1) - (1)].text), OperatorSet, (yyvsp[(1) - (1)].text), yylloc);
free((yyvsp[(1) - (1)].text));
case 61:
/* Line 1806 of yacc.c */
-#line 362 "config_parser.yy"
+#line 370 "config_parser.yy"
{
(yyval.op) = (yyvsp[(1) - (1)].op);
}
case 62:
/* Line 1806 of yacc.c */
-#line 368 "config_parser.yy"
+#line 376 "config_parser.yy"
{
(yyval.variant) = new Value((yyvsp[(1) - (1)].text));
free((yyvsp[(1) - (1)].text));
case 63:
/* Line 1806 of yacc.c */
-#line 373 "config_parser.yy"
+#line 381 "config_parser.yy"
{
(yyval.variant) = new Value((yyvsp[(1) - (1)].num));
}
case 64:
/* Line 1806 of yacc.c */
-#line 377 "config_parser.yy"
+#line 385 "config_parser.yy"
{
(yyval.variant) = new Value();
}
case 66:
/* Line 1806 of yacc.c */
-#line 384 "config_parser.yy"
+#line 392 "config_parser.yy"
{
(yyval.variant) = (yyvsp[(1) - (1)].variant);
}
/* Line 1806 of yacc.c */
-#line 1982 "config_parser.cc"
+#line 1990 "config_parser.cc"
default: break;
}
/* User semantic actions sometimes alter yychar, and that requires
/* Line 2067 of yacc.c */
-#line 388 "config_parser.yy"
+#line 396 "config_parser.yy"