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