diff --git a/dyn/config_parser.cc b/dyn/config_parser.cc index b95b8e639..7e493901d 100644 --- a/dyn/config_parser.cc +++ b/dyn/config_parser.cc @@ -213,13 +213,7 @@ int yylex(YYSTYPE *lvalp, YYLTYPE *llocp, void *scanner); void yyerror(YYLTYPE *locp, ConfigCompiler *context, const char *err) { stringstream message; - - message << "in " << locp->Path << ": " - << locp->FirstLine << ":" << locp->FirstColumn - << "-" - << locp->LastLine << ":" << locp->LastColumn - << ": " << err << endl; - + message << *locp; throw runtime_error(message.str()); } @@ -241,7 +235,7 @@ void ConfigCompiler::Compile(void) /* Line 264 of yacc.c */ -#line 245 "config_parser.cc" +#line 239 "config_parser.cc" #ifdef short # undef short @@ -541,11 +535,11 @@ static const yytype_int8 yyrhs[] = /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 101, 101, 102, 105, 105, 108, 114, 119, 114, - 139, 140, 143, 147, 153, 154, 157, 164, 165, 169, - 168, 180, 181, 183, 184, 185, 188, 196, 210, 219, - 220, 221, 222, 223, 229, 234, 238, 244, 245, 246, - 253, 252, 264, 270, 271, 273, 275, 276 + 0, 95, 95, 96, 99, 99, 102, 108, 113, 108, + 133, 134, 137, 141, 147, 148, 151, 158, 159, 163, + 162, 174, 175, 177, 178, 179, 182, 190, 204, 213, + 214, 215, 216, 217, 223, 228, 232, 238, 239, 240, + 247, 246, 258, 264, 265, 267, 269, 270 }; #endif @@ -1529,7 +1523,7 @@ yyreduce: case 6: /* Line 1455 of yacc.c */ -#line 109 "config_parser.yy" +#line 103 "config_parser.yy" { context->HandleInclude((yyvsp[(2) - (2)].text)); } @@ -1538,7 +1532,7 @@ yyreduce: case 7: /* Line 1455 of yacc.c */ -#line 114 "config_parser.yy" +#line 108 "config_parser.yy" { m_Abstract = false; m_Local = false; @@ -1548,7 +1542,7 @@ yyreduce: case 8: /* Line 1455 of yacc.c */ -#line 119 "config_parser.yy" +#line 113 "config_parser.yy" { m_Item = boost::make_shared(yylloc); m_Item->SetType((yyvsp[(4) - (5)].text)); @@ -1559,7 +1553,7 @@ yyreduce: case 9: /* Line 1455 of yacc.c */ -#line 125 "config_parser.yy" +#line 119 "config_parser.yy" { Object::Ptr exprl_object = *(yyvsp[(8) - (8)].variant); delete (yyvsp[(8) - (8)].variant); @@ -1577,7 +1571,7 @@ yyreduce: case 12: /* Line 1455 of yacc.c */ -#line 144 "config_parser.yy" +#line 138 "config_parser.yy" { m_Abstract = true; } @@ -1586,7 +1580,7 @@ yyreduce: case 13: /* Line 1455 of yacc.c */ -#line 148 "config_parser.yy" +#line 142 "config_parser.yy" { m_Local = true; } @@ -1595,7 +1589,7 @@ yyreduce: case 16: /* Line 1455 of yacc.c */ -#line 158 "config_parser.yy" +#line 152 "config_parser.yy" { m_Item->AddParent((yyvsp[(1) - (1)].text)); free((yyvsp[(1) - (1)].text)); @@ -1605,7 +1599,7 @@ yyreduce: case 19: /* Line 1455 of yacc.c */ -#line 169 "config_parser.yy" +#line 163 "config_parser.yy" { m_ExpressionLists.push(boost::make_shared()); } @@ -1614,7 +1608,7 @@ yyreduce: case 20: /* Line 1455 of yacc.c */ -#line 174 "config_parser.yy" +#line 168 "config_parser.yy" { (yyval.variant) = new Variant(m_ExpressionLists.top()); m_ExpressionLists.pop(); @@ -1624,7 +1618,7 @@ yyreduce: case 26: /* Line 1455 of yacc.c */ -#line 189 "config_parser.yy" +#line 183 "config_parser.yy" { Expression expr((yyvsp[(1) - (3)].text), (yyvsp[(2) - (3)].op), *(yyvsp[(3) - (3)].variant), yylloc); free((yyvsp[(1) - (3)].text)); @@ -1637,7 +1631,7 @@ yyreduce: case 27: /* Line 1455 of yacc.c */ -#line 197 "config_parser.yy" +#line 191 "config_parser.yy" { Expression subexpr((yyvsp[(3) - (6)].text), (yyvsp[(5) - (6)].op), *(yyvsp[(6) - (6)].variant), yylloc); free((yyvsp[(3) - (6)].text)); @@ -1656,7 +1650,7 @@ yyreduce: case 28: /* Line 1455 of yacc.c */ -#line 211 "config_parser.yy" +#line 205 "config_parser.yy" { Expression expr((yyvsp[(1) - (1)].text), OperatorSet, (yyvsp[(1) - (1)].text), yylloc); free((yyvsp[(1) - (1)].text)); @@ -1668,7 +1662,7 @@ yyreduce: case 33: /* Line 1455 of yacc.c */ -#line 224 "config_parser.yy" +#line 218 "config_parser.yy" { (yyval.op) = (yyvsp[(1) - (1)].op); } @@ -1677,7 +1671,7 @@ yyreduce: case 34: /* Line 1455 of yacc.c */ -#line 230 "config_parser.yy" +#line 224 "config_parser.yy" { (yyval.variant) = new Variant((yyvsp[(1) - (1)].text)); free((yyvsp[(1) - (1)].text)); @@ -1687,7 +1681,7 @@ yyreduce: case 35: /* Line 1455 of yacc.c */ -#line 235 "config_parser.yy" +#line 229 "config_parser.yy" { (yyval.variant) = new Variant((yyvsp[(1) - (1)].num)); } @@ -1696,7 +1690,7 @@ yyreduce: case 36: /* Line 1455 of yacc.c */ -#line 239 "config_parser.yy" +#line 233 "config_parser.yy" { (yyval.variant) = new Variant(); } @@ -1705,7 +1699,7 @@ yyreduce: case 39: /* Line 1455 of yacc.c */ -#line 247 "config_parser.yy" +#line 241 "config_parser.yy" { (yyval.variant) = (yyvsp[(1) - (1)].variant); } @@ -1714,7 +1708,7 @@ yyreduce: case 40: /* Line 1455 of yacc.c */ -#line 253 "config_parser.yy" +#line 247 "config_parser.yy" { m_Array = boost::make_shared(); } @@ -1723,7 +1717,7 @@ yyreduce: case 41: /* Line 1455 of yacc.c */ -#line 258 "config_parser.yy" +#line 252 "config_parser.yy" { (yyval.variant) = new Variant(m_Array); m_Array.reset(); @@ -1733,7 +1727,7 @@ yyreduce: case 42: /* Line 1455 of yacc.c */ -#line 265 "config_parser.yy" +#line 259 "config_parser.yy" { m_Array->AddUnnamedProperty(*(yyvsp[(1) - (1)].variant)); delete (yyvsp[(1) - (1)].variant); @@ -1743,7 +1737,7 @@ yyreduce: /* Line 1455 of yacc.c */ -#line 1747 "config_parser.cc" +#line 1741 "config_parser.cc" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -1962,6 +1956,6 @@ yyreturn: /* Line 1675 of yacc.c */ -#line 278 "config_parser.yy" +#line 272 "config_parser.yy" diff --git a/dyn/config_parser.yy b/dyn/config_parser.yy index d45514b18..b8b76a1f0 100644 --- a/dyn/config_parser.yy +++ b/dyn/config_parser.yy @@ -70,13 +70,7 @@ int yylex(YYSTYPE *lvalp, YYLTYPE *llocp, void *scanner); void yyerror(YYLTYPE *locp, ConfigCompiler *context, const char *err) { stringstream message; - - message << "in " << locp->Path << ": " - << locp->FirstLine << ":" << locp->FirstColumn - << "-" - << locp->LastLine << ":" << locp->LastColumn - << ": " << err << endl; - + message << *locp; throw runtime_error(message.str()); } diff --git a/dyn/debuginfo.h b/dyn/debuginfo.h index e445a85f7..e58227624 100644 --- a/dyn/debuginfo.h +++ b/dyn/debuginfo.h @@ -54,7 +54,8 @@ struct DebugInfo inline ostream& operator<<(ostream& out, const DebugInfo& val) { - out << val.FirstLine << ":" << val.FirstColumn + out << "in " << val.Path << ": " + << val.FirstLine << ":" << val.FirstColumn << "-" << val.LastLine << ":" << val.LastColumn;