166, 172, 173, 180, 179, 209, 212, 219, 218, 230,
231, 233, 234, 235, 238, 243, 248, 255, 263, 272,
273, 280, 281, 282, 283, 284, 285, 286, 293, 293,
- 333, 334, 339, 340, 343, 347, 354, 357, 363, 376,
- 379, 385, 391, 395, 401, 404, 410, 422, 428, 442,
- 443, 444, 445, 446, 452, 458, 462, 468, 471, 477,
- 489, 494, 498, 502, 512, 513
+ 338, 339, 344, 345, 348, 352, 359, 362, 368, 381,
+ 384, 390, 396, 400, 406, 409, 415, 427, 433, 447,
+ 448, 449, 450, 451, 457, 463, 467, 473, 476, 482,
+ 494, 499, 503, 507, 517, 518
};
#endif
ConfigItemBuilder::Ptr item = boost::make_shared<ConfigItemBuilder>(yylloc);
item->SetType((yyvsp[(3) - (6)].text));
- free((yyvsp[(3) - (6)].text));
- if (strchr((yyvsp[(4) - (6)].text), ':') != NULL)
- BOOST_THROW_EXCEPTION(std::invalid_argument("Object names may not contain ':'"));
+ if (strchr((yyvsp[(4) - (6)].text), ':') != NULL) {
+ std::ostringstream msgbuf;
+ msgbuf << "Name for object '" << (yyvsp[(4) - (6)].text) << "' of type '" << (yyvsp[(3) - (6)].text) << "' is invalid: Object names may not contain ':'";
+ free((yyvsp[(3) - (6)].text));
+ BOOST_THROW_EXCEPTION(std::invalid_argument(msgbuf.str()));
+ }
+
+ free((yyvsp[(3) - (6)].text));
item->SetName((yyvsp[(4) - (6)].text));
free((yyvsp[(4) - (6)].text));
case 41:
/* Line 1806 of yacc.c */
-#line 335 "config_parser.yy"
+#line 340 "config_parser.yy"
{
m_Abstract = true;
}
case 44:
/* Line 1806 of yacc.c */
-#line 344 "config_parser.yy"
+#line 349 "config_parser.yy"
{
m_Abstract = true;
}
case 45:
/* Line 1806 of yacc.c */
-#line 348 "config_parser.yy"
+#line 353 "config_parser.yy"
{
m_Local = true;
}
case 46:
/* Line 1806 of yacc.c */
-#line 354 "config_parser.yy"
+#line 359 "config_parser.yy"
{
(yyval.slist) = NULL;
}
case 47:
/* Line 1806 of yacc.c */
-#line 358 "config_parser.yy"
+#line 363 "config_parser.yy"
{
(yyval.slist) = new std::vector<String>();
(yyval.slist)->push_back((yyvsp[(1) - (1)].text));
case 48:
/* Line 1806 of yacc.c */
-#line 364 "config_parser.yy"
+#line 369 "config_parser.yy"
{
if ((yyvsp[(1) - (3)].slist))
(yyval.slist) = (yyvsp[(1) - (3)].slist);
case 49:
/* Line 1806 of yacc.c */
-#line 376 "config_parser.yy"
+#line 381 "config_parser.yy"
{
(yyval.slist) = NULL;
}
case 50:
/* Line 1806 of yacc.c */
-#line 380 "config_parser.yy"
+#line 385 "config_parser.yy"
{
(yyval.slist) = (yyvsp[(2) - (2)].slist);
}
case 51:
/* Line 1806 of yacc.c */
-#line 386 "config_parser.yy"
+#line 391 "config_parser.yy"
{
(yyval.exprl) = (yyvsp[(2) - (3)].exprl);
}
case 52:
/* Line 1806 of yacc.c */
-#line 392 "config_parser.yy"
+#line 397 "config_parser.yy"
{
(yyval.exprl) = (yyvsp[(1) - (1)].exprl);
}
case 53:
/* Line 1806 of yacc.c */
-#line 396 "config_parser.yy"
+#line 401 "config_parser.yy"
{
(yyval.exprl) = (yyvsp[(1) - (2)].exprl);
}
case 54:
/* Line 1806 of yacc.c */
-#line 401 "config_parser.yy"
+#line 406 "config_parser.yy"
{
(yyval.exprl) = NULL;
}
case 55:
/* Line 1806 of yacc.c */
-#line 405 "config_parser.yy"
+#line 410 "config_parser.yy"
{
(yyval.exprl) = new ExpressionList();
(yyval.exprl)->AddExpression(*(yyvsp[(1) - (1)].expr));
case 56:
/* Line 1806 of yacc.c */
-#line 411 "config_parser.yy"
+#line 416 "config_parser.yy"
{
if ((yyvsp[(1) - (3)].exprl))
(yyval.exprl) = (yyvsp[(1) - (3)].exprl);
case 57:
/* Line 1806 of yacc.c */
-#line 423 "config_parser.yy"
+#line 428 "config_parser.yy"
{
(yyval.expr) = new Expression((yyvsp[(1) - (3)].text), (yyvsp[(2) - (3)].op), *(yyvsp[(3) - (3)].variant), yylloc);
free((yyvsp[(1) - (3)].text));
case 58:
/* Line 1806 of yacc.c */
-#line 429 "config_parser.yy"
+#line 434 "config_parser.yy"
{
Expression subexpr((yyvsp[(3) - (6)].text), (yyvsp[(5) - (6)].op), *(yyvsp[(6) - (6)].variant), yylloc);
free((yyvsp[(3) - (6)].text));
case 63:
/* Line 1806 of yacc.c */
-#line 447 "config_parser.yy"
+#line 452 "config_parser.yy"
{
(yyval.op) = (yyvsp[(1) - (1)].op);
}
case 64:
/* Line 1806 of yacc.c */
-#line 453 "config_parser.yy"
+#line 458 "config_parser.yy"
{
(yyval.array) = (yyvsp[(2) - (3)].array);
}
case 65:
/* Line 1806 of yacc.c */
-#line 459 "config_parser.yy"
+#line 464 "config_parser.yy"
{
(yyval.array) = (yyvsp[(1) - (1)].array);
}
case 66:
/* Line 1806 of yacc.c */
-#line 463 "config_parser.yy"
+#line 468 "config_parser.yy"
{
(yyval.array) = (yyvsp[(1) - (2)].array);
}
case 67:
/* Line 1806 of yacc.c */
-#line 468 "config_parser.yy"
+#line 473 "config_parser.yy"
{
(yyval.array) = NULL;
}
case 68:
/* Line 1806 of yacc.c */
-#line 472 "config_parser.yy"
+#line 477 "config_parser.yy"
{
(yyval.array) = new Array();
(yyval.array)->Add(*(yyvsp[(1) - (1)].variant));
case 69:
/* Line 1806 of yacc.c */
-#line 478 "config_parser.yy"
+#line 483 "config_parser.yy"
{
if ((yyvsp[(1) - (3)].array))
(yyval.array) = (yyvsp[(1) - (3)].array);
case 70:
/* Line 1806 of yacc.c */
-#line 490 "config_parser.yy"
+#line 495 "config_parser.yy"
{
(yyval.variant) = new Value((yyvsp[(1) - (1)].text));
free((yyvsp[(1) - (1)].text));
case 71:
/* Line 1806 of yacc.c */
-#line 495 "config_parser.yy"
+#line 500 "config_parser.yy"
{
(yyval.variant) = new Value((yyvsp[(1) - (1)].num));
}
case 72:
/* Line 1806 of yacc.c */
-#line 499 "config_parser.yy"
+#line 504 "config_parser.yy"
{
(yyval.variant) = new Value();
}
case 73:
/* Line 1806 of yacc.c */
-#line 503 "config_parser.yy"
+#line 508 "config_parser.yy"
{
if ((yyvsp[(1) - (1)].array) == NULL)
(yyvsp[(1) - (1)].array) = new Array();
case 75:
/* Line 1806 of yacc.c */
-#line 514 "config_parser.yy"
+#line 519 "config_parser.yy"
{
ExpressionList::Ptr exprl = ExpressionList::Ptr((yyvsp[(1) - (1)].exprl));
(yyval.variant) = new Value(exprl);
/* Line 1806 of yacc.c */
-#line 2209 "../../../lib/config/config_parser.cc"
+#line 2214 "../../../lib/config/config_parser.cc"
default: break;
}
/* User semantic actions sometimes alter yychar, and that requires
/* Line 2067 of yacc.c */
-#line 519 "config_parser.yy"
+#line 524 "config_parser.yy"