Changeset 064e3ff
- Timestamp:
- Aug 4, 2016, 5:26:08 PM (7 years ago)
- Branches:
- aaron-thesis, arm-eh, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- b87e2b6
- Parents:
- 76e8c55
- Location:
- src
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
src/CodeGen/CodeGenerator.cc
r76e8c55 r064e3ff 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Aug 4 1 1:16:21201613 // Update Count : 35 112 // Last Modified On : Thu Aug 4 13:35:30 2016 13 // Update Count : 352 14 14 // 15 15 … … 492 492 } 493 493 494 void CodeGenerator::visit( RangeExpr * rangeExpr ) { 495 rangeExpr->get_low()->accept( *this ); 496 output << " ... "; 497 rangeExpr->get_high()->accept( *this ); 498 } 499 494 500 void CodeGenerator::visit( NameExpr * nameExpr ) { 495 501 extension( nameExpr ); -
src/CodeGen/CodeGenerator.h
r76e8c55 r064e3ff 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 30 11:10:42201613 // Update Count : 3 712 // Last Modified On : Thu Aug 4 13:37:07 2016 13 // Update Count : 38 14 14 // 15 15 … … 54 54 virtual void visit( ApplicationExpr *applicationExpr ); 55 55 virtual void visit( UntypedExpr *untypedExpr ); 56 virtual void visit( RangeExpr * rangeExpr ); 56 57 virtual void visit( NameExpr *nameExpr ); 57 58 virtual void visit( AddressExpr *addressExpr ); -
src/Parser/ExpressionNode.cc
r76e8c55 r064e3ff 10 10 // Created On : Sat May 16 13:17:07 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : T ue Aug 2 15:10:23 201613 // Update Count : 3 2212 // Last Modified On : Thu Aug 4 16:11:23 2016 13 // Update Count : 338 14 14 // 15 15 … … 258 258 OperatorNode::~OperatorNode() {} 259 259 260 OperatorNode::Type OperatorNode::get_type( void ) const {260 OperatorNode::Type OperatorNode::get_type( void ) const { 261 261 return type; 262 262 } … … 311 311 } 312 312 313 #include "Common/utility.h" 313 314 Expression *build_cast( TypeValueNode * arg, ExpressionNode *expr_node ) { 315 DeclarationNode *decl_node = arg->get_decl(); 316 317 Type *targetType = decl_node->buildType(); 318 if ( dynamic_cast< VoidType* >( targetType ) ) { 319 delete targetType; 320 return new CastExpr( maybeBuild<Expression>(expr_node) ); 321 } else { 322 return new CastExpr( maybeBuild<Expression>(expr_node), targetType ); 323 } // if 324 } 325 326 Expression *build_fieldSel( ExpressionNode *expr_node, VarRefNode *member ) { 327 NameExpr* memberExpr = dynamic_cast<NameExpr*> ( maybeBuild<Expression>( member) ); 328 assert( memberExpr ); 329 UntypedMemberExpr *ret = new UntypedMemberExpr( memberExpr->get_name(), maybeBuild<Expression>(expr_node) ); 330 delete member; 331 return ret; 332 } 333 334 Expression *build_pfieldSel( ExpressionNode *expr_node, VarRefNode *member ) { 335 NameExpr* memberExpr = dynamic_cast<NameExpr*> ( maybeBuild<Expression>( member) ); 336 assert( memberExpr ); 337 UntypedExpr *deref = new UntypedExpr( new NameExpr( "*?" ) ); 338 deref->get_args().push_back( maybeBuild<Expression>(expr_node) ); 339 UntypedMemberExpr *ret = new UntypedMemberExpr( memberExpr->get_name(), deref ); 340 delete member; 341 return ret; 342 } 343 344 Expression *build_addressOf( ExpressionNode *expr_node ) { 345 return new AddressExpr( maybeBuild<Expression>(expr_node) ); 346 } 347 Expression *build_sizeOf( ExpressionNode *expr_node ) { 348 if ( TypeValueNode * arg = dynamic_cast<TypeValueNode *>( expr_node ) ) { 349 return new SizeofExpr( arg->get_decl()->buildType() ); 350 } else { 351 return new SizeofExpr( maybeBuild<Expression>(expr_node) ); 352 } // if 353 } 354 Expression *build_alignOf( ExpressionNode *expr_node ) { 355 if ( TypeValueNode * arg = dynamic_cast<TypeValueNode *>( expr_node ) ) { 356 return new AlignofExpr( arg->get_decl()->buildType() ); 357 } else { 358 return new AlignofExpr( maybeBuild<Expression>(expr_node) ); 359 } // if 360 } 361 Expression *build_offsetOf( TypeValueNode * arg, VarRefNode *member ) { 362 NameExpr *memberExpr = dynamic_cast<NameExpr *>( maybeBuild<Expression>( member ) ); 363 assert( memberExpr ); 364 return new UntypedOffsetofExpr( arg->get_decl()->buildType(), memberExpr->get_name() ); 365 } 366 367 CompositeExprNode2::CompositeExprNode2( Expression *expr ) : expr( expr ) {} 368 CompositeExprNode2::CompositeExprNode2( const CompositeExprNode2 &other ) : expr( other.expr->clone() ) {} 369 CompositeExprNode2::~CompositeExprNode2() { delete expr; } 370 void CompositeExprNode2::print( std::ostream &, int indent ) const { assert( false ); } 371 void CompositeExprNode2::printOneLine( std::ostream &, int indent ) const { assert( false ); } 372 314 373 315 374 Expression *CompositeExprNode::build() const { … … 388 447 case OperatorNode::LabelAddress: 389 448 return new UntypedExpr( new NameExpr( opName[ op->get_type() ] ), args ); 390 case OperatorNode::AddressOf:391 assert( args.size() == 1 );392 assert( args.front() );393 394 return new AddressExpr( args.front() );395 case OperatorNode::Cast:396 {397 TypeValueNode * arg = dynamic_cast<TypeValueNode *>( get_args());398 assert( arg );399 400 DeclarationNode *decl_node = arg->get_decl();401 ExpressionNode *expr_node = dynamic_cast<ExpressionNode *>( arg->get_link());402 403 Type *targetType = decl_node->buildType();404 if ( dynamic_cast< VoidType* >( targetType ) ) {405 delete targetType;406 return new CastExpr( maybeBuild<Expression>(expr_node), maybeBuild< Expression >( get_argName() ) );407 } else {408 return new CastExpr( maybeBuild<Expression>(expr_node),targetType, maybeBuild< Expression >( get_argName() ) );409 } // if410 }411 case OperatorNode::FieldSel:412 {413 assert( args.size() == 2 );414 415 NameExpr *member = dynamic_cast<NameExpr *>( args.back());416 // TupleExpr *memberTup = dynamic_cast<TupleExpr *>( args.back());417 418 if ( member != 0 ) {419 UntypedMemberExpr *ret = new UntypedMemberExpr( member->get_name(), args.front());420 delete member;421 return ret;422 /* else if ( memberTup != 0 )423 {424 UntypedMemberExpr *ret = new UntypedMemberExpr( memberTup->get_name(), args.front());425 delete member;426 return ret;427 } */428 } else429 assert( false );430 }431 case OperatorNode::PFieldSel:432 {433 assert( args.size() == 2 );434 435 NameExpr *member = dynamic_cast<NameExpr *>( args.back()); // modify for Tuples xxx436 assert( member != 0 );437 438 UntypedExpr *deref = new UntypedExpr( new NameExpr( "*?" ) );439 deref->get_args().push_back( args.front() );440 441 UntypedMemberExpr *ret = new UntypedMemberExpr( member->get_name(), deref );442 delete member;443 return ret;444 }445 case OperatorNode::SizeOf:446 {447 if ( TypeValueNode * arg = dynamic_cast<TypeValueNode *>( get_args()) ) {448 return new SizeofExpr( arg->get_decl()->buildType());449 } else {450 return new SizeofExpr( args.front());451 } // if452 }453 case OperatorNode::AlignOf:454 {455 if ( TypeValueNode * arg = dynamic_cast<TypeValueNode *>( get_args()) ) {456 return new AlignofExpr( arg->get_decl()->buildType());457 } else {458 return new AlignofExpr( args.front());459 } // if460 }461 case OperatorNode::OffsetOf:462 {463 assert( args.size() == 2 );464 465 if ( TypeValueNode * arg = dynamic_cast<TypeValueNode *>( get_args() ) ) {466 NameExpr *member = dynamic_cast<NameExpr *>( args.back() );467 assert( member != 0 );468 469 return new UntypedOffsetofExpr( arg->get_decl()->buildType(), member->get_name() );470 } else assert( false );471 }472 449 case OperatorNode::Attr: 473 450 { … … 774 751 } 775 752 776 777 753 ExpressionNode *flattenCommas( ExpressionNode *list ) { 778 754 if ( CompositeExprNode *composite = dynamic_cast< CompositeExprNode * >( list ) ) { -
src/Parser/ParseNode.h
r76e8c55 r064e3ff 10 10 // Created On : Sat May 16 13:28:16 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sun Jul 24 02:17:00201613 // Update Count : 2 6912 // Last Modified On : Thu Aug 4 16:34:16 2016 13 // Update Count : 277 14 14 // 15 15 … … 225 225 }; 226 226 227 Expression *build_cast( TypeValueNode * arg, ExpressionNode *expr_node ); 228 Expression *build_fieldSel( ExpressionNode *expr_node, VarRefNode *member ); 229 Expression *build_pfieldSel( ExpressionNode *expr_node, VarRefNode *member ); 230 Expression *build_addressOf( ExpressionNode *expr_node ); 231 Expression *build_sizeOf( ExpressionNode *expr_node ); 232 Expression *build_alignOf( ExpressionNode *expr_node ); 233 Expression *build_offsetOf( TypeValueNode * arg, VarRefNode *member ); 234 227 235 class CompositeExprNode : public ExpressionNode { 228 236 public: … … 250 258 ExpressionNode *function; 251 259 ExpressionNode *arguments; 260 }; 261 262 class CompositeExprNode2 : public ExpressionNode { 263 public: 264 CompositeExprNode2( Expression *expr ); 265 CompositeExprNode2( const CompositeExprNode2 &other ); 266 virtual ~CompositeExprNode2(); 267 268 virtual CompositeExprNode2 *clone() const { return new CompositeExprNode2( *this ); } 269 virtual Expression *build() const { return expr->clone(); } 270 271 virtual void print( std::ostream &, int indent = 0) const; 272 virtual void printOneLine( std::ostream &, int indent = 0) const; 273 private: 274 Expression *expr; 252 275 }; 253 276 -
src/Parser/parser.cc
r76e8c55 r064e3ff 354 354 LabelNode *label; 355 355 InitializerNode *in; 356 OperatorNode::Type op; 356 357 bool flag; 357 358 … … 359 360 360 361 /* Line 293 of yacc.c */ 361 #line 36 2"Parser/parser.cc"362 #line 363 "Parser/parser.cc" 362 363 } YYSTYPE; 363 364 # define YYSTYPE_IS_TRIVIAL 1 … … 371 372 372 373 /* Line 343 of yacc.c */ 373 #line 37 4"Parser/parser.cc"374 #line 375 "Parser/parser.cc" 374 375 375 376 #ifdef short … … 1016 1017 static const yytype_uint16 yyrline[] = 1017 1018 { 1018 0, 29 0, 290, 296, 305, 306, 307, 311, 312, 313,1019 31 7, 318, 322, 323, 327, 328, 332, 333, 339, 341,1020 34 3, 345, 350, 351, 357, 361, 363, 364, 366, 367,1021 3 69, 371, 373, 381, 382, 388, 389, 390, 395, 397,1022 40 2, 403, 407, 411, 413, 415, 417, 422, 425, 427,1023 4 29, 431, 436, 438, 440, 442, 444, 446, 448, 450,1024 45 2, 454, 456, 463, 464, 466, 470, 471, 472, 473,1025 47 7, 478, 480, 485, 486, 488, 490, 495, 496, 498,1026 50 3, 504, 506, 511, 512, 514, 516, 518, 523, 524,1027 52 6, 531, 532, 537, 538, 543, 544, 549, 550, 555,1028 55 6, 561, 562, 564, 566, 571, 576, 577, 579, 581,1029 58 7, 588, 594, 596, 598, 600, 605, 606, 611, 612,1030 61 3, 614, 615, 616, 617, 618, 619, 620, 624, 625,1031 63 1, 632, 638, 639, 640, 641, 642, 643, 644, 645,1032 64 6, 656, 663, 665, 675, 676, 681, 683, 689, 691,1033 69 5, 696, 701, 706, 709, 711, 713, 723, 725, 736,1034 73 7, 739, 743, 744, 748, 749, 754, 755, 759, 764,1035 76 5, 769, 771, 777, 778, 782, 784, 786, 788, 794,1036 79 5, 799, 801, 806, 808, 810, 815, 817, 822, 824,1037 8 28, 831, 835, 838, 842, 844, 848, 850, 857, 859,1038 86 1, 870, 872, 874, 876, 878, 883, 885, 887, 889,1039 89 4, 907, 908, 913, 915, 920, 924, 926, 928, 930,1040 93 2, 938, 939, 945, 946, 950, 951, 956, 958, 964,1041 96 5, 967, 972, 974, 981, 983, 987, 988, 993, 995,1042 999, 1000, 1004, 1006, 1010, 1011, 1015, 1016, 1020, 1021,1043 103 6, 1037, 1038, 1039, 1040, 1044, 1049, 1056, 1066, 1071,1044 107 6, 1084, 1089, 1094, 1099, 1104, 1112, 1134, 1139, 1146,1045 11 48, 1155, 1160, 1165, 1176, 1181, 1186, 1191, 1196, 1205,1046 121 0, 1218, 1219, 1220, 1221, 1227, 1232, 1240, 1241, 1242,1047 124 3, 1247, 1248, 1249, 1250, 1255, 1256, 1265, 1266, 1271,1048 127 2, 1277, 1279, 1281, 1283, 1285, 1288, 1287, 1299, 1300,1049 130 2, 1312, 1313, 1318, 1322, 1324, 1326, 1328, 1330, 1332,1050 133 4, 1336, 1341, 1343, 1345, 1347, 1349, 1351, 1353, 1355,1051 13 57, 1359, 1361, 1363, 1365, 1371, 1372, 1374, 1376, 1378,1052 138 3, 1384, 1390, 1391, 1393, 1395, 1400, 1402, 1404, 1406,1053 141 1, 1412, 1414, 1416, 1421, 1422, 1424, 1429, 1430, 1432,1054 143 4, 1439, 1441, 1443, 1448, 1449, 1453, 1455, 1461, 1460,1055 146 4, 1466, 1471, 1473, 1479, 1480, 1485, 1486, 1488, 1489,1056 1 498, 1499, 1501, 1503, 1508, 1510, 1516, 1517, 1519, 1522,1057 152 5, 1530, 1531, 1536, 1541, 1545, 1547, 1553, 1552, 1559,1058 156 1, 1567, 1568, 1576, 1577, 1581, 1582, 1583, 1585, 1587,1059 159 4, 1595, 1597, 1599, 1604, 1605, 1611, 1612, 1616, 1617,1060 162 2, 1623, 1624, 1626, 1634, 1635, 1637, 1640, 1642, 1646,1061 16 47, 1648, 1650, 1652, 1656, 1661, 1669, 1670, 1679, 1681,1062 168 6, 1687, 1688, 1692, 1693, 1694, 1698, 1699, 1700, 1704,1063 170 5, 1706, 1711, 1712, 1713, 1714, 1720, 1721, 1723, 1728,1064 17 29, 1734, 1735, 1736, 1737, 1738, 1753, 1754, 1759, 1760,1065 17 68, 1770, 1772, 1775, 1777, 1779, 1802, 1803, 1805, 1807,1066 181 2, 1813, 1815, 1820, 1825, 1826, 1832, 1831, 1835, 1839,1067 184 1, 1843, 1849, 1850, 1855, 1860, 1862, 1867, 1869, 1870,1068 187 2, 1877, 1879, 1881, 1886, 1888, 1893, 1898, 1906, 1912,1069 191 1, 1925, 1926, 1931, 1932, 1936, 1941, 1946, 1954, 1959,1070 197 0, 1971, 1982, 1983, 1989, 1990, 1994, 1995, 1996, 1999,1071 1998, 2009, 2018, 2024, 2030, 2039, 2045, 2051, 2057, 2063,1072 207 1, 2077, 2085, 2091, 2100, 2101, 2102, 2106, 2110, 2112,1073 21 17, 2118, 2122, 2123, 2128, 2134, 2135, 2138, 2140, 2141,1074 214 5, 2146, 2147, 2148, 2182, 2184, 2185, 2187, 2192, 2197,1075 220 2, 2204, 2206, 2211, 2213, 2215, 2217, 2222, 2224, 2233,1076 223 5, 2236, 2241, 2243, 2245, 2250, 2252, 2254, 2259, 2261,1077 226 3, 2272, 2273, 2274, 2278, 2280, 2282, 2287, 2289, 2291,1078 229 6, 2298, 2300, 2315, 2317, 2318, 2320, 2325, 2326, 2331,1079 233 3, 2335, 2340, 2342, 2344, 2346, 2351, 2353, 2355, 2365,1080 23 67, 2368, 2370, 2375, 2377, 2379, 2384, 2386, 2388, 2390,1081 239 5, 2397, 2399, 2430, 2432, 2433, 2435, 2440, 2445, 2453,1082 245 5, 2457, 2462, 2464, 2469, 2471, 2485, 2486, 2488, 2493,1083 249 5, 2497, 2499, 2501, 2506, 2507, 2509, 2511, 2516, 2518,1084 252 0, 2526, 2528, 2530, 2534, 2536, 2538, 2540, 2554, 2555,1085 25 57, 2562, 2564, 2566, 2568, 2570, 2575, 2576, 2578, 2580,1086 258 5, 2587, 2589, 2595, 2596, 2598, 2607, 2610, 2612, 2615,1087 26 17, 2619, 2632, 2633, 2635, 2640, 2642, 2644, 2646, 2648,1088 265 3, 2654, 2656, 2658, 2663, 2665, 2673, 2674, 2675, 2680,1089 268 1, 2685, 2687, 2689, 2691, 2693, 2695, 2702, 2704, 2706,1090 27 08, 2710, 2712, 2714, 2716, 2718, 2720, 2725, 2727, 2729,1091 273 4, 2760, 2761, 2763, 2767, 2768, 2772, 2774, 2776, 2778,1092 278 0, 2782, 2789, 2791, 2793, 2795, 2797, 2799, 2804, 2809,1093 281 1, 2813, 2831, 2833, 2838, 28391019 0, 292, 292, 298, 307, 308, 309, 313, 314, 315, 1020 319, 320, 324, 325, 329, 330, 334, 335, 341, 343, 1021 345, 347, 352, 353, 359, 363, 365, 366, 368, 369, 1022 371, 373, 375, 383, 384, 390, 391, 392, 397, 399, 1023 404, 405, 409, 413, 415, 417, 419, 424, 427, 429, 1024 431, 433, 438, 440, 442, 444, 446, 448, 450, 452, 1025 454, 456, 458, 465, 466, 468, 472, 473, 474, 475, 1026 479, 480, 482, 487, 488, 490, 492, 497, 498, 500, 1027 505, 506, 508, 513, 514, 516, 518, 520, 525, 526, 1028 528, 533, 534, 539, 540, 545, 546, 551, 552, 557, 1029 558, 563, 564, 566, 568, 573, 578, 579, 581, 583, 1030 589, 590, 596, 598, 600, 602, 607, 608, 613, 614, 1031 615, 616, 617, 618, 619, 620, 621, 622, 626, 627, 1032 633, 634, 640, 641, 642, 643, 644, 645, 646, 647, 1033 648, 658, 665, 667, 677, 678, 683, 685, 691, 693, 1034 697, 698, 703, 708, 711, 713, 715, 725, 727, 738, 1035 739, 741, 745, 747, 751, 752, 757, 758, 762, 767, 1036 768, 772, 774, 780, 781, 785, 787, 789, 791, 797, 1037 798, 802, 804, 809, 811, 813, 818, 820, 825, 827, 1038 831, 834, 838, 841, 845, 847, 851, 853, 860, 862, 1039 864, 873, 875, 877, 879, 881, 886, 888, 890, 892, 1040 897, 910, 911, 916, 918, 923, 927, 929, 931, 933, 1041 935, 941, 942, 948, 949, 953, 954, 959, 961, 967, 1042 968, 970, 975, 977, 984, 986, 990, 991, 996, 998, 1043 1002, 1003, 1007, 1009, 1013, 1014, 1018, 1019, 1023, 1024, 1044 1039, 1040, 1041, 1042, 1043, 1047, 1052, 1059, 1069, 1074, 1045 1079, 1087, 1092, 1097, 1102, 1107, 1115, 1137, 1142, 1149, 1046 1151, 1158, 1163, 1168, 1179, 1184, 1189, 1194, 1199, 1208, 1047 1213, 1221, 1222, 1223, 1224, 1230, 1235, 1243, 1244, 1245, 1048 1246, 1250, 1251, 1252, 1253, 1258, 1259, 1268, 1269, 1274, 1049 1275, 1280, 1282, 1284, 1286, 1288, 1291, 1290, 1302, 1303, 1050 1305, 1315, 1316, 1321, 1325, 1327, 1329, 1331, 1333, 1335, 1051 1337, 1339, 1344, 1346, 1348, 1350, 1352, 1354, 1356, 1358, 1052 1360, 1362, 1364, 1366, 1368, 1374, 1375, 1377, 1379, 1381, 1053 1386, 1387, 1393, 1394, 1396, 1398, 1403, 1405, 1407, 1409, 1054 1414, 1415, 1417, 1419, 1424, 1425, 1427, 1432, 1433, 1435, 1055 1437, 1442, 1444, 1446, 1451, 1452, 1456, 1458, 1464, 1463, 1056 1467, 1469, 1474, 1476, 1482, 1483, 1488, 1489, 1491, 1492, 1057 1501, 1502, 1504, 1506, 1511, 1513, 1519, 1520, 1522, 1525, 1058 1528, 1533, 1534, 1539, 1544, 1548, 1550, 1556, 1555, 1562, 1059 1564, 1570, 1571, 1579, 1580, 1584, 1585, 1586, 1588, 1590, 1060 1597, 1598, 1600, 1602, 1607, 1608, 1614, 1615, 1619, 1620, 1061 1625, 1626, 1627, 1629, 1637, 1638, 1640, 1643, 1645, 1649, 1062 1650, 1651, 1653, 1655, 1659, 1664, 1672, 1673, 1682, 1684, 1063 1689, 1690, 1691, 1695, 1696, 1697, 1701, 1702, 1703, 1707, 1064 1708, 1709, 1714, 1715, 1716, 1717, 1723, 1724, 1726, 1731, 1065 1732, 1737, 1738, 1739, 1740, 1741, 1756, 1757, 1762, 1763, 1066 1771, 1773, 1775, 1778, 1780, 1782, 1805, 1806, 1808, 1810, 1067 1815, 1816, 1818, 1823, 1828, 1829, 1835, 1834, 1838, 1842, 1068 1844, 1846, 1852, 1853, 1858, 1863, 1865, 1870, 1872, 1873, 1069 1875, 1880, 1882, 1884, 1889, 1891, 1896, 1901, 1909, 1915, 1070 1914, 1928, 1929, 1934, 1935, 1939, 1944, 1949, 1957, 1962, 1071 1973, 1974, 1985, 1986, 1992, 1993, 1997, 1998, 1999, 2002, 1072 2001, 2012, 2021, 2027, 2033, 2042, 2048, 2054, 2060, 2066, 1073 2074, 2080, 2088, 2094, 2103, 2104, 2105, 2109, 2113, 2115, 1074 2120, 2121, 2125, 2126, 2131, 2137, 2138, 2141, 2143, 2144, 1075 2148, 2149, 2150, 2151, 2185, 2187, 2188, 2190, 2195, 2200, 1076 2205, 2207, 2209, 2214, 2216, 2218, 2220, 2225, 2227, 2236, 1077 2238, 2239, 2244, 2246, 2248, 2253, 2255, 2257, 2262, 2264, 1078 2266, 2275, 2276, 2277, 2281, 2283, 2285, 2290, 2292, 2294, 1079 2299, 2301, 2303, 2318, 2320, 2321, 2323, 2328, 2329, 2334, 1080 2336, 2338, 2343, 2345, 2347, 2349, 2354, 2356, 2358, 2368, 1081 2370, 2371, 2373, 2378, 2380, 2382, 2387, 2389, 2391, 2393, 1082 2398, 2400, 2402, 2433, 2435, 2436, 2438, 2443, 2448, 2456, 1083 2458, 2460, 2465, 2467, 2472, 2474, 2488, 2489, 2491, 2496, 1084 2498, 2500, 2502, 2504, 2509, 2510, 2512, 2514, 2519, 2521, 1085 2523, 2529, 2531, 2533, 2537, 2539, 2541, 2543, 2557, 2558, 1086 2560, 2565, 2567, 2569, 2571, 2573, 2578, 2579, 2581, 2583, 1087 2588, 2590, 2592, 2598, 2599, 2601, 2610, 2613, 2615, 2618, 1088 2620, 2622, 2635, 2636, 2638, 2643, 2645, 2647, 2649, 2651, 1089 2656, 2657, 2659, 2661, 2666, 2668, 2676, 2677, 2678, 2683, 1090 2684, 2688, 2690, 2692, 2694, 2696, 2698, 2705, 2707, 2709, 1091 2711, 2713, 2715, 2717, 2719, 2721, 2723, 2728, 2730, 2732, 1092 2737, 2763, 2764, 2766, 2770, 2771, 2775, 2777, 2779, 2781, 1093 2783, 2785, 2792, 2794, 2796, 2798, 2800, 2802, 2807, 2812, 1094 2814, 2816, 2834, 2836, 2841, 2842 1094 1095 }; 1095 1096 #endif … … 5216 5217 5217 5218 /* Line 1806 of yacc.c */ 5218 #line 29 0"parser.yy"5219 #line 292 "parser.yy" 5219 5220 { 5220 5221 typedefTable.enterScope(); … … 5225 5226 5226 5227 /* Line 1806 of yacc.c */ 5227 #line 29 6"parser.yy"5228 #line 298 "parser.yy" 5228 5229 { 5229 5230 typedefTable.leaveScope(); … … 5234 5235 5235 5236 /* Line 1806 of yacc.c */ 5236 #line 30 5"parser.yy"5237 #line 307 "parser.yy" 5237 5238 { (yyval.constant) = makeConstantInteger( *(yyvsp[(1) - (1)].tok) ); } 5238 5239 break; … … 5241 5242 5242 5243 /* Line 1806 of yacc.c */ 5243 #line 30 6"parser.yy"5244 #line 308 "parser.yy" 5244 5245 { (yyval.constant) = makeConstantFloat( *(yyvsp[(1) - (1)].tok) ); } 5245 5246 break; … … 5248 5249 5249 5250 /* Line 1806 of yacc.c */ 5250 #line 30 7"parser.yy"5251 #line 309 "parser.yy" 5251 5252 { (yyval.constant) = makeConstantChar( *(yyvsp[(1) - (1)].tok) ); } 5252 5253 break; … … 5255 5256 5256 5257 /* Line 1806 of yacc.c */ 5257 #line 33 2"parser.yy"5258 #line 334 "parser.yy" 5258 5259 { (yyval.constant) = makeConstantStr( *(yyvsp[(1) - (1)].tok) ); } 5259 5260 break; … … 5262 5263 5263 5264 /* Line 1806 of yacc.c */ 5264 #line 33 3"parser.yy"5265 #line 335 "parser.yy" 5265 5266 { (yyval.constant) = (yyvsp[(1) - (2)].constant)->appendstr( (yyvsp[(2) - (2)].tok) ); } 5266 5267 break; 5267 5268 5268 5269 case 18: 5269 5270 /* Line 1806 of yacc.c */5271 #line 340 "parser.yy"5272 { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }5273 break;5274 5275 case 19:5276 5270 5277 5271 /* Line 1806 of yacc.c */ … … 5280 5274 break; 5281 5275 5276 case 19: 5277 5278 /* Line 1806 of yacc.c */ 5279 #line 344 "parser.yy" 5280 { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); } 5281 break; 5282 5282 5283 case 20: 5283 5284 5284 5285 /* Line 1806 of yacc.c */ 5285 #line 34 4"parser.yy"5286 #line 346 "parser.yy" 5286 5287 { (yyval.en) = (yyvsp[(2) - (3)].en); } 5287 5288 break; … … 5290 5291 5291 5292 /* Line 1806 of yacc.c */ 5292 #line 34 6"parser.yy"5293 #line 348 "parser.yy" 5293 5294 { (yyval.en) = new ValofExprNode( (yyvsp[(2) - (3)].sn) ); } 5294 5295 break; … … 5297 5298 5298 5299 /* Line 1806 of yacc.c */ 5299 #line 35 6"parser.yy"5300 #line 358 "parser.yy" 5300 5301 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Index ), (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ); } 5301 5302 break; … … 5304 5305 5305 5306 /* Line 1806 of yacc.c */ 5306 #line 3 58"parser.yy"5307 #line 360 "parser.yy" 5307 5308 { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ); } 5308 5309 break; … … 5311 5312 5312 5313 /* Line 1806 of yacc.c */ 5313 #line 36 2"parser.yy"5314 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::FieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); }5314 #line 364 "parser.yy" 5315 { (yyval.en) = new CompositeExprNode2( build_fieldSel( (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) ) ) ); } 5315 5316 break; 5316 5317 … … 5318 5319 5319 5320 /* Line 1806 of yacc.c */ 5320 #line 36 5"parser.yy"5321 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::PFieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); }5321 #line 367 "parser.yy" 5322 { (yyval.en) = new CompositeExprNode2( build_pfieldSel( (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) ) ) ); } 5322 5323 break; 5323 5324 … … 5325 5326 5326 5327 /* Line 1806 of yacc.c */ 5327 #line 3 68"parser.yy"5328 #line 370 "parser.yy" 5328 5329 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::IncrPost ), (yyvsp[(1) - (2)].en) ); } 5329 5330 break; … … 5332 5333 5333 5334 /* Line 1806 of yacc.c */ 5334 #line 37 0"parser.yy"5335 #line 372 "parser.yy" 5335 5336 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::DecrPost ), (yyvsp[(1) - (2)].en) ); } 5336 5337 break; … … 5339 5340 5340 5341 /* Line 1806 of yacc.c */ 5341 #line 37 2"parser.yy"5342 #line 374 "parser.yy" 5342 5343 { (yyval.en) = new CompoundLiteralNode( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ); } 5343 5344 break; … … 5346 5347 5347 5348 /* Line 1806 of yacc.c */ 5348 #line 37 4"parser.yy"5349 #line 376 "parser.yy" 5349 5350 { 5350 5351 Token fn; fn.str = new std::string( "?{}" ); // location undefined … … 5356 5357 5357 5358 /* Line 1806 of yacc.c */ 5358 #line 38 3"parser.yy"5359 #line 385 "parser.yy" 5359 5360 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); } 5360 5361 break; … … 5363 5364 5364 5365 /* Line 1806 of yacc.c */ 5365 #line 3 88"parser.yy"5366 #line 390 "parser.yy" 5366 5367 { (yyval.en) = 0; } 5367 5368 break; … … 5370 5371 5371 5372 /* Line 1806 of yacc.c */ 5372 #line 39 1"parser.yy"5373 #line 393 "parser.yy" 5373 5374 { (yyval.en) = (yyvsp[(3) - (3)].en)->set_argName( (yyvsp[(1) - (3)].tok) ); } 5374 5375 break; … … 5377 5378 5378 5379 /* Line 1806 of yacc.c */ 5379 #line 39 6"parser.yy"5380 #line 398 "parser.yy" 5380 5381 { (yyval.en) = (yyvsp[(7) - (7)].en)->set_argName( (yyvsp[(3) - (7)].en) ); } 5381 5382 break; … … 5384 5385 5385 5386 /* Line 1806 of yacc.c */ 5386 #line 398"parser.yy"5387 #line 400 "parser.yy" 5387 5388 { (yyval.en) = (yyvsp[(9) - (9)].en)->set_argName( new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (9)].en)->set_link( flattenCommas( (yyvsp[(5) - (9)].en) )))); } 5388 5389 break; … … 5391 5392 5392 5393 /* Line 1806 of yacc.c */ 5393 #line 40 3"parser.yy"5394 #line 405 "parser.yy" 5394 5395 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); } 5395 5396 break; … … 5398 5399 5399 5400 /* Line 1806 of yacc.c */ 5400 #line 4 08"parser.yy"5401 #line 410 "parser.yy" 5401 5402 { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); } 5402 5403 break; … … 5405 5406 5406 5407 /* Line 1806 of yacc.c */ 5407 #line 41 2"parser.yy"5408 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); }5408 #line 414 "parser.yy" 5409 { (yyval.en) = new CompositeExprNode2( build_fieldSel( (yyvsp[(3) - (3)].en), new VarRefNode( (yyvsp[(1) - (3)].tok) ) ) ); } 5409 5410 break; 5410 5411 … … 5412 5413 5413 5414 /* Line 1806 of yacc.c */ 5414 #line 41 4"parser.yy"5415 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); }5415 #line 416 "parser.yy" 5416 { (yyval.en) = new CompositeExprNode2( build_fieldSel( (yyvsp[(5) - (7)].en), new VarRefNode( (yyvsp[(1) - (7)].tok) ) ) ); } 5416 5417 break; 5417 5418 … … 5419 5420 5420 5421 /* Line 1806 of yacc.c */ 5421 #line 41 6"parser.yy"5422 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); }5422 #line 418 "parser.yy" 5423 { (yyval.en) = new CompositeExprNode2( build_pfieldSel( (yyvsp[(3) - (3)].en), new VarRefNode( (yyvsp[(1) - (3)].tok) ) ) ); } 5423 5424 break; 5424 5425 … … 5426 5427 5427 5428 /* Line 1806 of yacc.c */ 5428 #line 4 18"parser.yy"5429 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); }5429 #line 420 "parser.yy" 5430 { (yyval.en) = new CompositeExprNode2( build_pfieldSel( (yyvsp[(5) - (7)].en), new VarRefNode( (yyvsp[(1) - (7)].tok) ) ) ); } 5430 5431 break; 5431 5432 5432 5433 case 48: 5433 5434 /* Line 1806 of yacc.c */5435 #line 426 "parser.yy"5436 { (yyval.en) = (yyvsp[(1) - (1)].constant); }5437 break;5438 5439 case 49:5440 5434 5441 5435 /* Line 1806 of yacc.c */ … … 5444 5438 break; 5445 5439 5440 case 49: 5441 5442 /* Line 1806 of yacc.c */ 5443 #line 430 "parser.yy" 5444 { (yyval.en) = (yyvsp[(1) - (1)].constant); } 5445 break; 5446 5446 5447 case 50: 5447 5448 5448 5449 /* Line 1806 of yacc.c */ 5449 #line 43 0"parser.yy"5450 #line 432 "parser.yy" 5450 5451 { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); } 5451 5452 break; … … 5454 5455 5455 5456 /* Line 1806 of yacc.c */ 5456 #line 432 "parser.yy" 5457 #line 434 "parser.yy" 5458 { (yyval.en) = (yyvsp[(1) - (2)].op) == OperatorNode::AddressOf ? (ExpressionNode*) new CompositeExprNode2( build_addressOf( (yyvsp[(2) - (2)].en) ) ) : (ExpressionNode*)new CompositeExprNode( new OperatorNode ( (yyvsp[(1) - (2)].op) ), (yyvsp[(2) - (2)].en) ); } 5459 break; 5460 5461 case 52: 5462 5463 /* Line 1806 of yacc.c */ 5464 #line 439 "parser.yy" 5457 5465 { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); } 5458 5466 break; 5459 5467 5460 case 52:5461 5462 /* Line 1806 of yacc.c */5463 #line 437 "parser.yy"5464 { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); }5465 break;5466 5467 5468 case 53: 5468 5469 5469 5470 /* Line 1806 of yacc.c */ 5470 #line 4 39"parser.yy"5471 #line 441 "parser.yy" 5471 5472 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Incr ), (yyvsp[(2) - (2)].en) ); } 5472 5473 break; … … 5475 5476 5476 5477 /* Line 1806 of yacc.c */ 5477 #line 44 1"parser.yy"5478 #line 443 "parser.yy" 5478 5479 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Decr ), (yyvsp[(2) - (2)].en) ); } 5479 5480 break; … … 5482 5483 5483 5484 /* Line 1806 of yacc.c */ 5484 #line 44 3"parser.yy"5485 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::SizeOf ), (yyvsp[(2) - (2)].en) ); }5485 #line 445 "parser.yy" 5486 { (yyval.en) = new CompositeExprNode2( build_sizeOf( (yyvsp[(2) - (2)].en) ) ); } 5486 5487 break; 5487 5488 … … 5489 5490 5490 5491 /* Line 1806 of yacc.c */ 5491 #line 44 5"parser.yy"5492 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::SizeOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); }5492 #line 447 "parser.yy" 5493 { (yyval.en) = new CompositeExprNode2( build_sizeOf( new TypeValueNode( (yyvsp[(3) - (4)].decl) ) ) ); } 5493 5494 break; 5494 5495 … … 5496 5497 5497 5498 /* Line 1806 of yacc.c */ 5498 #line 44 7"parser.yy"5499 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::OffsetOf ), new TypeValueNode( (yyvsp[(3) - (6)].decl) ), new VarRefNode( (yyvsp[(5) - (6)].tok) )); }5499 #line 449 "parser.yy" 5500 { (yyval.en) = new CompositeExprNode2( build_offsetOf( new TypeValueNode( (yyvsp[(3) - (6)].decl) ), new VarRefNode( (yyvsp[(5) - (6)].tok) ) ) ); } 5500 5501 break; 5501 5502 … … 5503 5504 5504 5505 /* Line 1806 of yacc.c */ 5505 #line 4 49"parser.yy"5506 #line 451 "parser.yy" 5506 5507 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (1)].tok) )); } 5507 5508 break; … … 5510 5511 5511 5512 /* Line 1806 of yacc.c */ 5512 #line 45 1"parser.yy"5513 #line 453 "parser.yy" 5513 5514 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); } 5514 5515 break; … … 5517 5518 5518 5519 /* Line 1806 of yacc.c */ 5519 #line 45 3"parser.yy"5520 #line 455 "parser.yy" 5520 5521 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ); } 5521 5522 break; … … 5524 5525 5525 5526 /* Line 1806 of yacc.c */ 5526 #line 45 5"parser.yy"5527 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::AlignOf ), (yyvsp[(2) - (2)].en) ); }5527 #line 457 "parser.yy" 5528 { (yyval.en) = new CompositeExprNode2( build_alignOf( (yyvsp[(2) - (2)].en) ) ); } 5528 5529 break; 5529 5530 … … 5531 5532 5532 5533 /* Line 1806 of yacc.c */ 5533 #line 45 7"parser.yy"5534 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::AlignOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) ) ); }5534 #line 459 "parser.yy" 5535 { (yyval.en) = new CompositeExprNode2( build_alignOf( new TypeValueNode( (yyvsp[(3) - (4)].decl) ) ) ); } 5535 5536 break; 5536 5537 … … 5538 5539 5539 5540 /* Line 1806 of yacc.c */ 5540 #line 46 3"parser.yy"5541 { (yyval. en) = new OperatorNode( OperatorNode::PointTo ); }5541 #line 465 "parser.yy" 5542 { (yyval.op) = OperatorNode::PointTo; } 5542 5543 break; 5543 5544 … … 5545 5546 5546 5547 /* Line 1806 of yacc.c */ 5547 #line 46 4"parser.yy"5548 { (yyval. en) = new OperatorNode( OperatorNode::AddressOf ); }5548 #line 466 "parser.yy" 5549 { (yyval.op) = OperatorNode::AddressOf; } 5549 5550 break; 5550 5551 … … 5552 5553 5553 5554 /* Line 1806 of yacc.c */ 5554 #line 46 6"parser.yy"5555 { (yyval. en) = new OperatorNode( OperatorNode::And ); }5555 #line 468 "parser.yy" 5556 { (yyval.op) = OperatorNode::And; } 5556 5557 break; 5557 5558 … … 5559 5560 5560 5561 /* Line 1806 of yacc.c */ 5561 #line 47 0"parser.yy"5562 #line 472 "parser.yy" 5562 5563 { (yyval.en) = new OperatorNode( OperatorNode::UnPlus ); } 5563 5564 break; … … 5566 5567 5567 5568 /* Line 1806 of yacc.c */ 5568 #line 47 1"parser.yy"5569 #line 473 "parser.yy" 5569 5570 { (yyval.en) = new OperatorNode( OperatorNode::UnMinus ); } 5570 5571 break; … … 5573 5574 5574 5575 /* Line 1806 of yacc.c */ 5575 #line 47 2"parser.yy"5576 #line 474 "parser.yy" 5576 5577 { (yyval.en) = new OperatorNode( OperatorNode::Neg ); } 5577 5578 break; … … 5580 5581 5581 5582 /* Line 1806 of yacc.c */ 5582 #line 47 3"parser.yy"5583 #line 475 "parser.yy" 5583 5584 { (yyval.en) = new OperatorNode( OperatorNode::BitNeg ); } 5584 5585 break; … … 5587 5588 5588 5589 /* Line 1806 of yacc.c */ 5589 #line 4 79"parser.yy"5590 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ); }5590 #line 481 "parser.yy" 5591 { (yyval.en) = new CompositeExprNode2( build_cast( new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ) ); } 5591 5592 break; 5592 5593 … … 5594 5595 5595 5596 /* Line 1806 of yacc.c */ 5596 #line 48 1"parser.yy"5597 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ); }5597 #line 483 "parser.yy" 5598 { (yyval.en) = new CompositeExprNode2( build_cast( new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ) ); } 5598 5599 break; 5599 5600 … … 5601 5602 5602 5603 /* Line 1806 of yacc.c */ 5603 #line 48 7"parser.yy"5604 #line 489 "parser.yy" 5604 5605 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mul ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5605 5606 break; … … 5608 5609 5609 5610 /* Line 1806 of yacc.c */ 5610 #line 4 89"parser.yy"5611 #line 491 "parser.yy" 5611 5612 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Div ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5612 5613 break; … … 5615 5616 5616 5617 /* Line 1806 of yacc.c */ 5617 #line 49 1"parser.yy"5618 #line 493 "parser.yy" 5618 5619 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mod ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5619 5620 break; … … 5622 5623 5623 5624 /* Line 1806 of yacc.c */ 5624 #line 49 7"parser.yy"5625 #line 499 "parser.yy" 5625 5626 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Plus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5626 5627 break; … … 5629 5630 5630 5631 /* Line 1806 of yacc.c */ 5631 #line 499"parser.yy"5632 #line 501 "parser.yy" 5632 5633 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Minus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5633 5634 break; … … 5636 5637 5637 5638 /* Line 1806 of yacc.c */ 5638 #line 50 5"parser.yy"5639 #line 507 "parser.yy" 5639 5640 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5640 5641 break; … … 5643 5644 5644 5645 /* Line 1806 of yacc.c */ 5645 #line 50 7"parser.yy"5646 #line 509 "parser.yy" 5646 5647 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::RShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5647 5648 break; … … 5650 5651 5651 5652 /* Line 1806 of yacc.c */ 5652 #line 51 3"parser.yy"5653 #line 515 "parser.yy" 5653 5654 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5654 5655 break; … … 5657 5658 5658 5659 /* Line 1806 of yacc.c */ 5659 #line 51 5"parser.yy"5660 #line 517 "parser.yy" 5660 5661 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5661 5662 break; … … 5664 5665 5665 5666 /* Line 1806 of yacc.c */ 5666 #line 51 7"parser.yy"5667 #line 519 "parser.yy" 5667 5668 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5668 5669 break; … … 5671 5672 5672 5673 /* Line 1806 of yacc.c */ 5673 #line 5 19"parser.yy"5674 #line 521 "parser.yy" 5674 5675 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5675 5676 break; … … 5678 5679 5679 5680 /* Line 1806 of yacc.c */ 5680 #line 52 5"parser.yy"5681 #line 527 "parser.yy" 5681 5682 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Eq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5682 5683 break; … … 5685 5686 5686 5687 /* Line 1806 of yacc.c */ 5687 #line 52 7"parser.yy"5688 #line 529 "parser.yy" 5688 5689 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Neq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5689 5690 break; … … 5692 5693 5693 5694 /* Line 1806 of yacc.c */ 5694 #line 53 3"parser.yy"5695 #line 535 "parser.yy" 5695 5696 { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::BitAnd ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5696 5697 break; … … 5699 5700 5700 5701 /* Line 1806 of yacc.c */ 5701 #line 5 39"parser.yy"5702 #line 541 "parser.yy" 5702 5703 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Xor ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5703 5704 break; … … 5706 5707 5707 5708 /* Line 1806 of yacc.c */ 5708 #line 54 5"parser.yy"5709 #line 547 "parser.yy" 5709 5710 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::BitOr ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5710 5711 break; … … 5713 5714 5714 5715 /* Line 1806 of yacc.c */ 5715 #line 55 1"parser.yy"5716 #line 553 "parser.yy" 5716 5717 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::And ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5717 5718 break; … … 5720 5721 5721 5722 /* Line 1806 of yacc.c */ 5722 #line 55 7"parser.yy"5723 #line 559 "parser.yy" 5723 5724 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Or ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5724 5725 break; … … 5727 5728 5728 5729 /* Line 1806 of yacc.c */ 5729 #line 56 3"parser.yy"5730 #line 565 "parser.yy" 5730 5731 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); } 5731 5732 break; … … 5734 5735 5735 5736 /* Line 1806 of yacc.c */ 5736 #line 56 5"parser.yy"5737 #line 567 "parser.yy" 5737 5738 { (yyval.en)=new CompositeExprNode( new OperatorNode( OperatorNode::NCond ), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ); } 5738 5739 break; … … 5741 5742 5742 5743 /* Line 1806 of yacc.c */ 5743 #line 56 7"parser.yy"5744 #line 569 "parser.yy" 5744 5745 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); } 5745 5746 break; … … 5748 5749 5749 5750 /* Line 1806 of yacc.c */ 5750 #line 5 78"parser.yy"5751 #line 580 "parser.yy" 5751 5752 { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5752 5753 break; … … 5755 5756 5756 5757 /* Line 1806 of yacc.c */ 5757 #line 58 0"parser.yy"5758 #line 582 "parser.yy" 5758 5759 { (yyval.en) =new CompositeExprNode( (yyvsp[(2) - (3)].en), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5759 5760 break; … … 5762 5763 5763 5764 /* Line 1806 of yacc.c */ 5764 #line 58 2"parser.yy"5765 #line 584 "parser.yy" 5765 5766 { (yyval.en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); } 5766 5767 break; … … 5769 5770 5770 5771 /* Line 1806 of yacc.c */ 5771 #line 58 7"parser.yy"5772 #line 589 "parser.yy" 5772 5773 { (yyval.en) = new NullExprNode; } 5773 5774 break; … … 5776 5777 5777 5778 /* Line 1806 of yacc.c */ 5778 #line 59 5"parser.yy"5779 #line 597 "parser.yy" 5779 5780 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ) ); } 5780 5781 break; … … 5783 5784 5784 5785 /* Line 1806 of yacc.c */ 5785 #line 59 7"parser.yy"5786 #line 599 "parser.yy" 5786 5787 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (yyvsp[(3) - (5)].en) ); } 5787 5788 break; … … 5790 5791 5791 5792 /* Line 1806 of yacc.c */ 5792 #line 599"parser.yy"5793 #line 601 "parser.yy" 5793 5794 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(new NullExprNode)->set_link( (yyvsp[(4) - (6)].en) ) ); } 5794 5795 break; … … 5797 5798 5798 5799 /* Line 1806 of yacc.c */ 5799 #line 60 1"parser.yy"5800 #line 603 "parser.yy" 5800 5801 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_link( flattenCommas( (yyvsp[(5) - (7)].en) ) ) ); } 5801 5802 break; … … 5804 5805 5805 5806 /* Line 1806 of yacc.c */ 5806 #line 60 7"parser.yy"5807 #line 609 "parser.yy" 5807 5808 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); } 5808 5809 break; … … 5811 5812 5812 5813 /* Line 1806 of yacc.c */ 5813 #line 61 1"parser.yy"5814 #line 613 "parser.yy" 5814 5815 { (yyval.en) = new OperatorNode( OperatorNode::MulAssn ); } 5815 5816 break; … … 5818 5819 5819 5820 /* Line 1806 of yacc.c */ 5820 #line 61 2"parser.yy"5821 #line 614 "parser.yy" 5821 5822 { (yyval.en) = new OperatorNode( OperatorNode::DivAssn ); } 5822 5823 break; … … 5825 5826 5826 5827 /* Line 1806 of yacc.c */ 5827 #line 61 3"parser.yy"5828 #line 615 "parser.yy" 5828 5829 { (yyval.en) = new OperatorNode( OperatorNode::ModAssn ); } 5829 5830 break; … … 5832 5833 5833 5834 /* Line 1806 of yacc.c */ 5834 #line 61 4"parser.yy"5835 #line 616 "parser.yy" 5835 5836 { (yyval.en) = new OperatorNode( OperatorNode::PlusAssn ); } 5836 5837 break; … … 5839 5840 5840 5841 /* Line 1806 of yacc.c */ 5841 #line 61 5"parser.yy"5842 #line 617 "parser.yy" 5842 5843 { (yyval.en) = new OperatorNode( OperatorNode::MinusAssn ); } 5843 5844 break; … … 5846 5847 5847 5848 /* Line 1806 of yacc.c */ 5848 #line 61 6"parser.yy"5849 #line 618 "parser.yy" 5849 5850 { (yyval.en) = new OperatorNode( OperatorNode::LSAssn ); } 5850 5851 break; … … 5853 5854 5854 5855 /* Line 1806 of yacc.c */ 5855 #line 61 7"parser.yy"5856 #line 619 "parser.yy" 5856 5857 { (yyval.en) = new OperatorNode( OperatorNode::RSAssn ); } 5857 5858 break; … … 5860 5861 5861 5862 /* Line 1806 of yacc.c */ 5862 #line 6 18"parser.yy"5863 #line 620 "parser.yy" 5863 5864 { (yyval.en) = new OperatorNode( OperatorNode::AndAssn ); } 5864 5865 break; … … 5867 5868 5868 5869 /* Line 1806 of yacc.c */ 5869 #line 6 19"parser.yy"5870 #line 621 "parser.yy" 5870 5871 { (yyval.en) = new OperatorNode( OperatorNode::ERAssn ); } 5871 5872 break; … … 5874 5875 5875 5876 /* Line 1806 of yacc.c */ 5876 #line 62 0"parser.yy"5877 #line 622 "parser.yy" 5877 5878 { (yyval.en) = new OperatorNode( OperatorNode::OrAssn ); } 5878 5879 break; … … 5881 5882 5882 5883 /* Line 1806 of yacc.c */ 5883 #line 62 6"parser.yy"5884 #line 628 "parser.yy" 5884 5885 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Comma ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5885 5886 break; … … 5888 5889 5889 5890 /* Line 1806 of yacc.c */ 5890 #line 63 1"parser.yy"5891 #line 633 "parser.yy" 5891 5892 { (yyval.en) = 0; } 5892 5893 break; … … 5895 5896 5896 5897 /* Line 1806 of yacc.c */ 5897 #line 64 0"parser.yy"5898 #line 642 "parser.yy" 5898 5899 { (yyval.sn) = (yyvsp[(1) - (1)].sn); } 5899 5900 break; … … 5902 5903 5903 5904 /* Line 1806 of yacc.c */ 5904 #line 64 7"parser.yy"5905 #line 649 "parser.yy" 5905 5906 { 5906 5907 Token fn; fn.str = new std::string( "^?{}" ); // location undefined … … 5913 5914 5914 5915 /* Line 1806 of yacc.c */ 5915 #line 65 7"parser.yy"5916 #line 659 "parser.yy" 5916 5917 { 5917 5918 (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) ); … … 5922 5923 5923 5924 /* Line 1806 of yacc.c */ 5924 #line 66 4"parser.yy"5925 #line 666 "parser.yy" 5925 5926 { (yyval.sn) = new CompoundStmtNode( (StatementNode *)0 ); } 5926 5927 break; … … 5929 5930 5930 5931 /* Line 1806 of yacc.c */ 5931 #line 67 1"parser.yy"5932 #line 673 "parser.yy" 5932 5933 { (yyval.sn) = new CompoundStmtNode( (yyvsp[(5) - (7)].sn) ); } 5933 5934 break; … … 5936 5937 5937 5938 /* Line 1806 of yacc.c */ 5938 #line 67 7"parser.yy"5939 #line 679 "parser.yy" 5939 5940 { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } } 5940 5941 break; … … 5943 5944 5944 5945 /* Line 1806 of yacc.c */ 5945 #line 68 2"parser.yy"5946 #line 684 "parser.yy" 5946 5947 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5947 5948 break; … … 5950 5951 5951 5952 /* Line 1806 of yacc.c */ 5952 #line 68 4"parser.yy"5953 #line 686 "parser.yy" 5953 5954 { // mark all fields in list 5954 5955 for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_link() ) … … 5961 5962 5962 5963 /* Line 1806 of yacc.c */ 5963 #line 69 0"parser.yy"5964 #line 692 "parser.yy" 5964 5965 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5965 5966 break; … … 5968 5969 5969 5970 /* Line 1806 of yacc.c */ 5970 #line 69 7"parser.yy"5971 #line 699 "parser.yy" 5971 5972 { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } } 5972 5973 break; … … 5975 5976 5976 5977 /* Line 1806 of yacc.c */ 5977 #line 70 2"parser.yy"5978 #line 704 "parser.yy" 5978 5979 { (yyval.sn) = new StatementNode( StatementNode::Exp, (yyvsp[(1) - (2)].en), 0 ); } 5979 5980 break; … … 5982 5983 5983 5984 /* Line 1806 of yacc.c */ 5984 #line 7 08"parser.yy"5985 #line 710 "parser.yy" 5985 5986 { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); } 5986 5987 break; … … 5989 5990 5990 5991 /* Line 1806 of yacc.c */ 5991 #line 71 0"parser.yy"5992 #line 712 "parser.yy" 5992 5993 { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (7)].en), (StatementNode *)mkList((*(yyvsp[(5) - (7)].sn), *(yyvsp[(7) - (7)].sn) )) ); } 5993 5994 break; … … 5996 5997 5997 5998 /* Line 1806 of yacc.c */ 5998 #line 71 2"parser.yy"5999 #line 714 "parser.yy" 5999 6000 { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); } 6000 6001 break; … … 6003 6004 6004 6005 /* Line 1806 of yacc.c */ 6005 #line 71 4"parser.yy"6006 #line 716 "parser.yy" 6006 6007 { 6007 6008 StatementNode *sw = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); … … 6018 6019 6019 6020 /* Line 1806 of yacc.c */ 6020 #line 72 4"parser.yy"6021 #line 726 "parser.yy" 6021 6022 { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); } 6022 6023 break; … … 6025 6026 6026 6027 /* Line 1806 of yacc.c */ 6027 #line 72 6"parser.yy"6028 #line 728 "parser.yy" 6028 6029 { 6029 6030 StatementNode *sw = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); … … 6035 6036 6036 6037 /* Line 1806 of yacc.c */ 6037 #line 73 6"parser.yy"6038 #line 738 "parser.yy" 6038 6039 { (yyval.en) = (yyvsp[(1) - (1)].en); } 6039 6040 break; … … 6042 6043 6043 6044 /* Line 1806 of yacc.c */ 6044 #line 7 38"parser.yy"6045 #line 740 "parser.yy" 6045 6046 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 6046 6047 break; … … 6049 6050 6050 6051 /* Line 1806 of yacc.c */ 6051 #line 74 3"parser.yy"6052 #line 745 "parser.yy" 6052 6053 { (yyval.sn) = new StatementNode( StatementNode::Case, (yyvsp[(1) - (1)].en), 0 ); } 6053 6054 break; … … 6056 6057 6057 6058 /* Line 1806 of yacc.c */ 6058 #line 74 4"parser.yy"6059 #line 747 "parser.yy" 6059 6060 { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_link( new StatementNode( StatementNode::Case, (yyvsp[(3) - (3)].en), 0 ) ) ); } 6060 6061 break; … … 6063 6064 6064 6065 /* Line 1806 of yacc.c */ 6065 #line 7 48"parser.yy"6066 #line 751 "parser.yy" 6066 6067 { (yyval.sn) = (yyvsp[(2) - (3)].sn); } 6067 6068 break; … … 6070 6071 6071 6072 /* Line 1806 of yacc.c */ 6072 #line 7 49"parser.yy"6073 #line 752 "parser.yy" 6073 6074 { (yyval.sn) = new StatementNode( StatementNode::Default ); } 6074 6075 break; … … 6077 6078 6078 6079 /* Line 1806 of yacc.c */ 6079 #line 75 5"parser.yy"6080 #line 758 "parser.yy" 6080 6081 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) )); } 6081 6082 break; … … 6084 6085 6085 6086 /* Line 1806 of yacc.c */ 6086 #line 7 59"parser.yy"6087 #line 762 "parser.yy" 6087 6088 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(2) - (2)].sn) ) ); } 6088 6089 break; … … 6091 6092 6092 6093 /* Line 1806 of yacc.c */ 6093 #line 76 4"parser.yy"6094 #line 767 "parser.yy" 6094 6095 { (yyval.sn) = 0; } 6095 6096 break; … … 6098 6099 6099 6100 /* Line 1806 of yacc.c */ 6100 #line 77 0"parser.yy"6101 #line 773 "parser.yy" 6101 6102 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(2) - (2)].sn) ) ); } 6102 6103 break; … … 6105 6106 6106 6107 /* Line 1806 of yacc.c */ 6107 #line 77 2"parser.yy"6108 #line 775 "parser.yy" 6108 6109 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(3) - (3)].sn) ) ) ) ); } 6109 6110 break; … … 6112 6113 6113 6114 /* Line 1806 of yacc.c */ 6114 #line 7 77"parser.yy"6115 #line 780 "parser.yy" 6115 6116 { (yyval.sn) = 0; } 6116 6117 break; … … 6119 6120 6120 6121 /* Line 1806 of yacc.c */ 6121 #line 78 3"parser.yy"6122 #line 786 "parser.yy" 6122 6123 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); } 6123 6124 break; … … 6126 6127 6127 6128 /* Line 1806 of yacc.c */ 6128 #line 78 5"parser.yy"6129 #line 788 "parser.yy" 6129 6130 { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new CompoundStmtNode( (StatementNode *)mkList( (*(yyvsp[(2) - (3)].sn), *(yyvsp[(3) - (3)].sn) ) ) ) ); } 6130 6131 break; … … 6133 6134 6134 6135 /* Line 1806 of yacc.c */ 6135 #line 7 87"parser.yy"6136 #line 790 "parser.yy" 6136 6137 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); } 6137 6138 break; … … 6140 6141 6141 6142 /* Line 1806 of yacc.c */ 6142 #line 7 89"parser.yy"6143 #line 792 "parser.yy" 6143 6144 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_link( (yyvsp[(2) - (4)].sn)->append_last_case( new CompoundStmtNode( (StatementNode *)mkList( (*(yyvsp[(3) - (4)].sn), *(yyvsp[(4) - (4)].sn) ) ) ) ) ) ); } 6144 6145 break; … … 6147 6148 6148 6149 /* Line 1806 of yacc.c */ 6149 #line 79 4"parser.yy"6150 #line 797 "parser.yy" 6150 6151 { (yyval.sn) = new StatementNode( StatementNode::Break ); } 6151 6152 break; … … 6154 6155 6155 6156 /* Line 1806 of yacc.c */ 6156 #line 80 0"parser.yy"6157 #line 803 "parser.yy" 6157 6158 { (yyval.sn) = 0; } 6158 6159 break; … … 6161 6162 6162 6163 /* Line 1806 of yacc.c */ 6163 #line 80 2"parser.yy"6164 #line 805 "parser.yy" 6164 6165 { (yyval.sn) = 0; } 6165 6166 break; … … 6168 6169 6169 6170 /* Line 1806 of yacc.c */ 6170 #line 8 07"parser.yy"6171 #line 810 "parser.yy" 6171 6172 { (yyval.sn) = new StatementNode( StatementNode::While, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); } 6172 6173 break; … … 6175 6176 6176 6177 /* Line 1806 of yacc.c */ 6177 #line 8 09"parser.yy"6178 #line 812 "parser.yy" 6178 6179 { (yyval.sn) = new StatementNode( StatementNode::Do, (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ); } 6179 6180 break; … … 6182 6183 6183 6184 /* Line 1806 of yacc.c */ 6184 #line 81 1"parser.yy"6185 #line 814 "parser.yy" 6185 6186 { (yyval.sn) = new StatementNode( StatementNode::For, (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].sn) ); } 6186 6187 break; … … 6189 6190 6190 6191 /* Line 1806 of yacc.c */ 6191 #line 81 6"parser.yy"6192 #line 819 "parser.yy" 6192 6193 { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); } 6193 6194 break; … … 6196 6197 6197 6198 /* Line 1806 of yacc.c */ 6198 #line 8 18"parser.yy"6199 #line 821 "parser.yy" 6199 6200 { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); } 6200 6201 break; … … 6203 6204 6204 6205 /* Line 1806 of yacc.c */ 6205 #line 82 3"parser.yy"6206 #line 826 "parser.yy" 6206 6207 { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(2) - (3)].tok) ); } 6207 6208 break; … … 6210 6211 6211 6212 /* Line 1806 of yacc.c */ 6212 #line 8 27"parser.yy"6213 #line 830 "parser.yy" 6213 6214 { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(3) - (4)].en) ); } 6214 6215 break; … … 6217 6218 6218 6219 /* Line 1806 of yacc.c */ 6219 #line 83 0"parser.yy"6220 #line 833 "parser.yy" 6220 6221 { (yyval.sn) = new StatementNode( StatementNode::Continue ); } 6221 6222 break; … … 6224 6225 6225 6226 /* Line 1806 of yacc.c */ 6226 #line 83 4"parser.yy"6227 #line 837 "parser.yy" 6227 6228 { (yyval.sn) = new StatementNode( StatementNode::Continue, (yyvsp[(2) - (3)].tok) ); } 6228 6229 break; … … 6231 6232 6232 6233 /* Line 1806 of yacc.c */ 6233 #line 8 37"parser.yy"6234 #line 840 "parser.yy" 6234 6235 { (yyval.sn) = new StatementNode( StatementNode::Break ); } 6235 6236 break; … … 6238 6239 6239 6240 /* Line 1806 of yacc.c */ 6240 #line 84 1"parser.yy"6241 #line 844 "parser.yy" 6241 6242 { (yyval.sn) = new StatementNode( StatementNode::Break, (yyvsp[(2) - (3)].tok) ); } 6242 6243 break; … … 6245 6246 6246 6247 /* Line 1806 of yacc.c */ 6247 #line 84 3"parser.yy"6248 #line 846 "parser.yy" 6248 6249 { (yyval.sn) = new StatementNode( StatementNode::Return, (yyvsp[(2) - (3)].en), 0 ); } 6249 6250 break; … … 6252 6253 6253 6254 /* Line 1806 of yacc.c */ 6254 #line 84 5"parser.yy"6255 #line 848 "parser.yy" 6255 6256 { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); } 6256 6257 break; … … 6259 6260 6260 6261 /* Line 1806 of yacc.c */ 6261 #line 8 49"parser.yy"6262 #line 852 "parser.yy" 6262 6263 { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); } 6263 6264 break; … … 6266 6267 6267 6268 /* Line 1806 of yacc.c */ 6268 #line 85 1"parser.yy"6269 #line 854 "parser.yy" 6269 6270 { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (5)].en), 0 ); } 6270 6271 break; … … 6273 6274 6274 6275 /* Line 1806 of yacc.c */ 6275 #line 8 58"parser.yy"6276 #line 861 "parser.yy" 6276 6277 { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); } 6277 6278 break; … … 6280 6281 6281 6282 /* Line 1806 of yacc.c */ 6282 #line 86 0"parser.yy"6283 #line 863 "parser.yy" 6283 6284 { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); } 6284 6285 break; … … 6287 6288 6288 6289 /* Line 1806 of yacc.c */ 6289 #line 86 2"parser.yy"6290 #line 865 "parser.yy" 6290 6291 { 6291 6292 (yyvsp[(3) - (4)].pn)->set_link( (yyvsp[(4) - (4)].pn) ); … … 6297 6298 6298 6299 /* Line 1806 of yacc.c */ 6299 #line 87 3"parser.yy"6300 #line 876 "parser.yy" 6300 6301 { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); } 6301 6302 break; … … 6304 6305 6305 6306 /* Line 1806 of yacc.c */ 6306 #line 87 5"parser.yy"6307 #line 878 "parser.yy" 6307 6308 { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); } 6308 6309 break; … … 6311 6312 6312 6313 /* Line 1806 of yacc.c */ 6313 #line 8 77"parser.yy"6314 #line 880 "parser.yy" 6314 6315 { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); } 6315 6316 break; … … 6318 6319 6319 6320 /* Line 1806 of yacc.c */ 6320 #line 8 79"parser.yy"6321 #line 882 "parser.yy" 6321 6322 { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); } 6322 6323 break; … … 6325 6326 6326 6327 /* Line 1806 of yacc.c */ 6327 #line 88 4"parser.yy"6328 #line 887 "parser.yy" 6328 6329 { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); } 6329 6330 break; … … 6332 6333 6333 6334 /* Line 1806 of yacc.c */ 6334 #line 88 6"parser.yy"6335 #line 889 "parser.yy" 6335 6336 { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); } 6336 6337 break; … … 6339 6340 6340 6341 /* Line 1806 of yacc.c */ 6341 #line 8 88"parser.yy"6342 #line 891 "parser.yy" 6342 6343 { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); } 6343 6344 break; … … 6346 6347 6347 6348 /* Line 1806 of yacc.c */ 6348 #line 89 0"parser.yy"6349 #line 893 "parser.yy" 6349 6350 { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); } 6350 6351 break; … … 6353 6354 6354 6355 /* Line 1806 of yacc.c */ 6355 #line 89 5"parser.yy"6356 #line 898 "parser.yy" 6356 6357 { 6357 6358 (yyval.pn) = new StatementNode( StatementNode::Finally, 0, (yyvsp[(2) - (2)].sn) ); … … 6363 6364 6364 6365 /* Line 1806 of yacc.c */ 6365 #line 9 09"parser.yy"6366 #line 912 "parser.yy" 6366 6367 { 6367 6368 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6373 6374 6374 6375 /* Line 1806 of yacc.c */ 6375 #line 91 4"parser.yy"6376 #line 917 "parser.yy" 6376 6377 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 6377 6378 break; … … 6380 6381 6381 6382 /* Line 1806 of yacc.c */ 6382 #line 91 6"parser.yy"6383 #line 919 "parser.yy" 6383 6384 { 6384 6385 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6390 6391 6391 6392 /* Line 1806 of yacc.c */ 6392 #line 92 5"parser.yy"6393 #line 928 "parser.yy" 6393 6394 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ); } 6394 6395 break; … … 6397 6398 6398 6399 /* Line 1806 of yacc.c */ 6399 #line 9 27"parser.yy"6400 #line 930 "parser.yy" 6400 6401 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ); } 6401 6402 break; … … 6404 6405 6405 6406 /* Line 1806 of yacc.c */ 6406 #line 9 29"parser.yy"6407 #line 932 "parser.yy" 6407 6408 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ); } 6408 6409 break; … … 6411 6412 6412 6413 /* Line 1806 of yacc.c */ 6413 #line 93 1"parser.yy"6414 #line 934 "parser.yy" 6414 6415 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].constant) ); } 6415 6416 break; … … 6418 6419 6419 6420 /* Line 1806 of yacc.c */ 6420 #line 93 3"parser.yy"6421 #line 936 "parser.yy" 6421 6422 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].constant), (yyvsp[(12) - (14)].label) ); } 6422 6423 break; … … 6425 6426 6426 6427 /* Line 1806 of yacc.c */ 6427 #line 9 38"parser.yy"6428 #line 941 "parser.yy" 6428 6429 { (yyval.flag) = false; } 6429 6430 break; … … 6432 6433 6433 6434 /* Line 1806 of yacc.c */ 6434 #line 94 0"parser.yy"6435 #line 943 "parser.yy" 6435 6436 { (yyval.flag) = true; } 6436 6437 break; … … 6439 6440 6440 6441 /* Line 1806 of yacc.c */ 6441 #line 94 5"parser.yy"6442 #line 948 "parser.yy" 6442 6443 { (yyval.en) = 0; } 6443 6444 break; … … 6446 6447 6447 6448 /* Line 1806 of yacc.c */ 6448 #line 95 2"parser.yy"6449 #line 955 "parser.yy" 6449 6450 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); } 6450 6451 break; … … 6453 6454 6454 6455 /* Line 1806 of yacc.c */ 6455 #line 9 57"parser.yy"6456 #line 960 "parser.yy" 6456 6457 { (yyval.en) = new AsmExprNode( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ); } 6457 6458 break; … … 6460 6461 6461 6462 /* Line 1806 of yacc.c */ 6462 #line 9 59"parser.yy"6463 #line 962 "parser.yy" 6463 6464 { (yyval.en) = new AsmExprNode( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ); } 6464 6465 break; … … 6467 6468 6468 6469 /* Line 1806 of yacc.c */ 6469 #line 96 4"parser.yy"6470 #line 967 "parser.yy" 6470 6471 { (yyval.constant) = 0; } 6471 6472 break; … … 6474 6475 6475 6476 /* Line 1806 of yacc.c */ 6476 #line 96 6"parser.yy"6477 #line 969 "parser.yy" 6477 6478 { (yyval.constant) = (yyvsp[(1) - (1)].constant); } 6478 6479 break; … … 6481 6482 6482 6483 /* Line 1806 of yacc.c */ 6483 #line 9 68"parser.yy"6484 #line 971 "parser.yy" 6484 6485 { (yyval.constant) = (ConstantNode *)(yyvsp[(1) - (3)].constant)->set_link( (yyvsp[(3) - (3)].constant) ); } 6485 6486 break; … … 6488 6489 6489 6490 /* Line 1806 of yacc.c */ 6490 #line 97 3"parser.yy"6491 #line 976 "parser.yy" 6491 6492 { (yyval.label) = new LabelNode(); (yyval.label)->append_label( (yyvsp[(1) - (1)].tok) ); } 6492 6493 break; … … 6495 6496 6496 6497 /* Line 1806 of yacc.c */ 6497 #line 97 5"parser.yy"6498 #line 978 "parser.yy" 6498 6499 { (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->append_label( (yyvsp[(3) - (3)].tok) ); } 6499 6500 break; … … 6502 6503 6503 6504 /* Line 1806 of yacc.c */ 6504 #line 98 2"parser.yy"6505 #line 985 "parser.yy" 6505 6506 { (yyval.decl) = 0; } 6506 6507 break; … … 6509 6510 6510 6511 /* Line 1806 of yacc.c */ 6511 #line 9 89"parser.yy"6512 #line 992 "parser.yy" 6512 6513 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6513 6514 break; … … 6516 6517 6517 6518 /* Line 1806 of yacc.c */ 6518 #line 99 4"parser.yy"6519 #line 997 "parser.yy" 6519 6520 { (yyval.decl) = 0; } 6520 6521 break; … … 6523 6524 6524 6525 /* Line 1806 of yacc.c */ 6525 #line 100 1"parser.yy"6526 #line 1004 "parser.yy" 6526 6527 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6527 6528 break; … … 6530 6531 6531 6532 /* Line 1806 of yacc.c */ 6532 #line 101 5"parser.yy"6533 #line 1018 "parser.yy" 6533 6534 {} 6534 6535 break; … … 6537 6538 6538 6539 /* Line 1806 of yacc.c */ 6539 #line 101 6"parser.yy"6540 #line 1019 "parser.yy" 6540 6541 {} 6541 6542 break; … … 6544 6545 6545 6546 /* Line 1806 of yacc.c */ 6546 #line 104 5"parser.yy"6547 #line 1048 "parser.yy" 6547 6548 { 6548 6549 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6554 6555 6555 6556 /* Line 1806 of yacc.c */ 6556 #line 105 2"parser.yy"6557 #line 1055 "parser.yy" 6557 6558 { 6558 6559 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6564 6565 6565 6566 /* Line 1806 of yacc.c */ 6566 #line 10 57"parser.yy"6567 #line 1060 "parser.yy" 6567 6568 { 6568 6569 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID ); … … 6574 6575 6575 6576 /* Line 1806 of yacc.c */ 6576 #line 10 67"parser.yy"6577 #line 1070 "parser.yy" 6577 6578 { 6578 6579 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); … … 6584 6585 6585 6586 /* Line 1806 of yacc.c */ 6586 #line 107 2"parser.yy"6587 #line 1075 "parser.yy" 6587 6588 { 6588 6589 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); … … 6594 6595 6595 6596 /* Line 1806 of yacc.c */ 6596 #line 10 77"parser.yy"6597 #line 1080 "parser.yy" 6597 6598 { 6598 6599 typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) ); … … 6604 6605 6605 6606 /* Line 1806 of yacc.c */ 6606 #line 108 5"parser.yy"6607 #line 1088 "parser.yy" 6607 6608 { 6608 6609 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6614 6615 6615 6616 /* Line 1806 of yacc.c */ 6616 #line 109 0"parser.yy"6617 #line 1093 "parser.yy" 6617 6618 { 6618 6619 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6624 6625 6625 6626 /* Line 1806 of yacc.c */ 6626 #line 109 5"parser.yy"6627 #line 1098 "parser.yy" 6627 6628 { 6628 6629 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6634 6635 6635 6636 /* Line 1806 of yacc.c */ 6636 #line 110 0"parser.yy"6637 #line 1103 "parser.yy" 6637 6638 { 6638 6639 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6644 6645 6645 6646 /* Line 1806 of yacc.c */ 6646 #line 110 5"parser.yy"6647 #line 1108 "parser.yy" 6647 6648 { 6648 6649 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); … … 6654 6655 6655 6656 /* Line 1806 of yacc.c */ 6656 #line 111 3"parser.yy"6657 #line 1116 "parser.yy" 6657 6658 { 6658 6659 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true ); … … 6663 6664 6664 6665 /* Line 1806 of yacc.c */ 6665 #line 113 6"parser.yy"6666 #line 1139 "parser.yy" 6666 6667 { 6667 6668 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); … … 6672 6673 6673 6674 /* Line 1806 of yacc.c */ 6674 #line 114 0"parser.yy"6675 #line 1143 "parser.yy" 6675 6676 { 6676 6677 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); … … 6681 6682 6682 6683 /* Line 1806 of yacc.c */ 6683 #line 11 47"parser.yy"6684 #line 1150 "parser.yy" 6684 6685 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 6685 6686 break; … … 6688 6689 6689 6690 /* Line 1806 of yacc.c */ 6690 #line 115 1"parser.yy"6691 #line 1154 "parser.yy" 6691 6692 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); } 6692 6693 break; … … 6695 6696 6696 6697 /* Line 1806 of yacc.c */ 6697 #line 115 6"parser.yy"6698 #line 1159 "parser.yy" 6698 6699 { 6699 6700 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6705 6706 6706 6707 /* Line 1806 of yacc.c */ 6707 #line 116 1"parser.yy"6708 #line 1164 "parser.yy" 6708 6709 { 6709 6710 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6715 6716 6716 6717 /* Line 1806 of yacc.c */ 6717 #line 116 6"parser.yy"6718 #line 1169 "parser.yy" 6718 6719 { 6719 6720 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD ); … … 6725 6726 6726 6727 /* Line 1806 of yacc.c */ 6727 #line 11 77"parser.yy"6728 #line 1180 "parser.yy" 6728 6729 { 6729 6730 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6735 6736 6736 6737 /* Line 1806 of yacc.c */ 6737 #line 118 2"parser.yy"6738 #line 1185 "parser.yy" 6738 6739 { 6739 6740 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6745 6746 6746 6747 /* Line 1806 of yacc.c */ 6747 #line 11 87"parser.yy"6748 #line 1190 "parser.yy" 6748 6749 { 6749 6750 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6755 6756 6756 6757 /* Line 1806 of yacc.c */ 6757 #line 119 2"parser.yy"6758 #line 1195 "parser.yy" 6758 6759 { 6759 6760 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6765 6766 6766 6767 /* Line 1806 of yacc.c */ 6767 #line 1 197"parser.yy"6768 #line 1200 "parser.yy" 6768 6769 { 6769 6770 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6775 6776 6776 6777 /* Line 1806 of yacc.c */ 6777 #line 120 6"parser.yy"6778 #line 1209 "parser.yy" 6778 6779 { 6779 6780 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD ); … … 6785 6786 6786 6787 /* Line 1806 of yacc.c */ 6787 #line 121 1"parser.yy"6788 #line 1214 "parser.yy" 6788 6789 { 6789 6790 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD ); … … 6795 6796 6796 6797 /* Line 1806 of yacc.c */ 6797 #line 12 28"parser.yy"6798 #line 1231 "parser.yy" 6798 6799 { 6799 6800 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6805 6806 6806 6807 /* Line 1806 of yacc.c */ 6807 #line 123 3"parser.yy"6808 #line 1236 "parser.yy" 6808 6809 { 6809 6810 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6815 6816 6816 6817 /* Line 1806 of yacc.c */ 6817 #line 125 5"parser.yy"6818 #line 1258 "parser.yy" 6818 6819 { (yyval.decl) = 0; } 6819 6820 break; … … 6822 6823 6823 6824 /* Line 1806 of yacc.c */ 6824 #line 12 67"parser.yy"6825 #line 1270 "parser.yy" 6825 6826 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6826 6827 break; … … 6829 6830 6830 6831 /* Line 1806 of yacc.c */ 6831 #line 12 78"parser.yy"6832 #line 1281 "parser.yy" 6832 6833 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); } 6833 6834 break; … … 6836 6837 6837 6838 /* Line 1806 of yacc.c */ 6838 #line 128 0"parser.yy"6839 #line 1283 "parser.yy" 6839 6840 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); } 6840 6841 break; … … 6843 6844 6844 6845 /* Line 1806 of yacc.c */ 6845 #line 128 2"parser.yy"6846 #line 1285 "parser.yy" 6846 6847 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); } 6847 6848 break; … … 6850 6851 6851 6852 /* Line 1806 of yacc.c */ 6852 #line 128 4"parser.yy"6853 #line 1287 "parser.yy" 6853 6854 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); } 6854 6855 break; … … 6857 6858 6858 6859 /* Line 1806 of yacc.c */ 6859 #line 128 6"parser.yy"6860 #line 1289 "parser.yy" 6860 6861 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); } 6861 6862 break; … … 6864 6865 6865 6866 /* Line 1806 of yacc.c */ 6866 #line 12 88"parser.yy"6867 #line 1291 "parser.yy" 6867 6868 { 6868 6869 typedefTable.enterScope(); … … 6873 6874 6874 6875 /* Line 1806 of yacc.c */ 6875 #line 129 2"parser.yy"6876 #line 1295 "parser.yy" 6876 6877 { 6877 6878 typedefTable.leaveScope(); … … 6883 6884 6884 6885 /* Line 1806 of yacc.c */ 6885 #line 130 1"parser.yy"6886 #line 1304 "parser.yy" 6886 6887 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6887 6888 break; … … 6890 6891 6891 6892 /* Line 1806 of yacc.c */ 6892 #line 130 3"parser.yy"6893 #line 1306 "parser.yy" 6893 6894 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6894 6895 break; … … 6897 6898 6898 6899 /* Line 1806 of yacc.c */ 6899 #line 131 4"parser.yy"6900 #line 1317 "parser.yy" 6900 6901 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6901 6902 break; … … 6904 6905 6905 6906 /* Line 1806 of yacc.c */ 6906 #line 132 3"parser.yy"6907 #line 1326 "parser.yy" 6907 6908 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); } 6908 6909 break; … … 6911 6912 6912 6913 /* Line 1806 of yacc.c */ 6913 #line 132 5"parser.yy"6914 #line 1328 "parser.yy" 6914 6915 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); } 6915 6916 break; … … 6918 6919 6919 6920 /* Line 1806 of yacc.c */ 6920 #line 13 27"parser.yy"6921 #line 1330 "parser.yy" 6921 6922 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); } 6922 6923 break; … … 6925 6926 6926 6927 /* Line 1806 of yacc.c */ 6927 #line 13 29"parser.yy"6928 #line 1332 "parser.yy" 6928 6929 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); } 6929 6930 break; … … 6932 6933 6933 6934 /* Line 1806 of yacc.c */ 6934 #line 133 1"parser.yy"6935 #line 1334 "parser.yy" 6935 6936 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); } 6936 6937 break; … … 6939 6940 6940 6941 /* Line 1806 of yacc.c */ 6941 #line 133 3"parser.yy"6942 #line 1336 "parser.yy" 6942 6943 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); } 6943 6944 break; … … 6946 6947 6947 6948 /* Line 1806 of yacc.c */ 6948 #line 133 5"parser.yy"6949 #line 1338 "parser.yy" 6949 6950 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); } 6950 6951 break; … … 6953 6954 6954 6955 /* Line 1806 of yacc.c */ 6955 #line 13 37"parser.yy"6956 #line 1340 "parser.yy" 6956 6957 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); } 6957 6958 break; … … 6960 6961 6961 6962 /* Line 1806 of yacc.c */ 6962 #line 134 2"parser.yy"6963 #line 1345 "parser.yy" 6963 6964 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); } 6964 6965 break; … … 6967 6968 6968 6969 /* Line 1806 of yacc.c */ 6969 #line 134 4"parser.yy"6970 #line 1347 "parser.yy" 6970 6971 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); } 6971 6972 break; … … 6974 6975 6975 6976 /* Line 1806 of yacc.c */ 6976 #line 134 6"parser.yy"6977 #line 1349 "parser.yy" 6977 6978 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); } 6978 6979 break; … … 6981 6982 6982 6983 /* Line 1806 of yacc.c */ 6983 #line 13 48"parser.yy"6984 #line 1351 "parser.yy" 6984 6985 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); } 6985 6986 break; … … 6988 6989 6989 6990 /* Line 1806 of yacc.c */ 6990 #line 135 0"parser.yy"6991 #line 1353 "parser.yy" 6991 6992 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); } 6992 6993 break; … … 6995 6996 6996 6997 /* Line 1806 of yacc.c */ 6997 #line 135 2"parser.yy"6998 #line 1355 "parser.yy" 6998 6999 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); } 6999 7000 break; … … 7002 7003 7003 7004 /* Line 1806 of yacc.c */ 7004 #line 135 4"parser.yy"7005 #line 1357 "parser.yy" 7005 7006 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); } 7006 7007 break; … … 7009 7010 7010 7011 /* Line 1806 of yacc.c */ 7011 #line 135 6"parser.yy"7012 #line 1359 "parser.yy" 7012 7013 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); } 7013 7014 break; … … 7016 7017 7017 7018 /* Line 1806 of yacc.c */ 7018 #line 13 58"parser.yy"7019 #line 1361 "parser.yy" 7019 7020 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); } 7020 7021 break; … … 7023 7024 7024 7025 /* Line 1806 of yacc.c */ 7025 #line 136 0"parser.yy"7026 #line 1363 "parser.yy" 7026 7027 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); } 7027 7028 break; … … 7030 7031 7031 7032 /* Line 1806 of yacc.c */ 7032 #line 136 2"parser.yy"7033 #line 1365 "parser.yy" 7033 7034 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); } 7034 7035 break; … … 7037 7038 7038 7039 /* Line 1806 of yacc.c */ 7039 #line 136 4"parser.yy"7040 #line 1367 "parser.yy" 7040 7041 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); } 7041 7042 break; … … 7044 7045 7045 7046 /* Line 1806 of yacc.c */ 7046 #line 136 6"parser.yy"7047 #line 1369 "parser.yy" 7047 7048 { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); } 7048 7049 break; … … 7051 7052 7052 7053 /* Line 1806 of yacc.c */ 7053 #line 137 3"parser.yy"7054 #line 1376 "parser.yy" 7054 7055 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7055 7056 break; … … 7058 7059 7059 7060 /* Line 1806 of yacc.c */ 7060 #line 137 5"parser.yy"7061 #line 1378 "parser.yy" 7061 7062 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7062 7063 break; … … 7065 7066 7066 7067 /* Line 1806 of yacc.c */ 7067 #line 13 77"parser.yy"7068 #line 1380 "parser.yy" 7068 7069 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 7069 7070 break; … … 7072 7073 7073 7074 /* Line 1806 of yacc.c */ 7074 #line 13 79"parser.yy"7075 #line 1382 "parser.yy" 7075 7076 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); } 7076 7077 break; … … 7079 7080 7080 7081 /* Line 1806 of yacc.c */ 7081 #line 138 5"parser.yy"7082 #line 1388 "parser.yy" 7082 7083 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 7083 7084 break; … … 7086 7087 7087 7088 /* Line 1806 of yacc.c */ 7088 #line 139 2"parser.yy"7089 #line 1395 "parser.yy" 7089 7090 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7090 7091 break; … … 7093 7094 7094 7095 /* Line 1806 of yacc.c */ 7095 #line 139 4"parser.yy"7096 #line 1397 "parser.yy" 7096 7097 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7097 7098 break; … … 7100 7101 7101 7102 /* Line 1806 of yacc.c */ 7102 #line 139 6"parser.yy"7103 #line 1399 "parser.yy" 7103 7104 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); } 7104 7105 break; … … 7107 7108 7108 7109 /* Line 1806 of yacc.c */ 7109 #line 140 1"parser.yy"7110 #line 1404 "parser.yy" 7110 7111 { (yyval.decl) = (yyvsp[(3) - (4)].decl); } 7111 7112 break; … … 7114 7115 7115 7116 /* Line 1806 of yacc.c */ 7116 #line 140 3"parser.yy"7117 #line 1406 "parser.yy" 7117 7118 { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); } 7118 7119 break; … … 7121 7122 7122 7123 /* Line 1806 of yacc.c */ 7123 #line 140 5"parser.yy"7124 #line 1408 "parser.yy" 7124 7125 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); } 7125 7126 break; … … 7128 7129 7129 7130 /* Line 1806 of yacc.c */ 7130 #line 14 07"parser.yy"7131 #line 1410 "parser.yy" 7131 7132 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 7132 7133 break; … … 7135 7136 7136 7137 /* Line 1806 of yacc.c */ 7137 #line 141 3"parser.yy"7138 #line 1416 "parser.yy" 7138 7139 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7139 7140 break; … … 7142 7143 7143 7144 /* Line 1806 of yacc.c */ 7144 #line 141 5"parser.yy"7145 #line 1418 "parser.yy" 7145 7146 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7146 7147 break; … … 7149 7150 7150 7151 /* Line 1806 of yacc.c */ 7151 #line 14 17"parser.yy"7152 #line 1420 "parser.yy" 7152 7153 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 7153 7154 break; … … 7156 7157 7157 7158 /* Line 1806 of yacc.c */ 7158 #line 142 3"parser.yy"7159 #line 1426 "parser.yy" 7159 7160 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7160 7161 break; … … 7163 7164 7164 7165 /* Line 1806 of yacc.c */ 7165 #line 142 5"parser.yy"7166 #line 1428 "parser.yy" 7166 7167 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7167 7168 break; … … 7170 7171 7171 7172 /* Line 1806 of yacc.c */ 7172 #line 143 1"parser.yy"7173 #line 1434 "parser.yy" 7173 7174 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7174 7175 break; … … 7177 7178 7178 7179 /* Line 1806 of yacc.c */ 7179 #line 143 3"parser.yy"7180 #line 1436 "parser.yy" 7180 7181 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7181 7182 break; … … 7184 7185 7185 7186 /* Line 1806 of yacc.c */ 7186 #line 143 5"parser.yy"7187 #line 1438 "parser.yy" 7187 7188 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 7188 7189 break; … … 7191 7192 7192 7193 /* Line 1806 of yacc.c */ 7193 #line 144 0"parser.yy"7194 #line 1443 "parser.yy" 7194 7195 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); } 7195 7196 break; … … 7198 7199 7199 7200 /* Line 1806 of yacc.c */ 7200 #line 144 2"parser.yy"7201 #line 1445 "parser.yy" 7201 7202 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7202 7203 break; … … 7205 7206 7206 7207 /* Line 1806 of yacc.c */ 7207 #line 144 4"parser.yy"7208 #line 1447 "parser.yy" 7208 7209 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7209 7210 break; … … 7212 7213 7213 7214 /* Line 1806 of yacc.c */ 7214 #line 145 4"parser.yy"7215 #line 1457 "parser.yy" 7215 7216 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl), true ); } 7216 7217 break; … … 7219 7220 7220 7221 /* Line 1806 of yacc.c */ 7221 #line 145 6"parser.yy"7222 #line 1459 "parser.yy" 7222 7223 { 7223 7224 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); … … 7229 7230 7230 7231 /* Line 1806 of yacc.c */ 7231 #line 146 1"parser.yy"7232 #line 1464 "parser.yy" 7232 7233 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 7233 7234 break; … … 7236 7237 7237 7238 /* Line 1806 of yacc.c */ 7238 #line 146 3"parser.yy"7239 #line 1466 "parser.yy" 7239 7240 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), 0, (yyvsp[(5) - (6)].decl), true ); } 7240 7241 break; … … 7243 7244 7244 7245 /* Line 1806 of yacc.c */ 7245 #line 146 5"parser.yy"7246 #line 1468 "parser.yy" 7246 7247 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); } 7247 7248 break; … … 7250 7251 7251 7252 /* Line 1806 of yacc.c */ 7252 #line 14 67"parser.yy"7253 #line 1470 "parser.yy" 7253 7254 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 7254 7255 break; … … 7257 7258 7258 7259 /* Line 1806 of yacc.c */ 7259 #line 147 2"parser.yy"7260 #line 1475 "parser.yy" 7260 7261 { (yyval.aggKey) = DeclarationNode::Struct; } 7261 7262 break; … … 7264 7265 7265 7266 /* Line 1806 of yacc.c */ 7266 #line 147 4"parser.yy"7267 #line 1477 "parser.yy" 7267 7268 { (yyval.aggKey) = DeclarationNode::Union; } 7268 7269 break; … … 7271 7272 7272 7273 /* Line 1806 of yacc.c */ 7273 #line 14 79"parser.yy"7274 #line 1482 "parser.yy" 7274 7275 { (yyval.decl) = 0; } 7275 7276 break; … … 7278 7279 7279 7280 /* Line 1806 of yacc.c */ 7280 #line 148 1"parser.yy"7281 #line 1484 "parser.yy" 7281 7282 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 7282 7283 break; … … 7285 7286 7286 7287 /* Line 1806 of yacc.c */ 7287 #line 14 87"parser.yy"7288 #line 1490 "parser.yy" 7288 7289 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); } 7289 7290 break; … … 7292 7293 7293 7294 /* Line 1806 of yacc.c */ 7294 #line 149 0"parser.yy"7295 #line 1493 "parser.yy" 7295 7296 { // mark all fields in list 7296 7297 for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_link() ) … … 7303 7304 7304 7305 /* Line 1806 of yacc.c */ 7305 #line 150 0"parser.yy"7306 #line 1503 "parser.yy" 7306 7307 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); } 7307 7308 break; … … 7310 7311 7311 7312 /* Line 1806 of yacc.c */ 7312 #line 150 2"parser.yy"7313 #line 1505 "parser.yy" 7313 7314 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); } 7314 7315 break; … … 7317 7318 7318 7319 /* Line 1806 of yacc.c */ 7319 #line 150 4"parser.yy"7320 #line 1507 "parser.yy" 7320 7321 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); } 7321 7322 break; … … 7324 7325 7325 7326 /* Line 1806 of yacc.c */ 7326 #line 15 09"parser.yy"7327 #line 1512 "parser.yy" 7327 7328 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7328 7329 break; … … 7331 7332 7332 7333 /* Line 1806 of yacc.c */ 7333 #line 151 1"parser.yy"7334 #line 1514 "parser.yy" 7334 7335 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); } 7335 7336 break; … … 7338 7339 7339 7340 /* Line 1806 of yacc.c */ 7340 #line 151 6"parser.yy"7341 #line 1519 "parser.yy" 7341 7342 { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ } 7342 7343 break; … … 7345 7346 7346 7347 /* Line 1806 of yacc.c */ 7347 #line 15 18"parser.yy"7348 #line 1521 "parser.yy" 7348 7349 { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); } 7349 7350 break; 7350 7351 7351 7352 case 388: 7352 7353 /* Line 1806 of yacc.c */7354 #line 1521 "parser.yy"7355 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }7356 break;7357 7358 case 389:7359 7353 7360 7354 /* Line 1806 of yacc.c */ … … 7363 7357 break; 7364 7358 7359 case 389: 7360 7361 /* Line 1806 of yacc.c */ 7362 #line 1527 "parser.yy" 7363 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 7364 break; 7365 7365 7366 case 391: 7366 7367 7367 7368 /* Line 1806 of yacc.c */ 7368 #line 153 0"parser.yy"7369 #line 1533 "parser.yy" 7369 7370 { (yyval.en) = 0; } 7370 7371 break; … … 7373 7374 7374 7375 /* Line 1806 of yacc.c */ 7375 #line 153 2"parser.yy"7376 #line 1535 "parser.yy" 7376 7377 { (yyval.en) = (yyvsp[(1) - (1)].en); } 7377 7378 break; … … 7380 7381 7381 7382 /* Line 1806 of yacc.c */ 7382 #line 15 37"parser.yy"7383 #line 1540 "parser.yy" 7383 7384 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7384 7385 break; … … 7387 7388 7388 7389 /* Line 1806 of yacc.c */ 7389 #line 154 6"parser.yy"7390 #line 1549 "parser.yy" 7390 7391 { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); } 7391 7392 break; … … 7394 7395 7395 7396 /* Line 1806 of yacc.c */ 7396 #line 15 48"parser.yy"7397 #line 1551 "parser.yy" 7397 7398 { 7398 7399 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); … … 7404 7405 7405 7406 /* Line 1806 of yacc.c */ 7406 #line 155 3"parser.yy"7407 #line 1556 "parser.yy" 7407 7408 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 7408 7409 break; … … 7411 7412 7412 7413 /* Line 1806 of yacc.c */ 7413 #line 155 5"parser.yy"7414 #line 1558 "parser.yy" 7414 7415 { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); } 7415 7416 break; … … 7418 7419 7419 7420 /* Line 1806 of yacc.c */ 7420 #line 156 0"parser.yy"7421 #line 1563 "parser.yy" 7421 7422 { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); } 7422 7423 break; … … 7425 7426 7426 7427 /* Line 1806 of yacc.c */ 7427 #line 156 2"parser.yy"7428 #line 1565 "parser.yy" 7428 7429 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); } 7429 7430 break; … … 7432 7433 7433 7434 /* Line 1806 of yacc.c */ 7434 #line 15 67"parser.yy"7435 #line 1570 "parser.yy" 7435 7436 { (yyval.en) = 0; } 7436 7437 break; … … 7439 7440 7440 7441 /* Line 1806 of yacc.c */ 7441 #line 15 69"parser.yy"7442 #line 1572 "parser.yy" 7442 7443 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7443 7444 break; … … 7446 7447 7447 7448 /* Line 1806 of yacc.c */ 7448 #line 157 6"parser.yy"7449 #line 1579 "parser.yy" 7449 7450 { (yyval.decl) = 0; } 7450 7451 break; … … 7453 7454 7454 7455 /* Line 1806 of yacc.c */ 7455 #line 158 4"parser.yy"7456 #line 1587 "parser.yy" 7456 7457 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7457 7458 break; … … 7460 7461 7461 7462 /* Line 1806 of yacc.c */ 7462 #line 158 6"parser.yy"7463 #line 1589 "parser.yy" 7463 7464 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7464 7465 break; … … 7467 7468 7468 7469 /* Line 1806 of yacc.c */ 7469 #line 15 88"parser.yy"7470 #line 1591 "parser.yy" 7470 7471 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7471 7472 break; … … 7474 7475 7475 7476 /* Line 1806 of yacc.c */ 7476 #line 159 6"parser.yy"7477 #line 1599 "parser.yy" 7477 7478 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7478 7479 break; … … 7481 7482 7482 7483 /* Line 1806 of yacc.c */ 7483 #line 1 598"parser.yy"7484 #line 1601 "parser.yy" 7484 7485 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7485 7486 break; … … 7488 7489 7489 7490 /* Line 1806 of yacc.c */ 7490 #line 160 0"parser.yy"7491 #line 1603 "parser.yy" 7491 7492 { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); } 7492 7493 break; … … 7495 7496 7496 7497 /* Line 1806 of yacc.c */ 7497 #line 160 6"parser.yy"7498 #line 1609 "parser.yy" 7498 7499 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7499 7500 break; … … 7502 7503 7503 7504 /* Line 1806 of yacc.c */ 7504 #line 161 1"parser.yy"7505 #line 1614 "parser.yy" 7505 7506 { (yyval.decl) = 0; } 7506 7507 break; … … 7509 7510 7510 7511 /* Line 1806 of yacc.c */ 7511 #line 16 18"parser.yy"7512 #line 1621 "parser.yy" 7512 7513 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7513 7514 break; … … 7516 7517 7517 7518 /* Line 1806 of yacc.c */ 7518 #line 162 5"parser.yy"7519 #line 1628 "parser.yy" 7519 7520 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7520 7521 break; … … 7523 7524 7524 7525 /* Line 1806 of yacc.c */ 7525 #line 16 27"parser.yy"7526 #line 1630 "parser.yy" 7526 7527 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7527 7528 break; 7528 7529 7529 7530 case 425: 7530 7531 /* Line 1806 of yacc.c */7532 #line 1636 "parser.yy"7533 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }7534 break;7535 7536 case 426:7537 7531 7538 7532 /* Line 1806 of yacc.c */ … … 7541 7535 break; 7542 7536 7537 case 426: 7538 7539 /* Line 1806 of yacc.c */ 7540 #line 1642 "parser.yy" 7541 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 7542 break; 7543 7543 7544 case 427: 7544 7545 7545 7546 /* Line 1806 of yacc.c */ 7546 #line 164 1"parser.yy"7547 #line 1644 "parser.yy" 7547 7548 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); } 7548 7549 break; … … 7551 7552 7552 7553 /* Line 1806 of yacc.c */ 7553 #line 165 1"parser.yy"7554 #line 1654 "parser.yy" 7554 7555 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7555 7556 break; … … 7558 7559 7559 7560 /* Line 1806 of yacc.c */ 7560 #line 16 57"parser.yy"7561 #line 1660 "parser.yy" 7561 7562 { 7562 7563 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7568 7569 7569 7570 /* Line 1806 of yacc.c */ 7570 #line 166 2"parser.yy"7571 #line 1665 "parser.yy" 7571 7572 { 7572 7573 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7578 7579 7579 7580 /* Line 1806 of yacc.c */ 7580 #line 167 1"parser.yy"7581 #line 1674 "parser.yy" 7581 7582 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7582 7583 break; … … 7585 7586 7586 7587 /* Line 1806 of yacc.c */ 7587 #line 168 0"parser.yy"7588 #line 1683 "parser.yy" 7588 7589 { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); } 7589 7590 break; … … 7592 7593 7593 7594 /* Line 1806 of yacc.c */ 7594 #line 168 2"parser.yy"7595 #line 1685 "parser.yy" 7595 7596 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); } 7596 7597 break; … … 7599 7600 7600 7601 /* Line 1806 of yacc.c */ 7601 #line 17 07"parser.yy"7602 #line 1710 "parser.yy" 7602 7603 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7603 7604 break; … … 7606 7607 7607 7608 /* Line 1806 of yacc.c */ 7608 #line 171 5"parser.yy"7609 #line 1718 "parser.yy" 7609 7610 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7610 7611 break; … … 7613 7614 7614 7615 /* Line 1806 of yacc.c */ 7615 #line 172 0"parser.yy"7616 #line 1723 "parser.yy" 7616 7617 { (yyval.in) = 0; } 7617 7618 break; … … 7620 7621 7621 7622 /* Line 1806 of yacc.c */ 7622 #line 172 2"parser.yy"7623 #line 1725 "parser.yy" 7623 7624 { (yyval.in) = (yyvsp[(2) - (2)].in); } 7624 7625 break; … … 7627 7628 7628 7629 /* Line 1806 of yacc.c */ 7629 #line 172 4"parser.yy"7630 #line 1727 "parser.yy" 7630 7631 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); } 7631 7632 break; … … 7634 7635 7635 7636 /* Line 1806 of yacc.c */ 7636 #line 17 28"parser.yy"7637 #line 1731 "parser.yy" 7637 7638 { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); } 7638 7639 break; … … 7641 7642 7642 7643 /* Line 1806 of yacc.c */ 7643 #line 17 29"parser.yy"7644 #line 1732 "parser.yy" 7644 7645 { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); } 7645 7646 break; … … 7648 7649 7649 7650 /* Line 1806 of yacc.c */ 7650 #line 173 4"parser.yy"7651 #line 1737 "parser.yy" 7651 7652 { (yyval.in) = 0; } 7652 7653 break; … … 7655 7656 7656 7657 /* Line 1806 of yacc.c */ 7657 #line 173 6"parser.yy"7658 #line 1739 "parser.yy" 7658 7659 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); } 7659 7660 break; … … 7662 7663 7663 7664 /* Line 1806 of yacc.c */ 7664 #line 17 37"parser.yy"7665 #line 1740 "parser.yy" 7665 7666 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link( (yyvsp[(3) - (3)].in) ) ); } 7666 7667 break; … … 7669 7670 7670 7671 /* Line 1806 of yacc.c */ 7671 #line 17 39"parser.yy"7672 #line 1742 "parser.yy" 7672 7673 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_link( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); } 7673 7674 break; … … 7676 7677 7677 7678 /* Line 1806 of yacc.c */ 7678 #line 175 5"parser.yy"7679 #line 1758 "parser.yy" 7679 7680 { (yyval.en) = new VarRefNode( (yyvsp[(1) - (2)].tok) ); } 7680 7681 break; … … 7683 7684 7684 7685 /* Line 1806 of yacc.c */ 7685 #line 176 1"parser.yy"7686 #line 1764 "parser.yy" 7686 7687 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) )); } 7687 7688 break; … … 7690 7691 7691 7692 /* Line 1806 of yacc.c */ 7692 #line 17 69"parser.yy"7693 #line 1772 "parser.yy" 7693 7694 { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(1) - (1)].tok) ) ); } 7694 7695 break; … … 7697 7698 7698 7699 /* Line 1806 of yacc.c */ 7699 #line 177 1"parser.yy"7700 #line 1774 "parser.yy" 7700 7701 { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(2) - (2)].tok) ) ); } 7701 7702 break; … … 7704 7705 7705 7706 /* Line 1806 of yacc.c */ 7706 #line 177 4"parser.yy"7707 #line 1777 "parser.yy" 7707 7708 { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); } 7708 7709 break; … … 7711 7712 7712 7713 /* Line 1806 of yacc.c */ 7713 #line 177 6"parser.yy"7714 #line 1779 "parser.yy" 7714 7715 { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); } 7715 7716 break; … … 7718 7719 7719 7720 /* Line 1806 of yacc.c */ 7720 #line 17 78"parser.yy"7721 #line 1781 "parser.yy" 7721 7722 { (yyval.en) = new DesignatorNode( new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ), true ); } 7722 7723 break; … … 7725 7726 7726 7727 /* Line 1806 of yacc.c */ 7727 #line 178 0"parser.yy"7728 #line 1783 "parser.yy" 7728 7729 { (yyval.en) = new DesignatorNode( (yyvsp[(4) - (6)].en) ); } 7729 7730 break; … … 7732 7733 7733 7734 /* Line 1806 of yacc.c */ 7734 #line 180 4"parser.yy"7735 #line 1807 "parser.yy" 7735 7736 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7736 7737 break; … … 7739 7740 7740 7741 /* Line 1806 of yacc.c */ 7741 #line 180 6"parser.yy"7742 #line 1809 "parser.yy" 7742 7743 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7743 7744 break; … … 7746 7747 7747 7748 /* Line 1806 of yacc.c */ 7748 #line 18 08"parser.yy"7749 #line 1811 "parser.yy" 7749 7750 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 7750 7751 break; … … 7753 7754 7754 7755 /* Line 1806 of yacc.c */ 7755 #line 181 4"parser.yy"7756 #line 1817 "parser.yy" 7756 7757 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7757 7758 break; … … 7760 7761 7761 7762 /* Line 1806 of yacc.c */ 7762 #line 181 6"parser.yy"7763 #line 1819 "parser.yy" 7763 7764 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7764 7765 break; … … 7767 7768 7768 7769 /* Line 1806 of yacc.c */ 7769 #line 182 1"parser.yy"7770 #line 1824 "parser.yy" 7770 7771 { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 7771 7772 break; … … 7774 7775 7775 7776 /* Line 1806 of yacc.c */ 7776 #line 18 27"parser.yy"7777 #line 1830 "parser.yy" 7777 7778 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); } 7778 7779 break; … … 7781 7782 7782 7783 /* Line 1806 of yacc.c */ 7783 #line 183 2"parser.yy"7784 #line 1835 "parser.yy" 7784 7785 { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); } 7785 7786 break; … … 7788 7789 7789 7790 /* Line 1806 of yacc.c */ 7790 #line 183 4"parser.yy"7791 #line 1837 "parser.yy" 7791 7792 { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); } 7792 7793 break; … … 7795 7796 7796 7797 /* Line 1806 of yacc.c */ 7797 #line 184 0"parser.yy"7798 #line 1843 "parser.yy" 7798 7799 { (yyval.tclass) = DeclarationNode::Type; } 7799 7800 break; … … 7802 7803 7803 7804 /* Line 1806 of yacc.c */ 7804 #line 184 2"parser.yy"7805 #line 1845 "parser.yy" 7805 7806 { (yyval.tclass) = DeclarationNode::Ftype; } 7806 7807 break; … … 7809 7810 7810 7811 /* Line 1806 of yacc.c */ 7811 #line 184 4"parser.yy"7812 #line 1847 "parser.yy" 7812 7813 { (yyval.tclass) = DeclarationNode::Dtype; } 7813 7814 break; … … 7816 7817 7817 7818 /* Line 1806 of yacc.c */ 7818 #line 18 49"parser.yy"7819 #line 1852 "parser.yy" 7819 7820 { (yyval.decl) = 0; } 7820 7821 break; … … 7823 7824 7824 7825 /* Line 1806 of yacc.c */ 7825 #line 185 1"parser.yy"7826 #line 1854 "parser.yy" 7826 7827 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 7827 7828 break; … … 7830 7831 7831 7832 /* Line 1806 of yacc.c */ 7832 #line 185 6"parser.yy"7833 #line 1859 "parser.yy" 7833 7834 { 7834 7835 typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) ); … … 7840 7841 7841 7842 /* Line 1806 of yacc.c */ 7842 #line 186 1"parser.yy"7843 #line 1864 "parser.yy" 7843 7844 { (yyval.decl) = (yyvsp[(4) - (5)].decl); } 7844 7845 break; … … 7847 7848 7848 7849 /* Line 1806 of yacc.c */ 7849 #line 186 3"parser.yy"7850 #line 1866 "parser.yy" 7850 7851 { (yyval.decl) = 0; } 7851 7852 break; … … 7854 7855 7855 7856 /* Line 1806 of yacc.c */ 7856 #line 18 68"parser.yy"7857 #line 1871 "parser.yy" 7857 7858 { (yyval.en) = new TypeValueNode( (yyvsp[(1) - (1)].decl) ); } 7858 7859 break; … … 7861 7862 7862 7863 /* Line 1806 of yacc.c */ 7863 #line 187 1"parser.yy"7864 #line 1874 "parser.yy" 7864 7865 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( new TypeValueNode( (yyvsp[(3) - (3)].decl) ))); } 7865 7866 break; … … 7868 7869 7869 7870 /* Line 1806 of yacc.c */ 7870 #line 187 3"parser.yy"7871 #line 1876 "parser.yy" 7871 7872 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); } 7872 7873 break; … … 7875 7876 7876 7877 /* Line 1806 of yacc.c */ 7877 #line 18 78"parser.yy"7878 #line 1881 "parser.yy" 7878 7879 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 7879 7880 break; … … 7882 7883 7883 7884 /* Line 1806 of yacc.c */ 7884 #line 188 0"parser.yy"7885 #line 1883 "parser.yy" 7885 7886 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); } 7886 7887 break; … … 7889 7890 7890 7891 /* Line 1806 of yacc.c */ 7891 #line 188 2"parser.yy"7892 #line 1885 "parser.yy" 7892 7893 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); } 7893 7894 break; … … 7896 7897 7897 7898 /* Line 1806 of yacc.c */ 7898 #line 18 87"parser.yy"7899 #line 1890 "parser.yy" 7899 7900 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); } 7900 7901 break; … … 7903 7904 7904 7905 /* Line 1806 of yacc.c */ 7905 #line 18 89"parser.yy"7906 #line 1892 "parser.yy" 7906 7907 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); } 7907 7908 break; … … 7910 7911 7911 7912 /* Line 1806 of yacc.c */ 7912 #line 189 4"parser.yy"7913 #line 1897 "parser.yy" 7913 7914 { 7914 7915 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD ); … … 7920 7921 7921 7922 /* Line 1806 of yacc.c */ 7922 #line 1 899"parser.yy"7923 #line 1902 "parser.yy" 7923 7924 { 7924 7925 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG ); … … 7930 7931 7931 7932 /* Line 1806 of yacc.c */ 7932 #line 19 07"parser.yy"7933 #line 1910 "parser.yy" 7933 7934 { 7934 7935 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID ); … … 7940 7941 7941 7942 /* Line 1806 of yacc.c */ 7942 #line 191 2"parser.yy"7943 #line 1915 "parser.yy" 7943 7944 { 7944 7945 typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) ); … … 7950 7951 7951 7952 /* Line 1806 of yacc.c */ 7952 #line 19 17"parser.yy"7953 #line 1920 "parser.yy" 7953 7954 { 7954 7955 typedefTable.leaveTrait(); … … 7961 7962 7962 7963 /* Line 1806 of yacc.c */ 7963 #line 19 27"parser.yy"7964 #line 1930 "parser.yy" 7964 7965 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 7965 7966 break; … … 7968 7969 7969 7970 /* Line 1806 of yacc.c */ 7970 #line 19 37"parser.yy"7971 #line 1940 "parser.yy" 7971 7972 { 7972 7973 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7978 7979 7979 7980 /* Line 1806 of yacc.c */ 7980 #line 194 2"parser.yy"7981 #line 1945 "parser.yy" 7981 7982 { 7982 7983 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7988 7989 7989 7990 /* Line 1806 of yacc.c */ 7990 #line 19 47"parser.yy"7991 #line 1950 "parser.yy" 7991 7992 { 7992 7993 typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); … … 7998 7999 7999 8000 /* Line 1806 of yacc.c */ 8000 #line 195 5"parser.yy"8001 #line 1958 "parser.yy" 8001 8002 { 8002 8003 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 8008 8009 8009 8010 /* Line 1806 of yacc.c */ 8010 #line 196 0"parser.yy"8011 #line 1963 "parser.yy" 8011 8012 { 8012 8013 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 8018 8019 8019 8020 /* Line 1806 of yacc.c */ 8020 #line 197 0"parser.yy"8021 #line 1973 "parser.yy" 8021 8022 {} 8022 8023 break; … … 8025 8026 8026 8027 /* Line 1806 of yacc.c */ 8027 #line 197 2"parser.yy"8028 #line 1975 "parser.yy" 8028 8029 { 8029 8030 if ( theTree ) { … … 8038 8039 8039 8040 /* Line 1806 of yacc.c */ 8040 #line 198 4"parser.yy"8041 #line 1987 "parser.yy" 8041 8042 { (yyval.decl) = ( (yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); } 8042 8043 break; … … 8045 8046 8046 8047 /* Line 1806 of yacc.c */ 8047 #line 19 89"parser.yy"8048 #line 1992 "parser.yy" 8048 8049 { (yyval.decl) = 0; } 8049 8050 break; … … 8052 8053 8053 8054 /* Line 1806 of yacc.c */ 8054 #line 1997"parser.yy"8055 #line 2000 "parser.yy" 8055 8056 {} 8056 8057 break; … … 8059 8060 8060 8061 /* Line 1806 of yacc.c */ 8061 #line 1999"parser.yy"8062 #line 2002 "parser.yy" 8062 8063 { 8063 8064 linkageStack.push( linkage ); … … 8069 8070 8070 8071 /* Line 1806 of yacc.c */ 8071 #line 200 4"parser.yy"8072 #line 2007 "parser.yy" 8072 8073 { 8073 8074 linkage = linkageStack.top(); … … 8080 8081 8081 8082 /* Line 1806 of yacc.c */ 8082 #line 201 0"parser.yy"8083 #line 2013 "parser.yy" 8083 8084 { // mark all fields in list 8084 8085 for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_link() ) … … 8091 8092 8092 8093 /* Line 1806 of yacc.c */ 8093 #line 202 5"parser.yy"8094 #line 2028 "parser.yy" 8094 8095 { 8095 8096 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8102 8103 8103 8104 /* Line 1806 of yacc.c */ 8104 #line 203 1"parser.yy"8105 #line 2034 "parser.yy" 8105 8106 { 8106 8107 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8113 8114 8114 8115 /* Line 1806 of yacc.c */ 8115 #line 204 0"parser.yy"8116 #line 2043 "parser.yy" 8116 8117 { 8117 8118 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8124 8125 8125 8126 /* Line 1806 of yacc.c */ 8126 #line 204 6"parser.yy"8127 #line 2049 "parser.yy" 8127 8128 { 8128 8129 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8135 8136 8136 8137 /* Line 1806 of yacc.c */ 8137 #line 205 2"parser.yy"8138 #line 2055 "parser.yy" 8138 8139 { 8139 8140 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8146 8147 8147 8148 /* Line 1806 of yacc.c */ 8148 #line 20 58"parser.yy"8149 #line 2061 "parser.yy" 8149 8150 { 8150 8151 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8157 8158 8158 8159 /* Line 1806 of yacc.c */ 8159 #line 206 4"parser.yy"8160 #line 2067 "parser.yy" 8160 8161 { 8161 8162 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8168 8169 8169 8170 /* Line 1806 of yacc.c */ 8170 #line 207 2"parser.yy"8171 #line 2075 "parser.yy" 8171 8172 { 8172 8173 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8179 8180 8180 8181 /* Line 1806 of yacc.c */ 8181 #line 20 78"parser.yy"8182 #line 2081 "parser.yy" 8182 8183 { 8183 8184 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8190 8191 8191 8192 /* Line 1806 of yacc.c */ 8192 #line 208 6"parser.yy"8193 #line 2089 "parser.yy" 8193 8194 { 8194 8195 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8201 8202 8202 8203 /* Line 1806 of yacc.c */ 8203 #line 209 2"parser.yy"8204 #line 2095 "parser.yy" 8204 8205 { 8205 8206 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8212 8213 8213 8214 /* Line 1806 of yacc.c */ 8214 #line 21 07"parser.yy"8215 #line 2110 "parser.yy" 8215 8216 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 8216 8217 break; … … 8219 8220 8220 8221 /* Line 1806 of yacc.c */ 8221 #line 21 17"parser.yy"8222 #line 2120 "parser.yy" 8222 8223 { (yyval.decl) = 0; } 8223 8224 break; … … 8226 8227 8227 8228 /* Line 1806 of yacc.c */ 8228 #line 212 4"parser.yy"8229 #line 2127 "parser.yy" 8229 8230 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 8230 8231 break; … … 8233 8234 8234 8235 /* Line 1806 of yacc.c */ 8235 #line 213 0"parser.yy"8236 #line 2133 "parser.yy" 8236 8237 { (yyval.decl) = 0; } 8237 8238 break; 8238 8239 8239 8240 case 560: 8240 8241 /* Line 1806 of yacc.c */8242 #line 2145 "parser.yy"8243 {}8244 break;8245 8246 case 561:8247 8248 /* Line 1806 of yacc.c */8249 #line 2146 "parser.yy"8250 {}8251 break;8252 8253 case 562:8254 8255 /* Line 1806 of yacc.c */8256 #line 2147 "parser.yy"8257 {}8258 break;8259 8260 case 563:8261 8241 8262 8242 /* Line 1806 of yacc.c */ … … 8265 8245 break; 8266 8246 8247 case 561: 8248 8249 /* Line 1806 of yacc.c */ 8250 #line 2149 "parser.yy" 8251 {} 8252 break; 8253 8254 case 562: 8255 8256 /* Line 1806 of yacc.c */ 8257 #line 2150 "parser.yy" 8258 {} 8259 break; 8260 8261 case 563: 8262 8263 /* Line 1806 of yacc.c */ 8264 #line 2151 "parser.yy" 8265 {} 8266 break; 8267 8267 8268 case 564: 8268 8269 /* Line 1806 of yacc.c */8270 #line 2183 "parser.yy"8271 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8272 break;8273 8274 case 566:8275 8269 8276 8270 /* Line 1806 of yacc.c */ … … 8279 8273 break; 8280 8274 8275 case 566: 8276 8277 /* Line 1806 of yacc.c */ 8278 #line 2189 "parser.yy" 8279 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8280 break; 8281 8281 8282 case 567: 8282 8283 8283 8284 /* Line 1806 of yacc.c */ 8284 #line 21 88"parser.yy"8285 #line 2191 "parser.yy" 8285 8286 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8286 8287 break; … … 8289 8290 8290 8291 /* Line 1806 of yacc.c */ 8291 #line 219 3"parser.yy"8292 #line 2196 "parser.yy" 8292 8293 { 8293 8294 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8299 8300 8300 8301 /* Line 1806 of yacc.c */ 8301 #line 2 198"parser.yy"8302 #line 2201 "parser.yy" 8302 8303 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8303 8304 break; … … 8306 8307 8307 8308 /* Line 1806 of yacc.c */ 8308 #line 220 3"parser.yy"8309 #line 2206 "parser.yy" 8309 8310 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8310 8311 break; … … 8313 8314 8314 8315 /* Line 1806 of yacc.c */ 8315 #line 220 5"parser.yy"8316 #line 2208 "parser.yy" 8316 8317 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8317 8318 break; … … 8320 8321 8321 8322 /* Line 1806 of yacc.c */ 8322 #line 22 07"parser.yy"8323 #line 2210 "parser.yy" 8323 8324 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8324 8325 break; … … 8327 8328 8328 8329 /* Line 1806 of yacc.c */ 8329 #line 221 2"parser.yy"8330 #line 2215 "parser.yy" 8330 8331 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8331 8332 break; … … 8334 8335 8335 8336 /* Line 1806 of yacc.c */ 8336 #line 221 4"parser.yy"8337 #line 2217 "parser.yy" 8337 8338 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8338 8339 break; … … 8341 8342 8342 8343 /* Line 1806 of yacc.c */ 8343 #line 221 6"parser.yy"8344 #line 2219 "parser.yy" 8344 8345 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8345 8346 break; … … 8348 8349 8349 8350 /* Line 1806 of yacc.c */ 8350 #line 22 18"parser.yy"8351 #line 2221 "parser.yy" 8351 8352 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8352 8353 break; … … 8355 8356 8356 8357 /* Line 1806 of yacc.c */ 8357 #line 222 3"parser.yy"8358 #line 2226 "parser.yy" 8358 8359 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8359 8360 break; … … 8362 8363 8363 8364 /* Line 1806 of yacc.c */ 8364 #line 222 5"parser.yy"8365 #line 2228 "parser.yy" 8365 8366 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8366 8367 break; 8367 8368 8368 8369 case 579: 8369 8370 /* Line 1806 of yacc.c */8371 #line 2234 "parser.yy"8372 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8373 break;8374 8375 case 581:8376 8370 8377 8371 /* Line 1806 of yacc.c */ … … 8380 8374 break; 8381 8375 8376 case 581: 8377 8378 /* Line 1806 of yacc.c */ 8379 #line 2240 "parser.yy" 8380 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8381 break; 8382 8382 8383 case 582: 8383 8384 8384 8385 /* Line 1806 of yacc.c */ 8385 #line 224 2"parser.yy"8386 #line 2245 "parser.yy" 8386 8387 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8387 8388 break; … … 8390 8391 8391 8392 /* Line 1806 of yacc.c */ 8392 #line 224 4"parser.yy"8393 #line 2247 "parser.yy" 8393 8394 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8394 8395 break; … … 8397 8398 8398 8399 /* Line 1806 of yacc.c */ 8399 #line 224 6"parser.yy"8400 #line 2249 "parser.yy" 8400 8401 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8401 8402 break; … … 8404 8405 8405 8406 /* Line 1806 of yacc.c */ 8406 #line 225 1"parser.yy"8407 #line 2254 "parser.yy" 8407 8408 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8408 8409 break; … … 8411 8412 8412 8413 /* Line 1806 of yacc.c */ 8413 #line 225 3"parser.yy"8414 #line 2256 "parser.yy" 8414 8415 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8415 8416 break; … … 8418 8419 8419 8420 /* Line 1806 of yacc.c */ 8420 #line 225 5"parser.yy"8421 #line 2258 "parser.yy" 8421 8422 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8422 8423 break; … … 8425 8426 8426 8427 /* Line 1806 of yacc.c */ 8427 #line 226 0"parser.yy"8428 #line 2263 "parser.yy" 8428 8429 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8429 8430 break; … … 8432 8433 8433 8434 /* Line 1806 of yacc.c */ 8434 #line 226 2"parser.yy"8435 #line 2265 "parser.yy" 8435 8436 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8436 8437 break; … … 8439 8440 8440 8441 /* Line 1806 of yacc.c */ 8441 #line 226 4"parser.yy"8442 #line 2267 "parser.yy" 8442 8443 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8443 8444 break; … … 8446 8447 8447 8448 /* Line 1806 of yacc.c */ 8448 #line 22 79"parser.yy"8449 #line 2282 "parser.yy" 8449 8450 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); } 8450 8451 break; … … 8453 8454 8454 8455 /* Line 1806 of yacc.c */ 8455 #line 228 1"parser.yy"8456 #line 2284 "parser.yy" 8456 8457 { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); } 8457 8458 break; … … 8460 8461 8461 8462 /* Line 1806 of yacc.c */ 8462 #line 228 3"parser.yy"8463 #line 2286 "parser.yy" 8463 8464 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8464 8465 break; … … 8467 8468 8468 8469 /* Line 1806 of yacc.c */ 8469 #line 22 88"parser.yy"8470 #line 2291 "parser.yy" 8470 8471 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8471 8472 break; … … 8474 8475 8475 8476 /* Line 1806 of yacc.c */ 8476 #line 229 0"parser.yy"8477 #line 2293 "parser.yy" 8477 8478 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8478 8479 break; … … 8481 8482 8482 8483 /* Line 1806 of yacc.c */ 8483 #line 229 2"parser.yy"8484 #line 2295 "parser.yy" 8484 8485 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8485 8486 break; … … 8488 8489 8489 8490 /* Line 1806 of yacc.c */ 8490 #line 2 297"parser.yy"8491 #line 2300 "parser.yy" 8491 8492 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8492 8493 break; … … 8495 8496 8496 8497 /* Line 1806 of yacc.c */ 8497 #line 2 299"parser.yy"8498 #line 2302 "parser.yy" 8498 8499 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8499 8500 break; … … 8502 8503 8503 8504 /* Line 1806 of yacc.c */ 8504 #line 230 1"parser.yy"8505 #line 2304 "parser.yy" 8505 8506 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8506 8507 break; 8507 8508 8508 8509 case 603: 8509 8510 /* Line 1806 of yacc.c */8511 #line 2316 "parser.yy"8512 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8513 break;8514 8515 case 605:8516 8510 8517 8511 /* Line 1806 of yacc.c */ … … 8520 8514 break; 8521 8515 8516 case 605: 8517 8518 /* Line 1806 of yacc.c */ 8519 #line 2322 "parser.yy" 8520 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8521 break; 8522 8522 8523 case 606: 8523 8524 8524 8525 /* Line 1806 of yacc.c */ 8525 #line 232 1"parser.yy"8526 #line 2324 "parser.yy" 8526 8527 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8527 8528 break; … … 8530 8531 8531 8532 /* Line 1806 of yacc.c */ 8532 #line 23 27"parser.yy"8533 #line 2330 "parser.yy" 8533 8534 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8534 8535 break; … … 8537 8538 8538 8539 /* Line 1806 of yacc.c */ 8539 #line 233 2"parser.yy"8540 #line 2335 "parser.yy" 8540 8541 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8541 8542 break; … … 8544 8545 8545 8546 /* Line 1806 of yacc.c */ 8546 #line 233 4"parser.yy"8547 #line 2337 "parser.yy" 8547 8548 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8548 8549 break; … … 8551 8552 8552 8553 /* Line 1806 of yacc.c */ 8553 #line 233 6"parser.yy"8554 #line 2339 "parser.yy" 8554 8555 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8555 8556 break; … … 8558 8559 8559 8560 /* Line 1806 of yacc.c */ 8560 #line 234 1"parser.yy"8561 #line 2344 "parser.yy" 8561 8562 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8562 8563 break; … … 8565 8566 8566 8567 /* Line 1806 of yacc.c */ 8567 #line 234 3"parser.yy"8568 #line 2346 "parser.yy" 8568 8569 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8569 8570 break; … … 8572 8573 8573 8574 /* Line 1806 of yacc.c */ 8574 #line 234 5"parser.yy"8575 #line 2348 "parser.yy" 8575 8576 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8576 8577 break; … … 8579 8580 8580 8581 /* Line 1806 of yacc.c */ 8581 #line 23 47"parser.yy"8582 #line 2350 "parser.yy" 8582 8583 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8583 8584 break; … … 8586 8587 8587 8588 /* Line 1806 of yacc.c */ 8588 #line 235 2"parser.yy"8589 #line 2355 "parser.yy" 8589 8590 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8590 8591 break; … … 8593 8594 8594 8595 /* Line 1806 of yacc.c */ 8595 #line 235 4"parser.yy"8596 #line 2357 "parser.yy" 8596 8597 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8597 8598 break; … … 8600 8601 8601 8602 /* Line 1806 of yacc.c */ 8602 #line 235 6"parser.yy"8603 #line 2359 "parser.yy" 8603 8604 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8604 8605 break; 8605 8606 8606 8607 case 619: 8607 8608 /* Line 1806 of yacc.c */8609 #line 2366 "parser.yy"8610 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8611 break;8612 8613 case 621:8614 8608 8615 8609 /* Line 1806 of yacc.c */ … … 8618 8612 break; 8619 8613 8614 case 621: 8615 8616 /* Line 1806 of yacc.c */ 8617 #line 2372 "parser.yy" 8618 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8619 break; 8620 8620 8621 case 622: 8621 8622 8622 8623 /* Line 1806 of yacc.c */ 8623 #line 237 1"parser.yy"8624 #line 2374 "parser.yy" 8624 8625 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8625 8626 break; … … 8628 8629 8629 8630 /* Line 1806 of yacc.c */ 8630 #line 237 6"parser.yy"8631 #line 2379 "parser.yy" 8631 8632 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8632 8633 break; … … 8635 8636 8636 8637 /* Line 1806 of yacc.c */ 8637 #line 23 78"parser.yy"8638 #line 2381 "parser.yy" 8638 8639 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8639 8640 break; … … 8642 8643 8643 8644 /* Line 1806 of yacc.c */ 8644 #line 238 0"parser.yy"8645 #line 2383 "parser.yy" 8645 8646 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8646 8647 break; … … 8649 8650 8650 8651 /* Line 1806 of yacc.c */ 8651 #line 238 5"parser.yy"8652 #line 2388 "parser.yy" 8652 8653 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8653 8654 break; … … 8656 8657 8657 8658 /* Line 1806 of yacc.c */ 8658 #line 23 87"parser.yy"8659 #line 2390 "parser.yy" 8659 8660 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8660 8661 break; … … 8663 8664 8664 8665 /* Line 1806 of yacc.c */ 8665 #line 23 89"parser.yy"8666 #line 2392 "parser.yy" 8666 8667 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8667 8668 break; … … 8670 8671 8671 8672 /* Line 1806 of yacc.c */ 8672 #line 239 1"parser.yy"8673 #line 2394 "parser.yy" 8673 8674 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8674 8675 break; … … 8677 8678 8678 8679 /* Line 1806 of yacc.c */ 8679 #line 239 6"parser.yy"8680 #line 2399 "parser.yy" 8680 8681 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8681 8682 break; … … 8684 8685 8685 8686 /* Line 1806 of yacc.c */ 8686 #line 2 398"parser.yy"8687 #line 2401 "parser.yy" 8687 8688 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8688 8689 break; … … 8691 8692 8692 8693 /* Line 1806 of yacc.c */ 8693 #line 240 0"parser.yy"8694 #line 2403 "parser.yy" 8694 8695 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8695 8696 break; 8696 8697 8697 8698 case 633: 8698 8699 /* Line 1806 of yacc.c */8700 #line 2431 "parser.yy"8701 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8702 break;8703 8704 case 635:8705 8699 8706 8700 /* Line 1806 of yacc.c */ … … 8709 8703 break; 8710 8704 8705 case 635: 8706 8707 /* Line 1806 of yacc.c */ 8708 #line 2437 "parser.yy" 8709 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8710 break; 8711 8711 8712 case 636: 8712 8713 8713 8714 /* Line 1806 of yacc.c */ 8714 #line 243 6"parser.yy"8715 #line 2439 "parser.yy" 8715 8716 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8716 8717 break; … … 8719 8720 8720 8721 /* Line 1806 of yacc.c */ 8721 #line 244 1"parser.yy"8722 #line 2444 "parser.yy" 8722 8723 { 8723 8724 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8729 8730 8730 8731 /* Line 1806 of yacc.c */ 8731 #line 244 6"parser.yy"8732 #line 2449 "parser.yy" 8732 8733 { 8733 8734 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8739 8740 8740 8741 /* Line 1806 of yacc.c */ 8741 #line 245 4"parser.yy"8742 #line 2457 "parser.yy" 8742 8743 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8743 8744 break; … … 8746 8747 8747 8748 /* Line 1806 of yacc.c */ 8748 #line 245 6"parser.yy"8749 #line 2459 "parser.yy" 8749 8750 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8750 8751 break; … … 8753 8754 8754 8755 /* Line 1806 of yacc.c */ 8755 #line 24 58"parser.yy"8756 #line 2461 "parser.yy" 8756 8757 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8757 8758 break; … … 8760 8761 8761 8762 /* Line 1806 of yacc.c */ 8762 #line 246 3"parser.yy"8763 #line 2466 "parser.yy" 8763 8764 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8764 8765 break; … … 8767 8768 8768 8769 /* Line 1806 of yacc.c */ 8769 #line 246 5"parser.yy"8770 #line 2468 "parser.yy" 8770 8771 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8771 8772 break; … … 8774 8775 8775 8776 /* Line 1806 of yacc.c */ 8776 #line 247 0"parser.yy"8777 #line 2473 "parser.yy" 8777 8778 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8778 8779 break; … … 8781 8782 8782 8783 /* Line 1806 of yacc.c */ 8783 #line 247 2"parser.yy"8784 #line 2475 "parser.yy" 8784 8785 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8785 8786 break; … … 8788 8789 8789 8790 /* Line 1806 of yacc.c */ 8790 #line 24 87"parser.yy"8791 #line 2490 "parser.yy" 8791 8792 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8792 8793 break; … … 8795 8796 8796 8797 /* Line 1806 of yacc.c */ 8797 #line 24 89"parser.yy"8798 #line 2492 "parser.yy" 8798 8799 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8799 8800 break; … … 8802 8803 8803 8804 /* Line 1806 of yacc.c */ 8804 #line 249 4"parser.yy"8805 #line 2497 "parser.yy" 8805 8806 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8806 8807 break; … … 8809 8810 8810 8811 /* Line 1806 of yacc.c */ 8811 #line 249 6"parser.yy"8812 #line 2499 "parser.yy" 8812 8813 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8813 8814 break; … … 8816 8817 8817 8818 /* Line 1806 of yacc.c */ 8818 #line 2 498"parser.yy"8819 #line 2501 "parser.yy" 8819 8820 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8820 8821 break; … … 8823 8824 8824 8825 /* Line 1806 of yacc.c */ 8825 #line 250 0"parser.yy"8826 #line 2503 "parser.yy" 8826 8827 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8827 8828 break; … … 8830 8831 8831 8832 /* Line 1806 of yacc.c */ 8832 #line 250 2"parser.yy"8833 #line 2505 "parser.yy" 8833 8834 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8834 8835 break; … … 8837 8838 8838 8839 /* Line 1806 of yacc.c */ 8839 #line 25 08"parser.yy"8840 #line 2511 "parser.yy" 8840 8841 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8841 8842 break; … … 8844 8845 8845 8846 /* Line 1806 of yacc.c */ 8846 #line 251 0"parser.yy"8847 #line 2513 "parser.yy" 8847 8848 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8848 8849 break; … … 8851 8852 8852 8853 /* Line 1806 of yacc.c */ 8853 #line 251 2"parser.yy"8854 #line 2515 "parser.yy" 8854 8855 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8855 8856 break; … … 8858 8859 8859 8860 /* Line 1806 of yacc.c */ 8860 #line 25 17"parser.yy"8861 #line 2520 "parser.yy" 8861 8862 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); } 8862 8863 break; … … 8865 8866 8866 8867 /* Line 1806 of yacc.c */ 8867 #line 25 19"parser.yy"8868 #line 2522 "parser.yy" 8868 8869 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8869 8870 break; … … 8872 8873 8873 8874 /* Line 1806 of yacc.c */ 8874 #line 252 1"parser.yy"8875 #line 2524 "parser.yy" 8875 8876 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8876 8877 break; … … 8879 8880 8880 8881 /* Line 1806 of yacc.c */ 8881 #line 25 27"parser.yy"8882 #line 2530 "parser.yy" 8882 8883 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8883 8884 break; … … 8886 8887 8887 8888 /* Line 1806 of yacc.c */ 8888 #line 25 29"parser.yy"8889 #line 2532 "parser.yy" 8889 8890 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); } 8890 8891 break; … … 8893 8894 8894 8895 /* Line 1806 of yacc.c */ 8895 #line 253 5"parser.yy"8896 #line 2538 "parser.yy" 8896 8897 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); } 8897 8898 break; … … 8900 8901 8901 8902 /* Line 1806 of yacc.c */ 8902 #line 25 37"parser.yy"8903 #line 2540 "parser.yy" 8903 8904 { (yyval.decl) = DeclarationNode::newVarArray( 0 ); } 8904 8905 break; … … 8907 8908 8908 8909 /* Line 1806 of yacc.c */ 8909 #line 25 39"parser.yy"8910 #line 2542 "parser.yy" 8910 8911 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); } 8911 8912 break; … … 8914 8915 8915 8916 /* Line 1806 of yacc.c */ 8916 #line 254 1"parser.yy"8917 #line 2544 "parser.yy" 8917 8918 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); } 8918 8919 break; … … 8921 8922 8922 8923 /* Line 1806 of yacc.c */ 8923 #line 255 6"parser.yy"8924 #line 2559 "parser.yy" 8924 8925 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8925 8926 break; … … 8928 8929 8929 8930 /* Line 1806 of yacc.c */ 8930 #line 25 58"parser.yy"8931 #line 2561 "parser.yy" 8931 8932 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8932 8933 break; … … 8935 8936 8936 8937 /* Line 1806 of yacc.c */ 8937 #line 256 3"parser.yy"8938 #line 2566 "parser.yy" 8938 8939 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8939 8940 break; … … 8942 8943 8943 8944 /* Line 1806 of yacc.c */ 8944 #line 256 5"parser.yy"8945 #line 2568 "parser.yy" 8945 8946 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8946 8947 break; … … 8949 8950 8950 8951 /* Line 1806 of yacc.c */ 8951 #line 25 67"parser.yy"8952 #line 2570 "parser.yy" 8952 8953 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8953 8954 break; … … 8956 8957 8957 8958 /* Line 1806 of yacc.c */ 8958 #line 25 69"parser.yy"8959 #line 2572 "parser.yy" 8959 8960 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8960 8961 break; … … 8963 8964 8964 8965 /* Line 1806 of yacc.c */ 8965 #line 257 1"parser.yy"8966 #line 2574 "parser.yy" 8966 8967 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8967 8968 break; … … 8970 8971 8971 8972 /* Line 1806 of yacc.c */ 8972 #line 25 77"parser.yy"8973 #line 2580 "parser.yy" 8973 8974 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8974 8975 break; … … 8977 8978 8978 8979 /* Line 1806 of yacc.c */ 8979 #line 25 79"parser.yy"8980 #line 2582 "parser.yy" 8980 8981 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8981 8982 break; … … 8984 8985 8985 8986 /* Line 1806 of yacc.c */ 8986 #line 258 1"parser.yy"8987 #line 2584 "parser.yy" 8987 8988 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8988 8989 break; … … 8991 8992 8992 8993 /* Line 1806 of yacc.c */ 8993 #line 258 6"parser.yy"8994 #line 2589 "parser.yy" 8994 8995 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); } 8995 8996 break; … … 8998 8999 8999 9000 /* Line 1806 of yacc.c */ 9000 #line 25 88"parser.yy"9001 #line 2591 "parser.yy" 9001 9002 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 9002 9003 break; … … 9005 9006 9006 9007 /* Line 1806 of yacc.c */ 9007 #line 259 0"parser.yy"9008 #line 2593 "parser.yy" 9008 9009 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 9009 9010 break; … … 9012 9013 9013 9014 /* Line 1806 of yacc.c */ 9014 #line 2 597"parser.yy"9015 #line 2600 "parser.yy" 9015 9016 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 9016 9017 break; … … 9019 9020 9020 9021 /* Line 1806 of yacc.c */ 9021 #line 26 08"parser.yy"9022 #line 2611 "parser.yy" 9022 9023 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 9023 9024 break; … … 9026 9027 9027 9028 /* Line 1806 of yacc.c */ 9028 #line 261 1"parser.yy"9029 #line 2614 "parser.yy" 9029 9030 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 9030 9031 break; … … 9033 9034 9034 9035 /* Line 1806 of yacc.c */ 9035 #line 261 3"parser.yy"9036 #line 2616 "parser.yy" 9036 9037 { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); } 9037 9038 break; … … 9040 9041 9041 9042 /* Line 1806 of yacc.c */ 9042 #line 261 6"parser.yy"9043 #line 2619 "parser.yy" 9043 9044 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 9044 9045 break; … … 9047 9048 9048 9049 /* Line 1806 of yacc.c */ 9049 #line 26 18"parser.yy"9050 #line 2621 "parser.yy" 9050 9051 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); } 9051 9052 break; … … 9054 9055 9055 9056 /* Line 1806 of yacc.c */ 9056 #line 262 0"parser.yy"9057 #line 2623 "parser.yy" 9057 9058 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); } 9058 9059 break; … … 9061 9062 9062 9063 /* Line 1806 of yacc.c */ 9063 #line 263 4"parser.yy"9064 #line 2637 "parser.yy" 9064 9065 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 9065 9066 break; … … 9068 9069 9069 9070 /* Line 1806 of yacc.c */ 9070 #line 263 6"parser.yy"9071 #line 2639 "parser.yy" 9071 9072 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 9072 9073 break; … … 9075 9076 9076 9077 /* Line 1806 of yacc.c */ 9077 #line 264 1"parser.yy"9078 #line 2644 "parser.yy" 9078 9079 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 9079 9080 break; … … 9082 9083 9083 9084 /* Line 1806 of yacc.c */ 9084 #line 264 3"parser.yy"9085 #line 2646 "parser.yy" 9085 9086 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 9086 9087 break; … … 9089 9090 9090 9091 /* Line 1806 of yacc.c */ 9091 #line 264 5"parser.yy"9092 #line 2648 "parser.yy" 9092 9093 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 9093 9094 break; … … 9096 9097 9097 9098 /* Line 1806 of yacc.c */ 9098 #line 26 47"parser.yy"9099 #line 2650 "parser.yy" 9099 9100 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 9100 9101 break; … … 9103 9104 9104 9105 /* Line 1806 of yacc.c */ 9105 #line 26 49"parser.yy"9106 #line 2652 "parser.yy" 9106 9107 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 9107 9108 break; … … 9110 9111 9111 9112 /* Line 1806 of yacc.c */ 9112 #line 265 5"parser.yy"9113 #line 2658 "parser.yy" 9113 9114 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 9114 9115 break; … … 9117 9118 9118 9119 /* Line 1806 of yacc.c */ 9119 #line 26 57"parser.yy"9120 #line 2660 "parser.yy" 9120 9121 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 9121 9122 break; … … 9124 9125 9125 9126 /* Line 1806 of yacc.c */ 9126 #line 26 59"parser.yy"9127 #line 2662 "parser.yy" 9127 9128 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 9128 9129 break; … … 9131 9132 9132 9133 /* Line 1806 of yacc.c */ 9133 #line 266 4"parser.yy"9134 #line 2667 "parser.yy" 9134 9135 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 9135 9136 break; … … 9138 9139 9139 9140 /* Line 1806 of yacc.c */ 9140 #line 266 6"parser.yy"9141 #line 2669 "parser.yy" 9141 9142 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 9142 9143 break; … … 9145 9146 9146 9147 /* Line 1806 of yacc.c */ 9147 #line 267 6"parser.yy"9148 #line 2679 "parser.yy" 9148 9149 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 9149 9150 break; … … 9152 9153 9153 9154 /* Line 1806 of yacc.c */ 9154 #line 268 6"parser.yy"9155 #line 2689 "parser.yy" 9155 9156 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9156 9157 break; … … 9159 9160 9160 9161 /* Line 1806 of yacc.c */ 9161 #line 26 88"parser.yy"9162 #line 2691 "parser.yy" 9162 9163 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9163 9164 break; … … 9166 9167 9167 9168 /* Line 1806 of yacc.c */ 9168 #line 269 0"parser.yy"9169 #line 2693 "parser.yy" 9169 9170 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9170 9171 break; … … 9173 9174 9174 9175 /* Line 1806 of yacc.c */ 9175 #line 269 2"parser.yy"9176 #line 2695 "parser.yy" 9176 9177 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9177 9178 break; … … 9180 9181 9181 9182 /* Line 1806 of yacc.c */ 9182 #line 269 4"parser.yy"9183 #line 2697 "parser.yy" 9183 9184 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9184 9185 break; … … 9187 9188 9188 9189 /* Line 1806 of yacc.c */ 9189 #line 269 6"parser.yy"9190 #line 2699 "parser.yy" 9190 9191 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9191 9192 break; … … 9194 9195 9195 9196 /* Line 1806 of yacc.c */ 9196 #line 270 3"parser.yy"9197 #line 2706 "parser.yy" 9197 9198 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9198 9199 break; … … 9201 9202 9202 9203 /* Line 1806 of yacc.c */ 9203 #line 270 5"parser.yy"9204 #line 2708 "parser.yy" 9204 9205 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9205 9206 break; … … 9208 9209 9209 9210 /* Line 1806 of yacc.c */ 9210 #line 27 07"parser.yy"9211 #line 2710 "parser.yy" 9211 9212 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9212 9213 break; … … 9215 9216 9216 9217 /* Line 1806 of yacc.c */ 9217 #line 27 09"parser.yy"9218 #line 2712 "parser.yy" 9218 9219 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 9219 9220 break; … … 9222 9223 9223 9224 /* Line 1806 of yacc.c */ 9224 #line 271 1"parser.yy"9225 #line 2714 "parser.yy" 9225 9226 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9226 9227 break; … … 9229 9230 9230 9231 /* Line 1806 of yacc.c */ 9231 #line 271 3"parser.yy"9232 #line 2716 "parser.yy" 9232 9233 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9233 9234 break; … … 9236 9237 9237 9238 /* Line 1806 of yacc.c */ 9238 #line 271 5"parser.yy"9239 #line 2718 "parser.yy" 9239 9240 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9240 9241 break; … … 9243 9244 9244 9245 /* Line 1806 of yacc.c */ 9245 #line 27 17"parser.yy"9246 #line 2720 "parser.yy" 9246 9247 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9247 9248 break; … … 9250 9251 9251 9252 /* Line 1806 of yacc.c */ 9252 #line 27 19"parser.yy"9253 #line 2722 "parser.yy" 9253 9254 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 9254 9255 break; … … 9257 9258 9258 9259 /* Line 1806 of yacc.c */ 9259 #line 272 1"parser.yy"9260 #line 2724 "parser.yy" 9260 9261 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9261 9262 break; … … 9264 9265 9265 9266 /* Line 1806 of yacc.c */ 9266 #line 272 6"parser.yy"9267 #line 2729 "parser.yy" 9267 9268 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 9268 9269 break; … … 9271 9272 9272 9273 /* Line 1806 of yacc.c */ 9273 #line 27 28"parser.yy"9274 #line 2731 "parser.yy" 9274 9275 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 9275 9276 break; … … 9278 9279 9279 9280 /* Line 1806 of yacc.c */ 9280 #line 273 3"parser.yy"9281 #line 2736 "parser.yy" 9281 9282 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); } 9282 9283 break; … … 9285 9286 9286 9287 /* Line 1806 of yacc.c */ 9287 #line 273 5"parser.yy"9288 #line 2738 "parser.yy" 9288 9289 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); } 9289 9290 break; … … 9292 9293 9293 9294 /* Line 1806 of yacc.c */ 9294 #line 276 2"parser.yy"9295 #line 2765 "parser.yy" 9295 9296 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 9296 9297 break; … … 9299 9300 9300 9301 /* Line 1806 of yacc.c */ 9301 #line 277 3"parser.yy"9302 #line 2776 "parser.yy" 9302 9303 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9303 9304 break; … … 9306 9307 9307 9308 /* Line 1806 of yacc.c */ 9308 #line 277 5"parser.yy"9309 #line 2778 "parser.yy" 9309 9310 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9310 9311 break; … … 9313 9314 9314 9315 /* Line 1806 of yacc.c */ 9315 #line 27 77"parser.yy"9316 #line 2780 "parser.yy" 9316 9317 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9317 9318 break; … … 9320 9321 9321 9322 /* Line 1806 of yacc.c */ 9322 #line 27 79"parser.yy"9323 #line 2782 "parser.yy" 9323 9324 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9324 9325 break; … … 9327 9328 9328 9329 /* Line 1806 of yacc.c */ 9329 #line 278 1"parser.yy"9330 #line 2784 "parser.yy" 9330 9331 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9331 9332 break; … … 9334 9335 9335 9336 /* Line 1806 of yacc.c */ 9336 #line 278 3"parser.yy"9337 #line 2786 "parser.yy" 9337 9338 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9338 9339 break; … … 9341 9342 9342 9343 /* Line 1806 of yacc.c */ 9343 #line 279 0"parser.yy"9344 #line 2793 "parser.yy" 9344 9345 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9345 9346 break; … … 9348 9349 9349 9350 /* Line 1806 of yacc.c */ 9350 #line 279 2"parser.yy"9351 #line 2795 "parser.yy" 9351 9352 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9352 9353 break; … … 9355 9356 9356 9357 /* Line 1806 of yacc.c */ 9357 #line 279 4"parser.yy"9358 #line 2797 "parser.yy" 9358 9359 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9359 9360 break; … … 9362 9363 9363 9364 /* Line 1806 of yacc.c */ 9364 #line 279 6"parser.yy"9365 #line 2799 "parser.yy" 9365 9366 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9366 9367 break; … … 9369 9370 9370 9371 /* Line 1806 of yacc.c */ 9371 #line 2 798"parser.yy"9372 #line 2801 "parser.yy" 9372 9373 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9373 9374 break; … … 9376 9377 9377 9378 /* Line 1806 of yacc.c */ 9378 #line 280 0"parser.yy"9379 #line 2803 "parser.yy" 9379 9380 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9380 9381 break; … … 9383 9384 9384 9385 /* Line 1806 of yacc.c */ 9385 #line 280 5"parser.yy"9386 #line 2808 "parser.yy" 9386 9387 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 9387 9388 break; … … 9390 9391 9391 9392 /* Line 1806 of yacc.c */ 9392 #line 281 0"parser.yy"9393 #line 2813 "parser.yy" 9393 9394 { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); } 9394 9395 break; … … 9397 9398 9398 9399 /* Line 1806 of yacc.c */ 9399 #line 281 2"parser.yy"9400 #line 2815 "parser.yy" 9400 9401 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); } 9401 9402 break; … … 9404 9405 9405 9406 /* Line 1806 of yacc.c */ 9406 #line 281 4"parser.yy"9407 #line 2817 "parser.yy" 9407 9408 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); } 9408 9409 break; … … 9411 9412 9412 9413 /* Line 1806 of yacc.c */ 9413 #line 28 38"parser.yy"9414 #line 2841 "parser.yy" 9414 9415 { (yyval.en) = 0; } 9415 9416 break; … … 9418 9419 9419 9420 /* Line 1806 of yacc.c */ 9420 #line 284 0"parser.yy"9421 #line 2843 "parser.yy" 9421 9422 { (yyval.en) = (yyvsp[(2) - (2)].en); } 9422 9423 break; … … 9425 9426 9426 9427 /* Line 1806 of yacc.c */ 9427 #line 942 8"Parser/parser.cc"9428 #line 9429 "Parser/parser.cc" 9428 9429 default: break; 9429 9430 } … … 9656 9657 9657 9658 /* Line 2067 of yacc.c */ 9658 #line 284 3"parser.yy"9659 #line 2846 "parser.yy" 9659 9660 9660 9661 // ----end of grammar---- -
src/Parser/parser.h
r76e8c55 r064e3ff 274 274 LabelNode *label; 275 275 InitializerNode *in; 276 OperatorNode::Type op; 276 277 bool flag; 277 278 … … 279 280 280 281 /* Line 2068 of yacc.c */ 281 #line 28 2"Parser/parser.h"282 #line 283 "Parser/parser.h" 282 283 } YYSTYPE; 283 284 # define YYSTYPE_IS_TRIVIAL 1 -
src/Parser/parser.yy
r76e8c55 r064e3ff 10 10 // Created On : Sat Sep 1 20:22:55 2001 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Aug 4 1 1:28:18 201613 // Update Count : 16 7212 // Last Modified On : Thu Aug 4 16:56:28 2016 13 // Update Count : 1694 14 14 // 15 15 … … 119 119 LabelNode *label; 120 120 InitializerNode *in; 121 OperatorNode::Type op; 121 122 bool flag; 122 123 } … … 129 130 %type<constant> constant 130 131 %type<en> tuple tuple_expression_list 131 %type<en> ptrref_operator unary_operator assignment_operator 132 %type<op> ptrref_operator 133 %type<en> unary_operator assignment_operator 132 134 %type<en> primary_expression postfix_expression unary_expression 133 135 %type<en> cast_expression multiplicative_expression additive_expression shift_expression … … 360 362 // struct S { int 0, 1; } s; s. 0 = 0; s. 1 = 1; 361 363 | postfix_expression '.' no_attr_identifier 362 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::FieldSel ), $1, new VarRefNode( $3 )); }364 { $$ = new CompositeExprNode2( build_fieldSel( $1, new VarRefNode( $3 ) ) ); } 363 365 | postfix_expression '.' '[' push field_list pop ']' // CFA, tuple field selector 364 366 | postfix_expression ARROW no_attr_identifier 365 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::PFieldSel ), $1, new VarRefNode( $3 )); }367 { $$ = new CompositeExprNode2( build_pfieldSel( $1, new VarRefNode( $3 ) ) ); } 366 368 | postfix_expression ARROW '[' push field_list pop ']' // CFA, tuple field selector 367 369 | postfix_expression ICR … … 410 412 // struct S { int 0, 1; } s; s. 0 = 0; s. 1 = 1; 411 413 | no_attr_identifier '.' field 412 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( $1 ), $3); }414 { $$ = new CompositeExprNode2( build_fieldSel( $3, new VarRefNode( $1 ) ) ); } 413 415 | no_attr_identifier '.' '[' push field_list pop ']' 414 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( $1 ), $5); }416 { $$ = new CompositeExprNode2( build_fieldSel( $5, new VarRefNode( $1 ) ) ); } 415 417 | no_attr_identifier ARROW field 416 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( $1 ), $3); }418 { $$ = new CompositeExprNode2( build_pfieldSel( $3, new VarRefNode( $1 ) ) ); } 417 419 | no_attr_identifier ARROW '[' push field_list pop ']' 418 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( $1 ), $5); }420 { $$ = new CompositeExprNode2( build_pfieldSel( $5, new VarRefNode( $1 ) ) ); } 419 421 ; 420 422 … … 430 432 { $$ = $2->set_extension( true ); } 431 433 | ptrref_operator cast_expression // CFA 432 { $$ = new CompositeExprNode( $1, $2 ); }434 { $$ = $1 == OperatorNode::AddressOf ? (ExpressionNode*) new CompositeExprNode2( build_addressOf( $2 ) ) : (ExpressionNode*)new CompositeExprNode( new OperatorNode ( $1 ), $2 ); } 433 435 // '*' ('&') is separated from unary_operator because of shift/reduce conflict in: 434 436 // { * X; } // dereference X … … 441 443 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Decr ), $2 ); } 442 444 | SIZEOF unary_expression 443 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::SizeOf ), $2); }445 { $$ = new CompositeExprNode2( build_sizeOf( $2 ) ); } 444 446 | SIZEOF '(' type_name_no_function ')' 445 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::SizeOf ), new TypeValueNode( $3 )); }447 { $$ = new CompositeExprNode2( build_sizeOf( new TypeValueNode( $3 ) ) ); } 446 448 | OFFSETOF '(' type_name_no_function ',' no_attr_identifier ')' 447 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::OffsetOf ), new TypeValueNode( $3 ), new VarRefNode( $5 )); }449 { $$ = new CompositeExprNode2( build_offsetOf( new TypeValueNode( $3 ), new VarRefNode( $5 ) ) ); } 448 450 | ATTR_IDENTIFIER 449 451 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( $1 )); } … … 453 455 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( $1 ), $3 ); } 454 456 | ALIGNOF unary_expression // GCC, variable alignment 455 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::AlignOf ), $2); }457 { $$ = new CompositeExprNode2( build_alignOf( $2 ) ); } 456 458 | ALIGNOF '(' type_name_no_function ')' // GCC, type alignment 457 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::AlignOf ), new TypeValueNode( $3) ); }459 { $$ = new CompositeExprNode2( build_alignOf( new TypeValueNode( $3 ) ) ); } 458 460 // | ANDAND IDENTIFIER // GCC, address of label 459 461 // { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::LabelAddress ), new VarRefNode( $2, true ) ); } … … 461 463 462 464 ptrref_operator: 463 '*' { $$ = new OperatorNode( OperatorNode::PointTo ); }464 | '&' { $$ = new OperatorNode( OperatorNode::AddressOf ); }465 '*' { $$ = OperatorNode::PointTo; } 466 | '&' { $$ = OperatorNode::AddressOf; } 465 467 // GCC, address of label must be handled by semantic check for ref,ref,label 466 | ANDAND { $$ = new OperatorNode( OperatorNode::And ); }468 | ANDAND { $$ = OperatorNode::And; } 467 469 ; 468 470 … … 477 479 unary_expression 478 480 | '(' type_name_no_function ')' cast_expression 479 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( $2 ), $4); }481 { $$ = new CompositeExprNode2( build_cast( new TypeValueNode( $2 ), $4 ) ); } 480 482 | '(' type_name_no_function ')' tuple 481 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( $2 ), $4); }483 { $$ = new CompositeExprNode2( build_cast( new TypeValueNode( $2 ), $4 ) ); } 482 484 ; 483 485 … … 742 744 case_value_list: // CFA 743 745 case_value { $$ = new StatementNode( StatementNode::Case, $1, 0 ); } 746 // convert case list, e.g., "case 1, 3, 5:" into "case 1: case 3: case 5" 744 747 | case_value_list ',' case_value { $$ = (StatementNode *)($1->set_link( new StatementNode( StatementNode::Case, $3, 0 ) ) ); } 745 748 ;
Note: See TracChangeset
for help on using the changeset viewer.