Changes in / [4e2a1137:1b0020a]
- Location:
- src
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
src/CodeGen/CodeGenerator.cc
r4e2a1137 r1b0020a 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 … … 494 494 } 495 495 496 void CodeGenerator::visit( RangeExpr * rangeExpr ) { 497 rangeExpr->get_low()->accept( *this ); 498 output << " ... "; 499 rangeExpr->get_high()->accept( *this ); 500 } 501 496 502 void CodeGenerator::visit( NameExpr * nameExpr ) { 497 503 extension( nameExpr ); -
src/CodeGen/CodeGenerator.h
r4e2a1137 r1b0020a 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
r4e2a1137 r1b0020a 10 10 // Created On : Sat May 16 13:17:07 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Aug 2 15:10:23 201613 // Update Count : 3 2212 // Last Modified On : Fri Aug 5 07:56:23 2016 13 // Update Count : 375 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 Expression *build_and_or( ExpressionNode *expr_node1, ExpressionNode *expr_node2, bool kind ) { 368 return new LogicalExpr( notZeroExpr( maybeBuild<Expression>(expr_node1) ), notZeroExpr( maybeBuild<Expression>(expr_node2) ), kind ); 369 } 370 371 Expression *build_opr1( OperatorNode::Type op, ExpressionNode *expr_node ) { 372 std::list<Expression *> args; 373 args.push_back( new AddressExpr( maybeBuild<Expression>(expr_node) ) ); 374 return new UntypedExpr( new NameExpr( opName[ op ] ), args ); 375 } 376 Expression *build_opr2( OperatorNode::Type op, ExpressionNode *expr_node1, ExpressionNode *expr_node2 ) { 377 std::list<Expression *> args; 378 args.push_back( maybeBuild<Expression>(expr_node1) ); 379 args.push_back( maybeBuild<Expression>(expr_node2) ); 380 return new UntypedExpr( new NameExpr( opName[ op ] ), args ); 381 } 382 383 Expression *build_cond( ExpressionNode *expr_node1, ExpressionNode *expr_node2, ExpressionNode *expr_node3 ) { 384 return new ConditionalExpr( notZeroExpr( maybeBuild<Expression>(expr_node1) ), maybeBuild<Expression>(expr_node2), maybeBuild<Expression>(expr_node3) ); 385 } 386 387 Expression *build_comma( ExpressionNode *expr_node1, ExpressionNode *expr_node2 ) { 388 return new CommaExpr( maybeBuild<Expression>(expr_node1), maybeBuild<Expression>(expr_node2) ); 389 } 390 391 CompositeExprNode2::CompositeExprNode2( Expression *expr ) : expr( expr ) {} 392 CompositeExprNode2::CompositeExprNode2( const CompositeExprNode2 &other ) : expr( other.expr->clone() ) {} 393 CompositeExprNode2::~CompositeExprNode2() { delete expr; } 394 void CompositeExprNode2::print( std::ostream &, int indent ) const { assert( false ); } 395 void CompositeExprNode2::printOneLine( std::ostream &, int indent ) const { assert( false ); } 396 314 397 315 398 Expression *CompositeExprNode::build() const { … … 323 406 } // if 324 407 325 switch ( op->get_type()) { 326 case OperatorNode::Incr: 327 case OperatorNode::Decr: 328 case OperatorNode::IncrPost: 329 case OperatorNode::DecrPost: 408 switch ( op->get_type() ) { 330 409 case OperatorNode::Assign: 331 410 case OperatorNode::MulAssn: … … 339 418 case OperatorNode::ERAssn: 340 419 case OperatorNode::OrAssn: 341 // the rewrite rules for these expressions specify that the first argument has its address taken342 420 assert( ! args.empty() ); 343 421 args.front() = new AddressExpr( args.front() ); 344 break;345 default: // do nothing346 ;347 } // switch348 349 switch ( op->get_type() ) {350 case OperatorNode::Incr:351 case OperatorNode::Decr:352 case OperatorNode::IncrPost:353 case OperatorNode::DecrPost:354 case OperatorNode::Assign:355 case OperatorNode::MulAssn:356 case OperatorNode::DivAssn:357 case OperatorNode::ModAssn:358 case OperatorNode::PlusAssn:359 case OperatorNode::MinusAssn:360 case OperatorNode::LSAssn:361 case OperatorNode::RSAssn:362 case OperatorNode::AndAssn:363 case OperatorNode::ERAssn:364 case OperatorNode::OrAssn:365 case OperatorNode::Plus:366 case OperatorNode::Minus:367 case OperatorNode::Mul:368 case OperatorNode::Div:369 case OperatorNode::Mod:370 case OperatorNode::BitOr:371 case OperatorNode::BitAnd:372 case OperatorNode::Xor:373 case OperatorNode::LShift:374 case OperatorNode::RShift:375 case OperatorNode::LThan:376 case OperatorNode::GThan:377 case OperatorNode::LEThan:378 case OperatorNode::GEThan:379 case OperatorNode::Eq:380 case OperatorNode::Neq:381 case OperatorNode::Index:382 case OperatorNode::Range:383 422 case OperatorNode::UnPlus: 384 423 case OperatorNode::UnMinus: … … 388 427 case OperatorNode::LabelAddress: 389 428 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 } // if 410 } 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 } else 429 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 xxx 436 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 } // if 452 } 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 } // if 460 } 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 } 429 472 430 case OperatorNode::Attr: 473 431 { 474 VarRefNode *var = dynamic_cast<VarRefNode *>( get_args() );432 VarRefNode *var = dynamic_cast<VarRefNode *>( get_args() ); 475 433 assert( var ); 476 434 if ( ! get_args()->get_link() ) { 477 435 return new AttrExpr( maybeBuild<Expression>(var), ( Expression*)0); 478 } else if ( TypeValueNode * arg = dynamic_cast<TypeValueNode *>( get_args()->get_link() ) ) {479 return new AttrExpr( maybeBuild<Expression>(var), arg->get_decl()->buildType() );436 } else if ( TypeValueNode * arg = dynamic_cast<TypeValueNode *>( get_args()->get_link() ) ) { 437 return new AttrExpr( maybeBuild<Expression>(var), arg->get_decl()->buildType() ); 480 438 } else { 481 return new AttrExpr( maybeBuild<Expression>(var), args.back() );439 return new AttrExpr( maybeBuild<Expression>(var), args.back() ); 482 440 } // if 483 441 } 484 case OperatorNode::Or:485 case OperatorNode::And:486 assert( args.size() == 2);487 return new LogicalExpr( notZeroExpr( args.front() ), notZeroExpr( args.back() ), ( op->get_type() == OperatorNode::And ) );488 442 case OperatorNode::Cond: 489 443 { … … 497 451 case OperatorNode::NCond: 498 452 throw UnimplementedError( "GNU 2-argument conditional expression" ); 499 case OperatorNode::Comma:500 {501 assert( args.size() == 2);502 std::list< Expression * >::const_iterator i = args.begin();503 Expression *ret = *i++;504 while ( i != args.end() ) {505 ret = new CommaExpr( ret, *i++ );506 }507 return ret;508 }509 453 // Tuples 510 454 case OperatorNode::TupleC: … … 515 459 } 516 460 default: 517 // shouldn't happen 518 assert( false ); 461 assert( ((void)"CompositeExprNode::build", false) ); 519 462 return 0; 520 463 } // switch … … 605 548 606 549 void LabelNode::printOneLine( std::ostream &os, int indent ) const {} 607 608 //##############################################################################609 610 CommaExprNode::CommaExprNode(): CompositeExprNode( new OperatorNode( OperatorNode::Comma )) {}611 612 CommaExprNode::CommaExprNode( ExpressionNode *exp ) : CompositeExprNode( new OperatorNode( OperatorNode::Comma ), exp ) {613 }614 615 CommaExprNode::CommaExprNode( ExpressionNode *exp1, ExpressionNode *exp2) : CompositeExprNode( new OperatorNode( OperatorNode::Comma ), exp1, exp2) {616 }617 618 // CommaExprNode *CommaExprNode::add_to_list( ExpressionNode *exp ) {619 // add_arg( exp );620 //621 // return this;622 // }623 624 CommaExprNode::CommaExprNode( const CommaExprNode &other ) : CompositeExprNode( other ) {625 }626 550 627 551 //############################################################################## … … 774 698 } 775 699 776 777 700 ExpressionNode *flattenCommas( ExpressionNode *list ) { 778 701 if ( CompositeExprNode *composite = dynamic_cast< CompositeExprNode * >( list ) ) { -
src/Parser/ParseNode.h
r4e2a1137 r1b0020a 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 : Fri Aug 5 07:49:32 2016 13 // Update Count : 288 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 Expression *build_and( ExpressionNode *expr_node1, ExpressionNode *expr_node2 ); 235 Expression *build_and_or( ExpressionNode *expr_node1, ExpressionNode *expr_node2, bool kind ); 236 Expression *build_opr1( OperatorNode::Type op, ExpressionNode *expr_node ); 237 Expression *build_opr2( OperatorNode::Type op, ExpressionNode *expr_node1, ExpressionNode *expr_node2 ); 238 Expression *build_cond( ExpressionNode *expr_node1, ExpressionNode *expr_node2, ExpressionNode *expr_node3 ); 239 Expression *build_comma( ExpressionNode *expr_node1, ExpressionNode *expr_node2 ); 240 241 class CompositeExprNode2 : public ExpressionNode { 242 public: 243 CompositeExprNode2( Expression *expr ); 244 CompositeExprNode2( const CompositeExprNode2 &other ); 245 virtual ~CompositeExprNode2(); 246 247 virtual CompositeExprNode2 *clone() const { return new CompositeExprNode2( *this ); } 248 virtual Expression *build() const { return expr->clone(); } 249 250 virtual void print( std::ostream &, int indent = 0) const; 251 virtual void printOneLine( std::ostream &, int indent = 0) const; 252 private: 253 Expression *expr; 254 }; 255 227 256 class CompositeExprNode : public ExpressionNode { 228 257 public: … … 290 319 private: 291 320 std::list< Label > labels; 292 };293 294 class CommaExprNode : public CompositeExprNode {295 public:296 CommaExprNode();297 CommaExprNode( ExpressionNode * );298 CommaExprNode( ExpressionNode *, ExpressionNode * );299 CommaExprNode( const CommaExprNode &other );300 301 // virtual CommaExprNode *add_to_list( ExpressionNode * );302 virtual CommaExprNode *clone() const { return new CommaExprNode( *this ); }303 321 }; 304 322 … … 533 551 }; 534 552 535 class NullStmtNode : public CompoundStmtNode {536 public:537 Statement *build() const;538 void print( std::ostream &, int indent = 0 ) const;539 };540 541 553 class InitializerNode : public ParseNode { 542 554 public: -
src/Parser/StatementNode.cc
r4e2a1137 r1b0020a 417 417 } 418 418 419 420 void NullStmtNode::print( ostream &os, int indent ) const {421 os << string( indent, ' ' ) << "Null Statement:" << endl;422 }423 424 Statement *NullStmtNode::build() const {425 return new NullStmt;426 }427 428 419 // Local Variables: // 429 420 // tab-width: 4 // -
src/Parser/parser.cc
r4e2a1137 r1b0020a 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 4 77, 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 5 87, 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 6 46, 656, 663, 665, 675, 676, 681, 683, 689, 691,1033 695, 696, 701, 706, 709, 711, 713, 723, 725, 736,1034 7 37, 739, 743, 744, 748, 749, 754, 755, 759, 764,1035 7 65, 769, 771, 777, 778, 782, 784, 786, 788, 794,1036 795, 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 894, 907, 908, 913, 915, 920, 924, 926, 928, 930,1040 93 2, 938, 939, 945, 946, 950, 951, 956, 958, 964,1041 9 65, 967, 972, 974, 981, 983, 987, 988, 993, 995,1042 999, 1000, 1004, 1006, 1010, 1011, 1015, 1016, 1020, 1021,1043 10 36, 1037, 1038, 1039, 1040, 1044, 1049, 1056, 1066, 1071,1044 10 76, 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 13 34, 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 14 34, 1439, 1441, 1443, 1448, 1449, 1453, 1455, 1461, 1460,1055 14 64, 1466, 1471, 1473, 1479, 1480, 1485, 1486, 1488, 1489,1056 1 498, 1499, 1501, 1503, 1508, 1510, 1516, 1517, 1519, 1522,1057 15 25, 1530, 1531, 1536, 1541, 1545, 1547, 1553, 1552, 1559,1058 156 1, 1567, 1568, 1576, 1577, 1581, 1582, 1583, 1585, 1587,1059 1 594, 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 16 86, 1687, 1688, 1692, 1693, 1694, 1698, 1699, 1700, 1704,1063 17 05, 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 21 45, 2146, 2147, 2148, 2182, 2184, 2185, 2187, 2192, 2197,1075 220 2, 2204, 2206, 2211, 2213, 2215, 2217, 2222, 2224, 2233,1076 22 35, 2236, 2241, 2243, 2245, 2250, 2252, 2254, 2259, 2261,1077 226 3, 2272, 2273, 2274, 2278, 2280, 2282, 2287, 2289, 2291,1078 2 296, 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 2 395, 2397, 2399, 2430, 2432, 2433, 2435, 2440, 2445, 2453,1082 24 55, 2457, 2462, 2464, 2469, 2471, 2485, 2486, 2488, 2493,1083 2 495, 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 25 85, 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 27 34, 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, 436, 439, 441, 443, 445, 447, 449, 451, 453, 1025 455, 457, 459, 466, 467, 469, 473, 474, 475, 476, 1026 480, 481, 483, 488, 489, 491, 493, 498, 499, 501, 1027 506, 507, 509, 514, 515, 517, 519, 521, 526, 527, 1028 529, 534, 535, 540, 541, 546, 547, 552, 553, 558, 1029 559, 564, 565, 568, 570, 575, 580, 581, 583, 585, 1030 591, 592, 598, 600, 602, 604, 609, 610, 615, 616, 1031 617, 618, 619, 620, 621, 622, 623, 624, 628, 629, 1032 636, 637, 643, 644, 645, 646, 647, 648, 649, 650, 1033 651, 661, 668, 670, 680, 681, 686, 688, 694, 696, 1034 700, 701, 706, 711, 714, 716, 718, 728, 730, 741, 1035 742, 744, 748, 750, 754, 755, 760, 761, 765, 770, 1036 771, 775, 777, 783, 784, 788, 790, 792, 794, 800, 1037 801, 805, 807, 812, 814, 816, 821, 823, 828, 830, 1038 834, 837, 841, 844, 848, 850, 854, 856, 863, 865, 1039 867, 876, 878, 880, 882, 884, 889, 891, 893, 895, 1040 900, 913, 914, 919, 921, 926, 930, 932, 934, 936, 1041 938, 944, 945, 951, 952, 956, 957, 962, 964, 970, 1042 971, 973, 978, 980, 987, 989, 993, 994, 999, 1001, 1043 1005, 1006, 1010, 1012, 1016, 1017, 1021, 1022, 1026, 1027, 1044 1042, 1043, 1044, 1045, 1046, 1050, 1055, 1062, 1072, 1077, 1045 1082, 1090, 1095, 1100, 1105, 1110, 1118, 1140, 1145, 1152, 1046 1154, 1161, 1166, 1171, 1182, 1187, 1192, 1197, 1202, 1211, 1047 1216, 1224, 1225, 1226, 1227, 1233, 1238, 1246, 1247, 1248, 1048 1249, 1253, 1254, 1255, 1256, 1261, 1262, 1271, 1272, 1277, 1049 1278, 1283, 1285, 1287, 1289, 1291, 1294, 1293, 1305, 1306, 1050 1308, 1318, 1319, 1324, 1328, 1330, 1332, 1334, 1336, 1338, 1051 1340, 1342, 1347, 1349, 1351, 1353, 1355, 1357, 1359, 1361, 1052 1363, 1365, 1367, 1369, 1371, 1377, 1378, 1380, 1382, 1384, 1053 1389, 1390, 1396, 1397, 1399, 1401, 1406, 1408, 1410, 1412, 1054 1417, 1418, 1420, 1422, 1427, 1428, 1430, 1435, 1436, 1438, 1055 1440, 1445, 1447, 1449, 1454, 1455, 1459, 1461, 1467, 1466, 1056 1470, 1472, 1477, 1479, 1485, 1486, 1491, 1492, 1494, 1495, 1057 1504, 1505, 1507, 1509, 1514, 1516, 1522, 1523, 1525, 1528, 1058 1531, 1536, 1537, 1542, 1547, 1551, 1553, 1559, 1558, 1565, 1059 1567, 1573, 1574, 1582, 1583, 1587, 1588, 1589, 1591, 1593, 1060 1600, 1601, 1603, 1605, 1610, 1611, 1617, 1618, 1622, 1623, 1061 1628, 1629, 1630, 1632, 1640, 1641, 1643, 1646, 1648, 1652, 1062 1653, 1654, 1656, 1658, 1662, 1667, 1675, 1676, 1685, 1687, 1063 1692, 1693, 1694, 1698, 1699, 1700, 1704, 1705, 1706, 1710, 1064 1711, 1712, 1717, 1718, 1719, 1720, 1726, 1727, 1729, 1734, 1065 1735, 1740, 1741, 1742, 1743, 1744, 1759, 1760, 1765, 1766, 1066 1774, 1776, 1778, 1781, 1783, 1785, 1808, 1809, 1811, 1813, 1067 1818, 1819, 1821, 1826, 1831, 1832, 1838, 1837, 1841, 1845, 1068 1847, 1849, 1855, 1856, 1861, 1866, 1868, 1873, 1875, 1876, 1069 1878, 1883, 1885, 1887, 1892, 1894, 1899, 1904, 1912, 1918, 1070 1917, 1931, 1932, 1937, 1938, 1942, 1947, 1952, 1960, 1965, 1071 1976, 1977, 1988, 1989, 1995, 1996, 2000, 2001, 2002, 2005, 1072 2004, 2015, 2024, 2030, 2036, 2045, 2051, 2057, 2063, 2069, 1073 2077, 2083, 2091, 2097, 2106, 2107, 2108, 2112, 2116, 2118, 1074 2123, 2124, 2128, 2129, 2134, 2140, 2141, 2144, 2146, 2147, 1075 2151, 2152, 2153, 2154, 2188, 2190, 2191, 2193, 2198, 2203, 1076 2208, 2210, 2212, 2217, 2219, 2221, 2223, 2228, 2230, 2239, 1077 2241, 2242, 2247, 2249, 2251, 2256, 2258, 2260, 2265, 2267, 1078 2269, 2278, 2279, 2280, 2284, 2286, 2288, 2293, 2295, 2297, 1079 2302, 2304, 2306, 2321, 2323, 2324, 2326, 2331, 2332, 2337, 1080 2339, 2341, 2346, 2348, 2350, 2352, 2357, 2359, 2361, 2371, 1081 2373, 2374, 2376, 2381, 2383, 2385, 2390, 2392, 2394, 2396, 1082 2401, 2403, 2405, 2436, 2438, 2439, 2441, 2446, 2451, 2459, 1083 2461, 2463, 2468, 2470, 2475, 2477, 2491, 2492, 2494, 2499, 1084 2501, 2503, 2505, 2507, 2512, 2513, 2515, 2517, 2522, 2524, 1085 2526, 2532, 2534, 2536, 2540, 2542, 2544, 2546, 2560, 2561, 1086 2563, 2568, 2570, 2572, 2574, 2576, 2581, 2582, 2584, 2586, 1087 2591, 2593, 2595, 2601, 2602, 2604, 2613, 2616, 2618, 2621, 1088 2623, 2625, 2638, 2639, 2641, 2646, 2648, 2650, 2652, 2654, 1089 2659, 2660, 2662, 2664, 2669, 2671, 2679, 2680, 2681, 2686, 1090 2687, 2691, 2693, 2695, 2697, 2699, 2701, 2708, 2710, 2712, 1091 2714, 2716, 2718, 2720, 2722, 2724, 2726, 2731, 2733, 2735, 1092 2740, 2766, 2767, 2769, 2773, 2774, 2778, 2780, 2782, 2784, 1093 2786, 2788, 2795, 2797, 2799, 2801, 2803, 2805, 2810, 2815, 1094 2817, 2819, 2837, 2839, 2844, 2845 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 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::Index ), (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ); }5300 #line 358 "parser.yy" 5301 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); } 5301 5302 break; 5302 5303 … … 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 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::IncrPost ), (yyvsp[(1) - (2)].en) ); }5328 #line 370 "parser.yy" 5329 { (yyval.en) = new CompositeExprNode2( build_opr1( OperatorNode::IncrPost, (yyvsp[(1) - (2)].en) ) ); } 5329 5330 break; 5330 5331 … … 5332 5333 5333 5334 /* Line 1806 of yacc.c */ 5334 #line 37 0"parser.yy"5335 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::DecrPost ), (yyvsp[(1) - (2)].en) ); }5335 #line 372 "parser.yy" 5336 { (yyval.en) = new CompositeExprNode2( build_opr1( OperatorNode::DecrPost, (yyvsp[(1) - (2)].en) ) ); } 5336 5337 break; 5337 5338 … … 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 437 "parser.yy" 5458 { (yyval.en) = (yyvsp[(1) - (2)].op) == OperatorNode::AddressOf ? (ExpressionNode*) new CompositeExprNode2( build_addressOf( (yyvsp[(2) - (2)].en) ) ) 5459 : (ExpressionNode*)new CompositeExprNode( new OperatorNode ( (yyvsp[(1) - (2)].op) ), (yyvsp[(2) - (2)].en) ); } 5460 break; 5461 5462 case 52: 5463 5464 /* Line 1806 of yacc.c */ 5465 #line 440 "parser.yy" 5457 5466 { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); } 5458 5467 break; 5459 5468 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 5469 case 53: 5468 5470 5469 5471 /* Line 1806 of yacc.c */ 5470 #line 4 39"parser.yy"5471 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::Incr ), (yyvsp[(2) - (2)].en) ); }5472 #line 442 "parser.yy" 5473 { (yyval.en) = new CompositeExprNode2( build_opr1( OperatorNode::Incr, (yyvsp[(2) - (2)].en) ) ); } 5472 5474 break; 5473 5475 … … 5475 5477 5476 5478 /* Line 1806 of yacc.c */ 5477 #line 44 1"parser.yy"5478 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::Decr ), (yyvsp[(2) - (2)].en) ); }5479 #line 444 "parser.yy" 5480 { (yyval.en) = new CompositeExprNode2( build_opr1( OperatorNode::Decr, (yyvsp[(2) - (2)].en) ) ); } 5479 5481 break; 5480 5482 … … 5482 5484 5483 5485 /* Line 1806 of yacc.c */ 5484 #line 44 3"parser.yy"5485 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::SizeOf ), (yyvsp[(2) - (2)].en) ); }5486 #line 446 "parser.yy" 5487 { (yyval.en) = new CompositeExprNode2( build_sizeOf( (yyvsp[(2) - (2)].en) ) ); } 5486 5488 break; 5487 5489 … … 5489 5491 5490 5492 /* 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) )); }5493 #line 448 "parser.yy" 5494 { (yyval.en) = new CompositeExprNode2( build_sizeOf( new TypeValueNode( (yyvsp[(3) - (4)].decl) ) ) ); } 5493 5495 break; 5494 5496 … … 5496 5498 5497 5499 /* Line 1806 of yacc.c */ 5498 #line 4 47"parser.yy"5499 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::OffsetOf ), new TypeValueNode( (yyvsp[(3) - (6)].decl) ), new VarRefNode( (yyvsp[(5) - (6)].tok) )); }5500 #line 450 "parser.yy" 5501 { (yyval.en) = new CompositeExprNode2( build_offsetOf( new TypeValueNode( (yyvsp[(3) - (6)].decl) ), new VarRefNode( (yyvsp[(5) - (6)].tok) ) ) ); } 5500 5502 break; 5501 5503 … … 5503 5505 5504 5506 /* Line 1806 of yacc.c */ 5505 #line 4 49"parser.yy"5506 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (1)].tok) ) ); }5507 #line 452 "parser.yy" 5508 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (1)].tok) ) ); } 5507 5509 break; 5508 5510 … … 5510 5512 5511 5513 /* Line 1806 of yacc.c */ 5512 #line 45 1"parser.yy"5513 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), new TypeValueNode( (yyvsp[(3) - (4)].decl) ) ); }5514 #line 454 "parser.yy" 5515 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), new TypeValueNode( (yyvsp[(3) - (4)].decl) ) ); } 5514 5516 break; 5515 5517 … … 5517 5519 5518 5520 /* Line 1806 of yacc.c */ 5519 #line 45 3"parser.yy"5521 #line 456 "parser.yy" 5520 5522 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ); } 5521 5523 break; … … 5524 5526 5525 5527 /* Line 1806 of yacc.c */ 5526 #line 45 5"parser.yy"5527 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::AlignOf ), (yyvsp[(2) - (2)].en) ); }5528 #line 458 "parser.yy" 5529 { (yyval.en) = new CompositeExprNode2( build_alignOf( (yyvsp[(2) - (2)].en) ) ); } 5528 5530 break; 5529 5531 … … 5531 5533 5532 5534 /* Line 1806 of yacc.c */ 5533 #line 4 57"parser.yy"5534 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::AlignOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) ) ); }5535 #line 460 "parser.yy" 5536 { (yyval.en) = new CompositeExprNode2( build_alignOf( new TypeValueNode( (yyvsp[(3) - (4)].decl) ) ) ); } 5535 5537 break; 5536 5538 … … 5538 5540 5539 5541 /* Line 1806 of yacc.c */ 5540 #line 46 3"parser.yy"5541 { (yyval. en) = new OperatorNode( OperatorNode::PointTo ); }5542 #line 466 "parser.yy" 5543 { (yyval.op) = OperatorNode::PointTo; } 5542 5544 break; 5543 5545 … … 5545 5547 5546 5548 /* Line 1806 of yacc.c */ 5547 #line 46 4"parser.yy"5548 { (yyval. en) = new OperatorNode( OperatorNode::AddressOf ); }5549 #line 467 "parser.yy" 5550 { (yyval.op) = OperatorNode::AddressOf; } 5549 5551 break; 5550 5552 … … 5552 5554 5553 5555 /* Line 1806 of yacc.c */ 5554 #line 46 6"parser.yy"5555 { (yyval. en) = new OperatorNode( OperatorNode::And ); }5556 #line 469 "parser.yy" 5557 { (yyval.op) = OperatorNode::And; } 5556 5558 break; 5557 5559 … … 5559 5561 5560 5562 /* Line 1806 of yacc.c */ 5561 #line 47 0"parser.yy"5563 #line 473 "parser.yy" 5562 5564 { (yyval.en) = new OperatorNode( OperatorNode::UnPlus ); } 5563 5565 break; … … 5566 5568 5567 5569 /* Line 1806 of yacc.c */ 5568 #line 47 1"parser.yy"5570 #line 474 "parser.yy" 5569 5571 { (yyval.en) = new OperatorNode( OperatorNode::UnMinus ); } 5570 5572 break; … … 5573 5575 5574 5576 /* Line 1806 of yacc.c */ 5575 #line 47 2"parser.yy"5577 #line 475 "parser.yy" 5576 5578 { (yyval.en) = new OperatorNode( OperatorNode::Neg ); } 5577 5579 break; … … 5580 5582 5581 5583 /* Line 1806 of yacc.c */ 5582 #line 47 3"parser.yy"5584 #line 476 "parser.yy" 5583 5585 { (yyval.en) = new OperatorNode( OperatorNode::BitNeg ); } 5584 5586 break; … … 5587 5589 5588 5590 /* 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) ); }5591 #line 482 "parser.yy" 5592 { (yyval.en) = new CompositeExprNode2( build_cast( new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ) ); } 5591 5593 break; 5592 5594 … … 5594 5596 5595 5597 /* 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) ); }5598 #line 484 "parser.yy" 5599 { (yyval.en) = new CompositeExprNode2( build_cast( new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ) ); } 5598 5600 break; 5599 5601 … … 5601 5603 5602 5604 /* Line 1806 of yacc.c */ 5603 #line 4 87"parser.yy"5604 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::Mul ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5605 #line 490 "parser.yy" 5606 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5605 5607 break; 5606 5608 … … 5608 5610 5609 5611 /* Line 1806 of yacc.c */ 5610 #line 4 89"parser.yy"5611 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::Div ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5612 #line 492 "parser.yy" 5613 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5612 5614 break; 5613 5615 … … 5615 5617 5616 5618 /* Line 1806 of yacc.c */ 5617 #line 49 1"parser.yy"5618 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::Mod ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5619 #line 494 "parser.yy" 5620 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5619 5621 break; 5620 5622 … … 5622 5624 5623 5625 /* Line 1806 of yacc.c */ 5624 #line 497"parser.yy"5625 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::Plus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5626 #line 500 "parser.yy" 5627 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5626 5628 break; 5627 5629 … … 5629 5631 5630 5632 /* Line 1806 of yacc.c */ 5631 #line 499"parser.yy"5632 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::Minus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5633 #line 502 "parser.yy" 5634 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5633 5635 break; 5634 5636 … … 5636 5638 5637 5639 /* Line 1806 of yacc.c */ 5638 #line 50 5"parser.yy"5639 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::LShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5640 #line 508 "parser.yy" 5641 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5640 5642 break; 5641 5643 … … 5643 5645 5644 5646 /* Line 1806 of yacc.c */ 5645 #line 5 07"parser.yy"5646 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::RShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5647 #line 510 "parser.yy" 5648 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5647 5649 break; 5648 5650 … … 5650 5652 5651 5653 /* Line 1806 of yacc.c */ 5652 #line 51 3"parser.yy"5653 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::LThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5654 #line 516 "parser.yy" 5655 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5654 5656 break; 5655 5657 … … 5657 5659 5658 5660 /* Line 1806 of yacc.c */ 5659 #line 51 5"parser.yy"5660 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::GThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5661 #line 518 "parser.yy" 5662 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5661 5663 break; 5662 5664 … … 5664 5666 5665 5667 /* Line 1806 of yacc.c */ 5666 #line 5 17"parser.yy"5667 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::LEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5668 #line 520 "parser.yy" 5669 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5668 5670 break; 5669 5671 … … 5671 5673 5672 5674 /* Line 1806 of yacc.c */ 5673 #line 5 19"parser.yy"5674 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::GEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5675 #line 522 "parser.yy" 5676 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5675 5677 break; 5676 5678 … … 5678 5680 5679 5681 /* Line 1806 of yacc.c */ 5680 #line 52 5"parser.yy"5681 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::Eq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5682 #line 528 "parser.yy" 5683 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5682 5684 break; 5683 5685 … … 5685 5687 5686 5688 /* Line 1806 of yacc.c */ 5687 #line 5 27"parser.yy"5688 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::Neq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5689 #line 530 "parser.yy" 5690 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5689 5691 break; 5690 5692 … … 5692 5694 5693 5695 /* Line 1806 of yacc.c */ 5694 #line 53 3"parser.yy"5695 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::BitAnd ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5696 #line 536 "parser.yy" 5697 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5696 5698 break; 5697 5699 … … 5699 5701 5700 5702 /* Line 1806 of yacc.c */ 5701 #line 5 39"parser.yy"5702 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::Xor ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5703 #line 542 "parser.yy" 5704 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5703 5705 break; 5704 5706 … … 5706 5708 5707 5709 /* Line 1806 of yacc.c */ 5708 #line 54 5"parser.yy"5709 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::BitOr ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5710 #line 548 "parser.yy" 5711 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5710 5712 break; 5711 5713 … … 5713 5715 5714 5716 /* Line 1806 of yacc.c */ 5715 #line 55 1"parser.yy"5716 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::And ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5717 #line 554 "parser.yy" 5718 { (yyval.en) = new CompositeExprNode2( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); } 5717 5719 break; 5718 5720 … … 5720 5722 5721 5723 /* Line 1806 of yacc.c */ 5722 #line 5 57"parser.yy"5723 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::Or ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5724 #line 560 "parser.yy" 5725 { (yyval.en) = new CompositeExprNode2( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); } 5724 5726 break; 5725 5727 … … 5727 5729 5728 5730 /* Line 1806 of yacc.c */ 5729 #line 56 3"parser.yy"5730 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en)) ) ); }5731 #line 567 "parser.yy" 5732 { (yyval.en) = new CompositeExprNode2( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); } 5731 5733 break; 5732 5734 … … 5734 5736 5735 5737 /* Line 1806 of yacc.c */ 5736 #line 56 5"parser.yy"5737 { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::NCond ), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ); }5738 #line 569 "parser.yy" 5739 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::NCond ), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ); } 5738 5740 break; 5739 5741 … … 5741 5743 5742 5744 /* Line 1806 of yacc.c */ 5743 #line 5 67"parser.yy"5744 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en)) ) ); }5745 #line 571 "parser.yy" 5746 { (yyval.en) = new CompositeExprNode2( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); } 5745 5747 break; 5746 5748 … … 5748 5750 5749 5751 /* Line 1806 of yacc.c */ 5750 #line 5 78"parser.yy"5751 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5752 #line 582 "parser.yy" 5753 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5752 5754 break; 5753 5755 … … 5755 5757 5756 5758 /* Line 1806 of yacc.c */ 5757 #line 58 0"parser.yy"5758 { (yyval.en) = new CompositeExprNode( (yyvsp[(2) - (3)].en), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5759 #line 584 "parser.yy" 5760 { (yyval.en) = new CompositeExprNode( (yyvsp[(2) - (3)].en), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5759 5761 break; 5760 5762 … … 5762 5764 5763 5765 /* Line 1806 of yacc.c */ 5764 #line 58 2"parser.yy"5766 #line 586 "parser.yy" 5765 5767 { (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 5768 break; … … 5769 5771 5770 5772 /* Line 1806 of yacc.c */ 5771 #line 5 87"parser.yy"5773 #line 591 "parser.yy" 5772 5774 { (yyval.en) = new NullExprNode; } 5773 5775 break; … … 5776 5778 5777 5779 /* Line 1806 of yacc.c */ 5778 #line 59 5"parser.yy"5780 #line 599 "parser.yy" 5779 5781 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ) ); } 5780 5782 break; … … 5783 5785 5784 5786 /* Line 1806 of yacc.c */ 5785 #line 597"parser.yy"5787 #line 601 "parser.yy" 5786 5788 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (yyvsp[(3) - (5)].en) ); } 5787 5789 break; … … 5790 5792 5791 5793 /* Line 1806 of yacc.c */ 5792 #line 599"parser.yy"5794 #line 603 "parser.yy" 5793 5795 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(new NullExprNode)->set_link( (yyvsp[(4) - (6)].en) ) ); } 5794 5796 break; … … 5797 5799 5798 5800 /* Line 1806 of yacc.c */ 5799 #line 60 1"parser.yy"5801 #line 605 "parser.yy" 5800 5802 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_link( flattenCommas( (yyvsp[(5) - (7)].en) ) ) ); } 5801 5803 break; … … 5804 5806 5805 5807 /* Line 1806 of yacc.c */ 5806 #line 6 07"parser.yy"5808 #line 611 "parser.yy" 5807 5809 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); } 5808 5810 break; … … 5811 5813 5812 5814 /* Line 1806 of yacc.c */ 5813 #line 61 1"parser.yy"5815 #line 615 "parser.yy" 5814 5816 { (yyval.en) = new OperatorNode( OperatorNode::MulAssn ); } 5815 5817 break; … … 5818 5820 5819 5821 /* Line 1806 of yacc.c */ 5820 #line 61 2"parser.yy"5822 #line 616 "parser.yy" 5821 5823 { (yyval.en) = new OperatorNode( OperatorNode::DivAssn ); } 5822 5824 break; … … 5825 5827 5826 5828 /* Line 1806 of yacc.c */ 5827 #line 61 3"parser.yy"5829 #line 617 "parser.yy" 5828 5830 { (yyval.en) = new OperatorNode( OperatorNode::ModAssn ); } 5829 5831 break; … … 5832 5834 5833 5835 /* Line 1806 of yacc.c */ 5834 #line 61 4"parser.yy"5836 #line 618 "parser.yy" 5835 5837 { (yyval.en) = new OperatorNode( OperatorNode::PlusAssn ); } 5836 5838 break; … … 5839 5841 5840 5842 /* Line 1806 of yacc.c */ 5841 #line 61 5"parser.yy"5843 #line 619 "parser.yy" 5842 5844 { (yyval.en) = new OperatorNode( OperatorNode::MinusAssn ); } 5843 5845 break; … … 5846 5848 5847 5849 /* Line 1806 of yacc.c */ 5848 #line 6 16"parser.yy"5850 #line 620 "parser.yy" 5849 5851 { (yyval.en) = new OperatorNode( OperatorNode::LSAssn ); } 5850 5852 break; … … 5853 5855 5854 5856 /* Line 1806 of yacc.c */ 5855 #line 6 17"parser.yy"5857 #line 621 "parser.yy" 5856 5858 { (yyval.en) = new OperatorNode( OperatorNode::RSAssn ); } 5857 5859 break; … … 5860 5862 5861 5863 /* Line 1806 of yacc.c */ 5862 #line 6 18"parser.yy"5864 #line 622 "parser.yy" 5863 5865 { (yyval.en) = new OperatorNode( OperatorNode::AndAssn ); } 5864 5866 break; … … 5867 5869 5868 5870 /* Line 1806 of yacc.c */ 5869 #line 6 19"parser.yy"5871 #line 623 "parser.yy" 5870 5872 { (yyval.en) = new OperatorNode( OperatorNode::ERAssn ); } 5871 5873 break; … … 5874 5876 5875 5877 /* Line 1806 of yacc.c */ 5876 #line 62 0"parser.yy"5878 #line 624 "parser.yy" 5877 5879 { (yyval.en) = new OperatorNode( OperatorNode::OrAssn ); } 5878 5880 break; … … 5881 5883 5882 5884 /* Line 1806 of yacc.c */ 5883 #line 6 26"parser.yy"5884 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::Comma ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }5885 #line 631 "parser.yy" 5886 { (yyval.en) = new CompositeExprNode2( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5885 5887 break; 5886 5888 … … 5888 5890 5889 5891 /* Line 1806 of yacc.c */ 5890 #line 63 1"parser.yy"5892 #line 636 "parser.yy" 5891 5893 { (yyval.en) = 0; } 5892 5894 break; … … 5895 5897 5896 5898 /* Line 1806 of yacc.c */ 5897 #line 64 0"parser.yy"5899 #line 645 "parser.yy" 5898 5900 { (yyval.sn) = (yyvsp[(1) - (1)].sn); } 5899 5901 break; … … 5902 5904 5903 5905 /* Line 1806 of yacc.c */ 5904 #line 6 47"parser.yy"5906 #line 652 "parser.yy" 5905 5907 { 5906 5908 Token fn; fn.str = new std::string( "^?{}" ); // location undefined … … 5913 5915 5914 5916 /* Line 1806 of yacc.c */ 5915 #line 6 57"parser.yy"5917 #line 662 "parser.yy" 5916 5918 { 5917 5919 (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) ); … … 5922 5924 5923 5925 /* Line 1806 of yacc.c */ 5924 #line 66 4"parser.yy"5926 #line 669 "parser.yy" 5925 5927 { (yyval.sn) = new CompoundStmtNode( (StatementNode *)0 ); } 5926 5928 break; … … 5929 5931 5930 5932 /* Line 1806 of yacc.c */ 5931 #line 67 1"parser.yy"5933 #line 676 "parser.yy" 5932 5934 { (yyval.sn) = new CompoundStmtNode( (yyvsp[(5) - (7)].sn) ); } 5933 5935 break; … … 5936 5938 5937 5939 /* Line 1806 of yacc.c */ 5938 #line 6 77"parser.yy"5940 #line 682 "parser.yy" 5939 5941 { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } } 5940 5942 break; … … 5943 5945 5944 5946 /* Line 1806 of yacc.c */ 5945 #line 68 2"parser.yy"5947 #line 687 "parser.yy" 5946 5948 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5947 5949 break; … … 5950 5952 5951 5953 /* Line 1806 of yacc.c */ 5952 #line 68 4"parser.yy"5954 #line 689 "parser.yy" 5953 5955 { // mark all fields in list 5954 5956 for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_link() ) … … 5961 5963 5962 5964 /* Line 1806 of yacc.c */ 5963 #line 69 0"parser.yy"5965 #line 695 "parser.yy" 5964 5966 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5965 5967 break; … … 5968 5970 5969 5971 /* Line 1806 of yacc.c */ 5970 #line 697"parser.yy"5972 #line 702 "parser.yy" 5971 5973 { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } } 5972 5974 break; … … 5975 5977 5976 5978 /* Line 1806 of yacc.c */ 5977 #line 70 2"parser.yy"5979 #line 707 "parser.yy" 5978 5980 { (yyval.sn) = new StatementNode( StatementNode::Exp, (yyvsp[(1) - (2)].en), 0 ); } 5979 5981 break; … … 5982 5984 5983 5985 /* Line 1806 of yacc.c */ 5984 #line 7 08"parser.yy"5986 #line 713 "parser.yy" 5985 5987 { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); } 5986 5988 break; … … 5989 5991 5990 5992 /* Line 1806 of yacc.c */ 5991 #line 71 0"parser.yy"5993 #line 715 "parser.yy" 5992 5994 { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (7)].en), (StatementNode *)mkList((*(yyvsp[(5) - (7)].sn), *(yyvsp[(7) - (7)].sn) )) ); } 5993 5995 break; … … 5996 5998 5997 5999 /* Line 1806 of yacc.c */ 5998 #line 71 2"parser.yy"6000 #line 717 "parser.yy" 5999 6001 { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); } 6000 6002 break; … … 6003 6005 6004 6006 /* Line 1806 of yacc.c */ 6005 #line 71 4"parser.yy"6007 #line 719 "parser.yy" 6006 6008 { 6007 6009 StatementNode *sw = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); … … 6018 6020 6019 6021 /* Line 1806 of yacc.c */ 6020 #line 72 4"parser.yy"6022 #line 729 "parser.yy" 6021 6023 { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); } 6022 6024 break; … … 6025 6027 6026 6028 /* Line 1806 of yacc.c */ 6027 #line 7 26"parser.yy"6029 #line 731 "parser.yy" 6028 6030 { 6029 6031 StatementNode *sw = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); … … 6035 6037 6036 6038 /* Line 1806 of yacc.c */ 6037 #line 7 36"parser.yy"6039 #line 741 "parser.yy" 6038 6040 { (yyval.en) = (yyvsp[(1) - (1)].en); } 6039 6041 break; … … 6042 6044 6043 6045 /* Line 1806 of yacc.c */ 6044 #line 7 38"parser.yy"6045 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }6046 #line 743 "parser.yy" 6047 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::Range, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 6046 6048 break; 6047 6049 … … 6049 6051 6050 6052 /* Line 1806 of yacc.c */ 6051 #line 74 3"parser.yy"6053 #line 748 "parser.yy" 6052 6054 { (yyval.sn) = new StatementNode( StatementNode::Case, (yyvsp[(1) - (1)].en), 0 ); } 6053 6055 break; … … 6056 6058 6057 6059 /* Line 1806 of yacc.c */ 6058 #line 7 44"parser.yy"6060 #line 750 "parser.yy" 6059 6061 { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_link( new StatementNode( StatementNode::Case, (yyvsp[(3) - (3)].en), 0 ) ) ); } 6060 6062 break; … … 6063 6065 6064 6066 /* Line 1806 of yacc.c */ 6065 #line 7 48"parser.yy"6067 #line 754 "parser.yy" 6066 6068 { (yyval.sn) = (yyvsp[(2) - (3)].sn); } 6067 6069 break; … … 6070 6072 6071 6073 /* Line 1806 of yacc.c */ 6072 #line 7 49"parser.yy"6074 #line 755 "parser.yy" 6073 6075 { (yyval.sn) = new StatementNode( StatementNode::Default ); } 6074 6076 break; … … 6077 6079 6078 6080 /* Line 1806 of yacc.c */ 6079 #line 7 55"parser.yy"6081 #line 761 "parser.yy" 6080 6082 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) )); } 6081 6083 break; … … 6084 6086 6085 6087 /* Line 1806 of yacc.c */ 6086 #line 7 59"parser.yy"6088 #line 765 "parser.yy" 6087 6089 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(2) - (2)].sn) ) ); } 6088 6090 break; … … 6091 6093 6092 6094 /* Line 1806 of yacc.c */ 6093 #line 7 64"parser.yy"6095 #line 770 "parser.yy" 6094 6096 { (yyval.sn) = 0; } 6095 6097 break; … … 6098 6100 6099 6101 /* Line 1806 of yacc.c */ 6100 #line 77 0"parser.yy"6102 #line 776 "parser.yy" 6101 6103 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(2) - (2)].sn) ) ); } 6102 6104 break; … … 6105 6107 6106 6108 /* Line 1806 of yacc.c */ 6107 #line 77 2"parser.yy"6109 #line 778 "parser.yy" 6108 6110 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(3) - (3)].sn) ) ) ) ); } 6109 6111 break; … … 6112 6114 6113 6115 /* Line 1806 of yacc.c */ 6114 #line 7 77"parser.yy"6116 #line 783 "parser.yy" 6115 6117 { (yyval.sn) = 0; } 6116 6118 break; … … 6119 6121 6120 6122 /* Line 1806 of yacc.c */ 6121 #line 78 3"parser.yy"6123 #line 789 "parser.yy" 6122 6124 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); } 6123 6125 break; … … 6126 6128 6127 6129 /* Line 1806 of yacc.c */ 6128 #line 7 85"parser.yy"6130 #line 791 "parser.yy" 6129 6131 { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new CompoundStmtNode( (StatementNode *)mkList( (*(yyvsp[(2) - (3)].sn), *(yyvsp[(3) - (3)].sn) ) ) ) ); } 6130 6132 break; … … 6133 6135 6134 6136 /* Line 1806 of yacc.c */ 6135 #line 7 87"parser.yy"6137 #line 793 "parser.yy" 6136 6138 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); } 6137 6139 break; … … 6140 6142 6141 6143 /* Line 1806 of yacc.c */ 6142 #line 7 89"parser.yy"6144 #line 795 "parser.yy" 6143 6145 { (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 6146 break; … … 6147 6149 6148 6150 /* Line 1806 of yacc.c */ 6149 #line 794"parser.yy"6151 #line 800 "parser.yy" 6150 6152 { (yyval.sn) = new StatementNode( StatementNode::Break ); } 6151 6153 break; … … 6154 6156 6155 6157 /* Line 1806 of yacc.c */ 6156 #line 80 0"parser.yy"6158 #line 806 "parser.yy" 6157 6159 { (yyval.sn) = 0; } 6158 6160 break; … … 6161 6163 6162 6164 /* Line 1806 of yacc.c */ 6163 #line 80 2"parser.yy"6165 #line 808 "parser.yy" 6164 6166 { (yyval.sn) = 0; } 6165 6167 break; … … 6168 6170 6169 6171 /* Line 1806 of yacc.c */ 6170 #line 8 07"parser.yy"6172 #line 813 "parser.yy" 6171 6173 { (yyval.sn) = new StatementNode( StatementNode::While, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); } 6172 6174 break; … … 6175 6177 6176 6178 /* Line 1806 of yacc.c */ 6177 #line 8 09"parser.yy"6179 #line 815 "parser.yy" 6178 6180 { (yyval.sn) = new StatementNode( StatementNode::Do, (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ); } 6179 6181 break; … … 6182 6184 6183 6185 /* Line 1806 of yacc.c */ 6184 #line 81 1"parser.yy"6186 #line 817 "parser.yy" 6185 6187 { (yyval.sn) = new StatementNode( StatementNode::For, (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].sn) ); } 6186 6188 break; … … 6189 6191 6190 6192 /* Line 1806 of yacc.c */ 6191 #line 8 16"parser.yy"6193 #line 822 "parser.yy" 6192 6194 { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); } 6193 6195 break; … … 6196 6198 6197 6199 /* Line 1806 of yacc.c */ 6198 #line 8 18"parser.yy"6200 #line 824 "parser.yy" 6199 6201 { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); } 6200 6202 break; … … 6203 6205 6204 6206 /* Line 1806 of yacc.c */ 6205 #line 82 3"parser.yy"6207 #line 829 "parser.yy" 6206 6208 { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(2) - (3)].tok) ); } 6207 6209 break; … … 6210 6212 6211 6213 /* Line 1806 of yacc.c */ 6212 #line 8 27"parser.yy"6214 #line 833 "parser.yy" 6213 6215 { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(3) - (4)].en) ); } 6214 6216 break; … … 6217 6219 6218 6220 /* Line 1806 of yacc.c */ 6219 #line 83 0"parser.yy"6221 #line 836 "parser.yy" 6220 6222 { (yyval.sn) = new StatementNode( StatementNode::Continue ); } 6221 6223 break; … … 6224 6226 6225 6227 /* Line 1806 of yacc.c */ 6226 #line 8 34"parser.yy"6228 #line 840 "parser.yy" 6227 6229 { (yyval.sn) = new StatementNode( StatementNode::Continue, (yyvsp[(2) - (3)].tok) ); } 6228 6230 break; … … 6231 6233 6232 6234 /* Line 1806 of yacc.c */ 6233 #line 8 37"parser.yy"6235 #line 843 "parser.yy" 6234 6236 { (yyval.sn) = new StatementNode( StatementNode::Break ); } 6235 6237 break; … … 6238 6240 6239 6241 /* Line 1806 of yacc.c */ 6240 #line 84 1"parser.yy"6242 #line 847 "parser.yy" 6241 6243 { (yyval.sn) = new StatementNode( StatementNode::Break, (yyvsp[(2) - (3)].tok) ); } 6242 6244 break; … … 6245 6247 6246 6248 /* Line 1806 of yacc.c */ 6247 #line 84 3"parser.yy"6249 #line 849 "parser.yy" 6248 6250 { (yyval.sn) = new StatementNode( StatementNode::Return, (yyvsp[(2) - (3)].en), 0 ); } 6249 6251 break; … … 6252 6254 6253 6255 /* Line 1806 of yacc.c */ 6254 #line 8 45"parser.yy"6256 #line 851 "parser.yy" 6255 6257 { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); } 6256 6258 break; … … 6259 6261 6260 6262 /* Line 1806 of yacc.c */ 6261 #line 8 49"parser.yy"6263 #line 855 "parser.yy" 6262 6264 { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); } 6263 6265 break; … … 6266 6268 6267 6269 /* Line 1806 of yacc.c */ 6268 #line 85 1"parser.yy"6270 #line 857 "parser.yy" 6269 6271 { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (5)].en), 0 ); } 6270 6272 break; … … 6273 6275 6274 6276 /* Line 1806 of yacc.c */ 6275 #line 8 58"parser.yy"6277 #line 864 "parser.yy" 6276 6278 { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); } 6277 6279 break; … … 6280 6282 6281 6283 /* Line 1806 of yacc.c */ 6282 #line 86 0"parser.yy"6284 #line 866 "parser.yy" 6283 6285 { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); } 6284 6286 break; … … 6287 6289 6288 6290 /* Line 1806 of yacc.c */ 6289 #line 86 2"parser.yy"6291 #line 868 "parser.yy" 6290 6292 { 6291 6293 (yyvsp[(3) - (4)].pn)->set_link( (yyvsp[(4) - (4)].pn) ); … … 6297 6299 6298 6300 /* Line 1806 of yacc.c */ 6299 #line 87 3"parser.yy"6301 #line 879 "parser.yy" 6300 6302 { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); } 6301 6303 break; … … 6304 6306 6305 6307 /* Line 1806 of yacc.c */ 6306 #line 8 75"parser.yy"6308 #line 881 "parser.yy" 6307 6309 { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); } 6308 6310 break; … … 6311 6313 6312 6314 /* Line 1806 of yacc.c */ 6313 #line 8 77"parser.yy"6315 #line 883 "parser.yy" 6314 6316 { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); } 6315 6317 break; … … 6318 6320 6319 6321 /* Line 1806 of yacc.c */ 6320 #line 8 79"parser.yy"6322 #line 885 "parser.yy" 6321 6323 { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); } 6322 6324 break; … … 6325 6327 6326 6328 /* Line 1806 of yacc.c */ 6327 #line 8 84"parser.yy"6329 #line 890 "parser.yy" 6328 6330 { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); } 6329 6331 break; … … 6332 6334 6333 6335 /* Line 1806 of yacc.c */ 6334 #line 8 86"parser.yy"6336 #line 892 "parser.yy" 6335 6337 { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); } 6336 6338 break; … … 6339 6341 6340 6342 /* Line 1806 of yacc.c */ 6341 #line 8 88"parser.yy"6343 #line 894 "parser.yy" 6342 6344 { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); } 6343 6345 break; … … 6346 6348 6347 6349 /* Line 1806 of yacc.c */ 6348 #line 89 0"parser.yy"6350 #line 896 "parser.yy" 6349 6351 { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); } 6350 6352 break; … … 6353 6355 6354 6356 /* Line 1806 of yacc.c */ 6355 #line 895"parser.yy"6357 #line 901 "parser.yy" 6356 6358 { 6357 6359 (yyval.pn) = new StatementNode( StatementNode::Finally, 0, (yyvsp[(2) - (2)].sn) ); … … 6363 6365 6364 6366 /* Line 1806 of yacc.c */ 6365 #line 9 09"parser.yy"6367 #line 915 "parser.yy" 6366 6368 { 6367 6369 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6373 6375 6374 6376 /* Line 1806 of yacc.c */ 6375 #line 9 14"parser.yy"6377 #line 920 "parser.yy" 6376 6378 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 6377 6379 break; … … 6380 6382 6381 6383 /* Line 1806 of yacc.c */ 6382 #line 9 16"parser.yy"6384 #line 922 "parser.yy" 6383 6385 { 6384 6386 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6390 6392 6391 6393 /* Line 1806 of yacc.c */ 6392 #line 9 25"parser.yy"6394 #line 931 "parser.yy" 6393 6395 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ); } 6394 6396 break; … … 6397 6399 6398 6400 /* Line 1806 of yacc.c */ 6399 #line 9 27"parser.yy"6401 #line 933 "parser.yy" 6400 6402 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ); } 6401 6403 break; … … 6404 6406 6405 6407 /* Line 1806 of yacc.c */ 6406 #line 9 29"parser.yy"6408 #line 935 "parser.yy" 6407 6409 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ); } 6408 6410 break; … … 6411 6413 6412 6414 /* Line 1806 of yacc.c */ 6413 #line 93 1"parser.yy"6415 #line 937 "parser.yy" 6414 6416 { (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 6417 break; … … 6418 6420 6419 6421 /* Line 1806 of yacc.c */ 6420 #line 93 3"parser.yy"6422 #line 939 "parser.yy" 6421 6423 { (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 6424 break; … … 6425 6427 6426 6428 /* Line 1806 of yacc.c */ 6427 #line 9 38"parser.yy"6429 #line 944 "parser.yy" 6428 6430 { (yyval.flag) = false; } 6429 6431 break; … … 6432 6434 6433 6435 /* Line 1806 of yacc.c */ 6434 #line 94 0"parser.yy"6436 #line 946 "parser.yy" 6435 6437 { (yyval.flag) = true; } 6436 6438 break; … … 6439 6441 6440 6442 /* Line 1806 of yacc.c */ 6441 #line 9 45"parser.yy"6443 #line 951 "parser.yy" 6442 6444 { (yyval.en) = 0; } 6443 6445 break; … … 6446 6448 6447 6449 /* Line 1806 of yacc.c */ 6448 #line 95 2"parser.yy"6450 #line 958 "parser.yy" 6449 6451 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); } 6450 6452 break; … … 6453 6455 6454 6456 /* Line 1806 of yacc.c */ 6455 #line 9 57"parser.yy"6457 #line 963 "parser.yy" 6456 6458 { (yyval.en) = new AsmExprNode( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ); } 6457 6459 break; … … 6460 6462 6461 6463 /* Line 1806 of yacc.c */ 6462 #line 9 59"parser.yy"6464 #line 965 "parser.yy" 6463 6465 { (yyval.en) = new AsmExprNode( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ); } 6464 6466 break; … … 6467 6469 6468 6470 /* Line 1806 of yacc.c */ 6469 #line 9 64"parser.yy"6471 #line 970 "parser.yy" 6470 6472 { (yyval.constant) = 0; } 6471 6473 break; … … 6474 6476 6475 6477 /* Line 1806 of yacc.c */ 6476 #line 9 66"parser.yy"6478 #line 972 "parser.yy" 6477 6479 { (yyval.constant) = (yyvsp[(1) - (1)].constant); } 6478 6480 break; … … 6481 6483 6482 6484 /* Line 1806 of yacc.c */ 6483 #line 9 68"parser.yy"6485 #line 974 "parser.yy" 6484 6486 { (yyval.constant) = (ConstantNode *)(yyvsp[(1) - (3)].constant)->set_link( (yyvsp[(3) - (3)].constant) ); } 6485 6487 break; … … 6488 6490 6489 6491 /* Line 1806 of yacc.c */ 6490 #line 97 3"parser.yy"6492 #line 979 "parser.yy" 6491 6493 { (yyval.label) = new LabelNode(); (yyval.label)->append_label( (yyvsp[(1) - (1)].tok) ); } 6492 6494 break; … … 6495 6497 6496 6498 /* Line 1806 of yacc.c */ 6497 #line 9 75"parser.yy"6499 #line 981 "parser.yy" 6498 6500 { (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->append_label( (yyvsp[(3) - (3)].tok) ); } 6499 6501 break; … … 6502 6504 6503 6505 /* Line 1806 of yacc.c */ 6504 #line 98 2"parser.yy"6506 #line 988 "parser.yy" 6505 6507 { (yyval.decl) = 0; } 6506 6508 break; … … 6509 6511 6510 6512 /* Line 1806 of yacc.c */ 6511 #line 9 89"parser.yy"6513 #line 995 "parser.yy" 6512 6514 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6513 6515 break; … … 6516 6518 6517 6519 /* Line 1806 of yacc.c */ 6518 #line 994"parser.yy"6520 #line 1000 "parser.yy" 6519 6521 { (yyval.decl) = 0; } 6520 6522 break; … … 6523 6525 6524 6526 /* Line 1806 of yacc.c */ 6525 #line 100 1"parser.yy"6527 #line 1007 "parser.yy" 6526 6528 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6527 6529 break; … … 6530 6532 6531 6533 /* Line 1806 of yacc.c */ 6532 #line 10 15"parser.yy"6534 #line 1021 "parser.yy" 6533 6535 {} 6534 6536 break; … … 6537 6539 6538 6540 /* Line 1806 of yacc.c */ 6539 #line 10 16"parser.yy"6541 #line 1022 "parser.yy" 6540 6542 {} 6541 6543 break; … … 6544 6546 6545 6547 /* Line 1806 of yacc.c */ 6546 #line 10 45"parser.yy"6548 #line 1051 "parser.yy" 6547 6549 { 6548 6550 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6554 6556 6555 6557 /* Line 1806 of yacc.c */ 6556 #line 105 2"parser.yy"6558 #line 1058 "parser.yy" 6557 6559 { 6558 6560 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6564 6566 6565 6567 /* Line 1806 of yacc.c */ 6566 #line 10 57"parser.yy"6568 #line 1063 "parser.yy" 6567 6569 { 6568 6570 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID ); … … 6574 6576 6575 6577 /* Line 1806 of yacc.c */ 6576 #line 10 67"parser.yy"6578 #line 1073 "parser.yy" 6577 6579 { 6578 6580 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); … … 6584 6586 6585 6587 /* Line 1806 of yacc.c */ 6586 #line 107 2"parser.yy"6588 #line 1078 "parser.yy" 6587 6589 { 6588 6590 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); … … 6594 6596 6595 6597 /* Line 1806 of yacc.c */ 6596 #line 10 77"parser.yy"6598 #line 1083 "parser.yy" 6597 6599 { 6598 6600 typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) ); … … 6604 6606 6605 6607 /* Line 1806 of yacc.c */ 6606 #line 10 85"parser.yy"6608 #line 1091 "parser.yy" 6607 6609 { 6608 6610 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6614 6616 6615 6617 /* Line 1806 of yacc.c */ 6616 #line 109 0"parser.yy"6618 #line 1096 "parser.yy" 6617 6619 { 6618 6620 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6624 6626 6625 6627 /* Line 1806 of yacc.c */ 6626 #line 1 095"parser.yy"6628 #line 1101 "parser.yy" 6627 6629 { 6628 6630 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6634 6636 6635 6637 /* Line 1806 of yacc.c */ 6636 #line 110 0"parser.yy"6638 #line 1106 "parser.yy" 6637 6639 { 6638 6640 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6644 6646 6645 6647 /* Line 1806 of yacc.c */ 6646 #line 11 05"parser.yy"6648 #line 1111 "parser.yy" 6647 6649 { 6648 6650 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); … … 6654 6656 6655 6657 /* Line 1806 of yacc.c */ 6656 #line 111 3"parser.yy"6658 #line 1119 "parser.yy" 6657 6659 { 6658 6660 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true ); … … 6663 6665 6664 6666 /* Line 1806 of yacc.c */ 6665 #line 11 36"parser.yy"6667 #line 1142 "parser.yy" 6666 6668 { 6667 6669 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); … … 6672 6674 6673 6675 /* Line 1806 of yacc.c */ 6674 #line 114 0"parser.yy"6676 #line 1146 "parser.yy" 6675 6677 { 6676 6678 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); … … 6681 6683 6682 6684 /* Line 1806 of yacc.c */ 6683 #line 11 47"parser.yy"6685 #line 1153 "parser.yy" 6684 6686 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 6685 6687 break; … … 6688 6690 6689 6691 /* Line 1806 of yacc.c */ 6690 #line 115 1"parser.yy"6692 #line 1157 "parser.yy" 6691 6693 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); } 6692 6694 break; … … 6695 6697 6696 6698 /* Line 1806 of yacc.c */ 6697 #line 11 56"parser.yy"6699 #line 1162 "parser.yy" 6698 6700 { 6699 6701 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6705 6707 6706 6708 /* Line 1806 of yacc.c */ 6707 #line 116 1"parser.yy"6709 #line 1167 "parser.yy" 6708 6710 { 6709 6711 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6715 6717 6716 6718 /* Line 1806 of yacc.c */ 6717 #line 11 66"parser.yy"6719 #line 1172 "parser.yy" 6718 6720 { 6719 6721 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD ); … … 6725 6727 6726 6728 /* Line 1806 of yacc.c */ 6727 #line 11 77"parser.yy"6729 #line 1183 "parser.yy" 6728 6730 { 6729 6731 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6735 6737 6736 6738 /* Line 1806 of yacc.c */ 6737 #line 118 2"parser.yy"6739 #line 1188 "parser.yy" 6738 6740 { 6739 6741 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6745 6747 6746 6748 /* Line 1806 of yacc.c */ 6747 #line 11 87"parser.yy"6749 #line 1193 "parser.yy" 6748 6750 { 6749 6751 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6755 6757 6756 6758 /* Line 1806 of yacc.c */ 6757 #line 119 2"parser.yy"6759 #line 1198 "parser.yy" 6758 6760 { 6759 6761 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6765 6767 6766 6768 /* Line 1806 of yacc.c */ 6767 #line 1 197"parser.yy"6769 #line 1203 "parser.yy" 6768 6770 { 6769 6771 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6775 6777 6776 6778 /* Line 1806 of yacc.c */ 6777 #line 12 06"parser.yy"6779 #line 1212 "parser.yy" 6778 6780 { 6779 6781 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD ); … … 6785 6787 6786 6788 /* Line 1806 of yacc.c */ 6787 #line 121 1"parser.yy"6789 #line 1217 "parser.yy" 6788 6790 { 6789 6791 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD ); … … 6795 6797 6796 6798 /* Line 1806 of yacc.c */ 6797 #line 12 28"parser.yy"6799 #line 1234 "parser.yy" 6798 6800 { 6799 6801 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6805 6807 6806 6808 /* Line 1806 of yacc.c */ 6807 #line 123 3"parser.yy"6809 #line 1239 "parser.yy" 6808 6810 { 6809 6811 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6815 6817 6816 6818 /* Line 1806 of yacc.c */ 6817 #line 12 55"parser.yy"6819 #line 1261 "parser.yy" 6818 6820 { (yyval.decl) = 0; } 6819 6821 break; … … 6822 6824 6823 6825 /* Line 1806 of yacc.c */ 6824 #line 12 67"parser.yy"6826 #line 1273 "parser.yy" 6825 6827 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6826 6828 break; … … 6829 6831 6830 6832 /* Line 1806 of yacc.c */ 6831 #line 12 78"parser.yy"6833 #line 1284 "parser.yy" 6832 6834 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); } 6833 6835 break; … … 6836 6838 6837 6839 /* Line 1806 of yacc.c */ 6838 #line 128 0"parser.yy"6840 #line 1286 "parser.yy" 6839 6841 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); } 6840 6842 break; … … 6843 6845 6844 6846 /* Line 1806 of yacc.c */ 6845 #line 128 2"parser.yy"6847 #line 1288 "parser.yy" 6846 6848 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); } 6847 6849 break; … … 6850 6852 6851 6853 /* Line 1806 of yacc.c */ 6852 #line 12 84"parser.yy"6854 #line 1290 "parser.yy" 6853 6855 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); } 6854 6856 break; … … 6857 6859 6858 6860 /* Line 1806 of yacc.c */ 6859 #line 12 86"parser.yy"6861 #line 1292 "parser.yy" 6860 6862 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); } 6861 6863 break; … … 6864 6866 6865 6867 /* Line 1806 of yacc.c */ 6866 #line 12 88"parser.yy"6868 #line 1294 "parser.yy" 6867 6869 { 6868 6870 typedefTable.enterScope(); … … 6873 6875 6874 6876 /* Line 1806 of yacc.c */ 6875 #line 129 2"parser.yy"6877 #line 1298 "parser.yy" 6876 6878 { 6877 6879 typedefTable.leaveScope(); … … 6883 6885 6884 6886 /* Line 1806 of yacc.c */ 6885 #line 130 1"parser.yy"6887 #line 1307 "parser.yy" 6886 6888 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6887 6889 break; … … 6890 6892 6891 6893 /* Line 1806 of yacc.c */ 6892 #line 130 3"parser.yy"6894 #line 1309 "parser.yy" 6893 6895 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6894 6896 break; … … 6897 6899 6898 6900 /* Line 1806 of yacc.c */ 6899 #line 13 14"parser.yy"6901 #line 1320 "parser.yy" 6900 6902 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6901 6903 break; … … 6904 6906 6905 6907 /* Line 1806 of yacc.c */ 6906 #line 132 3"parser.yy"6908 #line 1329 "parser.yy" 6907 6909 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); } 6908 6910 break; … … 6911 6913 6912 6914 /* Line 1806 of yacc.c */ 6913 #line 13 25"parser.yy"6915 #line 1331 "parser.yy" 6914 6916 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); } 6915 6917 break; … … 6918 6920 6919 6921 /* Line 1806 of yacc.c */ 6920 #line 13 27"parser.yy"6922 #line 1333 "parser.yy" 6921 6923 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); } 6922 6924 break; … … 6925 6927 6926 6928 /* Line 1806 of yacc.c */ 6927 #line 13 29"parser.yy"6929 #line 1335 "parser.yy" 6928 6930 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); } 6929 6931 break; … … 6932 6934 6933 6935 /* Line 1806 of yacc.c */ 6934 #line 133 1"parser.yy"6936 #line 1337 "parser.yy" 6935 6937 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); } 6936 6938 break; … … 6939 6941 6940 6942 /* Line 1806 of yacc.c */ 6941 #line 133 3"parser.yy"6943 #line 1339 "parser.yy" 6942 6944 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); } 6943 6945 break; … … 6946 6948 6947 6949 /* Line 1806 of yacc.c */ 6948 #line 13 35"parser.yy"6950 #line 1341 "parser.yy" 6949 6951 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); } 6950 6952 break; … … 6953 6955 6954 6956 /* Line 1806 of yacc.c */ 6955 #line 13 37"parser.yy"6957 #line 1343 "parser.yy" 6956 6958 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); } 6957 6959 break; … … 6960 6962 6961 6963 /* Line 1806 of yacc.c */ 6962 #line 134 2"parser.yy"6964 #line 1348 "parser.yy" 6963 6965 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); } 6964 6966 break; … … 6967 6969 6968 6970 /* Line 1806 of yacc.c */ 6969 #line 13 44"parser.yy"6971 #line 1350 "parser.yy" 6970 6972 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); } 6971 6973 break; … … 6974 6976 6975 6977 /* Line 1806 of yacc.c */ 6976 #line 13 46"parser.yy"6978 #line 1352 "parser.yy" 6977 6979 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); } 6978 6980 break; … … 6981 6983 6982 6984 /* Line 1806 of yacc.c */ 6983 #line 13 48"parser.yy"6985 #line 1354 "parser.yy" 6984 6986 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); } 6985 6987 break; … … 6988 6990 6989 6991 /* Line 1806 of yacc.c */ 6990 #line 135 0"parser.yy"6992 #line 1356 "parser.yy" 6991 6993 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); } 6992 6994 break; … … 6995 6997 6996 6998 /* Line 1806 of yacc.c */ 6997 #line 135 2"parser.yy"6999 #line 1358 "parser.yy" 6998 7000 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); } 6999 7001 break; … … 7002 7004 7003 7005 /* Line 1806 of yacc.c */ 7004 #line 13 54"parser.yy"7006 #line 1360 "parser.yy" 7005 7007 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); } 7006 7008 break; … … 7009 7011 7010 7012 /* Line 1806 of yacc.c */ 7011 #line 13 56"parser.yy"7013 #line 1362 "parser.yy" 7012 7014 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); } 7013 7015 break; … … 7016 7018 7017 7019 /* Line 1806 of yacc.c */ 7018 #line 13 58"parser.yy"7020 #line 1364 "parser.yy" 7019 7021 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); } 7020 7022 break; … … 7023 7025 7024 7026 /* Line 1806 of yacc.c */ 7025 #line 136 0"parser.yy"7027 #line 1366 "parser.yy" 7026 7028 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); } 7027 7029 break; … … 7030 7032 7031 7033 /* Line 1806 of yacc.c */ 7032 #line 136 2"parser.yy"7034 #line 1368 "parser.yy" 7033 7035 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); } 7034 7036 break; … … 7037 7039 7038 7040 /* Line 1806 of yacc.c */ 7039 #line 13 64"parser.yy"7041 #line 1370 "parser.yy" 7040 7042 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); } 7041 7043 break; … … 7044 7046 7045 7047 /* Line 1806 of yacc.c */ 7046 #line 13 66"parser.yy"7048 #line 1372 "parser.yy" 7047 7049 { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); } 7048 7050 break; … … 7051 7053 7052 7054 /* Line 1806 of yacc.c */ 7053 #line 137 3"parser.yy"7055 #line 1379 "parser.yy" 7054 7056 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7055 7057 break; … … 7058 7060 7059 7061 /* Line 1806 of yacc.c */ 7060 #line 13 75"parser.yy"7062 #line 1381 "parser.yy" 7061 7063 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7062 7064 break; … … 7065 7067 7066 7068 /* Line 1806 of yacc.c */ 7067 #line 13 77"parser.yy"7069 #line 1383 "parser.yy" 7068 7070 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 7069 7071 break; … … 7072 7074 7073 7075 /* Line 1806 of yacc.c */ 7074 #line 13 79"parser.yy"7076 #line 1385 "parser.yy" 7075 7077 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); } 7076 7078 break; … … 7079 7081 7080 7082 /* Line 1806 of yacc.c */ 7081 #line 13 85"parser.yy"7083 #line 1391 "parser.yy" 7082 7084 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 7083 7085 break; … … 7086 7088 7087 7089 /* Line 1806 of yacc.c */ 7088 #line 139 2"parser.yy"7090 #line 1398 "parser.yy" 7089 7091 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7090 7092 break; … … 7093 7095 7094 7096 /* Line 1806 of yacc.c */ 7095 #line 1 394"parser.yy"7097 #line 1400 "parser.yy" 7096 7098 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7097 7099 break; … … 7100 7102 7101 7103 /* Line 1806 of yacc.c */ 7102 #line 1 396"parser.yy"7104 #line 1402 "parser.yy" 7103 7105 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); } 7104 7106 break; … … 7107 7109 7108 7110 /* Line 1806 of yacc.c */ 7109 #line 140 1"parser.yy"7111 #line 1407 "parser.yy" 7110 7112 { (yyval.decl) = (yyvsp[(3) - (4)].decl); } 7111 7113 break; … … 7114 7116 7115 7117 /* Line 1806 of yacc.c */ 7116 #line 140 3"parser.yy"7118 #line 1409 "parser.yy" 7117 7119 { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); } 7118 7120 break; … … 7121 7123 7122 7124 /* Line 1806 of yacc.c */ 7123 #line 14 05"parser.yy"7125 #line 1411 "parser.yy" 7124 7126 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); } 7125 7127 break; … … 7128 7130 7129 7131 /* Line 1806 of yacc.c */ 7130 #line 14 07"parser.yy"7132 #line 1413 "parser.yy" 7131 7133 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 7132 7134 break; … … 7135 7137 7136 7138 /* Line 1806 of yacc.c */ 7137 #line 141 3"parser.yy"7139 #line 1419 "parser.yy" 7138 7140 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7139 7141 break; … … 7142 7144 7143 7145 /* Line 1806 of yacc.c */ 7144 #line 14 15"parser.yy"7146 #line 1421 "parser.yy" 7145 7147 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7146 7148 break; … … 7149 7151 7150 7152 /* Line 1806 of yacc.c */ 7151 #line 14 17"parser.yy"7153 #line 1423 "parser.yy" 7152 7154 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 7153 7155 break; … … 7156 7158 7157 7159 /* Line 1806 of yacc.c */ 7158 #line 142 3"parser.yy"7160 #line 1429 "parser.yy" 7159 7161 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7160 7162 break; … … 7163 7165 7164 7166 /* Line 1806 of yacc.c */ 7165 #line 14 25"parser.yy"7167 #line 1431 "parser.yy" 7166 7168 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7167 7169 break; … … 7170 7172 7171 7173 /* Line 1806 of yacc.c */ 7172 #line 143 1"parser.yy"7174 #line 1437 "parser.yy" 7173 7175 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7174 7176 break; … … 7177 7179 7178 7180 /* Line 1806 of yacc.c */ 7179 #line 143 3"parser.yy"7181 #line 1439 "parser.yy" 7180 7182 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7181 7183 break; … … 7184 7186 7185 7187 /* Line 1806 of yacc.c */ 7186 #line 14 35"parser.yy"7188 #line 1441 "parser.yy" 7187 7189 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 7188 7190 break; … … 7191 7193 7192 7194 /* Line 1806 of yacc.c */ 7193 #line 144 0"parser.yy"7195 #line 1446 "parser.yy" 7194 7196 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); } 7195 7197 break; … … 7198 7200 7199 7201 /* Line 1806 of yacc.c */ 7200 #line 144 2"parser.yy"7202 #line 1448 "parser.yy" 7201 7203 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7202 7204 break; … … 7205 7207 7206 7208 /* Line 1806 of yacc.c */ 7207 #line 14 44"parser.yy"7209 #line 1450 "parser.yy" 7208 7210 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7209 7211 break; … … 7212 7214 7213 7215 /* Line 1806 of yacc.c */ 7214 #line 14 54"parser.yy"7216 #line 1460 "parser.yy" 7215 7217 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl), true ); } 7216 7218 break; … … 7219 7221 7220 7222 /* Line 1806 of yacc.c */ 7221 #line 14 56"parser.yy"7223 #line 1462 "parser.yy" 7222 7224 { 7223 7225 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); … … 7229 7231 7230 7232 /* Line 1806 of yacc.c */ 7231 #line 146 1"parser.yy"7233 #line 1467 "parser.yy" 7232 7234 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 7233 7235 break; … … 7236 7238 7237 7239 /* Line 1806 of yacc.c */ 7238 #line 146 3"parser.yy"7240 #line 1469 "parser.yy" 7239 7241 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), 0, (yyvsp[(5) - (6)].decl), true ); } 7240 7242 break; … … 7243 7245 7244 7246 /* Line 1806 of yacc.c */ 7245 #line 14 65"parser.yy"7247 #line 1471 "parser.yy" 7246 7248 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); } 7247 7249 break; … … 7250 7252 7251 7253 /* Line 1806 of yacc.c */ 7252 #line 14 67"parser.yy"7254 #line 1473 "parser.yy" 7253 7255 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 7254 7256 break; … … 7257 7259 7258 7260 /* Line 1806 of yacc.c */ 7259 #line 147 2"parser.yy"7261 #line 1478 "parser.yy" 7260 7262 { (yyval.aggKey) = DeclarationNode::Struct; } 7261 7263 break; … … 7264 7266 7265 7267 /* Line 1806 of yacc.c */ 7266 #line 14 74"parser.yy"7268 #line 1480 "parser.yy" 7267 7269 { (yyval.aggKey) = DeclarationNode::Union; } 7268 7270 break; … … 7271 7273 7272 7274 /* Line 1806 of yacc.c */ 7273 #line 14 79"parser.yy"7275 #line 1485 "parser.yy" 7274 7276 { (yyval.decl) = 0; } 7275 7277 break; … … 7278 7280 7279 7281 /* Line 1806 of yacc.c */ 7280 #line 148 1"parser.yy"7282 #line 1487 "parser.yy" 7281 7283 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 7282 7284 break; … … 7285 7287 7286 7288 /* Line 1806 of yacc.c */ 7287 #line 14 87"parser.yy"7289 #line 1493 "parser.yy" 7288 7290 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); } 7289 7291 break; … … 7292 7294 7293 7295 /* Line 1806 of yacc.c */ 7294 #line 149 0"parser.yy"7296 #line 1496 "parser.yy" 7295 7297 { // mark all fields in list 7296 7298 for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_link() ) … … 7303 7305 7304 7306 /* Line 1806 of yacc.c */ 7305 #line 150 0"parser.yy"7307 #line 1506 "parser.yy" 7306 7308 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); } 7307 7309 break; … … 7310 7312 7311 7313 /* Line 1806 of yacc.c */ 7312 #line 150 2"parser.yy"7314 #line 1508 "parser.yy" 7313 7315 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); } 7314 7316 break; … … 7317 7319 7318 7320 /* Line 1806 of yacc.c */ 7319 #line 15 04"parser.yy"7321 #line 1510 "parser.yy" 7320 7322 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); } 7321 7323 break; … … 7324 7326 7325 7327 /* Line 1806 of yacc.c */ 7326 #line 15 09"parser.yy"7328 #line 1515 "parser.yy" 7327 7329 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7328 7330 break; … … 7331 7333 7332 7334 /* Line 1806 of yacc.c */ 7333 #line 151 1"parser.yy"7335 #line 1517 "parser.yy" 7334 7336 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); } 7335 7337 break; … … 7338 7340 7339 7341 /* Line 1806 of yacc.c */ 7340 #line 15 16"parser.yy"7342 #line 1522 "parser.yy" 7341 7343 { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ } 7342 7344 break; … … 7345 7347 7346 7348 /* Line 1806 of yacc.c */ 7347 #line 15 18"parser.yy"7349 #line 1524 "parser.yy" 7348 7350 { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); } 7349 7351 break; … … 7352 7354 7353 7355 /* Line 1806 of yacc.c */ 7354 #line 152 1"parser.yy"7356 #line 1527 "parser.yy" 7355 7357 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 7356 7358 break; … … 7359 7361 7360 7362 /* Line 1806 of yacc.c */ 7361 #line 15 24"parser.yy"7363 #line 1530 "parser.yy" 7362 7364 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 7363 7365 break; … … 7366 7368 7367 7369 /* Line 1806 of yacc.c */ 7368 #line 153 0"parser.yy"7370 #line 1536 "parser.yy" 7369 7371 { (yyval.en) = 0; } 7370 7372 break; … … 7373 7375 7374 7376 /* Line 1806 of yacc.c */ 7375 #line 153 2"parser.yy"7377 #line 1538 "parser.yy" 7376 7378 { (yyval.en) = (yyvsp[(1) - (1)].en); } 7377 7379 break; … … 7380 7382 7381 7383 /* Line 1806 of yacc.c */ 7382 #line 15 37"parser.yy"7384 #line 1543 "parser.yy" 7383 7385 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7384 7386 break; … … 7387 7389 7388 7390 /* Line 1806 of yacc.c */ 7389 #line 15 46"parser.yy"7391 #line 1552 "parser.yy" 7390 7392 { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); } 7391 7393 break; … … 7394 7396 7395 7397 /* Line 1806 of yacc.c */ 7396 #line 15 48"parser.yy"7398 #line 1554 "parser.yy" 7397 7399 { 7398 7400 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); … … 7404 7406 7405 7407 /* Line 1806 of yacc.c */ 7406 #line 155 3"parser.yy"7408 #line 1559 "parser.yy" 7407 7409 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 7408 7410 break; … … 7411 7413 7412 7414 /* Line 1806 of yacc.c */ 7413 #line 15 55"parser.yy"7415 #line 1561 "parser.yy" 7414 7416 { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); } 7415 7417 break; … … 7418 7420 7419 7421 /* Line 1806 of yacc.c */ 7420 #line 156 0"parser.yy"7422 #line 1566 "parser.yy" 7421 7423 { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); } 7422 7424 break; … … 7425 7427 7426 7428 /* Line 1806 of yacc.c */ 7427 #line 156 2"parser.yy"7429 #line 1568 "parser.yy" 7428 7430 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); } 7429 7431 break; … … 7432 7434 7433 7435 /* Line 1806 of yacc.c */ 7434 #line 15 67"parser.yy"7436 #line 1573 "parser.yy" 7435 7437 { (yyval.en) = 0; } 7436 7438 break; … … 7439 7441 7440 7442 /* Line 1806 of yacc.c */ 7441 #line 15 69"parser.yy"7443 #line 1575 "parser.yy" 7442 7444 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7443 7445 break; … … 7446 7448 7447 7449 /* Line 1806 of yacc.c */ 7448 #line 15 76"parser.yy"7450 #line 1582 "parser.yy" 7449 7451 { (yyval.decl) = 0; } 7450 7452 break; … … 7453 7455 7454 7456 /* Line 1806 of yacc.c */ 7455 #line 15 84"parser.yy"7457 #line 1590 "parser.yy" 7456 7458 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7457 7459 break; … … 7460 7462 7461 7463 /* Line 1806 of yacc.c */ 7462 #line 15 86"parser.yy"7464 #line 1592 "parser.yy" 7463 7465 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7464 7466 break; … … 7467 7469 7468 7470 /* Line 1806 of yacc.c */ 7469 #line 15 88"parser.yy"7471 #line 1594 "parser.yy" 7470 7472 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7471 7473 break; … … 7474 7476 7475 7477 /* Line 1806 of yacc.c */ 7476 #line 1 596"parser.yy"7478 #line 1602 "parser.yy" 7477 7479 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7478 7480 break; … … 7481 7483 7482 7484 /* Line 1806 of yacc.c */ 7483 #line 1 598"parser.yy"7485 #line 1604 "parser.yy" 7484 7486 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7485 7487 break; … … 7488 7490 7489 7491 /* Line 1806 of yacc.c */ 7490 #line 160 0"parser.yy"7492 #line 1606 "parser.yy" 7491 7493 { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); } 7492 7494 break; … … 7495 7497 7496 7498 /* Line 1806 of yacc.c */ 7497 #line 16 06"parser.yy"7499 #line 1612 "parser.yy" 7498 7500 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7499 7501 break; … … 7502 7504 7503 7505 /* Line 1806 of yacc.c */ 7504 #line 161 1"parser.yy"7506 #line 1617 "parser.yy" 7505 7507 { (yyval.decl) = 0; } 7506 7508 break; … … 7509 7511 7510 7512 /* Line 1806 of yacc.c */ 7511 #line 16 18"parser.yy"7513 #line 1624 "parser.yy" 7512 7514 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7513 7515 break; … … 7516 7518 7517 7519 /* Line 1806 of yacc.c */ 7518 #line 16 25"parser.yy"7520 #line 1631 "parser.yy" 7519 7521 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7520 7522 break; … … 7523 7525 7524 7526 /* Line 1806 of yacc.c */ 7525 #line 16 27"parser.yy"7527 #line 1633 "parser.yy" 7526 7528 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7527 7529 break; … … 7530 7532 7531 7533 /* Line 1806 of yacc.c */ 7532 #line 16 36"parser.yy"7534 #line 1642 "parser.yy" 7533 7535 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 7534 7536 break; … … 7537 7539 7538 7540 /* Line 1806 of yacc.c */ 7539 #line 16 39"parser.yy"7541 #line 1645 "parser.yy" 7540 7542 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 7541 7543 break; … … 7544 7546 7545 7547 /* Line 1806 of yacc.c */ 7546 #line 164 1"parser.yy"7548 #line 1647 "parser.yy" 7547 7549 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); } 7548 7550 break; … … 7551 7553 7552 7554 /* Line 1806 of yacc.c */ 7553 #line 165 1"parser.yy"7555 #line 1657 "parser.yy" 7554 7556 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7555 7557 break; … … 7558 7560 7559 7561 /* Line 1806 of yacc.c */ 7560 #line 16 57"parser.yy"7562 #line 1663 "parser.yy" 7561 7563 { 7562 7564 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7568 7570 7569 7571 /* Line 1806 of yacc.c */ 7570 #line 166 2"parser.yy"7572 #line 1668 "parser.yy" 7571 7573 { 7572 7574 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7578 7580 7579 7581 /* Line 1806 of yacc.c */ 7580 #line 167 1"parser.yy"7582 #line 1677 "parser.yy" 7581 7583 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7582 7584 break; … … 7585 7587 7586 7588 /* Line 1806 of yacc.c */ 7587 #line 168 0"parser.yy"7589 #line 1686 "parser.yy" 7588 7590 { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); } 7589 7591 break; … … 7592 7594 7593 7595 /* Line 1806 of yacc.c */ 7594 #line 168 2"parser.yy"7596 #line 1688 "parser.yy" 7595 7597 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); } 7596 7598 break; … … 7599 7601 7600 7602 /* Line 1806 of yacc.c */ 7601 #line 17 07"parser.yy"7603 #line 1713 "parser.yy" 7602 7604 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7603 7605 break; … … 7606 7608 7607 7609 /* Line 1806 of yacc.c */ 7608 #line 17 15"parser.yy"7610 #line 1721 "parser.yy" 7609 7611 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7610 7612 break; … … 7613 7615 7614 7616 /* Line 1806 of yacc.c */ 7615 #line 172 0"parser.yy"7617 #line 1726 "parser.yy" 7616 7618 { (yyval.in) = 0; } 7617 7619 break; … … 7620 7622 7621 7623 /* Line 1806 of yacc.c */ 7622 #line 172 2"parser.yy"7624 #line 1728 "parser.yy" 7623 7625 { (yyval.in) = (yyvsp[(2) - (2)].in); } 7624 7626 break; … … 7627 7629 7628 7630 /* Line 1806 of yacc.c */ 7629 #line 17 24"parser.yy"7631 #line 1730 "parser.yy" 7630 7632 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); } 7631 7633 break; … … 7634 7636 7635 7637 /* Line 1806 of yacc.c */ 7636 #line 17 28"parser.yy"7638 #line 1734 "parser.yy" 7637 7639 { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); } 7638 7640 break; … … 7641 7643 7642 7644 /* Line 1806 of yacc.c */ 7643 #line 17 29"parser.yy"7645 #line 1735 "parser.yy" 7644 7646 { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); } 7645 7647 break; … … 7648 7650 7649 7651 /* Line 1806 of yacc.c */ 7650 #line 17 34"parser.yy"7652 #line 1740 "parser.yy" 7651 7653 { (yyval.in) = 0; } 7652 7654 break; … … 7655 7657 7656 7658 /* Line 1806 of yacc.c */ 7657 #line 17 36"parser.yy"7659 #line 1742 "parser.yy" 7658 7660 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); } 7659 7661 break; … … 7662 7664 7663 7665 /* Line 1806 of yacc.c */ 7664 #line 17 37"parser.yy"7666 #line 1743 "parser.yy" 7665 7667 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link( (yyvsp[(3) - (3)].in) ) ); } 7666 7668 break; … … 7669 7671 7670 7672 /* Line 1806 of yacc.c */ 7671 #line 17 39"parser.yy"7673 #line 1745 "parser.yy" 7672 7674 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_link( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); } 7673 7675 break; … … 7676 7678 7677 7679 /* Line 1806 of yacc.c */ 7678 #line 17 55"parser.yy"7680 #line 1761 "parser.yy" 7679 7681 { (yyval.en) = new VarRefNode( (yyvsp[(1) - (2)].tok) ); } 7680 7682 break; … … 7683 7685 7684 7686 /* Line 1806 of yacc.c */ 7685 #line 176 1"parser.yy"7687 #line 1767 "parser.yy" 7686 7688 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) )); } 7687 7689 break; … … 7690 7692 7691 7693 /* Line 1806 of yacc.c */ 7692 #line 17 69"parser.yy"7694 #line 1775 "parser.yy" 7693 7695 { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(1) - (1)].tok) ) ); } 7694 7696 break; … … 7697 7699 7698 7700 /* Line 1806 of yacc.c */ 7699 #line 177 1"parser.yy"7701 #line 1777 "parser.yy" 7700 7702 { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(2) - (2)].tok) ) ); } 7701 7703 break; … … 7704 7706 7705 7707 /* Line 1806 of yacc.c */ 7706 #line 17 74"parser.yy"7708 #line 1780 "parser.yy" 7707 7709 { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); } 7708 7710 break; … … 7711 7713 7712 7714 /* Line 1806 of yacc.c */ 7713 #line 17 76"parser.yy"7715 #line 1782 "parser.yy" 7714 7716 { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); } 7715 7717 break; … … 7718 7720 7719 7721 /* Line 1806 of yacc.c */ 7720 #line 17 78"parser.yy"7721 { (yyval.en) = new DesignatorNode( new CompositeExprNode ( new OperatorNode( OperatorNode::Range ), (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ), true ); }7722 #line 1784 "parser.yy" 7723 { (yyval.en) = new DesignatorNode( new CompositeExprNode2( build_opr2( OperatorNode::Range, (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ), true ); } 7722 7724 break; 7723 7725 … … 7725 7727 7726 7728 /* Line 1806 of yacc.c */ 7727 #line 178 0"parser.yy"7729 #line 1786 "parser.yy" 7728 7730 { (yyval.en) = new DesignatorNode( (yyvsp[(4) - (6)].en) ); } 7729 7731 break; … … 7732 7734 7733 7735 /* Line 1806 of yacc.c */ 7734 #line 18 04"parser.yy"7736 #line 1810 "parser.yy" 7735 7737 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7736 7738 break; … … 7739 7741 7740 7742 /* Line 1806 of yacc.c */ 7741 #line 18 06"parser.yy"7743 #line 1812 "parser.yy" 7742 7744 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7743 7745 break; … … 7746 7748 7747 7749 /* Line 1806 of yacc.c */ 7748 #line 18 08"parser.yy"7750 #line 1814 "parser.yy" 7749 7751 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 7750 7752 break; … … 7753 7755 7754 7756 /* Line 1806 of yacc.c */ 7755 #line 18 14"parser.yy"7757 #line 1820 "parser.yy" 7756 7758 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7757 7759 break; … … 7760 7762 7761 7763 /* Line 1806 of yacc.c */ 7762 #line 18 16"parser.yy"7764 #line 1822 "parser.yy" 7763 7765 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7764 7766 break; … … 7767 7769 7768 7770 /* Line 1806 of yacc.c */ 7769 #line 182 1"parser.yy"7771 #line 1827 "parser.yy" 7770 7772 { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 7771 7773 break; … … 7774 7776 7775 7777 /* Line 1806 of yacc.c */ 7776 #line 18 27"parser.yy"7778 #line 1833 "parser.yy" 7777 7779 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); } 7778 7780 break; … … 7781 7783 7782 7784 /* Line 1806 of yacc.c */ 7783 #line 183 2"parser.yy"7785 #line 1838 "parser.yy" 7784 7786 { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); } 7785 7787 break; … … 7788 7790 7789 7791 /* Line 1806 of yacc.c */ 7790 #line 18 34"parser.yy"7792 #line 1840 "parser.yy" 7791 7793 { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); } 7792 7794 break; … … 7795 7797 7796 7798 /* Line 1806 of yacc.c */ 7797 #line 184 0"parser.yy"7799 #line 1846 "parser.yy" 7798 7800 { (yyval.tclass) = DeclarationNode::Type; } 7799 7801 break; … … 7802 7804 7803 7805 /* Line 1806 of yacc.c */ 7804 #line 184 2"parser.yy"7806 #line 1848 "parser.yy" 7805 7807 { (yyval.tclass) = DeclarationNode::Ftype; } 7806 7808 break; … … 7809 7811 7810 7812 /* Line 1806 of yacc.c */ 7811 #line 18 44"parser.yy"7813 #line 1850 "parser.yy" 7812 7814 { (yyval.tclass) = DeclarationNode::Dtype; } 7813 7815 break; … … 7816 7818 7817 7819 /* Line 1806 of yacc.c */ 7818 #line 18 49"parser.yy"7820 #line 1855 "parser.yy" 7819 7821 { (yyval.decl) = 0; } 7820 7822 break; … … 7823 7825 7824 7826 /* Line 1806 of yacc.c */ 7825 #line 185 1"parser.yy"7827 #line 1857 "parser.yy" 7826 7828 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 7827 7829 break; … … 7830 7832 7831 7833 /* Line 1806 of yacc.c */ 7832 #line 18 56"parser.yy"7834 #line 1862 "parser.yy" 7833 7835 { 7834 7836 typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) ); … … 7840 7842 7841 7843 /* Line 1806 of yacc.c */ 7842 #line 186 1"parser.yy"7844 #line 1867 "parser.yy" 7843 7845 { (yyval.decl) = (yyvsp[(4) - (5)].decl); } 7844 7846 break; … … 7847 7849 7848 7850 /* Line 1806 of yacc.c */ 7849 #line 186 3"parser.yy"7851 #line 1869 "parser.yy" 7850 7852 { (yyval.decl) = 0; } 7851 7853 break; … … 7854 7856 7855 7857 /* Line 1806 of yacc.c */ 7856 #line 18 68"parser.yy"7858 #line 1874 "parser.yy" 7857 7859 { (yyval.en) = new TypeValueNode( (yyvsp[(1) - (1)].decl) ); } 7858 7860 break; … … 7861 7863 7862 7864 /* Line 1806 of yacc.c */ 7863 #line 187 1"parser.yy"7865 #line 1877 "parser.yy" 7864 7866 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( new TypeValueNode( (yyvsp[(3) - (3)].decl) ))); } 7865 7867 break; … … 7868 7870 7869 7871 /* Line 1806 of yacc.c */ 7870 #line 187 3"parser.yy"7872 #line 1879 "parser.yy" 7871 7873 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); } 7872 7874 break; … … 7875 7877 7876 7878 /* Line 1806 of yacc.c */ 7877 #line 18 78"parser.yy"7879 #line 1884 "parser.yy" 7878 7880 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 7879 7881 break; … … 7882 7884 7883 7885 /* Line 1806 of yacc.c */ 7884 #line 188 0"parser.yy"7886 #line 1886 "parser.yy" 7885 7887 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); } 7886 7888 break; … … 7889 7891 7890 7892 /* Line 1806 of yacc.c */ 7891 #line 188 2"parser.yy"7893 #line 1888 "parser.yy" 7892 7894 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); } 7893 7895 break; … … 7896 7898 7897 7899 /* Line 1806 of yacc.c */ 7898 #line 18 87"parser.yy"7900 #line 1893 "parser.yy" 7899 7901 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); } 7900 7902 break; … … 7903 7905 7904 7906 /* Line 1806 of yacc.c */ 7905 #line 18 89"parser.yy"7907 #line 1895 "parser.yy" 7906 7908 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); } 7907 7909 break; … … 7910 7912 7911 7913 /* Line 1806 of yacc.c */ 7912 #line 1 894"parser.yy"7914 #line 1900 "parser.yy" 7913 7915 { 7914 7916 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD ); … … 7920 7922 7921 7923 /* Line 1806 of yacc.c */ 7922 #line 1 899"parser.yy"7924 #line 1905 "parser.yy" 7923 7925 { 7924 7926 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG ); … … 7930 7932 7931 7933 /* Line 1806 of yacc.c */ 7932 #line 19 07"parser.yy"7934 #line 1913 "parser.yy" 7933 7935 { 7934 7936 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID ); … … 7940 7942 7941 7943 /* Line 1806 of yacc.c */ 7942 #line 191 2"parser.yy"7944 #line 1918 "parser.yy" 7943 7945 { 7944 7946 typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) ); … … 7950 7952 7951 7953 /* Line 1806 of yacc.c */ 7952 #line 19 17"parser.yy"7954 #line 1923 "parser.yy" 7953 7955 { 7954 7956 typedefTable.leaveTrait(); … … 7961 7963 7962 7964 /* Line 1806 of yacc.c */ 7963 #line 19 27"parser.yy"7965 #line 1933 "parser.yy" 7964 7966 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 7965 7967 break; … … 7968 7970 7969 7971 /* Line 1806 of yacc.c */ 7970 #line 19 37"parser.yy"7972 #line 1943 "parser.yy" 7971 7973 { 7972 7974 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7978 7980 7979 7981 /* Line 1806 of yacc.c */ 7980 #line 194 2"parser.yy"7982 #line 1948 "parser.yy" 7981 7983 { 7982 7984 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7988 7990 7989 7991 /* Line 1806 of yacc.c */ 7990 #line 19 47"parser.yy"7992 #line 1953 "parser.yy" 7991 7993 { 7992 7994 typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); … … 7998 8000 7999 8001 /* Line 1806 of yacc.c */ 8000 #line 19 55"parser.yy"8002 #line 1961 "parser.yy" 8001 8003 { 8002 8004 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 8008 8010 8009 8011 /* Line 1806 of yacc.c */ 8010 #line 196 0"parser.yy"8012 #line 1966 "parser.yy" 8011 8013 { 8012 8014 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 8018 8020 8019 8021 /* Line 1806 of yacc.c */ 8020 #line 197 0"parser.yy"8022 #line 1976 "parser.yy" 8021 8023 {} 8022 8024 break; … … 8025 8027 8026 8028 /* Line 1806 of yacc.c */ 8027 #line 197 2"parser.yy"8029 #line 1978 "parser.yy" 8028 8030 { 8029 8031 if ( theTree ) { … … 8038 8040 8039 8041 /* Line 1806 of yacc.c */ 8040 #line 19 84"parser.yy"8042 #line 1990 "parser.yy" 8041 8043 { (yyval.decl) = ( (yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); } 8042 8044 break; … … 8045 8047 8046 8048 /* Line 1806 of yacc.c */ 8047 #line 19 89"parser.yy"8049 #line 1995 "parser.yy" 8048 8050 { (yyval.decl) = 0; } 8049 8051 break; … … 8052 8054 8053 8055 /* Line 1806 of yacc.c */ 8054 #line 1997"parser.yy"8056 #line 2003 "parser.yy" 8055 8057 {} 8056 8058 break; … … 8059 8061 8060 8062 /* Line 1806 of yacc.c */ 8061 #line 1999"parser.yy"8063 #line 2005 "parser.yy" 8062 8064 { 8063 8065 linkageStack.push( linkage ); … … 8069 8071 8070 8072 /* Line 1806 of yacc.c */ 8071 #line 20 04"parser.yy"8073 #line 2010 "parser.yy" 8072 8074 { 8073 8075 linkage = linkageStack.top(); … … 8080 8082 8081 8083 /* Line 1806 of yacc.c */ 8082 #line 201 0"parser.yy"8084 #line 2016 "parser.yy" 8083 8085 { // mark all fields in list 8084 8086 for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_link() ) … … 8091 8093 8092 8094 /* Line 1806 of yacc.c */ 8093 #line 20 25"parser.yy"8095 #line 2031 "parser.yy" 8094 8096 { 8095 8097 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8102 8104 8103 8105 /* Line 1806 of yacc.c */ 8104 #line 203 1"parser.yy"8106 #line 2037 "parser.yy" 8105 8107 { 8106 8108 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8113 8115 8114 8116 /* Line 1806 of yacc.c */ 8115 #line 204 0"parser.yy"8117 #line 2046 "parser.yy" 8116 8118 { 8117 8119 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8124 8126 8125 8127 /* Line 1806 of yacc.c */ 8126 #line 20 46"parser.yy"8128 #line 2052 "parser.yy" 8127 8129 { 8128 8130 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8133 8135 8134 8136 case 537: 8135 8136 /* Line 1806 of yacc.c */8137 #line 2052 "parser.yy"8138 {8139 typedefTable.addToEnclosingScope( TypedefTable::ID );8140 typedefTable.leaveScope();8141 (yyval.decl) = (yyvsp[(2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addQualifiers( (yyvsp[(1) - (3)].decl) );8142 }8143 break;8144 8145 case 538:8146 8137 8147 8138 /* Line 1806 of yacc.c */ … … 8154 8145 break; 8155 8146 8147 case 538: 8148 8149 /* Line 1806 of yacc.c */ 8150 #line 2064 "parser.yy" 8151 { 8152 typedefTable.addToEnclosingScope( TypedefTable::ID ); 8153 typedefTable.leaveScope(); 8154 (yyval.decl) = (yyvsp[(2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addQualifiers( (yyvsp[(1) - (3)].decl) ); 8155 } 8156 break; 8157 8156 8158 case 539: 8157 8159 8158 8160 /* Line 1806 of yacc.c */ 8159 #line 20 64"parser.yy"8161 #line 2070 "parser.yy" 8160 8162 { 8161 8163 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8168 8170 8169 8171 /* Line 1806 of yacc.c */ 8170 #line 207 2"parser.yy"8172 #line 2078 "parser.yy" 8171 8173 { 8172 8174 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8179 8181 8180 8182 /* Line 1806 of yacc.c */ 8181 #line 20 78"parser.yy"8183 #line 2084 "parser.yy" 8182 8184 { 8183 8185 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8190 8192 8191 8193 /* Line 1806 of yacc.c */ 8192 #line 20 86"parser.yy"8194 #line 2092 "parser.yy" 8193 8195 { 8194 8196 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8201 8203 8202 8204 /* Line 1806 of yacc.c */ 8203 #line 209 2"parser.yy"8205 #line 2098 "parser.yy" 8204 8206 { 8205 8207 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8212 8214 8213 8215 /* Line 1806 of yacc.c */ 8214 #line 21 07"parser.yy"8215 { (yyval.en) = new CompositeExprNode ( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }8216 #line 2113 "parser.yy" 8217 { (yyval.en) = new CompositeExprNode2( build_opr2( OperatorNode::Range, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 8216 8218 break; 8217 8219 … … 8219 8221 8220 8222 /* Line 1806 of yacc.c */ 8221 #line 21 17"parser.yy"8223 #line 2123 "parser.yy" 8222 8224 { (yyval.decl) = 0; } 8223 8225 break; … … 8226 8228 8227 8229 /* Line 1806 of yacc.c */ 8228 #line 21 24"parser.yy"8230 #line 2130 "parser.yy" 8229 8231 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 8230 8232 break; … … 8233 8235 8234 8236 /* Line 1806 of yacc.c */ 8235 #line 213 0"parser.yy"8237 #line 2136 "parser.yy" 8236 8238 { (yyval.decl) = 0; } 8237 8239 break; … … 8240 8242 8241 8243 /* Line 1806 of yacc.c */ 8242 #line 21 45"parser.yy"8244 #line 2151 "parser.yy" 8243 8245 {} 8244 8246 break; … … 8247 8249 8248 8250 /* Line 1806 of yacc.c */ 8249 #line 21 46"parser.yy"8251 #line 2152 "parser.yy" 8250 8252 {} 8251 8253 break; … … 8254 8256 8255 8257 /* Line 1806 of yacc.c */ 8256 #line 21 47"parser.yy"8258 #line 2153 "parser.yy" 8257 8259 {} 8258 8260 break; … … 8261 8263 8262 8264 /* Line 1806 of yacc.c */ 8263 #line 21 48"parser.yy"8265 #line 2154 "parser.yy" 8264 8266 {} 8265 8267 break; … … 8268 8270 8269 8271 /* Line 1806 of yacc.c */ 8270 #line 218 3"parser.yy"8272 #line 2189 "parser.yy" 8271 8273 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8272 8274 break; … … 8275 8277 8276 8278 /* Line 1806 of yacc.c */ 8277 #line 21 86"parser.yy"8279 #line 2192 "parser.yy" 8278 8280 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8279 8281 break; … … 8282 8284 8283 8285 /* Line 1806 of yacc.c */ 8284 #line 21 88"parser.yy"8286 #line 2194 "parser.yy" 8285 8287 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8286 8288 break; … … 8289 8291 8290 8292 /* Line 1806 of yacc.c */ 8291 #line 219 3"parser.yy"8293 #line 2199 "parser.yy" 8292 8294 { 8293 8295 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8299 8301 8300 8302 /* Line 1806 of yacc.c */ 8301 #line 2 198"parser.yy"8303 #line 2204 "parser.yy" 8302 8304 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8303 8305 break; … … 8306 8308 8307 8309 /* Line 1806 of yacc.c */ 8308 #line 220 3"parser.yy"8310 #line 2209 "parser.yy" 8309 8311 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8310 8312 break; … … 8313 8315 8314 8316 /* Line 1806 of yacc.c */ 8315 #line 22 05"parser.yy"8317 #line 2211 "parser.yy" 8316 8318 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8317 8319 break; … … 8320 8322 8321 8323 /* Line 1806 of yacc.c */ 8322 #line 22 07"parser.yy"8324 #line 2213 "parser.yy" 8323 8325 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8324 8326 break; … … 8327 8329 8328 8330 /* Line 1806 of yacc.c */ 8329 #line 221 2"parser.yy"8331 #line 2218 "parser.yy" 8330 8332 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8331 8333 break; … … 8334 8336 8335 8337 /* Line 1806 of yacc.c */ 8336 #line 22 14"parser.yy"8338 #line 2220 "parser.yy" 8337 8339 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8338 8340 break; … … 8341 8343 8342 8344 /* Line 1806 of yacc.c */ 8343 #line 22 16"parser.yy"8345 #line 2222 "parser.yy" 8344 8346 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8345 8347 break; … … 8348 8350 8349 8351 /* Line 1806 of yacc.c */ 8350 #line 22 18"parser.yy"8352 #line 2224 "parser.yy" 8351 8353 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8352 8354 break; … … 8355 8357 8356 8358 /* Line 1806 of yacc.c */ 8357 #line 222 3"parser.yy"8359 #line 2229 "parser.yy" 8358 8360 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8359 8361 break; … … 8362 8364 8363 8365 /* Line 1806 of yacc.c */ 8364 #line 22 25"parser.yy"8366 #line 2231 "parser.yy" 8365 8367 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8366 8368 break; … … 8369 8371 8370 8372 /* Line 1806 of yacc.c */ 8371 #line 22 34"parser.yy"8373 #line 2240 "parser.yy" 8372 8374 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8373 8375 break; … … 8376 8378 8377 8379 /* Line 1806 of yacc.c */ 8378 #line 22 37"parser.yy"8380 #line 2243 "parser.yy" 8379 8381 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8380 8382 break; … … 8383 8385 8384 8386 /* Line 1806 of yacc.c */ 8385 #line 224 2"parser.yy"8387 #line 2248 "parser.yy" 8386 8388 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8387 8389 break; … … 8390 8392 8391 8393 /* Line 1806 of yacc.c */ 8392 #line 22 44"parser.yy"8394 #line 2250 "parser.yy" 8393 8395 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8394 8396 break; … … 8397 8399 8398 8400 /* Line 1806 of yacc.c */ 8399 #line 22 46"parser.yy"8401 #line 2252 "parser.yy" 8400 8402 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8401 8403 break; … … 8404 8406 8405 8407 /* Line 1806 of yacc.c */ 8406 #line 225 1"parser.yy"8408 #line 2257 "parser.yy" 8407 8409 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8408 8410 break; … … 8411 8413 8412 8414 /* Line 1806 of yacc.c */ 8413 #line 225 3"parser.yy"8415 #line 2259 "parser.yy" 8414 8416 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8415 8417 break; … … 8418 8420 8419 8421 /* Line 1806 of yacc.c */ 8420 #line 22 55"parser.yy"8422 #line 2261 "parser.yy" 8421 8423 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8422 8424 break; … … 8425 8427 8426 8428 /* Line 1806 of yacc.c */ 8427 #line 226 0"parser.yy"8429 #line 2266 "parser.yy" 8428 8430 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8429 8431 break; … … 8432 8434 8433 8435 /* Line 1806 of yacc.c */ 8434 #line 226 2"parser.yy"8436 #line 2268 "parser.yy" 8435 8437 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8436 8438 break; … … 8439 8441 8440 8442 /* Line 1806 of yacc.c */ 8441 #line 22 64"parser.yy"8443 #line 2270 "parser.yy" 8442 8444 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8443 8445 break; … … 8446 8448 8447 8449 /* Line 1806 of yacc.c */ 8448 #line 22 79"parser.yy"8450 #line 2285 "parser.yy" 8449 8451 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); } 8450 8452 break; … … 8453 8455 8454 8456 /* Line 1806 of yacc.c */ 8455 #line 228 1"parser.yy"8457 #line 2287 "parser.yy" 8456 8458 { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); } 8457 8459 break; … … 8460 8462 8461 8463 /* Line 1806 of yacc.c */ 8462 #line 228 3"parser.yy"8464 #line 2289 "parser.yy" 8463 8465 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8464 8466 break; … … 8467 8469 8468 8470 /* Line 1806 of yacc.c */ 8469 #line 22 88"parser.yy"8471 #line 2294 "parser.yy" 8470 8472 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8471 8473 break; … … 8474 8476 8475 8477 /* Line 1806 of yacc.c */ 8476 #line 229 0"parser.yy"8478 #line 2296 "parser.yy" 8477 8479 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8478 8480 break; … … 8481 8483 8482 8484 /* Line 1806 of yacc.c */ 8483 #line 229 2"parser.yy"8485 #line 2298 "parser.yy" 8484 8486 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8485 8487 break; … … 8488 8490 8489 8491 /* Line 1806 of yacc.c */ 8490 #line 2 297"parser.yy"8492 #line 2303 "parser.yy" 8491 8493 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8492 8494 break; … … 8495 8497 8496 8498 /* Line 1806 of yacc.c */ 8497 #line 2 299"parser.yy"8499 #line 2305 "parser.yy" 8498 8500 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8499 8501 break; … … 8502 8504 8503 8505 /* Line 1806 of yacc.c */ 8504 #line 230 1"parser.yy"8506 #line 2307 "parser.yy" 8505 8507 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8506 8508 break; … … 8509 8511 8510 8512 /* Line 1806 of yacc.c */ 8511 #line 23 16"parser.yy"8513 #line 2322 "parser.yy" 8512 8514 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8513 8515 break; … … 8516 8518 8517 8519 /* Line 1806 of yacc.c */ 8518 #line 23 19"parser.yy"8520 #line 2325 "parser.yy" 8519 8521 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8520 8522 break; … … 8523 8525 8524 8526 /* Line 1806 of yacc.c */ 8525 #line 232 1"parser.yy"8527 #line 2327 "parser.yy" 8526 8528 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8527 8529 break; … … 8530 8532 8531 8533 /* Line 1806 of yacc.c */ 8532 #line 23 27"parser.yy"8534 #line 2333 "parser.yy" 8533 8535 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8534 8536 break; … … 8537 8539 8538 8540 /* Line 1806 of yacc.c */ 8539 #line 233 2"parser.yy"8541 #line 2338 "parser.yy" 8540 8542 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8541 8543 break; … … 8544 8546 8545 8547 /* Line 1806 of yacc.c */ 8546 #line 23 34"parser.yy"8548 #line 2340 "parser.yy" 8547 8549 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8548 8550 break; … … 8551 8553 8552 8554 /* Line 1806 of yacc.c */ 8553 #line 23 36"parser.yy"8555 #line 2342 "parser.yy" 8554 8556 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8555 8557 break; … … 8558 8560 8559 8561 /* Line 1806 of yacc.c */ 8560 #line 234 1"parser.yy"8562 #line 2347 "parser.yy" 8561 8563 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8562 8564 break; … … 8565 8567 8566 8568 /* Line 1806 of yacc.c */ 8567 #line 234 3"parser.yy"8569 #line 2349 "parser.yy" 8568 8570 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8569 8571 break; … … 8572 8574 8573 8575 /* Line 1806 of yacc.c */ 8574 #line 23 45"parser.yy"8576 #line 2351 "parser.yy" 8575 8577 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8576 8578 break; … … 8579 8581 8580 8582 /* Line 1806 of yacc.c */ 8581 #line 23 47"parser.yy"8583 #line 2353 "parser.yy" 8582 8584 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8583 8585 break; … … 8586 8588 8587 8589 /* Line 1806 of yacc.c */ 8588 #line 235 2"parser.yy"8590 #line 2358 "parser.yy" 8589 8591 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8590 8592 break; … … 8593 8595 8594 8596 /* Line 1806 of yacc.c */ 8595 #line 23 54"parser.yy"8597 #line 2360 "parser.yy" 8596 8598 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8597 8599 break; … … 8600 8602 8601 8603 /* Line 1806 of yacc.c */ 8602 #line 23 56"parser.yy"8604 #line 2362 "parser.yy" 8603 8605 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8604 8606 break; … … 8607 8609 8608 8610 /* Line 1806 of yacc.c */ 8609 #line 23 66"parser.yy"8611 #line 2372 "parser.yy" 8610 8612 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8611 8613 break; … … 8614 8616 8615 8617 /* Line 1806 of yacc.c */ 8616 #line 23 69"parser.yy"8618 #line 2375 "parser.yy" 8617 8619 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8618 8620 break; … … 8621 8623 8622 8624 /* Line 1806 of yacc.c */ 8623 #line 237 1"parser.yy"8625 #line 2377 "parser.yy" 8624 8626 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8625 8627 break; … … 8628 8630 8629 8631 /* Line 1806 of yacc.c */ 8630 #line 23 76"parser.yy"8632 #line 2382 "parser.yy" 8631 8633 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8632 8634 break; … … 8635 8637 8636 8638 /* Line 1806 of yacc.c */ 8637 #line 23 78"parser.yy"8639 #line 2384 "parser.yy" 8638 8640 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8639 8641 break; … … 8642 8644 8643 8645 /* Line 1806 of yacc.c */ 8644 #line 238 0"parser.yy"8646 #line 2386 "parser.yy" 8645 8647 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8646 8648 break; … … 8649 8651 8650 8652 /* Line 1806 of yacc.c */ 8651 #line 23 85"parser.yy"8653 #line 2391 "parser.yy" 8652 8654 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8653 8655 break; … … 8656 8658 8657 8659 /* Line 1806 of yacc.c */ 8658 #line 23 87"parser.yy"8660 #line 2393 "parser.yy" 8659 8661 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8660 8662 break; … … 8663 8665 8664 8666 /* Line 1806 of yacc.c */ 8665 #line 23 89"parser.yy"8667 #line 2395 "parser.yy" 8666 8668 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8667 8669 break; … … 8670 8672 8671 8673 /* Line 1806 of yacc.c */ 8672 #line 239 1"parser.yy"8674 #line 2397 "parser.yy" 8673 8675 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8674 8676 break; … … 8677 8679 8678 8680 /* Line 1806 of yacc.c */ 8679 #line 2 396"parser.yy"8681 #line 2402 "parser.yy" 8680 8682 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8681 8683 break; … … 8684 8686 8685 8687 /* Line 1806 of yacc.c */ 8686 #line 2 398"parser.yy"8688 #line 2404 "parser.yy" 8687 8689 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8688 8690 break; … … 8691 8693 8692 8694 /* Line 1806 of yacc.c */ 8693 #line 240 0"parser.yy"8695 #line 2406 "parser.yy" 8694 8696 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8695 8697 break; … … 8698 8700 8699 8701 /* Line 1806 of yacc.c */ 8700 #line 243 1"parser.yy"8702 #line 2437 "parser.yy" 8701 8703 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8702 8704 break; … … 8705 8707 8706 8708 /* Line 1806 of yacc.c */ 8707 #line 24 34"parser.yy"8709 #line 2440 "parser.yy" 8708 8710 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8709 8711 break; … … 8712 8714 8713 8715 /* Line 1806 of yacc.c */ 8714 #line 24 36"parser.yy"8716 #line 2442 "parser.yy" 8715 8717 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8716 8718 break; … … 8719 8721 8720 8722 /* Line 1806 of yacc.c */ 8721 #line 244 1"parser.yy"8723 #line 2447 "parser.yy" 8722 8724 { 8723 8725 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8729 8731 8730 8732 /* Line 1806 of yacc.c */ 8731 #line 24 46"parser.yy"8733 #line 2452 "parser.yy" 8732 8734 { 8733 8735 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8739 8741 8740 8742 /* Line 1806 of yacc.c */ 8741 #line 24 54"parser.yy"8743 #line 2460 "parser.yy" 8742 8744 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8743 8745 break; … … 8746 8748 8747 8749 /* Line 1806 of yacc.c */ 8748 #line 24 56"parser.yy"8750 #line 2462 "parser.yy" 8749 8751 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8750 8752 break; … … 8753 8755 8754 8756 /* Line 1806 of yacc.c */ 8755 #line 24 58"parser.yy"8757 #line 2464 "parser.yy" 8756 8758 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8757 8759 break; … … 8760 8762 8761 8763 /* Line 1806 of yacc.c */ 8762 #line 246 3"parser.yy"8764 #line 2469 "parser.yy" 8763 8765 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8764 8766 break; … … 8767 8769 8768 8770 /* Line 1806 of yacc.c */ 8769 #line 24 65"parser.yy"8771 #line 2471 "parser.yy" 8770 8772 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8771 8773 break; … … 8774 8776 8775 8777 /* Line 1806 of yacc.c */ 8776 #line 247 0"parser.yy"8778 #line 2476 "parser.yy" 8777 8779 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8778 8780 break; … … 8781 8783 8782 8784 /* Line 1806 of yacc.c */ 8783 #line 247 2"parser.yy"8785 #line 2478 "parser.yy" 8784 8786 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8785 8787 break; … … 8788 8790 8789 8791 /* Line 1806 of yacc.c */ 8790 #line 24 87"parser.yy"8792 #line 2493 "parser.yy" 8791 8793 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8792 8794 break; … … 8795 8797 8796 8798 /* Line 1806 of yacc.c */ 8797 #line 24 89"parser.yy"8799 #line 2495 "parser.yy" 8798 8800 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8799 8801 break; … … 8802 8804 8803 8805 /* Line 1806 of yacc.c */ 8804 #line 2 494"parser.yy"8806 #line 2500 "parser.yy" 8805 8807 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8806 8808 break; … … 8809 8811 8810 8812 /* Line 1806 of yacc.c */ 8811 #line 2 496"parser.yy"8813 #line 2502 "parser.yy" 8812 8814 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8813 8815 break; … … 8816 8818 8817 8819 /* Line 1806 of yacc.c */ 8818 #line 2 498"parser.yy"8820 #line 2504 "parser.yy" 8819 8821 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8820 8822 break; … … 8823 8825 8824 8826 /* Line 1806 of yacc.c */ 8825 #line 250 0"parser.yy"8827 #line 2506 "parser.yy" 8826 8828 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8827 8829 break; … … 8830 8832 8831 8833 /* Line 1806 of yacc.c */ 8832 #line 250 2"parser.yy"8834 #line 2508 "parser.yy" 8833 8835 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8834 8836 break; … … 8837 8839 8838 8840 /* Line 1806 of yacc.c */ 8839 #line 25 08"parser.yy"8841 #line 2514 "parser.yy" 8840 8842 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8841 8843 break; … … 8844 8846 8845 8847 /* Line 1806 of yacc.c */ 8846 #line 251 0"parser.yy"8848 #line 2516 "parser.yy" 8847 8849 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8848 8850 break; … … 8851 8853 8852 8854 /* Line 1806 of yacc.c */ 8853 #line 251 2"parser.yy"8855 #line 2518 "parser.yy" 8854 8856 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8855 8857 break; … … 8858 8860 8859 8861 /* Line 1806 of yacc.c */ 8860 #line 25 17"parser.yy"8862 #line 2523 "parser.yy" 8861 8863 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); } 8862 8864 break; … … 8865 8867 8866 8868 /* Line 1806 of yacc.c */ 8867 #line 25 19"parser.yy"8869 #line 2525 "parser.yy" 8868 8870 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8869 8871 break; … … 8872 8874 8873 8875 /* Line 1806 of yacc.c */ 8874 #line 252 1"parser.yy"8876 #line 2527 "parser.yy" 8875 8877 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8876 8878 break; … … 8879 8881 8880 8882 /* Line 1806 of yacc.c */ 8881 #line 25 27"parser.yy"8883 #line 2533 "parser.yy" 8882 8884 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8883 8885 break; … … 8886 8888 8887 8889 /* Line 1806 of yacc.c */ 8888 #line 25 29"parser.yy"8890 #line 2535 "parser.yy" 8889 8891 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); } 8890 8892 break; … … 8893 8895 8894 8896 /* Line 1806 of yacc.c */ 8895 #line 25 35"parser.yy"8897 #line 2541 "parser.yy" 8896 8898 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); } 8897 8899 break; … … 8900 8902 8901 8903 /* Line 1806 of yacc.c */ 8902 #line 25 37"parser.yy"8904 #line 2543 "parser.yy" 8903 8905 { (yyval.decl) = DeclarationNode::newVarArray( 0 ); } 8904 8906 break; … … 8907 8909 8908 8910 /* Line 1806 of yacc.c */ 8909 #line 25 39"parser.yy"8911 #line 2545 "parser.yy" 8910 8912 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); } 8911 8913 break; … … 8914 8916 8915 8917 /* Line 1806 of yacc.c */ 8916 #line 254 1"parser.yy"8918 #line 2547 "parser.yy" 8917 8919 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); } 8918 8920 break; … … 8921 8923 8922 8924 /* Line 1806 of yacc.c */ 8923 #line 25 56"parser.yy"8925 #line 2562 "parser.yy" 8924 8926 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8925 8927 break; … … 8928 8930 8929 8931 /* Line 1806 of yacc.c */ 8930 #line 25 58"parser.yy"8932 #line 2564 "parser.yy" 8931 8933 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8932 8934 break; … … 8935 8937 8936 8938 /* Line 1806 of yacc.c */ 8937 #line 256 3"parser.yy"8939 #line 2569 "parser.yy" 8938 8940 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8939 8941 break; … … 8942 8944 8943 8945 /* Line 1806 of yacc.c */ 8944 #line 25 65"parser.yy"8946 #line 2571 "parser.yy" 8945 8947 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8946 8948 break; … … 8949 8951 8950 8952 /* Line 1806 of yacc.c */ 8951 #line 25 67"parser.yy"8953 #line 2573 "parser.yy" 8952 8954 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8953 8955 break; … … 8956 8958 8957 8959 /* Line 1806 of yacc.c */ 8958 #line 25 69"parser.yy"8960 #line 2575 "parser.yy" 8959 8961 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8960 8962 break; … … 8963 8965 8964 8966 /* Line 1806 of yacc.c */ 8965 #line 257 1"parser.yy"8967 #line 2577 "parser.yy" 8966 8968 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8967 8969 break; … … 8970 8972 8971 8973 /* Line 1806 of yacc.c */ 8972 #line 25 77"parser.yy"8974 #line 2583 "parser.yy" 8973 8975 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8974 8976 break; … … 8977 8979 8978 8980 /* Line 1806 of yacc.c */ 8979 #line 25 79"parser.yy"8981 #line 2585 "parser.yy" 8980 8982 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8981 8983 break; … … 8984 8986 8985 8987 /* Line 1806 of yacc.c */ 8986 #line 258 1"parser.yy"8988 #line 2587 "parser.yy" 8987 8989 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8988 8990 break; … … 8991 8993 8992 8994 /* Line 1806 of yacc.c */ 8993 #line 25 86"parser.yy"8995 #line 2592 "parser.yy" 8994 8996 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); } 8995 8997 break; … … 8998 9000 8999 9001 /* Line 1806 of yacc.c */ 9000 #line 25 88"parser.yy"9002 #line 2594 "parser.yy" 9001 9003 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 9002 9004 break; … … 9005 9007 9006 9008 /* Line 1806 of yacc.c */ 9007 #line 259 0"parser.yy"9009 #line 2596 "parser.yy" 9008 9010 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 9009 9011 break; … … 9012 9014 9013 9015 /* Line 1806 of yacc.c */ 9014 #line 2 597"parser.yy"9016 #line 2603 "parser.yy" 9015 9017 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 9016 9018 break; … … 9019 9021 9020 9022 /* Line 1806 of yacc.c */ 9021 #line 26 08"parser.yy"9023 #line 2614 "parser.yy" 9022 9024 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 9023 9025 break; … … 9026 9028 9027 9029 /* Line 1806 of yacc.c */ 9028 #line 261 1"parser.yy"9030 #line 2617 "parser.yy" 9029 9031 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 9030 9032 break; … … 9033 9035 9034 9036 /* Line 1806 of yacc.c */ 9035 #line 261 3"parser.yy"9037 #line 2619 "parser.yy" 9036 9038 { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); } 9037 9039 break; … … 9040 9042 9041 9043 /* Line 1806 of yacc.c */ 9042 #line 26 16"parser.yy"9044 #line 2622 "parser.yy" 9043 9045 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 9044 9046 break; … … 9047 9049 9048 9050 /* Line 1806 of yacc.c */ 9049 #line 26 18"parser.yy"9051 #line 2624 "parser.yy" 9050 9052 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); } 9051 9053 break; … … 9054 9056 9055 9057 /* Line 1806 of yacc.c */ 9056 #line 262 0"parser.yy"9058 #line 2626 "parser.yy" 9057 9059 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); } 9058 9060 break; … … 9061 9063 9062 9064 /* Line 1806 of yacc.c */ 9063 #line 26 34"parser.yy"9065 #line 2640 "parser.yy" 9064 9066 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 9065 9067 break; … … 9068 9070 9069 9071 /* Line 1806 of yacc.c */ 9070 #line 26 36"parser.yy"9072 #line 2642 "parser.yy" 9071 9073 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 9072 9074 break; … … 9075 9077 9076 9078 /* Line 1806 of yacc.c */ 9077 #line 264 1"parser.yy"9079 #line 2647 "parser.yy" 9078 9080 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 9079 9081 break; … … 9082 9084 9083 9085 /* Line 1806 of yacc.c */ 9084 #line 264 3"parser.yy"9086 #line 2649 "parser.yy" 9085 9087 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 9086 9088 break; … … 9089 9091 9090 9092 /* Line 1806 of yacc.c */ 9091 #line 26 45"parser.yy"9093 #line 2651 "parser.yy" 9092 9094 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 9093 9095 break; … … 9096 9098 9097 9099 /* Line 1806 of yacc.c */ 9098 #line 26 47"parser.yy"9100 #line 2653 "parser.yy" 9099 9101 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 9100 9102 break; … … 9103 9105 9104 9106 /* Line 1806 of yacc.c */ 9105 #line 26 49"parser.yy"9107 #line 2655 "parser.yy" 9106 9108 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 9107 9109 break; … … 9110 9112 9111 9113 /* Line 1806 of yacc.c */ 9112 #line 26 55"parser.yy"9114 #line 2661 "parser.yy" 9113 9115 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 9114 9116 break; … … 9117 9119 9118 9120 /* Line 1806 of yacc.c */ 9119 #line 26 57"parser.yy"9121 #line 2663 "parser.yy" 9120 9122 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 9121 9123 break; … … 9124 9126 9125 9127 /* Line 1806 of yacc.c */ 9126 #line 26 59"parser.yy"9128 #line 2665 "parser.yy" 9127 9129 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 9128 9130 break; … … 9131 9133 9132 9134 /* Line 1806 of yacc.c */ 9133 #line 26 64"parser.yy"9135 #line 2670 "parser.yy" 9134 9136 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 9135 9137 break; … … 9138 9140 9139 9141 /* Line 1806 of yacc.c */ 9140 #line 26 66"parser.yy"9142 #line 2672 "parser.yy" 9141 9143 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 9142 9144 break; … … 9145 9147 9146 9148 /* Line 1806 of yacc.c */ 9147 #line 26 76"parser.yy"9149 #line 2682 "parser.yy" 9148 9150 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 9149 9151 break; … … 9152 9154 9153 9155 /* Line 1806 of yacc.c */ 9154 #line 26 86"parser.yy"9156 #line 2692 "parser.yy" 9155 9157 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9156 9158 break; … … 9159 9161 9160 9162 /* Line 1806 of yacc.c */ 9161 #line 26 88"parser.yy"9163 #line 2694 "parser.yy" 9162 9164 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9163 9165 break; … … 9166 9168 9167 9169 /* Line 1806 of yacc.c */ 9168 #line 269 0"parser.yy"9170 #line 2696 "parser.yy" 9169 9171 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9170 9172 break; … … 9173 9175 9174 9176 /* Line 1806 of yacc.c */ 9175 #line 269 2"parser.yy"9177 #line 2698 "parser.yy" 9176 9178 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9177 9179 break; … … 9180 9182 9181 9183 /* Line 1806 of yacc.c */ 9182 #line 2 694"parser.yy"9184 #line 2700 "parser.yy" 9183 9185 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9184 9186 break; … … 9187 9189 9188 9190 /* Line 1806 of yacc.c */ 9189 #line 2 696"parser.yy"9191 #line 2702 "parser.yy" 9190 9192 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9191 9193 break; … … 9194 9196 9195 9197 /* Line 1806 of yacc.c */ 9196 #line 270 3"parser.yy"9198 #line 2709 "parser.yy" 9197 9199 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9198 9200 break; 9199 9201 9200 9202 case 718: 9201 9202 /* Line 1806 of yacc.c */9203 #line 2705 "parser.yy"9204 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }9205 break;9206 9207 case 719:9208 9209 /* Line 1806 of yacc.c */9210 #line 2707 "parser.yy"9211 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }9212 break;9213 9214 case 720:9215 9216 /* Line 1806 of yacc.c */9217 #line 2709 "parser.yy"9218 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }9219 break;9220 9221 case 721:9222 9203 9223 9204 /* Line 1806 of yacc.c */ … … 9226 9207 break; 9227 9208 9209 case 719: 9210 9211 /* Line 1806 of yacc.c */ 9212 #line 2713 "parser.yy" 9213 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9214 break; 9215 9216 case 720: 9217 9218 /* Line 1806 of yacc.c */ 9219 #line 2715 "parser.yy" 9220 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 9221 break; 9222 9223 case 721: 9224 9225 /* Line 1806 of yacc.c */ 9226 #line 2717 "parser.yy" 9227 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9228 break; 9229 9228 9230 case 722: 9229 9231 9230 9232 /* Line 1806 of yacc.c */ 9231 #line 271 3"parser.yy"9233 #line 2719 "parser.yy" 9232 9234 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9233 9235 break; 9234 9236 9235 9237 case 723: 9236 9237 /* Line 1806 of yacc.c */9238 #line 2715 "parser.yy"9239 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }9240 break;9241 9242 case 724:9243 9244 /* Line 1806 of yacc.c */9245 #line 2717 "parser.yy"9246 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }9247 break;9248 9249 case 725:9250 9251 /* Line 1806 of yacc.c */9252 #line 2719 "parser.yy"9253 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }9254 break;9255 9256 case 726:9257 9238 9258 9239 /* Line 1806 of yacc.c */ … … 9261 9242 break; 9262 9243 9244 case 724: 9245 9246 /* Line 1806 of yacc.c */ 9247 #line 2723 "parser.yy" 9248 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9249 break; 9250 9251 case 725: 9252 9253 /* Line 1806 of yacc.c */ 9254 #line 2725 "parser.yy" 9255 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 9256 break; 9257 9258 case 726: 9259 9260 /* Line 1806 of yacc.c */ 9261 #line 2727 "parser.yy" 9262 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9263 break; 9264 9263 9265 case 727: 9264 9266 9265 9267 /* Line 1806 of yacc.c */ 9266 #line 27 26"parser.yy"9268 #line 2732 "parser.yy" 9267 9269 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 9268 9270 break; … … 9271 9273 9272 9274 /* Line 1806 of yacc.c */ 9273 #line 27 28"parser.yy"9275 #line 2734 "parser.yy" 9274 9276 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 9275 9277 break; … … 9278 9280 9279 9281 /* Line 1806 of yacc.c */ 9280 #line 273 3"parser.yy"9282 #line 2739 "parser.yy" 9281 9283 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); } 9282 9284 break; … … 9285 9287 9286 9288 /* Line 1806 of yacc.c */ 9287 #line 27 35"parser.yy"9289 #line 2741 "parser.yy" 9288 9290 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); } 9289 9291 break; … … 9292 9294 9293 9295 /* Line 1806 of yacc.c */ 9294 #line 276 2"parser.yy"9296 #line 2768 "parser.yy" 9295 9297 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 9296 9298 break; … … 9299 9301 9300 9302 /* Line 1806 of yacc.c */ 9301 #line 277 3"parser.yy"9303 #line 2779 "parser.yy" 9302 9304 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9303 9305 break; … … 9306 9308 9307 9309 /* Line 1806 of yacc.c */ 9308 #line 27 75"parser.yy"9310 #line 2781 "parser.yy" 9309 9311 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9310 9312 break; … … 9313 9315 9314 9316 /* Line 1806 of yacc.c */ 9315 #line 27 77"parser.yy"9317 #line 2783 "parser.yy" 9316 9318 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9317 9319 break; … … 9320 9322 9321 9323 /* Line 1806 of yacc.c */ 9322 #line 27 79"parser.yy"9324 #line 2785 "parser.yy" 9323 9325 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9324 9326 break; … … 9327 9329 9328 9330 /* Line 1806 of yacc.c */ 9329 #line 278 1"parser.yy"9331 #line 2787 "parser.yy" 9330 9332 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9331 9333 break; … … 9334 9336 9335 9337 /* Line 1806 of yacc.c */ 9336 #line 278 3"parser.yy"9338 #line 2789 "parser.yy" 9337 9339 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9338 9340 break; 9339 9341 9340 9342 case 742: 9341 9342 /* Line 1806 of yacc.c */9343 #line 2790 "parser.yy"9344 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }9345 break;9346 9347 case 743:9348 9349 /* Line 1806 of yacc.c */9350 #line 2792 "parser.yy"9351 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }9352 break;9353 9354 case 744:9355 9356 /* Line 1806 of yacc.c */9357 #line 2794 "parser.yy"9358 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }9359 break;9360 9361 case 745:9362 9343 9363 9344 /* Line 1806 of yacc.c */ … … 9366 9347 break; 9367 9348 9368 case 74 6:9349 case 743: 9369 9350 9370 9351 /* Line 1806 of yacc.c */ … … 9373 9354 break; 9374 9355 9375 case 74 7:9356 case 744: 9376 9357 9377 9358 /* Line 1806 of yacc.c */ … … 9380 9361 break; 9381 9362 9363 case 745: 9364 9365 /* Line 1806 of yacc.c */ 9366 #line 2802 "parser.yy" 9367 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9368 break; 9369 9370 case 746: 9371 9372 /* Line 1806 of yacc.c */ 9373 #line 2804 "parser.yy" 9374 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9375 break; 9376 9377 case 747: 9378 9379 /* Line 1806 of yacc.c */ 9380 #line 2806 "parser.yy" 9381 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9382 break; 9383 9382 9384 case 748: 9383 9385 9384 9386 /* Line 1806 of yacc.c */ 9385 #line 28 05"parser.yy"9387 #line 2811 "parser.yy" 9386 9388 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 9387 9389 break; … … 9390 9392 9391 9393 /* Line 1806 of yacc.c */ 9392 #line 281 0"parser.yy"9394 #line 2816 "parser.yy" 9393 9395 { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); } 9394 9396 break; … … 9397 9399 9398 9400 /* Line 1806 of yacc.c */ 9399 #line 281 2"parser.yy"9401 #line 2818 "parser.yy" 9400 9402 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); } 9401 9403 break; … … 9404 9406 9405 9407 /* Line 1806 of yacc.c */ 9406 #line 28 14"parser.yy"9408 #line 2820 "parser.yy" 9407 9409 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); } 9408 9410 break; … … 9411 9413 9412 9414 /* Line 1806 of yacc.c */ 9413 #line 28 38"parser.yy"9415 #line 2844 "parser.yy" 9414 9416 { (yyval.en) = 0; } 9415 9417 break; … … 9418 9420 9419 9421 /* Line 1806 of yacc.c */ 9420 #line 284 0"parser.yy"9422 #line 2846 "parser.yy" 9421 9423 { (yyval.en) = (yyvsp[(2) - (2)].en); } 9422 9424 break; … … 9425 9427 9426 9428 /* Line 1806 of yacc.c */ 9427 #line 94 28"Parser/parser.cc"9429 #line 9430 "Parser/parser.cc" 9428 9430 default: break; 9429 9431 } … … 9656 9658 9657 9659 /* Line 2067 of yacc.c */ 9658 #line 284 3"parser.yy"9660 #line 2849 "parser.yy" 9659 9661 9660 9662 // ----end of grammar---- -
src/Parser/parser.h
r4e2a1137 r1b0020a 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
r4e2a1137 r1b0020a 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 11:28:18201613 // Update Count : 1 67212 // Last Modified On : Fri Aug 5 08:15:57 2016 13 // Update Count : 1721 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 … … 354 356 // little advantage to this feature and many disadvantages. It is possible to write x[(i,j)] in CFA, which is 355 357 // equivalent to the old x[i,j]. 356 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::Index ), $1, $4); }358 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::Index, $1, $4 ) ); } 357 359 | postfix_expression '(' argument_expression_list ')' 358 360 { $$ = new CompositeExprNode( $1, $3 ); } … … 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 368 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::IncrPost ), $1); }370 { $$ = new CompositeExprNode2( build_opr1( OperatorNode::IncrPost, $1 ) ); } 369 371 | postfix_expression DECR 370 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::DecrPost ), $1); }372 { $$ = new CompositeExprNode2( build_opr1( OperatorNode::DecrPost, $1 ) ); } 371 373 | '(' type_name_no_function ')' '{' initializer_list comma_opt '}' // C99 372 374 { $$ = new CompoundLiteralNode( $2, new InitializerNode( $5, true ) ); } … … 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 … … 429 431 | EXTENSION cast_expression // GCC 430 432 { $$ = $2->set_extension( true ); } 431 | ptrref_operator cast_expression // CFA432 { $$ = new CompositeExprNode( $1, $2 ); }433 433 // '*' ('&') is separated from unary_operator because of shift/reduce conflict in: 434 434 // { * X; } // dereference X 435 435 // { * int X; } // CFA declaration of pointer to int 436 | ptrref_operator cast_expression // CFA 437 { $$ = $1 == OperatorNode::AddressOf ? (ExpressionNode*) new CompositeExprNode2( build_addressOf( $2 ) ) 438 : (ExpressionNode*)new CompositeExprNode( new OperatorNode ( $1 ), $2 ); } 436 439 | unary_operator cast_expression 437 440 { $$ = new CompositeExprNode( $1, $2 ); } 438 441 | ICR unary_expression 439 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Incr ), $2); }442 { $$ = new CompositeExprNode2( build_opr1( OperatorNode::Incr, $2 ) ); } 440 443 | DECR unary_expression 441 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Decr ), $2); }444 { $$ = new CompositeExprNode2( build_opr1( OperatorNode::Decr, $2 ) ); } 442 445 | SIZEOF unary_expression 443 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::SizeOf ), $2); }446 { $$ = new CompositeExprNode2( build_sizeOf( $2 ) ); } 444 447 | SIZEOF '(' type_name_no_function ')' 445 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::SizeOf ), new TypeValueNode( $3 )); }448 { $$ = new CompositeExprNode2( build_sizeOf( new TypeValueNode( $3 ) ) ); } 446 449 | OFFSETOF '(' type_name_no_function ',' no_attr_identifier ')' 447 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::OffsetOf ), new TypeValueNode( $3 ), new VarRefNode( $5 )); }450 { $$ = new CompositeExprNode2( build_offsetOf( new TypeValueNode( $3 ), new VarRefNode( $5 ) ) ); } 448 451 | ATTR_IDENTIFIER 449 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( $1 ) ); }452 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( $1 ) ); } 450 453 | ATTR_IDENTIFIER '(' type_name ')' 451 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( $1 ), new TypeValueNode( $3 ) ); }454 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( $1 ), new TypeValueNode( $3 ) ); } 452 455 | ATTR_IDENTIFIER '(' argument_expression ')' 453 456 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( $1 ), $3 ); } 454 457 | ALIGNOF unary_expression // GCC, variable alignment 455 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::AlignOf ), $2); }458 { $$ = new CompositeExprNode2( build_alignOf( $2 ) ); } 456 459 | ALIGNOF '(' type_name_no_function ')' // GCC, type alignment 457 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::AlignOf ), new TypeValueNode( $3) ); }460 { $$ = new CompositeExprNode2( build_alignOf( new TypeValueNode( $3 ) ) ); } 458 461 // | ANDAND IDENTIFIER // GCC, address of label 459 462 // { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::LabelAddress ), new VarRefNode( $2, true ) ); } … … 461 464 462 465 ptrref_operator: 463 '*' { $$ = new OperatorNode( OperatorNode::PointTo ); }464 | '&' { $$ = new OperatorNode( OperatorNode::AddressOf ); }466 '*' { $$ = OperatorNode::PointTo; } 467 | '&' { $$ = OperatorNode::AddressOf; } 465 468 // GCC, address of label must be handled by semantic check for ref,ref,label 466 | ANDAND { $$ = new OperatorNode( OperatorNode::And ); }469 | ANDAND { $$ = OperatorNode::And; } 467 470 ; 468 471 … … 477 480 unary_expression 478 481 | '(' type_name_no_function ')' cast_expression 479 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( $2 ), $4); }482 { $$ = new CompositeExprNode2( build_cast( new TypeValueNode( $2 ), $4 ) ); } 480 483 | '(' type_name_no_function ')' tuple 481 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( $2 ), $4); }484 { $$ = new CompositeExprNode2( build_cast( new TypeValueNode( $2 ), $4 ) ); } 482 485 ; 483 486 … … 485 488 cast_expression 486 489 | multiplicative_expression '*' cast_expression 487 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::Mul ), $1, $3); }490 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::Mul, $1, $3 ) ); } 488 491 | multiplicative_expression '/' cast_expression 489 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::Div ), $1, $3); }492 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::Div, $1, $3 ) ); } 490 493 | multiplicative_expression '%' cast_expression 491 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::Mod ), $1, $3); }494 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::Mod, $1, $3 ) ); } 492 495 ; 493 496 … … 495 498 multiplicative_expression 496 499 | additive_expression '+' multiplicative_expression 497 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::Plus ), $1, $3); }500 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::Plus, $1, $3 ) ); } 498 501 | additive_expression '-' multiplicative_expression 499 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::Minus ), $1, $3); }502 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::Minus, $1, $3 ) ); } 500 503 ; 501 504 … … 503 506 additive_expression 504 507 | shift_expression LS additive_expression 505 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::LShift ), $1, $3); }508 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::LShift, $1, $3 ) ); } 506 509 | shift_expression RS additive_expression 507 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::RShift ), $1, $3); }510 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::RShift, $1, $3 ) ); } 508 511 ; 509 512 … … 511 514 shift_expression 512 515 | relational_expression '<' shift_expression 513 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::LThan ), $1, $3); }516 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::LThan, $1, $3 ) ); } 514 517 | relational_expression '>' shift_expression 515 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::GThan ), $1, $3); }518 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::GThan, $1, $3 ) ); } 516 519 | relational_expression LE shift_expression 517 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::LEThan ), $1, $3); }520 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::LEThan, $1, $3 ) ); } 518 521 | relational_expression GE shift_expression 519 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::GEThan ), $1, $3); }522 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::GEThan, $1, $3 ) ); } 520 523 ; 521 524 … … 523 526 relational_expression 524 527 | equality_expression EQ relational_expression 525 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::Eq ), $1, $3); }528 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::Eq, $1, $3 ) ); } 526 529 | equality_expression NE relational_expression 527 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::Neq ), $1, $3); }530 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::Neq, $1, $3 ) ); } 528 531 ; 529 532 … … 531 534 equality_expression 532 535 | AND_expression '&' equality_expression 533 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::BitAnd ), $1, $3); }536 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::BitAnd, $1, $3 ) ); } 534 537 ; 535 538 … … 537 540 AND_expression 538 541 | exclusive_OR_expression '^' AND_expression 539 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::Xor ), $1, $3); }542 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::Xor, $1, $3 ) ); } 540 543 ; 541 544 … … 543 546 exclusive_OR_expression 544 547 | inclusive_OR_expression '|' exclusive_OR_expression 545 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::BitOr ), $1, $3); }548 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::BitOr, $1, $3 ) ); } 546 549 ; 547 550 … … 549 552 inclusive_OR_expression 550 553 | logical_AND_expression ANDAND inclusive_OR_expression 551 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::And ), $1, $3); }554 { $$ = new CompositeExprNode2( build_and_or( $1, $3, true ) ); } 552 555 ; 553 556 … … 555 558 logical_AND_expression 556 559 | logical_OR_expression OROR logical_AND_expression 557 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::Or ), $1, $3); }560 { $$ = new CompositeExprNode2( build_and_or( $1, $3, false ) ); } 558 561 ; 559 562 … … 561 564 logical_OR_expression 562 565 | logical_OR_expression '?' comma_expression ':' conditional_expression 563 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*$1, *$3, *$5 )) ); }566 { $$ = new CompositeExprNode2( build_cond( $1, $3, $5 ) ); } 564 567 | logical_OR_expression '?' /* empty */ ':' conditional_expression // GCC, omitted first operand 565 { $$ =new CompositeExprNode( new OperatorNode( OperatorNode::NCond ), $1, $4 ); }568 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::NCond ), $1, $4 ); } 566 569 | logical_OR_expression '?' comma_expression ':' tuple // CFA, tuple expression 567 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*$1, *$3, *$5 )) ); }570 { $$ = new CompositeExprNode2( build_cond( $1, $3, $5 ) ); } 568 571 ; 569 572 … … 576 579 conditional_expression 577 580 | unary_expression '=' assignment_expression 578 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), $1, $3 ); }581 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), $1, $3 ); } 579 582 | unary_expression assignment_operator assignment_expression 580 { $$ = new CompositeExprNode( $2, $1, $3 ); }583 { $$ = new CompositeExprNode( $2, $1, $3 ); } 581 584 | tuple assignment_opt // CFA, tuple expression 582 585 { $$ = ( $2 == 0 ) ? $1 : new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), $1, $2 ); } … … 624 627 assignment_expression 625 628 | comma_expression ',' assignment_expression // { $$ = (ExpressionNode *)$1->add_to_list( $3 ); } 626 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Comma ), $1, $3 ); } 629 //{ $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Comma ), $1, $3 ); } 630 { $$ = new CompositeExprNode2( build_comma( $1, $3 ) ); } 627 631 ; 628 632 … … 736 740 constant_expression { $$ = $1; } 737 741 | constant_expression ELLIPSIS constant_expression // GCC, subrange 738 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::Range ), $1, $3); }742 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::Range, $1, $3 ) ); } 739 743 | subrange // CFA, subrange 740 744 ; … … 742 746 case_value_list: // CFA 743 747 case_value { $$ = new StatementNode( StatementNode::Case, $1, 0 ); } 748 // convert case list, e.g., "case 1, 3, 5:" into "case 1: case 3: case 5" 744 749 | case_value_list ',' case_value { $$ = (StatementNode *)($1->set_link( new StatementNode( StatementNode::Case, $3, 0 ) ) ); } 745 750 ; … … 1776 1781 { $$ = new DesignatorNode( $3, true ); } 1777 1782 | '[' push constant_expression ELLIPSIS constant_expression pop ']' // GCC, multiple array elements 1778 { $$ = new DesignatorNode( new CompositeExprNode ( new OperatorNode( OperatorNode::Range ), $3, $5), true ); }1783 { $$ = new DesignatorNode( new CompositeExprNode2( build_opr2( OperatorNode::Range, $3, $5 ) ), true ); } 1779 1784 | '.' '[' push field_list pop ']' // CFA, tuple field selector 1780 1785 { $$ = new DesignatorNode( $4 ); } … … 2105 2110 subrange: 2106 2111 constant_expression '~' constant_expression // CFA, integer subrange 2107 { $$ = new CompositeExprNode ( new OperatorNode( OperatorNode::Range ), $1, $3); }2112 { $$ = new CompositeExprNode2( build_opr2( OperatorNode::Range, $1, $3 ) ); } 2108 2113 ; 2109 2114
Note: See TracChangeset
for help on using the changeset viewer.