Changeset 777bfcf
- Timestamp:
- Aug 14, 2016, 7:25:00 PM (9 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- 797347f
- Parents:
- 1d4580a
- Location:
- src
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified src/Parser/ParseNode.h ¶
r1d4580a r777bfcf 10 10 // Created On : Sat May 16 13:28:16 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sun Aug 14 08:09:54201613 // Update Count : 4 6912 // Last Modified On : Sun Aug 14 16:29:20 2016 13 // Update Count : 483 14 14 // 15 15 … … 92 92 ExpressionNode *expr; 93 93 bool aggregate; 94 ExpressionNode *designator; 94 ExpressionNode *designator; // may be list 95 95 InitializerNode *kids; 96 96 bool maybeConstructed; … … 336 336 337 337 StatementNode(); 338 StatementNode( const std::string *name );339 StatementNode( Type t, ExpressionNode *control = 0, StatementNode *block = 0 );340 StatementNode( Type t, std::string *target );341 338 StatementNode( DeclarationNode *decl ); 342 343 339 ~StatementNode(); 344 345 StatementNode *set_block( StatementNode *b ) { block = b; return this; }346 StatementNode *get_block() const { return block; }347 348 void set_control( ExpressionNode *c ) { control = c; }349 ExpressionNode *get_control() const { return control; }350 340 351 341 StatementNode::Type get_type() const { return type; } … … 356 346 void addDeclaration( DeclarationNode *newDecl ) { decl = newDecl; } 357 347 358 void setCatchRest( bool newVal ) { catchAny = newVal; }359 360 // StatementNode *add_controlexp( ExpressionNode * );361 StatementNode *append_block( StatementNode * );362 348 virtual StatementNode *append_last_case( StatementNode * ); 363 349 364 v oid print( std::ostream &os, int indent = 0) const;350 virtual void print( std::ostream &os, int indent = 0) const {} 365 351 virtual StatementNode *clone() const; 366 352 virtual Statement *build() const; … … 368 354 static const char *StType[]; 369 355 Type type; 370 ExpressionNode *control;371 StatementNode *block;372 356 std::list<std::string> labels; 373 std::string *target; // target label for jump statements374 357 DeclarationNode *decl; 375 bool catchAny;376 358 }; // StatementNode 377 359 … … 447 429 class AsmStmtNode : public StatementNode { 448 430 public: 449 AsmStmtNode( Type,bool voltile, ConstantExpr *instruction, ExpressionNode *output = 0, ExpressionNode *input = 0, ExpressionNode *clobber = 0, LabelNode *gotolabels = 0 );431 AsmStmtNode( bool voltile, ConstantExpr *instruction, ExpressionNode *output = 0, ExpressionNode *input = 0, ExpressionNode *clobber = 0, LabelNode *gotolabels = 0 ); 450 432 ~AsmStmtNode(); 451 433 452 void print( std::ostream &os, int indent = 0 ) const ;434 void print( std::ostream &os, int indent = 0 ) const {} 453 435 Statement *build() const; 454 436 private: -
TabularUnified src/Parser/StatementNode.cc ¶
r1d4580a r777bfcf 10 10 // Created On : Sat May 16 14:59:41 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sun Aug 14 08:09:31201613 // Update Count : 2 7112 // Last Modified On : Sun Aug 14 13:10:54 2016 13 // Update Count : 288 14 14 // 15 15 … … 34 34 }; 35 35 36 StatementNode::StatementNode() : ParseNode(), control( 0 ), block( 0 ), labels( 0 ), target( 0 ), decl( 0 ), catchAny( false ) {} 37 38 StatementNode::StatementNode( const string *name ) : ParseNode( name ), control( 0 ), block( 0 ), labels( 0 ), target( 0 ), decl( 0 ), catchAny( false ) { assert( false ); } 39 40 StatementNode::StatementNode( DeclarationNode *decl ) : type( Decl ), control( 0 ), block( 0 ), labels( 0 ), target( 0 ), catchAny( false ) { 36 StatementNode::StatementNode() : ParseNode(), labels( 0 ), decl( 0 ) {} 37 38 StatementNode::StatementNode( DeclarationNode *decl ) : type( Decl ), labels( 0 ) { 41 39 assert( false ); 42 40 if ( decl ) { … … 86 84 } 87 85 88 StatementNode::StatementNode( Type t, ExpressionNode *ctrl_label, StatementNode *block ) : type( t ), control( ctrl_label ), block( block ), labels( 0 ), target( 0 ), decl( 0 ), catchAny( false ) {89 this->control = ( t == Default ) ? 0 : control;90 }91 92 StatementNode::StatementNode( Type t, string *target ) : type( t ), control( 0 ), block( 0 ), labels( 0 ), target( target ), decl( 0 ), catchAny( false ) {}93 94 86 StatementNode::~StatementNode() { 95 delete control;96 delete block;97 delete target;98 87 delete decl; 99 88 } … … 101 90 StatementNode * StatementNode::clone() const { 102 91 assert( false ); 103 StatementNode *newnode = new StatementNode( type, maybeClone( control ), maybeClone( block ) ); 104 if ( target ) { 105 newnode->target = new string( *target ); 106 } else { 107 newnode->target = 0; 108 } // if 109 newnode->decl = maybeClone( decl ); 110 return newnode; 92 return 0; 111 93 } 112 94 … … 119 101 } 120 102 121 StatementNode *StatementNode::append_block( StatementNode *stmt ) {122 if ( stmt != 0 ) {123 if ( block == 0 )124 block = stmt;125 else126 block->set_last( stmt );127 } // if128 return this;129 }130 131 103 StatementNode *StatementNode::append_last_case( StatementNode *stmt ) { 132 104 assert( false ); 133 if ( stmt != 0 ) {134 StatementNode *next = ( StatementNode *)get_next();135 if ( next && ( next->get_type() == StatementNode::Case || next->get_type() == StatementNode::Default ) )136 next->append_last_case( stmt );137 else138 if ( block == 0 )139 block = stmt;140 else141 block->set_last( stmt );142 } // if143 105 return this; 144 106 } … … 163 125 } 164 126 165 void StatementNode::print( std::ostream &os, int indent ) const { 166 if ( ! labels.empty() ) { 167 std::list<std::string>::const_iterator i; 168 169 os << string( indent, ' ' ); 170 for ( i = labels.begin(); i != labels.end(); i++ ) 171 os << *i << ":"; 172 os << endl; 173 } // if 174 127 Statement *StatementNode::build() const { 175 128 switch ( type ) { 176 129 case Decl: 177 decl->print( os, indent ); 178 break; 179 case Exp: 180 if ( control ) { 181 os << string( indent, ' ' ); 182 control->print( os, indent ); 183 os << endl; 184 } else 185 os << string( indent, ' ' ) << "Null Statement" << endl; 186 break; 187 default: 188 os << string( indent, ' ' ) << StatementNode::StType[type] << endl; 189 if ( type == Catch ) { 190 if ( decl ) { 191 os << string( indent + ParseNode::indent_by, ' ' ) << "Declaration: " << endl; 192 decl->print( os, indent + 2 * ParseNode::indent_by ); 193 } else if ( catchAny ) { 194 os << string( indent + ParseNode::indent_by, ' ' ) << "Catches the rest " << endl; 195 } else { 196 ; // should never reach here 197 } // if 198 } // if 199 if ( control ) { 200 os << string( indent + ParseNode::indent_by, ' ' ) << "Control: " << endl; 201 control->printList( os, indent + 2 * ParseNode::indent_by ); 202 } // if 203 if ( block ) { 204 os << string( indent + ParseNode::indent_by, ' ' ) << "Cases: " << endl; 205 block->printList( os, indent + 2 * ParseNode::indent_by ); 206 } // if 207 break; 208 } // switch 209 } 210 211 Statement *StatementNode::build() const { 212 std::list<Statement *> branches; 213 std::list<Expression *> exps; 214 std::list<Label> labs; 215 216 if ( ! labels.empty() ) { 217 std::back_insert_iterator< std::list<Label> > lab_it( labs ); 218 copy( labels.begin(), labels.end(), lab_it ); 219 } // if 220 221 buildList<Statement, StatementNode>( get_block(), branches ); 222 223 switch ( type ) { 224 case Decl: 225 return new DeclStmt( labs, maybeBuild< Declaration >( decl ) ); 130 return new DeclStmt( noLabels, maybeBuild< Declaration >( decl ) ); 226 131 assert( false ); 227 132 case Exp: 228 // {229 // Expression *e = maybeBuild< Expression >( get_control() );230 231 // if ( e )232 // return new ExprStmt( labs, e );233 // else234 // return new NullStmt( labs );235 // }236 assert( false );237 133 case If: 238 // {239 // Statement *thenb = 0, *elseb = 0;240 // assert( branches.size() >= 1 );241 242 // thenb = branches.front();243 // branches.pop_front();244 // if ( ! branches.empty() ) {245 // elseb = branches.front();246 // branches.pop_front();247 // } // if248 // return new IfStmt( labs, notZeroExpr( maybeBuild<Expression>(get_control()) ), thenb, elseb );249 // }250 assert( false );251 134 case Switch: 252 // return new SwitchStmt( labs, maybeBuild<Expression>(get_control()), branches );253 assert( false );254 135 case Case: 255 //return new CaseStmt( labs, maybeBuild<Expression>(get_control() ), branches );256 assert( false );257 136 case Default: 258 //return new CaseStmt( labs, 0, branches, true );259 assert( false );260 137 case While: 261 // assert( branches.size() == 1 );262 // return new WhileStmt( labs, notZeroExpr( maybeBuild<Expression>(get_control()) ), branches.front() );263 assert( false );264 138 case Do: 265 // assert( branches.size() == 1 );266 // return new WhileStmt( labs, notZeroExpr( maybeBuild<Expression>(get_control()) ), branches.front(), true );267 assert( false );268 139 case For: 269 // {270 // assert( branches.size() == 1 );271 272 // ForCtlExprNode *ctl = dynamic_cast<ForCtlExprNode *>( get_control() );273 // assert( ctl != 0 );274 275 // std::list<Statement *> init;276 // if ( ctl->get_init() != 0 ) {277 // buildList( ctl->get_init(), init );278 // } // if279 280 // Expression *cond = 0;281 // if ( ctl->get_condition() != 0 )282 // cond = notZeroExpr( maybeBuild<Expression>(ctl->get_condition()) );283 284 // Expression *incr = 0;285 // if ( ctl->get_change() != 0 )286 // incr = maybeBuild<Expression>(ctl->get_change());287 288 // return new ForStmt( labs, init, cond, incr, branches.front() );289 // }290 assert( false );291 140 case Goto: 292 assert( false );293 141 case Break: 294 assert( false );295 142 case Continue: 296 assert( false );297 143 case Return: 298 144 case Throw : 299 // buildList( get_control(), exps );300 // if ( exps.size() ==0 )301 // return new ReturnStmt( labs, 0, type == Throw );302 // if ( exps.size() > 0 )303 // return new ReturnStmt( labs, exps.back(), type == Throw );304 assert( false );305 145 case Try: 306 // {307 // assert( branches.size() >= 0 );308 // CompoundStmt *tryBlock = dynamic_cast<CompoundStmt *>( branches.front());309 // branches.pop_front();310 // FinallyStmt *finallyBlock = 0;311 // if ( ( finallyBlock = dynamic_cast<FinallyStmt *>( branches.back())) ) {312 // branches.pop_back();313 // } // if314 // return new TryStmt( labs, tryBlock, branches, finallyBlock );315 // }316 assert( false );317 146 case Catch: 318 // {319 // assert( branches.size() == 1 );320 321 // return new CatchStmt( labs, maybeBuild< Declaration >( decl ), branches.front(), catchAny );322 // }323 assert( false );324 147 case Finally: 325 // {326 // assert( branches.size() == 1 );327 // CompoundStmt *block = dynamic_cast<CompoundStmt *>( branches.front() );328 // assert( block != 0 );329 330 // return new FinallyStmt( labs, block );331 // }332 assert( false );333 148 case Asm: 334 assert( false );335 149 default: 336 150 assert( false ); … … 490 304 491 305 492 AsmStmtNode::AsmStmtNode( Type t, bool voltile, ConstantExpr *instruction, ExpressionNode *output, ExpressionNode *input, ExpressionNode *clobber, LabelNode *gotolabels ) : 493 StatementNode( t ), voltile( voltile ), instruction( instruction ), output( output ), input( input ), clobber( clobber ) { 306 AsmStmtNode::AsmStmtNode( bool voltile, ConstantExpr *instruction, ExpressionNode *output, ExpressionNode *input, ExpressionNode *clobber, LabelNode *gotolabels ) : 307 voltile( voltile ), instruction( instruction ), output( output ), input( input ), clobber( clobber ) { 308 type = Asm; 494 309 if ( gotolabels ) { 495 310 this->gotolabels = gotolabels->get_labels(); … … 500 315 AsmStmtNode::~AsmStmtNode() { 501 316 delete output; delete input; delete clobber; 502 }503 504 void AsmStmtNode::print( std::ostream &os, int indent ) const {505 StatementNode::print( os, indent ); // print statement labels506 os << string( indent + ParseNode::indent_by, ' ' ) << "volatile:" << voltile << endl;507 if ( instruction ) {508 os << string( indent + ParseNode::indent_by, ' ' ) << "Instruction:" << endl;509 // instruction->printList( os, indent + 2 * ParseNode::indent_by );510 } // if511 if ( output ) {512 os << string( indent + ParseNode::indent_by, ' ' ) << "Output:" << endl;513 output->printList( os, indent + 2 * ParseNode::indent_by );514 } // if515 if ( input ) {516 os << string( indent + ParseNode::indent_by, ' ' ) << "Input:" << endl;517 input->printList( os, indent + 2 * ParseNode::indent_by );518 } // if519 if ( clobber ) {520 os << string( indent + ParseNode::indent_by, ' ' ) << "Clobber:" << endl;521 // clobber->printList( os, indent + 2 * ParseNode::indent_by );522 } // if523 if ( ! gotolabels.empty() ) {524 os << string( indent + ParseNode::indent_by, ' ' ) << "Goto Labels:" << endl;525 os << string( indent + 2 * ParseNode::indent_by, ' ' );526 for ( std::list<Label>::const_iterator i = gotolabels.begin();; ) {527 os << *i;528 i++;529 if ( i == gotolabels.end() ) break;530 os << ", ";531 }532 os << endl;533 } // if534 317 } 535 318 … … 551 334 } 552 335 336 // Statement *build_asm( bool voltile, ConstantExpr *instruction, ExpressionNode *output = 0, ExpressionNode *input = 0, ExpressionNode *clobber = 0, LabelNode *gotolabels = 0 ) { 337 // std::list<Label> labs; 338 339 // if ( ! get_labels().empty() ) { 340 // std::back_insert_iterator< std::list<Label> > lab_it( labs ); 341 // copy( get_labels().begin(), get_labels().end(), lab_it ); 342 // } // if 343 344 // std::list< Expression * > out, in; 345 // std::list< ConstantExpr * > clob; 346 // buildList( output, out ); 347 // buildList( input, in ); 348 // buildList( clobber, clob ); 349 // std::list< Label > gotolabs = gotolabels; 350 // return new AsmStmt( labs, voltile, instruction, out, in, clob, gotolabs ); 351 // } 352 553 353 // Local Variables: // 554 354 // tab-width: 4 // -
TabularUnified src/Parser/parser.cc ¶
r1d4580a r777bfcf 1020 1020 static const yytype_uint16 yyrline[] = 1021 1021 { 1022 0, 29 9, 299, 305, 314, 315, 316, 320, 321, 322,1023 32 6, 327, 331, 332, 336, 337, 341, 342, 353, 355,1024 35 7, 359, 364, 365, 371, 375, 377, 378, 380, 381,1025 38 3, 385, 387, 396, 397, 403, 404, 408, 409, 413,1026 41 7, 419, 421, 423, 428, 431, 433, 435, 440, 453,1027 45 5, 457, 459, 461, 463, 465, 467, 469, 471, 473,1028 4 80, 481, 487, 488, 489, 490, 494, 495, 497, 502,1029 50 3, 505, 507, 512, 513, 515, 520, 521, 523, 528,1030 52 9, 531, 533, 535, 540, 541, 543, 548, 549, 554,1031 55 5, 560, 561, 566, 567, 572, 573, 578, 579, 582,1032 58 4, 589, 594, 595, 597, 603, 604, 608, 609, 610,1033 61 1, 612, 613, 614, 615, 616, 617, 618, 624, 626,1034 62 8, 630, 635, 636, 641, 642, 648, 649, 655, 656,1035 65 7, 658, 659, 660, 661, 662, 663, 673, 680, 682,1036 69 2, 693, 698, 700, 706, 708, 712, 713, 718, 723,1037 72 6, 728, 730, 740, 742, 753, 754, 756, 760, 762,1038 76 6, 767, 772, 773, 777, 782, 783, 787, 789, 795,1039 79 6, 800, 802, 804, 806, 812, 813, 817, 819, 824,1040 82 6, 828, 833, 835, 840, 842, 846, 849, 853, 856,1041 8 60, 862, 864, 866, 871, 873, 875, 880, 882, 884,1042 88 6, 888, 893, 895, 897, 899, 904, 916, 917, 922,1043 92 4, 929, 933, 935, 937, 939, 941, 947, 948, 954,1044 95 5, 959, 960, 965, 967, 973, 974, 976, 981, 983,1045 9 90, 992, 996, 997, 1002, 1004, 1008, 1009, 1013, 1015,1046 101 9, 1020, 1024, 1025, 1029, 1030, 1045, 1046, 1047, 1048,1047 104 9, 1053, 1058, 1065, 1075, 1080, 1085, 1093, 1098, 1103,1048 110 8, 1113, 1121, 1143, 1148, 1155, 1157, 1164, 1169, 1174,1049 118 5, 1190, 1195, 1200, 1205, 1214, 1219, 1227, 1228, 1229,1050 12 30, 1236, 1241, 1249, 1250, 1251, 1252, 1256, 1257, 1258,1051 125 9, 1264, 1265, 1274, 1275, 1280, 1281, 1286, 1288, 1290,1052 129 2, 1294, 1297, 1296, 1308, 1309, 1311, 1321, 1322, 1327,1053 133 1, 1333, 1335, 1337, 1339, 1341, 1343, 1345, 1350, 1352,1054 135 4, 1356, 1358, 1360, 1362, 1364, 1366, 1368, 1370, 1372,1055 137 4, 1380, 1381, 1383, 1385, 1387, 1392, 1393, 1399, 1400,1056 140 2, 1404, 1409, 1411, 1413, 1415, 1420, 1421, 1423, 1425,1057 14 30, 1431, 1433, 1438, 1439, 1441, 1443, 1448, 1450, 1452,1058 145 7, 1458, 1462, 1464, 1470, 1469, 1473, 1475, 1480, 1482,1059 148 8, 1489, 1494, 1495, 1497, 1498, 1507, 1508, 1510, 1512,1060 151 7, 1519, 1525, 1526, 1528, 1531, 1534, 1539, 1540, 1545,1061 15 50, 1554, 1556, 1562, 1561, 1568, 1570, 1576, 1577, 1585,1062 158 6, 1590, 1591, 1592, 1594, 1596, 1603, 1604, 1606, 1608,1063 161 3, 1614, 1620, 1621, 1625, 1626, 1631, 1632, 1633, 1635,1064 164 3, 1644, 1646, 1649, 1651, 1655, 1656, 1657, 1659, 1661,1065 166 5, 1670, 1678, 1679, 1688, 1690, 1695, 1696, 1697, 1701,1066 170 2, 1703, 1707, 1708, 1709, 1713, 1714, 1715, 1720, 1721,1067 172 2, 1723, 1729, 1730, 1732, 1737, 1738, 1743, 1744, 1745,1068 174 6, 1747, 1762, 1763, 1768, 1769, 1775, 1777, 1780, 1782,1069 178 4, 1807, 1808, 1810, 1812, 1817, 1818, 1820, 1825, 1830,1070 183 1, 1837, 1836, 1840, 1844, 1846, 1848, 1854, 1855, 1860,1071 186 5, 1867, 1872, 1874, 1875, 1877, 1882, 1884, 1886, 1891,1072 189 3, 1898, 1903, 1911, 1917, 1916, 1930, 1931, 1936, 1937,1073 194 1, 1946, 1951, 1959, 1964, 1975, 1976, 1987, 1988, 1994,1074 199 5, 1999, 2000, 2001, 2004, 2003, 2014, 2023, 2029, 2035,1075 204 4, 2050, 2056, 2062, 2068, 2076, 2082, 2090, 2096, 2105,1076 210 6, 2107, 2111, 2115, 2117, 2122, 2123, 2127, 2128, 2133,1077 213 9, 2140, 2143, 2145, 2146, 2150, 2151, 2152, 2153, 2187,1078 218 9, 2190, 2192, 2197, 2202, 2207, 2209, 2211, 2216, 2218,1079 22 20, 2222, 2227, 2229, 2238, 2240, 2241, 2246, 2248, 2250,1080 225 5, 2257, 2259, 2264, 2266, 2268, 2277, 2278, 2279, 2283,1081 228 5, 2287, 2292, 2294, 2296, 2301, 2303, 2305, 2320, 2322,1082 232 3, 2325, 2330, 2331, 2336, 2338, 2340, 2345, 2347, 2349,1083 235 1, 2356, 2358, 2360, 2370, 2372, 2373, 2375, 2380, 2382,1084 238 4, 2389, 2391, 2393, 2395, 2400, 2402, 2404, 2435, 2437,1085 243 8, 2440, 2445, 2450, 2458, 2460, 2462, 2467, 2469, 2474,1086 247 6, 2490, 2491, 2493, 2498, 2500, 2502, 2504, 2506, 2511,1087 251 2, 2514, 2516, 2521, 2523, 2525, 2531, 2533, 2535, 2539,1088 254 1, 2543, 2545, 2559, 2560, 2562, 2567, 2569, 2571, 2573,1089 257 5, 2580, 2581, 2583, 2585, 2590, 2592, 2594, 2600, 2601,1090 260 3, 2612, 2615, 2617, 2620, 2622, 2624, 2637, 2638, 2640,1091 264 5, 2647, 2649, 2651, 2653, 2658, 2659, 2661, 2663, 2668,1092 26 70, 2678, 2679, 2680, 2685, 2686, 2690, 2692, 2694, 2696,1093 269 8, 2700, 2707, 2709, 2711, 2713, 2715, 2717, 2719, 2721,1094 272 3, 2725, 2730, 2732, 2734, 2739, 2765, 2766, 2768, 2772,1095 277 3, 2777, 2779, 2781, 2783, 2785, 2787, 2794, 2796, 2798,1096 2 800, 2802, 2804, 2809, 2814, 2816, 2818, 2836, 2838, 2843,1097 284 41022 0, 298, 298, 304, 313, 314, 315, 319, 320, 321, 1023 325, 326, 330, 331, 335, 336, 340, 341, 352, 354, 1024 356, 358, 363, 364, 370, 374, 376, 377, 379, 380, 1025 382, 384, 386, 395, 396, 402, 403, 407, 408, 412, 1026 416, 418, 420, 422, 427, 430, 432, 434, 439, 452, 1027 454, 456, 458, 460, 462, 464, 466, 468, 470, 472, 1028 479, 480, 486, 487, 488, 489, 493, 494, 496, 501, 1029 502, 504, 506, 511, 512, 514, 519, 520, 522, 527, 1030 528, 530, 532, 534, 539, 540, 542, 547, 548, 553, 1031 554, 559, 560, 565, 566, 571, 572, 577, 578, 581, 1032 583, 588, 593, 594, 596, 602, 603, 607, 608, 609, 1033 610, 611, 612, 613, 614, 615, 616, 617, 623, 625, 1034 627, 629, 634, 635, 640, 641, 647, 648, 654, 655, 1035 656, 657, 658, 659, 660, 661, 662, 672, 679, 681, 1036 691, 692, 697, 699, 705, 707, 711, 712, 717, 722, 1037 725, 727, 729, 739, 741, 752, 753, 755, 759, 761, 1038 765, 766, 771, 772, 776, 781, 782, 786, 788, 794, 1039 795, 799, 801, 803, 805, 811, 812, 816, 818, 823, 1040 825, 827, 832, 834, 839, 841, 845, 848, 852, 855, 1041 859, 861, 863, 865, 870, 872, 874, 879, 881, 883, 1042 885, 887, 892, 894, 896, 898, 903, 915, 916, 921, 1043 923, 928, 932, 934, 936, 938, 940, 946, 947, 953, 1044 954, 958, 959, 964, 966, 972, 973, 975, 980, 982, 1045 989, 991, 995, 996, 1001, 1003, 1007, 1008, 1012, 1014, 1046 1018, 1019, 1023, 1024, 1028, 1029, 1044, 1045, 1046, 1047, 1047 1048, 1052, 1057, 1064, 1074, 1079, 1084, 1092, 1097, 1102, 1048 1107, 1112, 1120, 1142, 1147, 1154, 1156, 1163, 1168, 1173, 1049 1184, 1189, 1194, 1199, 1204, 1213, 1218, 1226, 1227, 1228, 1050 1229, 1235, 1240, 1248, 1249, 1250, 1251, 1255, 1256, 1257, 1051 1258, 1263, 1264, 1273, 1274, 1279, 1280, 1285, 1287, 1289, 1052 1291, 1293, 1296, 1295, 1307, 1308, 1310, 1320, 1321, 1326, 1053 1330, 1332, 1334, 1336, 1338, 1340, 1342, 1344, 1349, 1351, 1054 1353, 1355, 1357, 1359, 1361, 1363, 1365, 1367, 1369, 1371, 1055 1373, 1379, 1380, 1382, 1384, 1386, 1391, 1392, 1398, 1399, 1056 1401, 1403, 1408, 1410, 1412, 1414, 1419, 1420, 1422, 1424, 1057 1429, 1430, 1432, 1437, 1438, 1440, 1442, 1447, 1449, 1451, 1058 1456, 1457, 1461, 1463, 1469, 1468, 1472, 1474, 1479, 1481, 1059 1487, 1488, 1493, 1494, 1496, 1497, 1506, 1507, 1509, 1511, 1060 1516, 1518, 1524, 1525, 1527, 1530, 1533, 1538, 1539, 1544, 1061 1549, 1553, 1555, 1561, 1560, 1567, 1569, 1575, 1576, 1584, 1062 1585, 1589, 1590, 1591, 1593, 1595, 1602, 1603, 1605, 1607, 1063 1612, 1613, 1619, 1620, 1624, 1625, 1630, 1631, 1632, 1634, 1064 1642, 1643, 1645, 1648, 1650, 1654, 1655, 1656, 1658, 1660, 1065 1664, 1669, 1677, 1678, 1687, 1689, 1694, 1695, 1696, 1700, 1066 1701, 1702, 1706, 1707, 1708, 1712, 1713, 1714, 1719, 1720, 1067 1721, 1722, 1728, 1729, 1731, 1736, 1737, 1742, 1743, 1744, 1068 1745, 1746, 1761, 1762, 1767, 1768, 1774, 1776, 1779, 1781, 1069 1783, 1806, 1807, 1809, 1811, 1816, 1817, 1819, 1824, 1829, 1070 1830, 1836, 1835, 1839, 1843, 1845, 1847, 1853, 1854, 1859, 1071 1864, 1866, 1871, 1873, 1874, 1876, 1881, 1883, 1885, 1890, 1072 1892, 1897, 1902, 1910, 1916, 1915, 1929, 1930, 1935, 1936, 1073 1940, 1945, 1950, 1958, 1963, 1974, 1975, 1986, 1987, 1993, 1074 1994, 1998, 1999, 2000, 2003, 2002, 2013, 2022, 2028, 2034, 1075 2043, 2049, 2055, 2061, 2067, 2075, 2081, 2089, 2095, 2104, 1076 2105, 2106, 2110, 2114, 2116, 2121, 2122, 2126, 2127, 2132, 1077 2138, 2139, 2142, 2144, 2145, 2149, 2150, 2151, 2152, 2186, 1078 2188, 2189, 2191, 2196, 2201, 2206, 2208, 2210, 2215, 2217, 1079 2219, 2221, 2226, 2228, 2237, 2239, 2240, 2245, 2247, 2249, 1080 2254, 2256, 2258, 2263, 2265, 2267, 2276, 2277, 2278, 2282, 1081 2284, 2286, 2291, 2293, 2295, 2300, 2302, 2304, 2319, 2321, 1082 2322, 2324, 2329, 2330, 2335, 2337, 2339, 2344, 2346, 2348, 1083 2350, 2355, 2357, 2359, 2369, 2371, 2372, 2374, 2379, 2381, 1084 2383, 2388, 2390, 2392, 2394, 2399, 2401, 2403, 2434, 2436, 1085 2437, 2439, 2444, 2449, 2457, 2459, 2461, 2466, 2468, 2473, 1086 2475, 2489, 2490, 2492, 2497, 2499, 2501, 2503, 2505, 2510, 1087 2511, 2513, 2515, 2520, 2522, 2524, 2530, 2532, 2534, 2538, 1088 2540, 2542, 2544, 2558, 2559, 2561, 2566, 2568, 2570, 2572, 1089 2574, 2579, 2580, 2582, 2584, 2589, 2591, 2593, 2599, 2600, 1090 2602, 2611, 2614, 2616, 2619, 2621, 2623, 2636, 2637, 2639, 1091 2644, 2646, 2648, 2650, 2652, 2657, 2658, 2660, 2662, 2667, 1092 2669, 2677, 2678, 2679, 2684, 2685, 2689, 2691, 2693, 2695, 1093 2697, 2699, 2706, 2708, 2710, 2712, 2714, 2716, 2718, 2720, 1094 2722, 2724, 2729, 2731, 2733, 2738, 2764, 2765, 2767, 2771, 1095 2772, 2776, 2778, 2780, 2782, 2784, 2786, 2793, 2795, 2797, 1096 2799, 2801, 2803, 2808, 2813, 2815, 2817, 2835, 2837, 2842, 1097 2843 1098 1098 }; 1099 1099 #endif … … 4960 4960 4961 4961 /* Line 1806 of yacc.c */ 4962 #line 29 9"parser.yy"4962 #line 298 "parser.yy" 4963 4963 { 4964 4964 typedefTable.enterScope(); … … 4969 4969 4970 4970 /* Line 1806 of yacc.c */ 4971 #line 30 5"parser.yy"4971 #line 304 "parser.yy" 4972 4972 { 4973 4973 typedefTable.leaveScope(); … … 4978 4978 4979 4979 /* Line 1806 of yacc.c */ 4980 #line 313 "parser.yy" 4981 { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); } 4982 break; 4983 4984 case 5: 4985 4986 /* Line 1806 of yacc.c */ 4980 4987 #line 314 "parser.yy" 4981 { (yyval.en) = new ExpressionNode( build_constant Integer( *(yyvsp[(1) - (1)].tok) ) ); }4982 break; 4983 4984 case 5:4988 { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); } 4989 break; 4990 4991 case 6: 4985 4992 4986 4993 /* Line 1806 of yacc.c */ 4987 4994 #line 315 "parser.yy" 4988 { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); }4989 break;4990 4991 case 6:4992 4993 /* Line 1806 of yacc.c */4994 #line 316 "parser.yy"4995 4995 { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[(1) - (1)].tok) ) ); } 4996 4996 break; … … 4999 4999 5000 5000 /* Line 1806 of yacc.c */ 5001 #line 34 1"parser.yy"5001 #line 340 "parser.yy" 5002 5002 { (yyval.constant) = build_constantStr( *(yyvsp[(1) - (1)].tok) ); } 5003 5003 break; … … 5006 5006 5007 5007 /* Line 1806 of yacc.c */ 5008 #line 34 3"parser.yy"5008 #line 342 "parser.yy" 5009 5009 { 5010 5010 appendStr( (yyvsp[(1) - (2)].constant)->get_constant()->get_value(), (yyvsp[(2) - (2)].tok) ); … … 5017 5017 5018 5018 /* Line 1806 of yacc.c */ 5019 #line 35 4"parser.yy"5019 #line 353 "parser.yy" 5020 5020 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 5021 5021 break; … … 5024 5024 5025 5025 /* Line 1806 of yacc.c */ 5026 #line 35 6"parser.yy"5026 #line 355 "parser.yy" 5027 5027 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 5028 5028 break; … … 5031 5031 5032 5032 /* Line 1806 of yacc.c */ 5033 #line 35 8"parser.yy"5033 #line 357 "parser.yy" 5034 5034 { (yyval.en) = (yyvsp[(2) - (3)].en); } 5035 5035 break; … … 5038 5038 5039 5039 /* Line 1806 of yacc.c */ 5040 #line 3 60"parser.yy"5040 #line 359 "parser.yy" 5041 5041 { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[(2) - (3)].sn) ) ); } 5042 5042 break; … … 5045 5045 5046 5046 /* Line 1806 of yacc.c */ 5047 #line 3 70"parser.yy"5047 #line 369 "parser.yy" 5048 5048 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); } 5049 5049 break; … … 5052 5052 5053 5053 /* Line 1806 of yacc.c */ 5054 #line 37 2"parser.yy"5054 #line 371 "parser.yy" 5055 5055 { (yyval.en) = new ExpressionNode( build_func( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ) ); } 5056 5056 break; … … 5059 5059 5060 5060 /* Line 1806 of yacc.c */ 5061 #line 37 6"parser.yy"5061 #line 375 "parser.yy" 5062 5062 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); } 5063 5063 break; … … 5066 5066 5067 5067 /* Line 1806 of yacc.c */ 5068 #line 37 9"parser.yy"5068 #line 378 "parser.yy" 5069 5069 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); } 5070 5070 break; … … 5073 5073 5074 5074 /* Line 1806 of yacc.c */ 5075 #line 38 2"parser.yy"5075 #line 381 "parser.yy" 5076 5076 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[(1) - (2)].en) ) ); } 5077 5077 break; … … 5080 5080 5081 5081 /* Line 1806 of yacc.c */ 5082 #line 38 4"parser.yy"5082 #line 383 "parser.yy" 5083 5083 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); } 5084 5084 break; … … 5087 5087 5088 5088 /* Line 1806 of yacc.c */ 5089 #line 38 6"parser.yy"5089 #line 385 "parser.yy" 5090 5090 { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ) ); } 5091 5091 break; … … 5094 5094 5095 5095 /* Line 1806 of yacc.c */ 5096 #line 38 8"parser.yy"5096 #line 387 "parser.yy" 5097 5097 { 5098 5098 Token fn; … … 5105 5105 5106 5106 /* Line 1806 of yacc.c */ 5107 #line 39 8"parser.yy"5107 #line 397 "parser.yy" 5108 5108 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); } 5109 5109 break; … … 5112 5112 5113 5113 /* Line 1806 of yacc.c */ 5114 #line 40 3"parser.yy"5114 #line 402 "parser.yy" 5115 5115 { (yyval.en) = 0; } 5116 5116 break; … … 5119 5119 5120 5120 /* Line 1806 of yacc.c */ 5121 #line 40 9"parser.yy"5121 #line 408 "parser.yy" 5122 5122 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 5123 5123 break; … … 5126 5126 5127 5127 /* Line 1806 of yacc.c */ 5128 #line 41 4"parser.yy"5128 #line 413 "parser.yy" 5129 5129 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 5130 5130 break; … … 5133 5133 5134 5134 /* Line 1806 of yacc.c */ 5135 #line 41 8"parser.yy"5135 #line 417 "parser.yy" 5136 5136 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); } 5137 5137 break; … … 5140 5140 5141 5141 /* Line 1806 of yacc.c */ 5142 #line 4 20"parser.yy"5142 #line 419 "parser.yy" 5143 5143 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); } 5144 5144 break; … … 5147 5147 5148 5148 /* Line 1806 of yacc.c */ 5149 #line 42 2"parser.yy"5149 #line 421 "parser.yy" 5150 5150 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); } 5151 5151 break; … … 5154 5154 5155 5155 /* Line 1806 of yacc.c */ 5156 #line 42 4"parser.yy"5156 #line 423 "parser.yy" 5157 5157 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); } 5158 5158 break; … … 5161 5161 5162 5162 /* Line 1806 of yacc.c */ 5163 #line 43 2"parser.yy"5163 #line 431 "parser.yy" 5164 5164 { (yyval.en) = (yyvsp[(1) - (1)].en); } 5165 5165 break; … … 5168 5168 5169 5169 /* Line 1806 of yacc.c */ 5170 #line 43 4"parser.yy"5170 #line 433 "parser.yy" 5171 5171 { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); } 5172 5172 break; … … 5175 5175 5176 5176 /* Line 1806 of yacc.c */ 5177 #line 43 6"parser.yy"5177 #line 435 "parser.yy" 5178 5178 { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); } 5179 5179 break; … … 5182 5182 5183 5183 /* Line 1806 of yacc.c */ 5184 #line 44 1"parser.yy"5184 #line 440 "parser.yy" 5185 5185 { 5186 5186 switch ( (yyvsp[(1) - (2)].op) ) { … … 5200 5200 5201 5201 /* Line 1806 of yacc.c */ 5202 #line 45 4"parser.yy"5202 #line 453 "parser.yy" 5203 5203 { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); } 5204 5204 break; … … 5207 5207 5208 5208 /* Line 1806 of yacc.c */ 5209 #line 45 6"parser.yy"5209 #line 455 "parser.yy" 5210 5210 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); } 5211 5211 break; … … 5214 5214 5215 5215 /* Line 1806 of yacc.c */ 5216 #line 45 8"parser.yy"5216 #line 457 "parser.yy" 5217 5217 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); } 5218 5218 break; … … 5221 5221 5222 5222 /* Line 1806 of yacc.c */ 5223 #line 4 60"parser.yy"5223 #line 459 "parser.yy" 5224 5224 { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); } 5225 5225 break; … … 5228 5228 5229 5229 /* Line 1806 of yacc.c */ 5230 #line 46 2"parser.yy"5230 #line 461 "parser.yy" 5231 5231 { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); } 5232 5232 break; … … 5235 5235 5236 5236 /* Line 1806 of yacc.c */ 5237 #line 46 4"parser.yy"5237 #line 463 "parser.yy" 5238 5238 { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); } 5239 5239 break; … … 5242 5242 5243 5243 /* Line 1806 of yacc.c */ 5244 #line 46 6"parser.yy"5244 #line 465 "parser.yy" 5245 5245 { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); } 5246 5246 break; … … 5249 5249 5250 5250 /* Line 1806 of yacc.c */ 5251 #line 46 8"parser.yy"5251 #line 467 "parser.yy" 5252 5252 { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); } 5253 5253 break; … … 5256 5256 5257 5257 /* Line 1806 of yacc.c */ 5258 #line 4 70"parser.yy"5258 #line 469 "parser.yy" 5259 5259 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); } 5260 5260 break; … … 5263 5263 5264 5264 /* Line 1806 of yacc.c */ 5265 #line 47 2"parser.yy"5265 #line 471 "parser.yy" 5266 5266 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); } 5267 5267 break; … … 5270 5270 5271 5271 /* Line 1806 of yacc.c */ 5272 #line 47 4"parser.yy"5272 #line 473 "parser.yy" 5273 5273 { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); } 5274 5274 break; … … 5277 5277 5278 5278 /* Line 1806 of yacc.c */ 5279 #line 479 "parser.yy" 5280 { (yyval.op) = OperKinds::PointTo; } 5281 break; 5282 5283 case 61: 5284 5285 /* Line 1806 of yacc.c */ 5279 5286 #line 480 "parser.yy" 5280 { (yyval.op) = OperKinds::PointTo; }5281 break;5282 5283 case 61:5284 5285 /* Line 1806 of yacc.c */5286 #line 481 "parser.yy"5287 5287 { (yyval.op) = OperKinds::AddressOf; } 5288 5288 break; … … 5291 5291 5292 5292 /* Line 1806 of yacc.c */ 5293 #line 486 "parser.yy" 5294 { (yyval.op) = OperKinds::UnPlus; } 5295 break; 5296 5297 case 63: 5298 5299 /* Line 1806 of yacc.c */ 5293 5300 #line 487 "parser.yy" 5294 { (yyval.op) = OperKinds::Un Plus; }5295 break; 5296 5297 case 6 3:5301 { (yyval.op) = OperKinds::UnMinus; } 5302 break; 5303 5304 case 64: 5298 5305 5299 5306 /* Line 1806 of yacc.c */ 5300 5307 #line 488 "parser.yy" 5301 { (yyval.op) = OperKinds:: UnMinus; }5302 break; 5303 5304 case 6 4:5308 { (yyval.op) = OperKinds::Neg; } 5309 break; 5310 5311 case 65: 5305 5312 5306 5313 /* Line 1806 of yacc.c */ 5307 5314 #line 489 "parser.yy" 5308 { (yyval.op) = OperKinds::Neg; }5309 break;5310 5311 case 65:5312 5313 /* Line 1806 of yacc.c */5314 #line 490 "parser.yy"5315 5315 { (yyval.op) = OperKinds::BitNeg; } 5316 5316 break; … … 5319 5319 5320 5320 /* Line 1806 of yacc.c */ 5321 #line 49 6"parser.yy"5321 #line 495 "parser.yy" 5322 5322 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); } 5323 5323 break; … … 5326 5326 5327 5327 /* Line 1806 of yacc.c */ 5328 #line 49 8"parser.yy"5328 #line 497 "parser.yy" 5329 5329 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); } 5330 5330 break; … … 5333 5333 5334 5334 /* Line 1806 of yacc.c */ 5335 #line 50 4"parser.yy"5335 #line 503 "parser.yy" 5336 5336 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5337 5337 break; … … 5340 5340 5341 5341 /* Line 1806 of yacc.c */ 5342 #line 50 6"parser.yy"5342 #line 505 "parser.yy" 5343 5343 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5344 5344 break; … … 5347 5347 5348 5348 /* Line 1806 of yacc.c */ 5349 #line 50 8"parser.yy"5349 #line 507 "parser.yy" 5350 5350 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5351 5351 break; … … 5354 5354 5355 5355 /* Line 1806 of yacc.c */ 5356 #line 51 4"parser.yy"5356 #line 513 "parser.yy" 5357 5357 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5358 5358 break; … … 5361 5361 5362 5362 /* Line 1806 of yacc.c */ 5363 #line 51 6"parser.yy"5363 #line 515 "parser.yy" 5364 5364 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5365 5365 break; … … 5368 5368 5369 5369 /* Line 1806 of yacc.c */ 5370 #line 52 2"parser.yy"5370 #line 521 "parser.yy" 5371 5371 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5372 5372 break; … … 5375 5375 5376 5376 /* Line 1806 of yacc.c */ 5377 #line 52 4"parser.yy"5377 #line 523 "parser.yy" 5378 5378 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5379 5379 break; … … 5382 5382 5383 5383 /* Line 1806 of yacc.c */ 5384 #line 5 30"parser.yy"5384 #line 529 "parser.yy" 5385 5385 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5386 5386 break; … … 5389 5389 5390 5390 /* Line 1806 of yacc.c */ 5391 #line 53 2"parser.yy"5391 #line 531 "parser.yy" 5392 5392 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5393 5393 break; … … 5396 5396 5397 5397 /* Line 1806 of yacc.c */ 5398 #line 53 4"parser.yy"5398 #line 533 "parser.yy" 5399 5399 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5400 5400 break; … … 5403 5403 5404 5404 /* Line 1806 of yacc.c */ 5405 #line 53 6"parser.yy"5405 #line 535 "parser.yy" 5406 5406 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5407 5407 break; … … 5410 5410 5411 5411 /* Line 1806 of yacc.c */ 5412 #line 54 2"parser.yy"5412 #line 541 "parser.yy" 5413 5413 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5414 5414 break; … … 5417 5417 5418 5418 /* Line 1806 of yacc.c */ 5419 #line 54 4"parser.yy"5419 #line 543 "parser.yy" 5420 5420 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5421 5421 break; … … 5424 5424 5425 5425 /* Line 1806 of yacc.c */ 5426 #line 5 50"parser.yy"5426 #line 549 "parser.yy" 5427 5427 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5428 5428 break; … … 5431 5431 5432 5432 /* Line 1806 of yacc.c */ 5433 #line 55 6"parser.yy"5433 #line 555 "parser.yy" 5434 5434 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5435 5435 break; … … 5438 5438 5439 5439 /* Line 1806 of yacc.c */ 5440 #line 56 2"parser.yy"5440 #line 561 "parser.yy" 5441 5441 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5442 5442 break; … … 5445 5445 5446 5446 /* Line 1806 of yacc.c */ 5447 #line 56 8"parser.yy"5447 #line 567 "parser.yy" 5448 5448 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); } 5449 5449 break; … … 5452 5452 5453 5453 /* Line 1806 of yacc.c */ 5454 #line 57 4"parser.yy"5454 #line 573 "parser.yy" 5455 5455 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); } 5456 5456 break; … … 5459 5459 5460 5460 /* Line 1806 of yacc.c */ 5461 #line 5 80"parser.yy"5461 #line 579 "parser.yy" 5462 5462 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); } 5463 5463 break; … … 5466 5466 5467 5467 /* Line 1806 of yacc.c */ 5468 #line 58 3"parser.yy"5468 #line 582 "parser.yy" 5469 5469 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); } 5470 5470 break; … … 5473 5473 5474 5474 /* Line 1806 of yacc.c */ 5475 #line 58 5"parser.yy"5475 #line 584 "parser.yy" 5476 5476 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); } 5477 5477 break; … … 5480 5480 5481 5481 /* Line 1806 of yacc.c */ 5482 #line 59 6"parser.yy"5482 #line 595 "parser.yy" 5483 5483 { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5484 5484 break; … … 5487 5487 5488 5488 /* Line 1806 of yacc.c */ 5489 #line 59 8"parser.yy"5489 #line 597 "parser.yy" 5490 5490 { (yyval.en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new ExpressionNode( build_binary_ptr( OperKinds::Assign, (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ) ); } 5491 5491 break; … … 5494 5494 5495 5495 /* Line 1806 of yacc.c */ 5496 #line 60 3"parser.yy"5496 #line 602 "parser.yy" 5497 5497 { (yyval.en) = nullptr; } 5498 5498 break; … … 5501 5501 5502 5502 /* Line 1806 of yacc.c */ 5503 #line 607 "parser.yy" 5504 { (yyval.op) = OperKinds::Assign; } 5505 break; 5506 5507 case 108: 5508 5509 /* Line 1806 of yacc.c */ 5503 5510 #line 608 "parser.yy" 5504 { (yyval.op) = OperKinds:: Assign; }5505 break; 5506 5507 case 10 8:5511 { (yyval.op) = OperKinds::MulAssn; } 5512 break; 5513 5514 case 109: 5508 5515 5509 5516 /* Line 1806 of yacc.c */ 5510 5517 #line 609 "parser.yy" 5511 { (yyval.op) = OperKinds:: MulAssn; }5512 break; 5513 5514 case 1 09:5518 { (yyval.op) = OperKinds::DivAssn; } 5519 break; 5520 5521 case 110: 5515 5522 5516 5523 /* Line 1806 of yacc.c */ 5517 5524 #line 610 "parser.yy" 5518 { (yyval.op) = OperKinds:: DivAssn; }5519 break; 5520 5521 case 11 0:5525 { (yyval.op) = OperKinds::ModAssn; } 5526 break; 5527 5528 case 111: 5522 5529 5523 5530 /* Line 1806 of yacc.c */ 5524 5531 #line 611 "parser.yy" 5525 { (yyval.op) = OperKinds:: ModAssn; }5526 break; 5527 5528 case 11 1:5532 { (yyval.op) = OperKinds::PlusAssn; } 5533 break; 5534 5535 case 112: 5529 5536 5530 5537 /* Line 1806 of yacc.c */ 5531 5538 #line 612 "parser.yy" 5532 { (yyval.op) = OperKinds:: PlusAssn; }5533 break; 5534 5535 case 11 2:5539 { (yyval.op) = OperKinds::MinusAssn; } 5540 break; 5541 5542 case 113: 5536 5543 5537 5544 /* Line 1806 of yacc.c */ 5538 5545 #line 613 "parser.yy" 5539 { (yyval.op) = OperKinds:: MinusAssn; }5540 break; 5541 5542 case 11 3:5546 { (yyval.op) = OperKinds::LSAssn; } 5547 break; 5548 5549 case 114: 5543 5550 5544 5551 /* Line 1806 of yacc.c */ 5545 5552 #line 614 "parser.yy" 5546 { (yyval.op) = OperKinds:: LSAssn; }5547 break; 5548 5549 case 11 4:5553 { (yyval.op) = OperKinds::RSAssn; } 5554 break; 5555 5556 case 115: 5550 5557 5551 5558 /* Line 1806 of yacc.c */ 5552 5559 #line 615 "parser.yy" 5553 { (yyval.op) = OperKinds:: RSAssn; }5554 break; 5555 5556 case 11 5:5560 { (yyval.op) = OperKinds::AndAssn; } 5561 break; 5562 5563 case 116: 5557 5564 5558 5565 /* Line 1806 of yacc.c */ 5559 5566 #line 616 "parser.yy" 5560 { (yyval.op) = OperKinds:: AndAssn; }5561 break; 5562 5563 case 11 6:5567 { (yyval.op) = OperKinds::ERAssn; } 5568 break; 5569 5570 case 117: 5564 5571 5565 5572 /* Line 1806 of yacc.c */ 5566 5573 #line 617 "parser.yy" 5567 { (yyval.op) = OperKinds::ERAssn; }5568 break;5569 5570 case 117:5571 5572 /* Line 1806 of yacc.c */5573 #line 618 "parser.yy"5574 5574 { (yyval.op) = OperKinds::OrAssn; } 5575 5575 break; … … 5578 5578 5579 5579 /* Line 1806 of yacc.c */ 5580 #line 62 5"parser.yy"5580 #line 624 "parser.yy" 5581 5581 { (yyval.en) = new ExpressionNode( build_tuple() ); } 5582 5582 break; … … 5585 5585 5586 5586 /* Line 1806 of yacc.c */ 5587 #line 62 7"parser.yy"5587 #line 626 "parser.yy" 5588 5588 { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[(3) - (5)].en) ) ); } 5589 5589 break; … … 5592 5592 5593 5593 /* Line 1806 of yacc.c */ 5594 #line 62 9"parser.yy"5594 #line 628 "parser.yy" 5595 5595 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); } 5596 5596 break; … … 5599 5599 5600 5600 /* Line 1806 of yacc.c */ 5601 #line 63 1"parser.yy"5601 #line 630 "parser.yy" 5602 5602 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_last( (yyvsp[(5) - (7)].en) ) ) ); } 5603 5603 break; … … 5606 5606 5607 5607 /* Line 1806 of yacc.c */ 5608 #line 63 7"parser.yy"5608 #line 636 "parser.yy" 5609 5609 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 5610 5610 break; … … 5613 5613 5614 5614 /* Line 1806 of yacc.c */ 5615 #line 64 3"parser.yy"5615 #line 642 "parser.yy" 5616 5616 { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5617 5617 break; … … 5620 5620 5621 5621 /* Line 1806 of yacc.c */ 5622 #line 64 8"parser.yy"5622 #line 647 "parser.yy" 5623 5623 { (yyval.en) = 0; } 5624 5624 break; … … 5627 5627 5628 5628 /* Line 1806 of yacc.c */ 5629 #line 65 7"parser.yy"5629 #line 656 "parser.yy" 5630 5630 { (yyval.sn) = (yyvsp[(1) - (1)].sn); } 5631 5631 break; … … 5634 5634 5635 5635 /* Line 1806 of yacc.c */ 5636 #line 66 4"parser.yy"5636 #line 663 "parser.yy" 5637 5637 { 5638 5638 Token fn; … … 5645 5645 5646 5646 /* Line 1806 of yacc.c */ 5647 #line 67 4"parser.yy"5647 #line 673 "parser.yy" 5648 5648 { 5649 5649 (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) ); … … 5654 5654 5655 5655 /* Line 1806 of yacc.c */ 5656 #line 68 1"parser.yy"5656 #line 680 "parser.yy" 5657 5657 { (yyval.sn) = new CompoundStmtNode( (StatementNode *)0 ); } 5658 5658 break; … … 5661 5661 5662 5662 /* Line 1806 of yacc.c */ 5663 #line 68 8"parser.yy"5663 #line 687 "parser.yy" 5664 5664 { (yyval.sn) = new CompoundStmtNode( (yyvsp[(5) - (7)].sn) ); } 5665 5665 break; … … 5668 5668 5669 5669 /* Line 1806 of yacc.c */ 5670 #line 69 4"parser.yy"5670 #line 693 "parser.yy" 5671 5671 { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } } 5672 5672 break; … … 5675 5675 5676 5676 /* Line 1806 of yacc.c */ 5677 #line 69 9"parser.yy"5677 #line 698 "parser.yy" 5678 5678 { (yyval.sn) = new StatementNode2( (yyvsp[(1) - (1)].decl) ); } 5679 5679 break; … … 5682 5682 5683 5683 /* Line 1806 of yacc.c */ 5684 #line 70 1"parser.yy"5684 #line 700 "parser.yy" 5685 5685 { // mark all fields in list 5686 5686 for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_next() ) … … 5693 5693 5694 5694 /* Line 1806 of yacc.c */ 5695 #line 70 7"parser.yy"5695 #line 706 "parser.yy" 5696 5696 { (yyval.sn) = new StatementNode2( (yyvsp[(1) - (1)].decl) ); } 5697 5697 break; … … 5700 5700 5701 5701 /* Line 1806 of yacc.c */ 5702 #line 71 4"parser.yy"5702 #line 713 "parser.yy" 5703 5703 { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } } 5704 5704 break; … … 5707 5707 5708 5708 /* Line 1806 of yacc.c */ 5709 #line 71 9"parser.yy"5709 #line 718 "parser.yy" 5710 5710 { (yyval.sn) = new StatementNode2( build_expr( (yyvsp[(1) - (2)].en) ) ); } 5711 5711 break; … … 5714 5714 5715 5715 /* Line 1806 of yacc.c */ 5716 #line 72 5"parser.yy"5716 #line 724 "parser.yy" 5717 5717 { (yyval.sn) = new StatementNode2( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); } 5718 5718 break; … … 5721 5721 5722 5722 /* Line 1806 of yacc.c */ 5723 #line 72 7"parser.yy"5723 #line 726 "parser.yy" 5724 5724 { (yyval.sn) = new StatementNode2( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); } 5725 5725 break; … … 5728 5728 5729 5729 /* Line 1806 of yacc.c */ 5730 #line 72 9"parser.yy"5730 #line 728 "parser.yy" 5731 5731 { (yyval.sn) = new StatementNode2( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5732 5732 break; … … 5735 5735 5736 5736 /* Line 1806 of yacc.c */ 5737 #line 73 1"parser.yy"5737 #line 730 "parser.yy" 5738 5738 { 5739 5739 StatementNode *sw = new StatementNode2( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) ); … … 5750 5750 5751 5751 /* Line 1806 of yacc.c */ 5752 #line 74 1"parser.yy"5752 #line 740 "parser.yy" 5753 5753 { (yyval.sn) = new StatementNode2( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5754 5754 break; … … 5757 5757 5758 5758 /* Line 1806 of yacc.c */ 5759 #line 74 3"parser.yy"5759 #line 742 "parser.yy" 5760 5760 { 5761 5761 StatementNode *sw = new StatementNode2( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) ); … … 5767 5767 5768 5768 /* Line 1806 of yacc.c */ 5769 #line 75 3"parser.yy"5769 #line 752 "parser.yy" 5770 5770 { (yyval.en) = (yyvsp[(1) - (1)].en); } 5771 5771 break; … … 5774 5774 5775 5775 /* Line 1806 of yacc.c */ 5776 #line 75 5"parser.yy"5776 #line 754 "parser.yy" 5777 5777 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5778 5778 break; … … 5781 5781 5782 5782 /* Line 1806 of yacc.c */ 5783 #line 7 60"parser.yy"5783 #line 759 "parser.yy" 5784 5784 { (yyval.sn) = new StatementNode2( build_case( (yyvsp[(1) - (1)].en) ) ); } 5785 5785 break; … … 5788 5788 5789 5789 /* Line 1806 of yacc.c */ 5790 #line 76 2"parser.yy"5790 #line 761 "parser.yy" 5791 5791 { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode2( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); } 5792 5792 break; … … 5795 5795 5796 5796 /* Line 1806 of yacc.c */ 5797 #line 765 "parser.yy" 5798 { (yyval.sn) = (yyvsp[(2) - (3)].sn); } 5799 break; 5800 5801 case 161: 5802 5803 /* Line 1806 of yacc.c */ 5797 5804 #line 766 "parser.yy" 5798 { (yyval.sn) = (yyvsp[(2) - (3)].sn); }5799 break;5800 5801 case 161:5802 5803 /* Line 1806 of yacc.c */5804 #line 767 "parser.yy"5805 5805 { (yyval.sn) = new StatementNode2( build_default() ); } 5806 5806 break; … … 5809 5809 5810 5810 /* Line 1806 of yacc.c */ 5811 #line 77 3"parser.yy"5811 #line 772 "parser.yy" 5812 5812 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) )); } 5813 5813 break; … … 5816 5816 5817 5817 /* Line 1806 of yacc.c */ 5818 #line 77 7"parser.yy"5818 #line 776 "parser.yy" 5819 5819 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(2) - (2)].sn) ) ); } 5820 5820 break; … … 5823 5823 5824 5824 /* Line 1806 of yacc.c */ 5825 #line 78 2"parser.yy"5825 #line 781 "parser.yy" 5826 5826 { (yyval.sn) = 0; } 5827 5827 break; … … 5830 5830 5831 5831 /* Line 1806 of yacc.c */ 5832 #line 78 8"parser.yy"5832 #line 787 "parser.yy" 5833 5833 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(2) - (2)].sn) ) ); } 5834 5834 break; … … 5837 5837 5838 5838 /* Line 1806 of yacc.c */ 5839 #line 7 90"parser.yy"5839 #line 789 "parser.yy" 5840 5840 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( new CompoundStmtNode( (yyvsp[(3) - (3)].sn) ) ) ) ); } 5841 5841 break; … … 5844 5844 5845 5845 /* Line 1806 of yacc.c */ 5846 #line 79 5"parser.yy"5846 #line 794 "parser.yy" 5847 5847 { (yyval.sn) = 0; } 5848 5848 break; … … 5851 5851 5852 5852 /* Line 1806 of yacc.c */ 5853 #line 80 1"parser.yy"5853 #line 800 "parser.yy" 5854 5854 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); } 5855 5855 break; … … 5858 5858 5859 5859 /* Line 1806 of yacc.c */ 5860 #line 80 3"parser.yy"5860 #line 802 "parser.yy" 5861 5861 { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new CompoundStmtNode( (StatementNode *)mkList( (*(yyvsp[(2) - (3)].sn), *(yyvsp[(3) - (3)].sn) ) ) ) ); } 5862 5862 break; … … 5865 5865 5866 5866 /* Line 1806 of yacc.c */ 5867 #line 80 5"parser.yy"5867 #line 804 "parser.yy" 5868 5868 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); } 5869 5869 break; … … 5872 5872 5873 5873 /* Line 1806 of yacc.c */ 5874 #line 80 7"parser.yy"5874 #line 806 "parser.yy" 5875 5875 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_last( (yyvsp[(2) - (4)].sn)->append_last_case( new CompoundStmtNode( (StatementNode *)mkList( (*(yyvsp[(3) - (4)].sn), *(yyvsp[(4) - (4)].sn) ) ) ) ) ) ); } 5876 5876 break; … … 5879 5879 5880 5880 /* Line 1806 of yacc.c */ 5881 #line 81 2"parser.yy"5881 #line 811 "parser.yy" 5882 5882 { (yyval.sn) = new StatementNode2( build_branch( "", BranchStmt::Break ) ); } 5883 5883 break; … … 5886 5886 5887 5887 /* Line 1806 of yacc.c */ 5888 #line 81 8"parser.yy"5888 #line 817 "parser.yy" 5889 5889 { (yyval.sn) = 0; } 5890 5890 break; … … 5893 5893 5894 5894 /* Line 1806 of yacc.c */ 5895 #line 8 20"parser.yy"5895 #line 819 "parser.yy" 5896 5896 { (yyval.sn) = 0; } 5897 5897 break; … … 5900 5900 5901 5901 /* Line 1806 of yacc.c */ 5902 #line 82 5"parser.yy"5902 #line 824 "parser.yy" 5903 5903 { (yyval.sn) = new StatementNode2( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5904 5904 break; … … 5907 5907 5908 5908 /* Line 1806 of yacc.c */ 5909 #line 82 7"parser.yy"5909 #line 826 "parser.yy" 5910 5910 { (yyval.sn) = new StatementNode2( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ) ); } 5911 5911 break; … … 5914 5914 5915 5915 /* Line 1806 of yacc.c */ 5916 #line 82 9"parser.yy"5916 #line 828 "parser.yy" 5917 5917 { (yyval.sn) = new StatementNode2( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); } 5918 5918 break; … … 5921 5921 5922 5922 /* Line 1806 of yacc.c */ 5923 #line 83 4"parser.yy"5923 #line 833 "parser.yy" 5924 5924 { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); } 5925 5925 break; … … 5928 5928 5929 5929 /* Line 1806 of yacc.c */ 5930 #line 83 6"parser.yy"5930 #line 835 "parser.yy" 5931 5931 { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); } 5932 5932 break; … … 5935 5935 5936 5936 /* Line 1806 of yacc.c */ 5937 #line 84 1"parser.yy"5937 #line 840 "parser.yy" 5938 5938 { (yyval.sn) = new StatementNode2( build_branch( *(yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); } 5939 5939 break; … … 5942 5942 5943 5943 /* Line 1806 of yacc.c */ 5944 #line 84 5"parser.yy"5944 #line 844 "parser.yy" 5945 5945 { (yyval.sn) = new StatementNode2( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); } 5946 5946 break; … … 5949 5949 5950 5950 /* Line 1806 of yacc.c */ 5951 #line 84 8"parser.yy"5951 #line 847 "parser.yy" 5952 5952 { (yyval.sn) = new StatementNode2( build_branch( "", BranchStmt::Continue ) ); } 5953 5953 break; … … 5956 5956 5957 5957 /* Line 1806 of yacc.c */ 5958 #line 85 2"parser.yy"5958 #line 851 "parser.yy" 5959 5959 { (yyval.sn) = new StatementNode2( build_branch( *(yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); delete (yyvsp[(2) - (3)].tok); } 5960 5960 break; … … 5963 5963 5964 5964 /* Line 1806 of yacc.c */ 5965 #line 85 5"parser.yy"5965 #line 854 "parser.yy" 5966 5966 { (yyval.sn) = new StatementNode2( build_branch( "", BranchStmt::Break ) ); } 5967 5967 break; … … 5970 5970 5971 5971 /* Line 1806 of yacc.c */ 5972 #line 85 9"parser.yy"5972 #line 858 "parser.yy" 5973 5973 { (yyval.sn) = new StatementNode2( build_branch( *(yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); delete (yyvsp[(2) - (3)].tok); } 5974 5974 break; … … 5977 5977 5978 5978 /* Line 1806 of yacc.c */ 5979 #line 86 1"parser.yy"5979 #line 860 "parser.yy" 5980 5980 { (yyval.sn) = new StatementNode2( build_return( (yyvsp[(2) - (3)].en) ) ); } 5981 5981 break; … … 5984 5984 5985 5985 /* Line 1806 of yacc.c */ 5986 #line 86 3"parser.yy"5986 #line 862 "parser.yy" 5987 5987 { (yyval.sn) = new StatementNode2( build_throw( (yyvsp[(2) - (3)].en) ) ); } 5988 5988 break; … … 5991 5991 5992 5992 /* Line 1806 of yacc.c */ 5993 #line 86 5"parser.yy"5993 #line 864 "parser.yy" 5994 5994 { (yyval.sn) = new StatementNode2( build_throw( (yyvsp[(2) - (3)].en) ) ); } 5995 5995 break; … … 5998 5998 5999 5999 /* Line 1806 of yacc.c */ 6000 #line 86 7"parser.yy"6000 #line 866 "parser.yy" 6001 6001 { (yyval.sn) = new StatementNode2( build_throw( (yyvsp[(2) - (5)].en) ) ); } 6002 6002 break; … … 6005 6005 6006 6006 /* Line 1806 of yacc.c */ 6007 #line 87 2"parser.yy"6007 #line 871 "parser.yy" 6008 6008 { (yyval.sn) = new StatementNode2( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); } 6009 6009 break; … … 6012 6012 6013 6013 /* Line 1806 of yacc.c */ 6014 #line 87 4"parser.yy"6014 #line 873 "parser.yy" 6015 6015 { (yyval.sn) = new StatementNode2( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); } 6016 6016 break; … … 6019 6019 6020 6020 /* Line 1806 of yacc.c */ 6021 #line 87 6"parser.yy"6021 #line 875 "parser.yy" 6022 6022 { (yyval.sn) = new StatementNode2( build_try( (yyvsp[(2) - (4)].sn), (yyvsp[(3) - (4)].sn), (yyvsp[(4) - (4)].sn) ) ); } 6023 6023 break; … … 6026 6026 6027 6027 /* Line 1806 of yacc.c */ 6028 #line 88 3"parser.yy"6028 #line 882 "parser.yy" 6029 6029 { (yyval.sn) = new StatementNode2( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); } 6030 6030 break; … … 6033 6033 6034 6034 /* Line 1806 of yacc.c */ 6035 #line 88 5"parser.yy"6035 #line 884 "parser.yy" 6036 6036 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode2( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); } 6037 6037 break; … … 6040 6040 6041 6041 /* Line 1806 of yacc.c */ 6042 #line 88 7"parser.yy"6042 #line 886 "parser.yy" 6043 6043 { (yyval.sn) = new StatementNode2( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); } 6044 6044 break; … … 6047 6047 6048 6048 /* Line 1806 of yacc.c */ 6049 #line 88 9"parser.yy"6049 #line 888 "parser.yy" 6050 6050 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode2( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); } 6051 6051 break; … … 6054 6054 6055 6055 /* Line 1806 of yacc.c */ 6056 #line 89 4"parser.yy"6056 #line 893 "parser.yy" 6057 6057 { (yyval.sn) = new StatementNode2( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); } 6058 6058 break; … … 6061 6061 6062 6062 /* Line 1806 of yacc.c */ 6063 #line 89 6"parser.yy"6063 #line 895 "parser.yy" 6064 6064 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode2( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); } 6065 6065 break; … … 6068 6068 6069 6069 /* Line 1806 of yacc.c */ 6070 #line 89 8"parser.yy"6070 #line 897 "parser.yy" 6071 6071 { (yyval.sn) = new StatementNode2( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); } 6072 6072 break; … … 6075 6075 6076 6076 /* Line 1806 of yacc.c */ 6077 #line 900"parser.yy"6077 #line 899 "parser.yy" 6078 6078 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode2( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); } 6079 6079 break; … … 6082 6082 6083 6083 /* Line 1806 of yacc.c */ 6084 #line 90 5"parser.yy"6084 #line 904 "parser.yy" 6085 6085 { 6086 6086 (yyval.sn) = new StatementNode2( build_finally( (yyvsp[(2) - (2)].sn) ) ); … … 6091 6091 6092 6092 /* Line 1806 of yacc.c */ 6093 #line 91 8"parser.yy"6093 #line 917 "parser.yy" 6094 6094 { 6095 6095 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6101 6101 6102 6102 /* Line 1806 of yacc.c */ 6103 #line 92 3"parser.yy"6103 #line 922 "parser.yy" 6104 6104 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 6105 6105 break; … … 6108 6108 6109 6109 /* Line 1806 of yacc.c */ 6110 #line 92 5"parser.yy"6110 #line 924 "parser.yy" 6111 6111 { 6112 6112 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6118 6118 6119 6119 /* Line 1806 of yacc.c */ 6120 #line 93 4"parser.yy"6121 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm,(yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ); }6120 #line 933 "parser.yy" 6121 { (yyval.sn) = new AsmStmtNode( (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ); } 6122 6122 break; 6123 6123 … … 6125 6125 6126 6126 /* Line 1806 of yacc.c */ 6127 #line 93 6"parser.yy"6128 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm,(yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ); }6127 #line 935 "parser.yy" 6128 { (yyval.sn) = new AsmStmtNode( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ); } 6129 6129 break; 6130 6130 … … 6132 6132 6133 6133 /* Line 1806 of yacc.c */ 6134 #line 93 8"parser.yy"6135 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm,(yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ); }6134 #line 937 "parser.yy" 6135 { (yyval.sn) = new AsmStmtNode( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ); } 6136 6136 break; 6137 6137 … … 6139 6139 6140 6140 /* Line 1806 of yacc.c */ 6141 #line 9 40"parser.yy"6142 { (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)].en) ); }6141 #line 939 "parser.yy" 6142 { (yyval.sn) = new AsmStmtNode( (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].en) ); } 6143 6143 break; 6144 6144 … … 6146 6146 6147 6147 /* Line 1806 of yacc.c */ 6148 #line 94 2"parser.yy"6149 { (yyval.sn) = new AsmStmtNode( StatementNode::Asm,(yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].en), (yyvsp[(12) - (14)].label) ); }6148 #line 941 "parser.yy" 6149 { (yyval.sn) = new AsmStmtNode( (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].en), (yyvsp[(12) - (14)].label) ); } 6150 6150 break; 6151 6151 … … 6153 6153 6154 6154 /* Line 1806 of yacc.c */ 6155 #line 94 7"parser.yy"6155 #line 946 "parser.yy" 6156 6156 { (yyval.flag) = false; } 6157 6157 break; … … 6160 6160 6161 6161 /* Line 1806 of yacc.c */ 6162 #line 94 9"parser.yy"6162 #line 948 "parser.yy" 6163 6163 { (yyval.flag) = true; } 6164 6164 break; … … 6167 6167 6168 6168 /* Line 1806 of yacc.c */ 6169 #line 95 4"parser.yy"6169 #line 953 "parser.yy" 6170 6170 { (yyval.en) = 0; } 6171 6171 break; … … 6174 6174 6175 6175 /* Line 1806 of yacc.c */ 6176 #line 96 1"parser.yy"6176 #line 960 "parser.yy" 6177 6177 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 6178 6178 break; … … 6181 6181 6182 6182 /* Line 1806 of yacc.c */ 6183 #line 96 6"parser.yy"6183 #line 965 "parser.yy" 6184 6184 { (yyval.en) = new ExpressionNode( build_asm( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); } 6185 6185 break; … … 6188 6188 6189 6189 /* Line 1806 of yacc.c */ 6190 #line 96 8"parser.yy"6190 #line 967 "parser.yy" 6191 6191 { (yyval.en) = new ExpressionNode( build_asm( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); } 6192 6192 break; … … 6195 6195 6196 6196 /* Line 1806 of yacc.c */ 6197 #line 97 3"parser.yy"6197 #line 972 "parser.yy" 6198 6198 { (yyval.en) = 0; } 6199 6199 break; … … 6202 6202 6203 6203 /* Line 1806 of yacc.c */ 6204 #line 97 5"parser.yy"6204 #line 974 "parser.yy" 6205 6205 { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); } 6206 6206 break; … … 6209 6209 6210 6210 /* Line 1806 of yacc.c */ 6211 #line 97 7"parser.yy"6211 #line 976 "parser.yy" 6212 6212 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); } 6213 6213 break; … … 6216 6216 6217 6217 /* Line 1806 of yacc.c */ 6218 #line 98 2"parser.yy"6218 #line 981 "parser.yy" 6219 6219 { (yyval.label) = new LabelNode(); (yyval.label)->append_label( (yyvsp[(1) - (1)].tok) ); } 6220 6220 break; … … 6223 6223 6224 6224 /* Line 1806 of yacc.c */ 6225 #line 98 4"parser.yy"6225 #line 983 "parser.yy" 6226 6226 { (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->append_label( (yyvsp[(3) - (3)].tok) ); } 6227 6227 break; … … 6230 6230 6231 6231 /* Line 1806 of yacc.c */ 6232 #line 99 1"parser.yy"6232 #line 990 "parser.yy" 6233 6233 { (yyval.decl) = 0; } 6234 6234 break; … … 6237 6237 6238 6238 /* Line 1806 of yacc.c */ 6239 #line 99 8"parser.yy"6239 #line 997 "parser.yy" 6240 6240 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6241 6241 break; … … 6244 6244 6245 6245 /* Line 1806 of yacc.c */ 6246 #line 100 3"parser.yy"6246 #line 1002 "parser.yy" 6247 6247 { (yyval.decl) = 0; } 6248 6248 break; … … 6251 6251 6252 6252 /* Line 1806 of yacc.c */ 6253 #line 10 10"parser.yy"6253 #line 1009 "parser.yy" 6254 6254 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6255 6255 break; 6256 6256 6257 6257 case 242: 6258 6259 /* Line 1806 of yacc.c */ 6260 #line 1023 "parser.yy" 6261 {} 6262 break; 6263 6264 case 243: 6258 6265 6259 6266 /* Line 1806 of yacc.c */ … … 6262 6269 break; 6263 6270 6264 case 243:6265 6266 /* Line 1806 of yacc.c */6267 #line 1025 "parser.yy"6268 {}6269 break;6270 6271 6271 case 251: 6272 6272 6273 6273 /* Line 1806 of yacc.c */ 6274 #line 105 4"parser.yy"6274 #line 1053 "parser.yy" 6275 6275 { 6276 6276 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6282 6282 6283 6283 /* Line 1806 of yacc.c */ 6284 #line 106 1"parser.yy"6284 #line 1060 "parser.yy" 6285 6285 { 6286 6286 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6292 6292 6293 6293 /* Line 1806 of yacc.c */ 6294 #line 106 6"parser.yy"6294 #line 1065 "parser.yy" 6295 6295 { 6296 6296 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID ); … … 6302 6302 6303 6303 /* Line 1806 of yacc.c */ 6304 #line 107 6"parser.yy"6304 #line 1075 "parser.yy" 6305 6305 { 6306 6306 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); … … 6312 6312 6313 6313 /* Line 1806 of yacc.c */ 6314 #line 108 1"parser.yy"6314 #line 1080 "parser.yy" 6315 6315 { 6316 6316 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); … … 6322 6322 6323 6323 /* Line 1806 of yacc.c */ 6324 #line 108 6"parser.yy"6324 #line 1085 "parser.yy" 6325 6325 { 6326 6326 typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) ); … … 6332 6332 6333 6333 /* Line 1806 of yacc.c */ 6334 #line 109 4"parser.yy"6334 #line 1093 "parser.yy" 6335 6335 { 6336 6336 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6342 6342 6343 6343 /* Line 1806 of yacc.c */ 6344 #line 109 9"parser.yy"6344 #line 1098 "parser.yy" 6345 6345 { 6346 6346 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6352 6352 6353 6353 /* Line 1806 of yacc.c */ 6354 #line 110 4"parser.yy"6354 #line 1103 "parser.yy" 6355 6355 { 6356 6356 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6362 6362 6363 6363 /* Line 1806 of yacc.c */ 6364 #line 110 9"parser.yy"6364 #line 1108 "parser.yy" 6365 6365 { 6366 6366 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6372 6372 6373 6373 /* Line 1806 of yacc.c */ 6374 #line 111 4"parser.yy"6374 #line 1113 "parser.yy" 6375 6375 { 6376 6376 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); … … 6382 6382 6383 6383 /* Line 1806 of yacc.c */ 6384 #line 112 2"parser.yy"6384 #line 1121 "parser.yy" 6385 6385 { 6386 6386 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true ); … … 6391 6391 6392 6392 /* Line 1806 of yacc.c */ 6393 #line 114 5"parser.yy"6393 #line 1144 "parser.yy" 6394 6394 { 6395 6395 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); … … 6400 6400 6401 6401 /* Line 1806 of yacc.c */ 6402 #line 114 9"parser.yy"6402 #line 1148 "parser.yy" 6403 6403 { 6404 6404 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); … … 6409 6409 6410 6410 /* Line 1806 of yacc.c */ 6411 #line 115 6"parser.yy"6411 #line 1155 "parser.yy" 6412 6412 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 6413 6413 break; … … 6416 6416 6417 6417 /* Line 1806 of yacc.c */ 6418 #line 11 60"parser.yy"6418 #line 1159 "parser.yy" 6419 6419 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); } 6420 6420 break; … … 6423 6423 6424 6424 /* Line 1806 of yacc.c */ 6425 #line 116 5"parser.yy"6425 #line 1164 "parser.yy" 6426 6426 { 6427 6427 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6433 6433 6434 6434 /* Line 1806 of yacc.c */ 6435 #line 11 70"parser.yy"6435 #line 1169 "parser.yy" 6436 6436 { 6437 6437 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6443 6443 6444 6444 /* Line 1806 of yacc.c */ 6445 #line 117 5"parser.yy"6445 #line 1174 "parser.yy" 6446 6446 { 6447 6447 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD ); … … 6453 6453 6454 6454 /* Line 1806 of yacc.c */ 6455 #line 118 6"parser.yy"6455 #line 1185 "parser.yy" 6456 6456 { 6457 6457 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6463 6463 6464 6464 /* Line 1806 of yacc.c */ 6465 #line 119 1"parser.yy"6465 #line 1190 "parser.yy" 6466 6466 { 6467 6467 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6473 6473 6474 6474 /* Line 1806 of yacc.c */ 6475 #line 119 6"parser.yy"6475 #line 1195 "parser.yy" 6476 6476 { 6477 6477 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6483 6483 6484 6484 /* Line 1806 of yacc.c */ 6485 #line 120 1"parser.yy"6485 #line 1200 "parser.yy" 6486 6486 { 6487 6487 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6493 6493 6494 6494 /* Line 1806 of yacc.c */ 6495 #line 120 6"parser.yy"6495 #line 1205 "parser.yy" 6496 6496 { 6497 6497 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6503 6503 6504 6504 /* Line 1806 of yacc.c */ 6505 #line 121 5"parser.yy"6505 #line 1214 "parser.yy" 6506 6506 { 6507 6507 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD ); … … 6513 6513 6514 6514 /* Line 1806 of yacc.c */ 6515 #line 12 20"parser.yy"6515 #line 1219 "parser.yy" 6516 6516 { 6517 6517 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD ); … … 6523 6523 6524 6524 /* Line 1806 of yacc.c */ 6525 #line 123 7"parser.yy"6525 #line 1236 "parser.yy" 6526 6526 { 6527 6527 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6533 6533 6534 6534 /* Line 1806 of yacc.c */ 6535 #line 124 2"parser.yy"6535 #line 1241 "parser.yy" 6536 6536 { 6537 6537 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6543 6543 6544 6544 /* Line 1806 of yacc.c */ 6545 #line 126 4"parser.yy"6545 #line 1263 "parser.yy" 6546 6546 { (yyval.decl) = 0; } 6547 6547 break; … … 6550 6550 6551 6551 /* Line 1806 of yacc.c */ 6552 #line 127 6"parser.yy"6552 #line 1275 "parser.yy" 6553 6553 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6554 6554 break; … … 6557 6557 6558 6558 /* Line 1806 of yacc.c */ 6559 #line 128 7"parser.yy"6559 #line 1286 "parser.yy" 6560 6560 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); } 6561 6561 break; … … 6564 6564 6565 6565 /* Line 1806 of yacc.c */ 6566 #line 128 9"parser.yy"6566 #line 1288 "parser.yy" 6567 6567 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); } 6568 6568 break; … … 6571 6571 6572 6572 /* Line 1806 of yacc.c */ 6573 #line 129 1"parser.yy"6573 #line 1290 "parser.yy" 6574 6574 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); } 6575 6575 break; … … 6578 6578 6579 6579 /* Line 1806 of yacc.c */ 6580 #line 129 3"parser.yy"6580 #line 1292 "parser.yy" 6581 6581 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); } 6582 6582 break; … … 6585 6585 6586 6586 /* Line 1806 of yacc.c */ 6587 #line 129 5"parser.yy"6587 #line 1294 "parser.yy" 6588 6588 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); } 6589 6589 break; … … 6592 6592 6593 6593 /* Line 1806 of yacc.c */ 6594 #line 129 7"parser.yy"6594 #line 1296 "parser.yy" 6595 6595 { 6596 6596 typedefTable.enterScope(); … … 6601 6601 6602 6602 /* Line 1806 of yacc.c */ 6603 #line 130 1"parser.yy"6603 #line 1300 "parser.yy" 6604 6604 { 6605 6605 typedefTable.leaveScope(); … … 6611 6611 6612 6612 /* Line 1806 of yacc.c */ 6613 #line 13 10"parser.yy"6613 #line 1309 "parser.yy" 6614 6614 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6615 6615 break; … … 6618 6618 6619 6619 /* Line 1806 of yacc.c */ 6620 #line 131 2"parser.yy"6620 #line 1311 "parser.yy" 6621 6621 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6622 6622 break; … … 6625 6625 6626 6626 /* Line 1806 of yacc.c */ 6627 #line 132 3"parser.yy"6627 #line 1322 "parser.yy" 6628 6628 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6629 6629 break; … … 6632 6632 6633 6633 /* Line 1806 of yacc.c */ 6634 #line 133 2"parser.yy"6634 #line 1331 "parser.yy" 6635 6635 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); } 6636 6636 break; … … 6639 6639 6640 6640 /* Line 1806 of yacc.c */ 6641 #line 133 4"parser.yy"6641 #line 1333 "parser.yy" 6642 6642 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); } 6643 6643 break; … … 6646 6646 6647 6647 /* Line 1806 of yacc.c */ 6648 #line 133 6"parser.yy"6648 #line 1335 "parser.yy" 6649 6649 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); } 6650 6650 break; … … 6653 6653 6654 6654 /* Line 1806 of yacc.c */ 6655 #line 133 8"parser.yy"6655 #line 1337 "parser.yy" 6656 6656 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); } 6657 6657 break; … … 6660 6660 6661 6661 /* Line 1806 of yacc.c */ 6662 #line 13 40"parser.yy"6662 #line 1339 "parser.yy" 6663 6663 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); } 6664 6664 break; … … 6667 6667 6668 6668 /* Line 1806 of yacc.c */ 6669 #line 134 2"parser.yy"6669 #line 1341 "parser.yy" 6670 6670 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); } 6671 6671 break; … … 6674 6674 6675 6675 /* Line 1806 of yacc.c */ 6676 #line 134 4"parser.yy"6676 #line 1343 "parser.yy" 6677 6677 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); } 6678 6678 break; … … 6681 6681 6682 6682 /* Line 1806 of yacc.c */ 6683 #line 134 6"parser.yy"6683 #line 1345 "parser.yy" 6684 6684 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); } 6685 6685 break; … … 6688 6688 6689 6689 /* Line 1806 of yacc.c */ 6690 #line 135 1"parser.yy"6690 #line 1350 "parser.yy" 6691 6691 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); } 6692 6692 break; … … 6695 6695 6696 6696 /* Line 1806 of yacc.c */ 6697 #line 135 3"parser.yy"6697 #line 1352 "parser.yy" 6698 6698 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); } 6699 6699 break; … … 6702 6702 6703 6703 /* Line 1806 of yacc.c */ 6704 #line 135 5"parser.yy"6704 #line 1354 "parser.yy" 6705 6705 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); } 6706 6706 break; … … 6709 6709 6710 6710 /* Line 1806 of yacc.c */ 6711 #line 135 7"parser.yy"6711 #line 1356 "parser.yy" 6712 6712 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); } 6713 6713 break; … … 6716 6716 6717 6717 /* Line 1806 of yacc.c */ 6718 #line 135 9"parser.yy"6718 #line 1358 "parser.yy" 6719 6719 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); } 6720 6720 break; … … 6723 6723 6724 6724 /* Line 1806 of yacc.c */ 6725 #line 136 1"parser.yy"6725 #line 1360 "parser.yy" 6726 6726 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); } 6727 6727 break; … … 6730 6730 6731 6731 /* Line 1806 of yacc.c */ 6732 #line 136 3"parser.yy"6732 #line 1362 "parser.yy" 6733 6733 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); } 6734 6734 break; … … 6737 6737 6738 6738 /* Line 1806 of yacc.c */ 6739 #line 136 5"parser.yy"6739 #line 1364 "parser.yy" 6740 6740 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); } 6741 6741 break; … … 6744 6744 6745 6745 /* Line 1806 of yacc.c */ 6746 #line 136 7"parser.yy"6746 #line 1366 "parser.yy" 6747 6747 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); } 6748 6748 break; … … 6751 6751 6752 6752 /* Line 1806 of yacc.c */ 6753 #line 136 9"parser.yy"6753 #line 1368 "parser.yy" 6754 6754 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); } 6755 6755 break; … … 6758 6758 6759 6759 /* Line 1806 of yacc.c */ 6760 #line 137 1"parser.yy"6760 #line 1370 "parser.yy" 6761 6761 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); } 6762 6762 break; … … 6765 6765 6766 6766 /* Line 1806 of yacc.c */ 6767 #line 137 3"parser.yy"6767 #line 1372 "parser.yy" 6768 6768 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); } 6769 6769 break; … … 6772 6772 6773 6773 /* Line 1806 of yacc.c */ 6774 #line 137 5"parser.yy"6774 #line 1374 "parser.yy" 6775 6775 { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); } 6776 6776 break; … … 6779 6779 6780 6780 /* Line 1806 of yacc.c */ 6781 #line 138 2"parser.yy"6781 #line 1381 "parser.yy" 6782 6782 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6783 6783 break; … … 6786 6786 6787 6787 /* Line 1806 of yacc.c */ 6788 #line 138 4"parser.yy"6788 #line 1383 "parser.yy" 6789 6789 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6790 6790 break; … … 6793 6793 6794 6794 /* Line 1806 of yacc.c */ 6795 #line 138 6"parser.yy"6795 #line 1385 "parser.yy" 6796 6796 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6797 6797 break; … … 6800 6800 6801 6801 /* Line 1806 of yacc.c */ 6802 #line 138 8"parser.yy"6802 #line 1387 "parser.yy" 6803 6803 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); } 6804 6804 break; … … 6807 6807 6808 6808 /* Line 1806 of yacc.c */ 6809 #line 139 4"parser.yy"6809 #line 1393 "parser.yy" 6810 6810 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6811 6811 break; … … 6814 6814 6815 6815 /* Line 1806 of yacc.c */ 6816 #line 140 1"parser.yy"6816 #line 1400 "parser.yy" 6817 6817 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6818 6818 break; … … 6821 6821 6822 6822 /* Line 1806 of yacc.c */ 6823 #line 140 3"parser.yy"6823 #line 1402 "parser.yy" 6824 6824 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6825 6825 break; … … 6828 6828 6829 6829 /* Line 1806 of yacc.c */ 6830 #line 140 5"parser.yy"6830 #line 1404 "parser.yy" 6831 6831 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); } 6832 6832 break; … … 6835 6835 6836 6836 /* Line 1806 of yacc.c */ 6837 #line 14 10"parser.yy"6837 #line 1409 "parser.yy" 6838 6838 { (yyval.decl) = (yyvsp[(3) - (4)].decl); } 6839 6839 break; … … 6842 6842 6843 6843 /* Line 1806 of yacc.c */ 6844 #line 141 2"parser.yy"6844 #line 1411 "parser.yy" 6845 6845 { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); } 6846 6846 break; … … 6849 6849 6850 6850 /* Line 1806 of yacc.c */ 6851 #line 141 4"parser.yy"6851 #line 1413 "parser.yy" 6852 6852 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); } 6853 6853 break; … … 6856 6856 6857 6857 /* Line 1806 of yacc.c */ 6858 #line 141 6"parser.yy"6858 #line 1415 "parser.yy" 6859 6859 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 6860 6860 break; … … 6863 6863 6864 6864 /* Line 1806 of yacc.c */ 6865 #line 142 2"parser.yy"6865 #line 1421 "parser.yy" 6866 6866 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6867 6867 break; … … 6870 6870 6871 6871 /* Line 1806 of yacc.c */ 6872 #line 142 4"parser.yy"6872 #line 1423 "parser.yy" 6873 6873 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6874 6874 break; … … 6877 6877 6878 6878 /* Line 1806 of yacc.c */ 6879 #line 142 6"parser.yy"6879 #line 1425 "parser.yy" 6880 6880 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6881 6881 break; … … 6884 6884 6885 6885 /* Line 1806 of yacc.c */ 6886 #line 143 2"parser.yy"6886 #line 1431 "parser.yy" 6887 6887 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6888 6888 break; … … 6891 6891 6892 6892 /* Line 1806 of yacc.c */ 6893 #line 143 4"parser.yy"6893 #line 1433 "parser.yy" 6894 6894 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6895 6895 break; … … 6898 6898 6899 6899 /* Line 1806 of yacc.c */ 6900 #line 14 40"parser.yy"6900 #line 1439 "parser.yy" 6901 6901 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6902 6902 break; … … 6905 6905 6906 6906 /* Line 1806 of yacc.c */ 6907 #line 144 2"parser.yy"6907 #line 1441 "parser.yy" 6908 6908 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6909 6909 break; … … 6912 6912 6913 6913 /* Line 1806 of yacc.c */ 6914 #line 144 4"parser.yy"6914 #line 1443 "parser.yy" 6915 6915 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6916 6916 break; … … 6919 6919 6920 6920 /* Line 1806 of yacc.c */ 6921 #line 144 9"parser.yy"6921 #line 1448 "parser.yy" 6922 6922 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); } 6923 6923 break; … … 6926 6926 6927 6927 /* Line 1806 of yacc.c */ 6928 #line 145 1"parser.yy"6928 #line 1450 "parser.yy" 6929 6929 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6930 6930 break; … … 6933 6933 6934 6934 /* Line 1806 of yacc.c */ 6935 #line 145 3"parser.yy"6935 #line 1452 "parser.yy" 6936 6936 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6937 6937 break; … … 6940 6940 6941 6941 /* Line 1806 of yacc.c */ 6942 #line 146 3"parser.yy"6942 #line 1462 "parser.yy" 6943 6943 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl), true ); } 6944 6944 break; … … 6947 6947 6948 6948 /* Line 1806 of yacc.c */ 6949 #line 146 5"parser.yy"6949 #line 1464 "parser.yy" 6950 6950 { 6951 6951 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); … … 6957 6957 6958 6958 /* Line 1806 of yacc.c */ 6959 #line 14 70"parser.yy"6959 #line 1469 "parser.yy" 6960 6960 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 6961 6961 break; … … 6964 6964 6965 6965 /* Line 1806 of yacc.c */ 6966 #line 147 2"parser.yy"6966 #line 1471 "parser.yy" 6967 6967 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), 0, (yyvsp[(5) - (6)].decl), true ); } 6968 6968 break; … … 6971 6971 6972 6972 /* Line 1806 of yacc.c */ 6973 #line 147 4"parser.yy"6973 #line 1473 "parser.yy" 6974 6974 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); } 6975 6975 break; … … 6978 6978 6979 6979 /* Line 1806 of yacc.c */ 6980 #line 147 6"parser.yy"6980 #line 1475 "parser.yy" 6981 6981 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 6982 6982 break; … … 6985 6985 6986 6986 /* Line 1806 of yacc.c */ 6987 #line 148 1"parser.yy"6987 #line 1480 "parser.yy" 6988 6988 { (yyval.aggKey) = DeclarationNode::Struct; } 6989 6989 break; … … 6992 6992 6993 6993 /* Line 1806 of yacc.c */ 6994 #line 148 3"parser.yy"6994 #line 1482 "parser.yy" 6995 6995 { (yyval.aggKey) = DeclarationNode::Union; } 6996 6996 break; … … 6999 6999 7000 7000 /* Line 1806 of yacc.c */ 7001 #line 148 8"parser.yy"7001 #line 1487 "parser.yy" 7002 7002 { (yyval.decl) = 0; } 7003 7003 break; … … 7006 7006 7007 7007 /* Line 1806 of yacc.c */ 7008 #line 14 90"parser.yy"7008 #line 1489 "parser.yy" 7009 7009 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 7010 7010 break; … … 7013 7013 7014 7014 /* Line 1806 of yacc.c */ 7015 #line 149 6"parser.yy"7015 #line 1495 "parser.yy" 7016 7016 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); } 7017 7017 break; … … 7020 7020 7021 7021 /* Line 1806 of yacc.c */ 7022 #line 149 9"parser.yy"7022 #line 1498 "parser.yy" 7023 7023 { // mark all fields in list 7024 7024 for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_next() ) … … 7031 7031 7032 7032 /* Line 1806 of yacc.c */ 7033 #line 150 9"parser.yy"7033 #line 1508 "parser.yy" 7034 7034 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); } 7035 7035 break; … … 7038 7038 7039 7039 /* Line 1806 of yacc.c */ 7040 #line 151 1"parser.yy"7040 #line 1510 "parser.yy" 7041 7041 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); } 7042 7042 break; … … 7045 7045 7046 7046 /* Line 1806 of yacc.c */ 7047 #line 151 3"parser.yy"7047 #line 1512 "parser.yy" 7048 7048 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); } 7049 7049 break; … … 7052 7052 7053 7053 /* Line 1806 of yacc.c */ 7054 #line 151 8"parser.yy"7054 #line 1517 "parser.yy" 7055 7055 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7056 7056 break; … … 7059 7059 7060 7060 /* Line 1806 of yacc.c */ 7061 #line 15 20"parser.yy"7061 #line 1519 "parser.yy" 7062 7062 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); } 7063 7063 break; … … 7066 7066 7067 7067 /* Line 1806 of yacc.c */ 7068 #line 152 5"parser.yy"7068 #line 1524 "parser.yy" 7069 7069 { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ } 7070 7070 break; … … 7073 7073 7074 7074 /* Line 1806 of yacc.c */ 7075 #line 152 7"parser.yy"7075 #line 1526 "parser.yy" 7076 7076 { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); } 7077 7077 break; … … 7080 7080 7081 7081 /* Line 1806 of yacc.c */ 7082 #line 15 30"parser.yy"7082 #line 1529 "parser.yy" 7083 7083 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 7084 7084 break; … … 7087 7087 7088 7088 /* Line 1806 of yacc.c */ 7089 #line 153 3"parser.yy"7089 #line 1532 "parser.yy" 7090 7090 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 7091 7091 break; … … 7094 7094 7095 7095 /* Line 1806 of yacc.c */ 7096 #line 153 9"parser.yy"7096 #line 1538 "parser.yy" 7097 7097 { (yyval.en) = 0; } 7098 7098 break; … … 7101 7101 7102 7102 /* Line 1806 of yacc.c */ 7103 #line 154 1"parser.yy"7103 #line 1540 "parser.yy" 7104 7104 { (yyval.en) = (yyvsp[(1) - (1)].en); } 7105 7105 break; … … 7108 7108 7109 7109 /* Line 1806 of yacc.c */ 7110 #line 154 6"parser.yy"7110 #line 1545 "parser.yy" 7111 7111 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7112 7112 break; … … 7115 7115 7116 7116 /* Line 1806 of yacc.c */ 7117 #line 155 5"parser.yy"7117 #line 1554 "parser.yy" 7118 7118 { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); } 7119 7119 break; … … 7122 7122 7123 7123 /* Line 1806 of yacc.c */ 7124 #line 155 7"parser.yy"7124 #line 1556 "parser.yy" 7125 7125 { 7126 7126 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); … … 7132 7132 7133 7133 /* Line 1806 of yacc.c */ 7134 #line 156 2"parser.yy"7134 #line 1561 "parser.yy" 7135 7135 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 7136 7136 break; … … 7139 7139 7140 7140 /* Line 1806 of yacc.c */ 7141 #line 156 4"parser.yy"7141 #line 1563 "parser.yy" 7142 7142 { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); } 7143 7143 break; … … 7146 7146 7147 7147 /* Line 1806 of yacc.c */ 7148 #line 156 9"parser.yy"7148 #line 1568 "parser.yy" 7149 7149 { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); } 7150 7150 break; … … 7153 7153 7154 7154 /* Line 1806 of yacc.c */ 7155 #line 157 1"parser.yy"7155 #line 1570 "parser.yy" 7156 7156 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); } 7157 7157 break; … … 7160 7160 7161 7161 /* Line 1806 of yacc.c */ 7162 #line 157 6"parser.yy"7162 #line 1575 "parser.yy" 7163 7163 { (yyval.en) = 0; } 7164 7164 break; … … 7167 7167 7168 7168 /* Line 1806 of yacc.c */ 7169 #line 157 8"parser.yy"7169 #line 1577 "parser.yy" 7170 7170 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7171 7171 break; … … 7174 7174 7175 7175 /* Line 1806 of yacc.c */ 7176 #line 158 5"parser.yy"7176 #line 1584 "parser.yy" 7177 7177 { (yyval.decl) = 0; } 7178 7178 break; … … 7181 7181 7182 7182 /* Line 1806 of yacc.c */ 7183 #line 159 3"parser.yy"7183 #line 1592 "parser.yy" 7184 7184 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7185 7185 break; … … 7188 7188 7189 7189 /* Line 1806 of yacc.c */ 7190 #line 159 5"parser.yy"7190 #line 1594 "parser.yy" 7191 7191 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7192 7192 break; … … 7195 7195 7196 7196 /* Line 1806 of yacc.c */ 7197 #line 159 7"parser.yy"7197 #line 1596 "parser.yy" 7198 7198 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7199 7199 break; … … 7202 7202 7203 7203 /* Line 1806 of yacc.c */ 7204 #line 160 5"parser.yy"7204 #line 1604 "parser.yy" 7205 7205 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7206 7206 break; … … 7209 7209 7210 7210 /* Line 1806 of yacc.c */ 7211 #line 160 7"parser.yy"7211 #line 1606 "parser.yy" 7212 7212 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7213 7213 break; … … 7216 7216 7217 7217 /* Line 1806 of yacc.c */ 7218 #line 160 9"parser.yy"7218 #line 1608 "parser.yy" 7219 7219 { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); } 7220 7220 break; … … 7223 7223 7224 7224 /* Line 1806 of yacc.c */ 7225 #line 161 5"parser.yy"7225 #line 1614 "parser.yy" 7226 7226 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7227 7227 break; … … 7230 7230 7231 7231 /* Line 1806 of yacc.c */ 7232 #line 16 20"parser.yy"7232 #line 1619 "parser.yy" 7233 7233 { (yyval.decl) = 0; } 7234 7234 break; … … 7237 7237 7238 7238 /* Line 1806 of yacc.c */ 7239 #line 162 7"parser.yy"7239 #line 1626 "parser.yy" 7240 7240 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7241 7241 break; … … 7244 7244 7245 7245 /* Line 1806 of yacc.c */ 7246 #line 163 4"parser.yy"7246 #line 1633 "parser.yy" 7247 7247 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7248 7248 break; … … 7251 7251 7252 7252 /* Line 1806 of yacc.c */ 7253 #line 163 6"parser.yy"7253 #line 1635 "parser.yy" 7254 7254 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7255 7255 break; … … 7258 7258 7259 7259 /* Line 1806 of yacc.c */ 7260 #line 164 5"parser.yy"7260 #line 1644 "parser.yy" 7261 7261 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 7262 7262 break; … … 7265 7265 7266 7266 /* Line 1806 of yacc.c */ 7267 #line 164 8"parser.yy"7267 #line 1647 "parser.yy" 7268 7268 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 7269 7269 break; … … 7272 7272 7273 7273 /* Line 1806 of yacc.c */ 7274 #line 16 50"parser.yy"7274 #line 1649 "parser.yy" 7275 7275 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); } 7276 7276 break; … … 7279 7279 7280 7280 /* Line 1806 of yacc.c */ 7281 #line 16 60"parser.yy"7281 #line 1659 "parser.yy" 7282 7282 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7283 7283 break; … … 7286 7286 7287 7287 /* Line 1806 of yacc.c */ 7288 #line 166 6"parser.yy"7288 #line 1665 "parser.yy" 7289 7289 { 7290 7290 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7296 7296 7297 7297 /* Line 1806 of yacc.c */ 7298 #line 167 1"parser.yy"7298 #line 1670 "parser.yy" 7299 7299 { 7300 7300 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7306 7306 7307 7307 /* Line 1806 of yacc.c */ 7308 #line 16 80"parser.yy"7308 #line 1679 "parser.yy" 7309 7309 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7310 7310 break; … … 7313 7313 7314 7314 /* Line 1806 of yacc.c */ 7315 #line 168 9"parser.yy"7315 #line 1688 "parser.yy" 7316 7316 { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); } 7317 7317 break; … … 7320 7320 7321 7321 /* Line 1806 of yacc.c */ 7322 #line 169 1"parser.yy"7322 #line 1690 "parser.yy" 7323 7323 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); } 7324 7324 break; … … 7327 7327 7328 7328 /* Line 1806 of yacc.c */ 7329 #line 171 6"parser.yy"7329 #line 1715 "parser.yy" 7330 7330 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7331 7331 break; … … 7334 7334 7335 7335 /* Line 1806 of yacc.c */ 7336 #line 172 4"parser.yy"7336 #line 1723 "parser.yy" 7337 7337 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7338 7338 break; … … 7341 7341 7342 7342 /* Line 1806 of yacc.c */ 7343 #line 172 9"parser.yy"7343 #line 1728 "parser.yy" 7344 7344 { (yyval.in) = 0; } 7345 7345 break; … … 7348 7348 7349 7349 /* Line 1806 of yacc.c */ 7350 #line 173 1"parser.yy"7350 #line 1730 "parser.yy" 7351 7351 { (yyval.in) = (yyvsp[(2) - (2)].in); } 7352 7352 break; … … 7355 7355 7356 7356 /* Line 1806 of yacc.c */ 7357 #line 173 3"parser.yy"7357 #line 1732 "parser.yy" 7358 7358 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); } 7359 7359 break; … … 7362 7362 7363 7363 /* Line 1806 of yacc.c */ 7364 #line 1736 "parser.yy" 7365 { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); } 7366 break; 7367 7368 case 456: 7369 7370 /* Line 1806 of yacc.c */ 7364 7371 #line 1737 "parser.yy" 7365 { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }7366 break;7367 7368 case 456:7369 7370 /* Line 1806 of yacc.c */7371 #line 1738 "parser.yy"7372 7372 { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); } 7373 7373 break; … … 7376 7376 7377 7377 /* Line 1806 of yacc.c */ 7378 #line 174 3"parser.yy"7378 #line 1742 "parser.yy" 7379 7379 { (yyval.in) = 0; } 7380 7380 break; … … 7383 7383 7384 7384 /* Line 1806 of yacc.c */ 7385 #line 1744 "parser.yy" 7386 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); } 7387 break; 7388 7389 case 460: 7390 7391 /* Line 1806 of yacc.c */ 7385 7392 #line 1745 "parser.yy" 7386 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }7387 break;7388 7389 case 460:7390 7391 /* Line 1806 of yacc.c */7392 #line 1746 "parser.yy"7393 7393 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); } 7394 7394 break; … … 7397 7397 7398 7398 /* Line 1806 of yacc.c */ 7399 #line 174 8"parser.yy"7399 #line 1747 "parser.yy" 7400 7400 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_last( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); } 7401 7401 break; … … 7404 7404 7405 7405 /* Line 1806 of yacc.c */ 7406 #line 176 4"parser.yy"7406 #line 1763 "parser.yy" 7407 7407 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); } 7408 7408 break; … … 7411 7411 7412 7412 /* Line 1806 of yacc.c */ 7413 #line 17 70"parser.yy"7413 #line 1769 "parser.yy" 7414 7414 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) ) ); } 7415 7415 break; … … 7418 7418 7419 7419 /* Line 1806 of yacc.c */ 7420 #line 177 6"parser.yy"7420 #line 1775 "parser.yy" 7421 7421 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); } 7422 7422 break; … … 7425 7425 7426 7426 /* Line 1806 of yacc.c */ 7427 #line 177 9"parser.yy"7427 #line 1778 "parser.yy" 7428 7428 { (yyval.en) = (yyvsp[(3) - (5)].en); } 7429 7429 break; … … 7432 7432 7433 7433 /* Line 1806 of yacc.c */ 7434 #line 178 1"parser.yy"7434 #line 1780 "parser.yy" 7435 7435 { (yyval.en) = (yyvsp[(3) - (5)].en); } 7436 7436 break; … … 7439 7439 7440 7440 /* Line 1806 of yacc.c */ 7441 #line 178 3"parser.yy"7441 #line 1782 "parser.yy" 7442 7442 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); } 7443 7443 break; … … 7446 7446 7447 7447 /* Line 1806 of yacc.c */ 7448 #line 178 5"parser.yy"7448 #line 1784 "parser.yy" 7449 7449 { (yyval.en) = (yyvsp[(4) - (6)].en); } 7450 7450 break; … … 7453 7453 7454 7454 /* Line 1806 of yacc.c */ 7455 #line 180 9"parser.yy"7455 #line 1808 "parser.yy" 7456 7456 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7457 7457 break; … … 7460 7460 7461 7461 /* Line 1806 of yacc.c */ 7462 #line 181 1"parser.yy"7462 #line 1810 "parser.yy" 7463 7463 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7464 7464 break; … … 7467 7467 7468 7468 /* Line 1806 of yacc.c */ 7469 #line 181 3"parser.yy"7469 #line 1812 "parser.yy" 7470 7470 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 7471 7471 break; … … 7474 7474 7475 7475 /* Line 1806 of yacc.c */ 7476 #line 181 9"parser.yy"7476 #line 1818 "parser.yy" 7477 7477 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7478 7478 break; … … 7481 7481 7482 7482 /* Line 1806 of yacc.c */ 7483 #line 182 1"parser.yy"7483 #line 1820 "parser.yy" 7484 7484 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7485 7485 break; … … 7488 7488 7489 7489 /* Line 1806 of yacc.c */ 7490 #line 182 6"parser.yy"7490 #line 1825 "parser.yy" 7491 7491 { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 7492 7492 break; … … 7495 7495 7496 7496 /* Line 1806 of yacc.c */ 7497 #line 183 2"parser.yy"7497 #line 1831 "parser.yy" 7498 7498 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); } 7499 7499 break; … … 7502 7502 7503 7503 /* Line 1806 of yacc.c */ 7504 #line 183 7"parser.yy"7504 #line 1836 "parser.yy" 7505 7505 { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); } 7506 7506 break; … … 7509 7509 7510 7510 /* Line 1806 of yacc.c */ 7511 #line 183 9"parser.yy"7511 #line 1838 "parser.yy" 7512 7512 { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); } 7513 7513 break; … … 7516 7516 7517 7517 /* Line 1806 of yacc.c */ 7518 #line 184 5"parser.yy"7518 #line 1844 "parser.yy" 7519 7519 { (yyval.tclass) = DeclarationNode::Type; } 7520 7520 break; … … 7523 7523 7524 7524 /* Line 1806 of yacc.c */ 7525 #line 184 7"parser.yy"7525 #line 1846 "parser.yy" 7526 7526 { (yyval.tclass) = DeclarationNode::Ftype; } 7527 7527 break; … … 7530 7530 7531 7531 /* Line 1806 of yacc.c */ 7532 #line 184 9"parser.yy"7532 #line 1848 "parser.yy" 7533 7533 { (yyval.tclass) = DeclarationNode::Dtype; } 7534 7534 break; … … 7537 7537 7538 7538 /* Line 1806 of yacc.c */ 7539 #line 185 4"parser.yy"7539 #line 1853 "parser.yy" 7540 7540 { (yyval.decl) = 0; } 7541 7541 break; … … 7544 7544 7545 7545 /* Line 1806 of yacc.c */ 7546 #line 185 6"parser.yy"7546 #line 1855 "parser.yy" 7547 7547 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 7548 7548 break; … … 7551 7551 7552 7552 /* Line 1806 of yacc.c */ 7553 #line 186 1"parser.yy"7553 #line 1860 "parser.yy" 7554 7554 { 7555 7555 typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) ); … … 7561 7561 7562 7562 /* Line 1806 of yacc.c */ 7563 #line 186 6"parser.yy"7563 #line 1865 "parser.yy" 7564 7564 { (yyval.decl) = (yyvsp[(4) - (5)].decl); } 7565 7565 break; … … 7568 7568 7569 7569 /* Line 1806 of yacc.c */ 7570 #line 186 8"parser.yy"7570 #line 1867 "parser.yy" 7571 7571 { (yyval.decl) = 0; } 7572 7572 break; … … 7575 7575 7576 7576 /* Line 1806 of yacc.c */ 7577 #line 187 3"parser.yy"7577 #line 1872 "parser.yy" 7578 7578 { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); } 7579 7579 break; … … 7582 7582 7583 7583 /* Line 1806 of yacc.c */ 7584 #line 187 6"parser.yy"7584 #line 1875 "parser.yy" 7585 7585 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); } 7586 7586 break; … … 7589 7589 7590 7590 /* Line 1806 of yacc.c */ 7591 #line 187 8"parser.yy"7591 #line 1877 "parser.yy" 7592 7592 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); } 7593 7593 break; … … 7596 7596 7597 7597 /* Line 1806 of yacc.c */ 7598 #line 188 3"parser.yy"7598 #line 1882 "parser.yy" 7599 7599 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 7600 7600 break; … … 7603 7603 7604 7604 /* Line 1806 of yacc.c */ 7605 #line 188 5"parser.yy"7605 #line 1884 "parser.yy" 7606 7606 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); } 7607 7607 break; … … 7610 7610 7611 7611 /* Line 1806 of yacc.c */ 7612 #line 188 7"parser.yy"7612 #line 1886 "parser.yy" 7613 7613 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); } 7614 7614 break; … … 7617 7617 7618 7618 /* Line 1806 of yacc.c */ 7619 #line 189 2"parser.yy"7619 #line 1891 "parser.yy" 7620 7620 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); } 7621 7621 break; … … 7624 7624 7625 7625 /* Line 1806 of yacc.c */ 7626 #line 189 4"parser.yy"7626 #line 1893 "parser.yy" 7627 7627 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); } 7628 7628 break; … … 7631 7631 7632 7632 /* Line 1806 of yacc.c */ 7633 #line 189 9"parser.yy"7633 #line 1898 "parser.yy" 7634 7634 { 7635 7635 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD ); … … 7641 7641 7642 7642 /* Line 1806 of yacc.c */ 7643 #line 190 4"parser.yy"7643 #line 1903 "parser.yy" 7644 7644 { 7645 7645 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG ); … … 7651 7651 7652 7652 /* Line 1806 of yacc.c */ 7653 #line 191 2"parser.yy"7653 #line 1911 "parser.yy" 7654 7654 { 7655 7655 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID ); … … 7661 7661 7662 7662 /* Line 1806 of yacc.c */ 7663 #line 191 7"parser.yy"7663 #line 1916 "parser.yy" 7664 7664 { 7665 7665 typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) ); … … 7671 7671 7672 7672 /* Line 1806 of yacc.c */ 7673 #line 192 2"parser.yy"7673 #line 1921 "parser.yy" 7674 7674 { 7675 7675 typedefTable.leaveTrait(); … … 7682 7682 7683 7683 /* Line 1806 of yacc.c */ 7684 #line 193 2"parser.yy"7684 #line 1931 "parser.yy" 7685 7685 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 7686 7686 break; … … 7689 7689 7690 7690 /* Line 1806 of yacc.c */ 7691 #line 194 2"parser.yy"7691 #line 1941 "parser.yy" 7692 7692 { 7693 7693 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7699 7699 7700 7700 /* Line 1806 of yacc.c */ 7701 #line 194 7"parser.yy"7701 #line 1946 "parser.yy" 7702 7702 { 7703 7703 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7709 7709 7710 7710 /* Line 1806 of yacc.c */ 7711 #line 195 2"parser.yy"7711 #line 1951 "parser.yy" 7712 7712 { 7713 7713 typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); … … 7719 7719 7720 7720 /* Line 1806 of yacc.c */ 7721 #line 19 60"parser.yy"7721 #line 1959 "parser.yy" 7722 7722 { 7723 7723 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7729 7729 7730 7730 /* Line 1806 of yacc.c */ 7731 #line 196 5"parser.yy"7731 #line 1964 "parser.yy" 7732 7732 { 7733 7733 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7739 7739 7740 7740 /* Line 1806 of yacc.c */ 7741 #line 197 5"parser.yy"7741 #line 1974 "parser.yy" 7742 7742 {} 7743 7743 break; … … 7746 7746 7747 7747 /* Line 1806 of yacc.c */ 7748 #line 197 7"parser.yy"7748 #line 1976 "parser.yy" 7749 7749 { 7750 7750 if ( theTree ) { … … 7759 7759 7760 7760 /* Line 1806 of yacc.c */ 7761 #line 198 9"parser.yy"7761 #line 1988 "parser.yy" 7762 7762 { (yyval.decl) = ( (yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); } 7763 7763 break; … … 7766 7766 7767 7767 /* Line 1806 of yacc.c */ 7768 #line 199 4"parser.yy"7768 #line 1993 "parser.yy" 7769 7769 { (yyval.decl) = 0; } 7770 7770 break; … … 7773 7773 7774 7774 /* Line 1806 of yacc.c */ 7775 #line 200 2"parser.yy"7775 #line 2001 "parser.yy" 7776 7776 {} 7777 7777 break; … … 7780 7780 7781 7781 /* Line 1806 of yacc.c */ 7782 #line 200 4"parser.yy"7782 #line 2003 "parser.yy" 7783 7783 { 7784 7784 linkageStack.push( linkage ); … … 7790 7790 7791 7791 /* Line 1806 of yacc.c */ 7792 #line 200 9"parser.yy"7792 #line 2008 "parser.yy" 7793 7793 { 7794 7794 linkage = linkageStack.top(); … … 7801 7801 7802 7802 /* Line 1806 of yacc.c */ 7803 #line 201 5"parser.yy"7803 #line 2014 "parser.yy" 7804 7804 { // mark all fields in list 7805 7805 for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_next() ) … … 7812 7812 7813 7813 /* Line 1806 of yacc.c */ 7814 #line 20 30"parser.yy"7814 #line 2029 "parser.yy" 7815 7815 { 7816 7816 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7823 7823 7824 7824 /* Line 1806 of yacc.c */ 7825 #line 203 6"parser.yy"7825 #line 2035 "parser.yy" 7826 7826 { 7827 7827 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7834 7834 7835 7835 /* Line 1806 of yacc.c */ 7836 #line 204 5"parser.yy"7836 #line 2044 "parser.yy" 7837 7837 { 7838 7838 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7845 7845 7846 7846 /* Line 1806 of yacc.c */ 7847 #line 205 1"parser.yy"7847 #line 2050 "parser.yy" 7848 7848 { 7849 7849 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7856 7856 7857 7857 /* Line 1806 of yacc.c */ 7858 #line 205 7"parser.yy"7858 #line 2056 "parser.yy" 7859 7859 { 7860 7860 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7867 7867 7868 7868 /* Line 1806 of yacc.c */ 7869 #line 206 3"parser.yy"7869 #line 2062 "parser.yy" 7870 7870 { 7871 7871 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7878 7878 7879 7879 /* Line 1806 of yacc.c */ 7880 #line 206 9"parser.yy"7880 #line 2068 "parser.yy" 7881 7881 { 7882 7882 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7889 7889 7890 7890 /* Line 1806 of yacc.c */ 7891 #line 207 7"parser.yy"7891 #line 2076 "parser.yy" 7892 7892 { 7893 7893 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7900 7900 7901 7901 /* Line 1806 of yacc.c */ 7902 #line 208 3"parser.yy"7902 #line 2082 "parser.yy" 7903 7903 { 7904 7904 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7911 7911 7912 7912 /* Line 1806 of yacc.c */ 7913 #line 209 1"parser.yy"7913 #line 2090 "parser.yy" 7914 7914 { 7915 7915 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7922 7922 7923 7923 /* Line 1806 of yacc.c */ 7924 #line 209 7"parser.yy"7924 #line 2096 "parser.yy" 7925 7925 { 7926 7926 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7933 7933 7934 7934 /* Line 1806 of yacc.c */ 7935 #line 211 2"parser.yy"7935 #line 2111 "parser.yy" 7936 7936 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 7937 7937 break; … … 7940 7940 7941 7941 /* Line 1806 of yacc.c */ 7942 #line 212 2"parser.yy"7942 #line 2121 "parser.yy" 7943 7943 { (yyval.decl) = 0; } 7944 7944 break; … … 7947 7947 7948 7948 /* Line 1806 of yacc.c */ 7949 #line 212 9"parser.yy"7949 #line 2128 "parser.yy" 7950 7950 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7951 7951 break; … … 7954 7954 7955 7955 /* Line 1806 of yacc.c */ 7956 #line 213 5"parser.yy"7956 #line 2134 "parser.yy" 7957 7957 { (yyval.decl) = 0; } 7958 7958 break; 7959 7959 7960 7960 case 555: 7961 7962 /* Line 1806 of yacc.c */ 7963 #line 2149 "parser.yy" 7964 {} 7965 break; 7966 7967 case 556: 7961 7968 7962 7969 /* Line 1806 of yacc.c */ … … 7965 7972 break; 7966 7973 7967 case 55 6:7974 case 557: 7968 7975 7969 7976 /* Line 1806 of yacc.c */ … … 7972 7979 break; 7973 7980 7974 case 55 7:7981 case 558: 7975 7982 7976 7983 /* Line 1806 of yacc.c */ … … 7979 7986 break; 7980 7987 7981 case 558:7982 7983 /* Line 1806 of yacc.c */7984 #line 2153 "parser.yy"7985 {}7986 break;7987 7988 7988 case 559: 7989 7989 7990 7990 /* Line 1806 of yacc.c */ 7991 #line 218 8"parser.yy"7991 #line 2187 "parser.yy" 7992 7992 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7993 7993 break; … … 7996 7996 7997 7997 /* Line 1806 of yacc.c */ 7998 #line 219 1"parser.yy"7998 #line 2190 "parser.yy" 7999 7999 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8000 8000 break; … … 8003 8003 8004 8004 /* Line 1806 of yacc.c */ 8005 #line 219 3"parser.yy"8005 #line 2192 "parser.yy" 8006 8006 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8007 8007 break; … … 8010 8010 8011 8011 /* Line 1806 of yacc.c */ 8012 #line 219 8"parser.yy"8012 #line 2197 "parser.yy" 8013 8013 { 8014 8014 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8020 8020 8021 8021 /* Line 1806 of yacc.c */ 8022 #line 220 3"parser.yy"8022 #line 2202 "parser.yy" 8023 8023 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8024 8024 break; … … 8027 8027 8028 8028 /* Line 1806 of yacc.c */ 8029 #line 220 8"parser.yy"8029 #line 2207 "parser.yy" 8030 8030 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8031 8031 break; … … 8034 8034 8035 8035 /* Line 1806 of yacc.c */ 8036 #line 22 10"parser.yy"8036 #line 2209 "parser.yy" 8037 8037 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8038 8038 break; … … 8041 8041 8042 8042 /* Line 1806 of yacc.c */ 8043 #line 221 2"parser.yy"8043 #line 2211 "parser.yy" 8044 8044 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8045 8045 break; … … 8048 8048 8049 8049 /* Line 1806 of yacc.c */ 8050 #line 221 7"parser.yy"8050 #line 2216 "parser.yy" 8051 8051 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8052 8052 break; … … 8055 8055 8056 8056 /* Line 1806 of yacc.c */ 8057 #line 221 9"parser.yy"8057 #line 2218 "parser.yy" 8058 8058 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8059 8059 break; … … 8062 8062 8063 8063 /* Line 1806 of yacc.c */ 8064 #line 222 1"parser.yy"8064 #line 2220 "parser.yy" 8065 8065 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8066 8066 break; … … 8069 8069 8070 8070 /* Line 1806 of yacc.c */ 8071 #line 222 3"parser.yy"8071 #line 2222 "parser.yy" 8072 8072 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8073 8073 break; … … 8076 8076 8077 8077 /* Line 1806 of yacc.c */ 8078 #line 222 8"parser.yy"8078 #line 2227 "parser.yy" 8079 8079 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8080 8080 break; … … 8083 8083 8084 8084 /* Line 1806 of yacc.c */ 8085 #line 22 30"parser.yy"8085 #line 2229 "parser.yy" 8086 8086 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8087 8087 break; … … 8090 8090 8091 8091 /* Line 1806 of yacc.c */ 8092 #line 223 9"parser.yy"8092 #line 2238 "parser.yy" 8093 8093 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8094 8094 break; … … 8097 8097 8098 8098 /* Line 1806 of yacc.c */ 8099 #line 224 2"parser.yy"8099 #line 2241 "parser.yy" 8100 8100 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8101 8101 break; … … 8104 8104 8105 8105 /* Line 1806 of yacc.c */ 8106 #line 224 7"parser.yy"8106 #line 2246 "parser.yy" 8107 8107 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8108 8108 break; … … 8111 8111 8112 8112 /* Line 1806 of yacc.c */ 8113 #line 224 9"parser.yy"8113 #line 2248 "parser.yy" 8114 8114 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8115 8115 break; … … 8118 8118 8119 8119 /* Line 1806 of yacc.c */ 8120 #line 225 1"parser.yy"8120 #line 2250 "parser.yy" 8121 8121 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8122 8122 break; … … 8125 8125 8126 8126 /* Line 1806 of yacc.c */ 8127 #line 225 6"parser.yy"8127 #line 2255 "parser.yy" 8128 8128 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8129 8129 break; … … 8132 8132 8133 8133 /* Line 1806 of yacc.c */ 8134 #line 225 8"parser.yy"8134 #line 2257 "parser.yy" 8135 8135 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8136 8136 break; … … 8139 8139 8140 8140 /* Line 1806 of yacc.c */ 8141 #line 22 60"parser.yy"8141 #line 2259 "parser.yy" 8142 8142 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8143 8143 break; … … 8146 8146 8147 8147 /* Line 1806 of yacc.c */ 8148 #line 226 5"parser.yy"8148 #line 2264 "parser.yy" 8149 8149 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8150 8150 break; … … 8153 8153 8154 8154 /* Line 1806 of yacc.c */ 8155 #line 226 7"parser.yy"8155 #line 2266 "parser.yy" 8156 8156 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8157 8157 break; … … 8160 8160 8161 8161 /* Line 1806 of yacc.c */ 8162 #line 226 9"parser.yy"8162 #line 2268 "parser.yy" 8163 8163 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8164 8164 break; … … 8167 8167 8168 8168 /* Line 1806 of yacc.c */ 8169 #line 228 4"parser.yy"8169 #line 2283 "parser.yy" 8170 8170 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); } 8171 8171 break; … … 8174 8174 8175 8175 /* Line 1806 of yacc.c */ 8176 #line 228 6"parser.yy"8176 #line 2285 "parser.yy" 8177 8177 { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); } 8178 8178 break; … … 8181 8181 8182 8182 /* Line 1806 of yacc.c */ 8183 #line 228 8"parser.yy"8183 #line 2287 "parser.yy" 8184 8184 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8185 8185 break; … … 8188 8188 8189 8189 /* Line 1806 of yacc.c */ 8190 #line 229 3"parser.yy"8190 #line 2292 "parser.yy" 8191 8191 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8192 8192 break; … … 8195 8195 8196 8196 /* Line 1806 of yacc.c */ 8197 #line 229 5"parser.yy"8197 #line 2294 "parser.yy" 8198 8198 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8199 8199 break; … … 8202 8202 8203 8203 /* Line 1806 of yacc.c */ 8204 #line 229 7"parser.yy"8204 #line 2296 "parser.yy" 8205 8205 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8206 8206 break; … … 8209 8209 8210 8210 /* Line 1806 of yacc.c */ 8211 #line 230 2"parser.yy"8211 #line 2301 "parser.yy" 8212 8212 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8213 8213 break; … … 8216 8216 8217 8217 /* Line 1806 of yacc.c */ 8218 #line 230 4"parser.yy"8218 #line 2303 "parser.yy" 8219 8219 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8220 8220 break; … … 8223 8223 8224 8224 /* Line 1806 of yacc.c */ 8225 #line 230 6"parser.yy"8225 #line 2305 "parser.yy" 8226 8226 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8227 8227 break; … … 8230 8230 8231 8231 /* Line 1806 of yacc.c */ 8232 #line 232 1"parser.yy"8232 #line 2320 "parser.yy" 8233 8233 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8234 8234 break; … … 8237 8237 8238 8238 /* Line 1806 of yacc.c */ 8239 #line 232 4"parser.yy"8239 #line 2323 "parser.yy" 8240 8240 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8241 8241 break; … … 8244 8244 8245 8245 /* Line 1806 of yacc.c */ 8246 #line 232 6"parser.yy"8246 #line 2325 "parser.yy" 8247 8247 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8248 8248 break; … … 8251 8251 8252 8252 /* Line 1806 of yacc.c */ 8253 #line 233 2"parser.yy"8253 #line 2331 "parser.yy" 8254 8254 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8255 8255 break; … … 8258 8258 8259 8259 /* Line 1806 of yacc.c */ 8260 #line 233 7"parser.yy"8260 #line 2336 "parser.yy" 8261 8261 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8262 8262 break; … … 8265 8265 8266 8266 /* Line 1806 of yacc.c */ 8267 #line 233 9"parser.yy"8267 #line 2338 "parser.yy" 8268 8268 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8269 8269 break; … … 8272 8272 8273 8273 /* Line 1806 of yacc.c */ 8274 #line 234 1"parser.yy"8274 #line 2340 "parser.yy" 8275 8275 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8276 8276 break; … … 8279 8279 8280 8280 /* Line 1806 of yacc.c */ 8281 #line 234 6"parser.yy"8281 #line 2345 "parser.yy" 8282 8282 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8283 8283 break; … … 8286 8286 8287 8287 /* Line 1806 of yacc.c */ 8288 #line 234 8"parser.yy"8288 #line 2347 "parser.yy" 8289 8289 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8290 8290 break; … … 8293 8293 8294 8294 /* Line 1806 of yacc.c */ 8295 #line 23 50"parser.yy"8295 #line 2349 "parser.yy" 8296 8296 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8297 8297 break; … … 8300 8300 8301 8301 /* Line 1806 of yacc.c */ 8302 #line 235 2"parser.yy"8302 #line 2351 "parser.yy" 8303 8303 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8304 8304 break; … … 8307 8307 8308 8308 /* Line 1806 of yacc.c */ 8309 #line 235 7"parser.yy"8309 #line 2356 "parser.yy" 8310 8310 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8311 8311 break; … … 8314 8314 8315 8315 /* Line 1806 of yacc.c */ 8316 #line 235 9"parser.yy"8316 #line 2358 "parser.yy" 8317 8317 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8318 8318 break; … … 8321 8321 8322 8322 /* Line 1806 of yacc.c */ 8323 #line 236 1"parser.yy"8323 #line 2360 "parser.yy" 8324 8324 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8325 8325 break; … … 8328 8328 8329 8329 /* Line 1806 of yacc.c */ 8330 #line 237 1"parser.yy"8330 #line 2370 "parser.yy" 8331 8331 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8332 8332 break; … … 8335 8335 8336 8336 /* Line 1806 of yacc.c */ 8337 #line 237 4"parser.yy"8337 #line 2373 "parser.yy" 8338 8338 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8339 8339 break; … … 8342 8342 8343 8343 /* Line 1806 of yacc.c */ 8344 #line 237 6"parser.yy"8344 #line 2375 "parser.yy" 8345 8345 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8346 8346 break; … … 8349 8349 8350 8350 /* Line 1806 of yacc.c */ 8351 #line 238 1"parser.yy"8351 #line 2380 "parser.yy" 8352 8352 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8353 8353 break; … … 8356 8356 8357 8357 /* Line 1806 of yacc.c */ 8358 #line 238 3"parser.yy"8358 #line 2382 "parser.yy" 8359 8359 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8360 8360 break; … … 8363 8363 8364 8364 /* Line 1806 of yacc.c */ 8365 #line 238 5"parser.yy"8365 #line 2384 "parser.yy" 8366 8366 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8367 8367 break; … … 8370 8370 8371 8371 /* Line 1806 of yacc.c */ 8372 #line 23 90"parser.yy"8372 #line 2389 "parser.yy" 8373 8373 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8374 8374 break; … … 8377 8377 8378 8378 /* Line 1806 of yacc.c */ 8379 #line 239 2"parser.yy"8379 #line 2391 "parser.yy" 8380 8380 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8381 8381 break; … … 8384 8384 8385 8385 /* Line 1806 of yacc.c */ 8386 #line 239 4"parser.yy"8386 #line 2393 "parser.yy" 8387 8387 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8388 8388 break; … … 8391 8391 8392 8392 /* Line 1806 of yacc.c */ 8393 #line 239 6"parser.yy"8393 #line 2395 "parser.yy" 8394 8394 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8395 8395 break; … … 8398 8398 8399 8399 /* Line 1806 of yacc.c */ 8400 #line 240 1"parser.yy"8400 #line 2400 "parser.yy" 8401 8401 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8402 8402 break; … … 8405 8405 8406 8406 /* Line 1806 of yacc.c */ 8407 #line 240 3"parser.yy"8407 #line 2402 "parser.yy" 8408 8408 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8409 8409 break; … … 8412 8412 8413 8413 /* Line 1806 of yacc.c */ 8414 #line 240 5"parser.yy"8414 #line 2404 "parser.yy" 8415 8415 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8416 8416 break; … … 8419 8419 8420 8420 /* Line 1806 of yacc.c */ 8421 #line 243 6"parser.yy"8421 #line 2435 "parser.yy" 8422 8422 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8423 8423 break; … … 8426 8426 8427 8427 /* Line 1806 of yacc.c */ 8428 #line 243 9"parser.yy"8428 #line 2438 "parser.yy" 8429 8429 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8430 8430 break; … … 8433 8433 8434 8434 /* Line 1806 of yacc.c */ 8435 #line 244 1"parser.yy"8435 #line 2440 "parser.yy" 8436 8436 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8437 8437 break; … … 8440 8440 8441 8441 /* Line 1806 of yacc.c */ 8442 #line 244 6"parser.yy"8442 #line 2445 "parser.yy" 8443 8443 { 8444 8444 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8450 8450 8451 8451 /* Line 1806 of yacc.c */ 8452 #line 245 1"parser.yy"8452 #line 2450 "parser.yy" 8453 8453 { 8454 8454 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8460 8460 8461 8461 /* Line 1806 of yacc.c */ 8462 #line 245 9"parser.yy"8462 #line 2458 "parser.yy" 8463 8463 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8464 8464 break; … … 8467 8467 8468 8468 /* Line 1806 of yacc.c */ 8469 #line 246 1"parser.yy"8469 #line 2460 "parser.yy" 8470 8470 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8471 8471 break; … … 8474 8474 8475 8475 /* Line 1806 of yacc.c */ 8476 #line 246 3"parser.yy"8476 #line 2462 "parser.yy" 8477 8477 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8478 8478 break; … … 8481 8481 8482 8482 /* Line 1806 of yacc.c */ 8483 #line 246 8"parser.yy"8483 #line 2467 "parser.yy" 8484 8484 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8485 8485 break; … … 8488 8488 8489 8489 /* Line 1806 of yacc.c */ 8490 #line 24 70"parser.yy"8490 #line 2469 "parser.yy" 8491 8491 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8492 8492 break; … … 8495 8495 8496 8496 /* Line 1806 of yacc.c */ 8497 #line 247 5"parser.yy"8497 #line 2474 "parser.yy" 8498 8498 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8499 8499 break; … … 8502 8502 8503 8503 /* Line 1806 of yacc.c */ 8504 #line 247 7"parser.yy"8504 #line 2476 "parser.yy" 8505 8505 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8506 8506 break; … … 8509 8509 8510 8510 /* Line 1806 of yacc.c */ 8511 #line 249 2"parser.yy"8511 #line 2491 "parser.yy" 8512 8512 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8513 8513 break; … … 8516 8516 8517 8517 /* Line 1806 of yacc.c */ 8518 #line 249 4"parser.yy"8518 #line 2493 "parser.yy" 8519 8519 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8520 8520 break; … … 8523 8523 8524 8524 /* Line 1806 of yacc.c */ 8525 #line 249 9"parser.yy"8525 #line 2498 "parser.yy" 8526 8526 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8527 8527 break; … … 8530 8530 8531 8531 /* Line 1806 of yacc.c */ 8532 #line 250 1"parser.yy"8532 #line 2500 "parser.yy" 8533 8533 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8534 8534 break; … … 8537 8537 8538 8538 /* Line 1806 of yacc.c */ 8539 #line 250 3"parser.yy"8539 #line 2502 "parser.yy" 8540 8540 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8541 8541 break; … … 8544 8544 8545 8545 /* Line 1806 of yacc.c */ 8546 #line 250 5"parser.yy"8546 #line 2504 "parser.yy" 8547 8547 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8548 8548 break; … … 8551 8551 8552 8552 /* Line 1806 of yacc.c */ 8553 #line 250 7"parser.yy"8553 #line 2506 "parser.yy" 8554 8554 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8555 8555 break; … … 8558 8558 8559 8559 /* Line 1806 of yacc.c */ 8560 #line 251 3"parser.yy"8560 #line 2512 "parser.yy" 8561 8561 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8562 8562 break; … … 8565 8565 8566 8566 /* Line 1806 of yacc.c */ 8567 #line 251 5"parser.yy"8567 #line 2514 "parser.yy" 8568 8568 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8569 8569 break; … … 8572 8572 8573 8573 /* Line 1806 of yacc.c */ 8574 #line 251 7"parser.yy"8574 #line 2516 "parser.yy" 8575 8575 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8576 8576 break; … … 8579 8579 8580 8580 /* Line 1806 of yacc.c */ 8581 #line 252 2"parser.yy"8581 #line 2521 "parser.yy" 8582 8582 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); } 8583 8583 break; … … 8586 8586 8587 8587 /* Line 1806 of yacc.c */ 8588 #line 252 4"parser.yy"8588 #line 2523 "parser.yy" 8589 8589 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8590 8590 break; … … 8593 8593 8594 8594 /* Line 1806 of yacc.c */ 8595 #line 252 6"parser.yy"8595 #line 2525 "parser.yy" 8596 8596 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8597 8597 break; … … 8600 8600 8601 8601 /* Line 1806 of yacc.c */ 8602 #line 253 2"parser.yy"8602 #line 2531 "parser.yy" 8603 8603 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8604 8604 break; … … 8607 8607 8608 8608 /* Line 1806 of yacc.c */ 8609 #line 253 4"parser.yy"8609 #line 2533 "parser.yy" 8610 8610 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); } 8611 8611 break; … … 8614 8614 8615 8615 /* Line 1806 of yacc.c */ 8616 #line 25 40"parser.yy"8616 #line 2539 "parser.yy" 8617 8617 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); } 8618 8618 break; … … 8621 8621 8622 8622 /* Line 1806 of yacc.c */ 8623 #line 254 2"parser.yy"8623 #line 2541 "parser.yy" 8624 8624 { (yyval.decl) = DeclarationNode::newVarArray( 0 ); } 8625 8625 break; … … 8628 8628 8629 8629 /* Line 1806 of yacc.c */ 8630 #line 254 4"parser.yy"8630 #line 2543 "parser.yy" 8631 8631 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); } 8632 8632 break; … … 8635 8635 8636 8636 /* Line 1806 of yacc.c */ 8637 #line 254 6"parser.yy"8637 #line 2545 "parser.yy" 8638 8638 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); } 8639 8639 break; … … 8642 8642 8643 8643 /* Line 1806 of yacc.c */ 8644 #line 256 1"parser.yy"8644 #line 2560 "parser.yy" 8645 8645 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8646 8646 break; … … 8649 8649 8650 8650 /* Line 1806 of yacc.c */ 8651 #line 256 3"parser.yy"8651 #line 2562 "parser.yy" 8652 8652 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8653 8653 break; … … 8656 8656 8657 8657 /* Line 1806 of yacc.c */ 8658 #line 256 8"parser.yy"8658 #line 2567 "parser.yy" 8659 8659 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8660 8660 break; … … 8663 8663 8664 8664 /* Line 1806 of yacc.c */ 8665 #line 25 70"parser.yy"8665 #line 2569 "parser.yy" 8666 8666 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8667 8667 break; … … 8670 8670 8671 8671 /* Line 1806 of yacc.c */ 8672 #line 257 2"parser.yy"8672 #line 2571 "parser.yy" 8673 8673 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8674 8674 break; … … 8677 8677 8678 8678 /* Line 1806 of yacc.c */ 8679 #line 257 4"parser.yy"8679 #line 2573 "parser.yy" 8680 8680 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8681 8681 break; … … 8684 8684 8685 8685 /* Line 1806 of yacc.c */ 8686 #line 257 6"parser.yy"8686 #line 2575 "parser.yy" 8687 8687 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8688 8688 break; … … 8691 8691 8692 8692 /* Line 1806 of yacc.c */ 8693 #line 258 2"parser.yy"8693 #line 2581 "parser.yy" 8694 8694 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8695 8695 break; … … 8698 8698 8699 8699 /* Line 1806 of yacc.c */ 8700 #line 258 4"parser.yy"8700 #line 2583 "parser.yy" 8701 8701 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8702 8702 break; … … 8705 8705 8706 8706 /* Line 1806 of yacc.c */ 8707 #line 258 6"parser.yy"8707 #line 2585 "parser.yy" 8708 8708 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8709 8709 break; … … 8712 8712 8713 8713 /* Line 1806 of yacc.c */ 8714 #line 259 1"parser.yy"8714 #line 2590 "parser.yy" 8715 8715 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); } 8716 8716 break; … … 8719 8719 8720 8720 /* Line 1806 of yacc.c */ 8721 #line 259 3"parser.yy"8721 #line 2592 "parser.yy" 8722 8722 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8723 8723 break; … … 8726 8726 8727 8727 /* Line 1806 of yacc.c */ 8728 #line 259 5"parser.yy"8728 #line 2594 "parser.yy" 8729 8729 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8730 8730 break; … … 8733 8733 8734 8734 /* Line 1806 of yacc.c */ 8735 #line 260 2"parser.yy"8735 #line 2601 "parser.yy" 8736 8736 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8737 8737 break; … … 8740 8740 8741 8741 /* Line 1806 of yacc.c */ 8742 #line 261 3"parser.yy"8742 #line 2612 "parser.yy" 8743 8743 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8744 8744 break; … … 8747 8747 8748 8748 /* Line 1806 of yacc.c */ 8749 #line 261 6"parser.yy"8749 #line 2615 "parser.yy" 8750 8750 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 8751 8751 break; … … 8754 8754 8755 8755 /* Line 1806 of yacc.c */ 8756 #line 261 8"parser.yy"8756 #line 2617 "parser.yy" 8757 8757 { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); } 8758 8758 break; … … 8761 8761 8762 8762 /* Line 1806 of yacc.c */ 8763 #line 262 1"parser.yy"8763 #line 2620 "parser.yy" 8764 8764 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 8765 8765 break; … … 8768 8768 8769 8769 /* Line 1806 of yacc.c */ 8770 #line 262 3"parser.yy"8770 #line 2622 "parser.yy" 8771 8771 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); } 8772 8772 break; … … 8775 8775 8776 8776 /* Line 1806 of yacc.c */ 8777 #line 262 5"parser.yy"8777 #line 2624 "parser.yy" 8778 8778 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); } 8779 8779 break; … … 8782 8782 8783 8783 /* Line 1806 of yacc.c */ 8784 #line 263 9"parser.yy"8784 #line 2638 "parser.yy" 8785 8785 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8786 8786 break; … … 8789 8789 8790 8790 /* Line 1806 of yacc.c */ 8791 #line 264 1"parser.yy"8791 #line 2640 "parser.yy" 8792 8792 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8793 8793 break; … … 8796 8796 8797 8797 /* Line 1806 of yacc.c */ 8798 #line 264 6"parser.yy"8798 #line 2645 "parser.yy" 8799 8799 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8800 8800 break; … … 8803 8803 8804 8804 /* Line 1806 of yacc.c */ 8805 #line 264 8"parser.yy"8805 #line 2647 "parser.yy" 8806 8806 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8807 8807 break; … … 8810 8810 8811 8811 /* Line 1806 of yacc.c */ 8812 #line 26 50"parser.yy"8812 #line 2649 "parser.yy" 8813 8813 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8814 8814 break; … … 8817 8817 8818 8818 /* Line 1806 of yacc.c */ 8819 #line 265 2"parser.yy"8819 #line 2651 "parser.yy" 8820 8820 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8821 8821 break; … … 8824 8824 8825 8825 /* Line 1806 of yacc.c */ 8826 #line 265 4"parser.yy"8826 #line 2653 "parser.yy" 8827 8827 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8828 8828 break; … … 8831 8831 8832 8832 /* Line 1806 of yacc.c */ 8833 #line 26 60"parser.yy"8833 #line 2659 "parser.yy" 8834 8834 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8835 8835 break; … … 8838 8838 8839 8839 /* Line 1806 of yacc.c */ 8840 #line 266 2"parser.yy"8840 #line 2661 "parser.yy" 8841 8841 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8842 8842 break; … … 8845 8845 8846 8846 /* Line 1806 of yacc.c */ 8847 #line 266 4"parser.yy"8847 #line 2663 "parser.yy" 8848 8848 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8849 8849 break; … … 8852 8852 8853 8853 /* Line 1806 of yacc.c */ 8854 #line 266 9"parser.yy"8854 #line 2668 "parser.yy" 8855 8855 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8856 8856 break; … … 8859 8859 8860 8860 /* Line 1806 of yacc.c */ 8861 #line 267 1"parser.yy"8861 #line 2670 "parser.yy" 8862 8862 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8863 8863 break; … … 8866 8866 8867 8867 /* Line 1806 of yacc.c */ 8868 #line 268 1"parser.yy"8868 #line 2680 "parser.yy" 8869 8869 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 8870 8870 break; … … 8873 8873 8874 8874 /* Line 1806 of yacc.c */ 8875 #line 269 1"parser.yy"8875 #line 2690 "parser.yy" 8876 8876 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8877 8877 break; … … 8880 8880 8881 8881 /* Line 1806 of yacc.c */ 8882 #line 269 3"parser.yy"8882 #line 2692 "parser.yy" 8883 8883 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8884 8884 break; … … 8887 8887 8888 8888 /* Line 1806 of yacc.c */ 8889 #line 269 5"parser.yy"8889 #line 2694 "parser.yy" 8890 8890 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8891 8891 break; … … 8894 8894 8895 8895 /* Line 1806 of yacc.c */ 8896 #line 269 7"parser.yy"8896 #line 2696 "parser.yy" 8897 8897 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8898 8898 break; … … 8901 8901 8902 8902 /* Line 1806 of yacc.c */ 8903 #line 269 9"parser.yy"8903 #line 2698 "parser.yy" 8904 8904 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8905 8905 break; … … 8908 8908 8909 8909 /* Line 1806 of yacc.c */ 8910 #line 270 1"parser.yy"8910 #line 2700 "parser.yy" 8911 8911 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8912 8912 break; … … 8915 8915 8916 8916 /* Line 1806 of yacc.c */ 8917 #line 270 8"parser.yy"8917 #line 2707 "parser.yy" 8918 8918 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8919 8919 break; … … 8922 8922 8923 8923 /* Line 1806 of yacc.c */ 8924 #line 27 10"parser.yy"8924 #line 2709 "parser.yy" 8925 8925 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8926 8926 break; … … 8929 8929 8930 8930 /* Line 1806 of yacc.c */ 8931 #line 271 2"parser.yy"8931 #line 2711 "parser.yy" 8932 8932 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8933 8933 break; … … 8936 8936 8937 8937 /* Line 1806 of yacc.c */ 8938 #line 271 4"parser.yy"8938 #line 2713 "parser.yy" 8939 8939 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 8940 8940 break; … … 8943 8943 8944 8944 /* Line 1806 of yacc.c */ 8945 #line 271 6"parser.yy"8945 #line 2715 "parser.yy" 8946 8946 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8947 8947 break; … … 8950 8950 8951 8951 /* Line 1806 of yacc.c */ 8952 #line 271 8"parser.yy"8952 #line 2717 "parser.yy" 8953 8953 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8954 8954 break; … … 8957 8957 8958 8958 /* Line 1806 of yacc.c */ 8959 #line 27 20"parser.yy"8959 #line 2719 "parser.yy" 8960 8960 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8961 8961 break; … … 8964 8964 8965 8965 /* Line 1806 of yacc.c */ 8966 #line 272 2"parser.yy"8966 #line 2721 "parser.yy" 8967 8967 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8968 8968 break; … … 8971 8971 8972 8972 /* Line 1806 of yacc.c */ 8973 #line 272 4"parser.yy"8973 #line 2723 "parser.yy" 8974 8974 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 8975 8975 break; … … 8978 8978 8979 8979 /* Line 1806 of yacc.c */ 8980 #line 272 6"parser.yy"8980 #line 2725 "parser.yy" 8981 8981 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8982 8982 break; … … 8985 8985 8986 8986 /* Line 1806 of yacc.c */ 8987 #line 273 1"parser.yy"8987 #line 2730 "parser.yy" 8988 8988 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 8989 8989 break; … … 8992 8992 8993 8993 /* Line 1806 of yacc.c */ 8994 #line 273 3"parser.yy"8994 #line 2732 "parser.yy" 8995 8995 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 8996 8996 break; … … 8999 8999 9000 9000 /* Line 1806 of yacc.c */ 9001 #line 273 8"parser.yy"9001 #line 2737 "parser.yy" 9002 9002 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); } 9003 9003 break; … … 9006 9006 9007 9007 /* Line 1806 of yacc.c */ 9008 #line 27 40"parser.yy"9008 #line 2739 "parser.yy" 9009 9009 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); } 9010 9010 break; … … 9013 9013 9014 9014 /* Line 1806 of yacc.c */ 9015 #line 276 7"parser.yy"9015 #line 2766 "parser.yy" 9016 9016 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 9017 9017 break; … … 9020 9020 9021 9021 /* Line 1806 of yacc.c */ 9022 #line 277 8"parser.yy"9022 #line 2777 "parser.yy" 9023 9023 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9024 9024 break; … … 9027 9027 9028 9028 /* Line 1806 of yacc.c */ 9029 #line 27 80"parser.yy"9029 #line 2779 "parser.yy" 9030 9030 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9031 9031 break; … … 9034 9034 9035 9035 /* Line 1806 of yacc.c */ 9036 #line 278 2"parser.yy"9036 #line 2781 "parser.yy" 9037 9037 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9038 9038 break; … … 9041 9041 9042 9042 /* Line 1806 of yacc.c */ 9043 #line 278 4"parser.yy"9043 #line 2783 "parser.yy" 9044 9044 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9045 9045 break; … … 9048 9048 9049 9049 /* Line 1806 of yacc.c */ 9050 #line 278 6"parser.yy"9050 #line 2785 "parser.yy" 9051 9051 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9052 9052 break; … … 9055 9055 9056 9056 /* Line 1806 of yacc.c */ 9057 #line 278 8"parser.yy"9057 #line 2787 "parser.yy" 9058 9058 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9059 9059 break; … … 9062 9062 9063 9063 /* Line 1806 of yacc.c */ 9064 #line 279 5"parser.yy"9064 #line 2794 "parser.yy" 9065 9065 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9066 9066 break; … … 9069 9069 9070 9070 /* Line 1806 of yacc.c */ 9071 #line 279 7"parser.yy"9071 #line 2796 "parser.yy" 9072 9072 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9073 9073 break; … … 9076 9076 9077 9077 /* Line 1806 of yacc.c */ 9078 #line 279 9"parser.yy"9078 #line 2798 "parser.yy" 9079 9079 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9080 9080 break; … … 9083 9083 9084 9084 /* Line 1806 of yacc.c */ 9085 #line 280 1"parser.yy"9085 #line 2800 "parser.yy" 9086 9086 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9087 9087 break; … … 9090 9090 9091 9091 /* Line 1806 of yacc.c */ 9092 #line 280 3"parser.yy"9092 #line 2802 "parser.yy" 9093 9093 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9094 9094 break; … … 9097 9097 9098 9098 /* Line 1806 of yacc.c */ 9099 #line 280 5"parser.yy"9099 #line 2804 "parser.yy" 9100 9100 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9101 9101 break; … … 9104 9104 9105 9105 /* Line 1806 of yacc.c */ 9106 #line 28 10"parser.yy"9106 #line 2809 "parser.yy" 9107 9107 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 9108 9108 break; … … 9111 9111 9112 9112 /* Line 1806 of yacc.c */ 9113 #line 281 5"parser.yy"9113 #line 2814 "parser.yy" 9114 9114 { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); } 9115 9115 break; … … 9118 9118 9119 9119 /* Line 1806 of yacc.c */ 9120 #line 281 7"parser.yy"9120 #line 2816 "parser.yy" 9121 9121 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); } 9122 9122 break; … … 9125 9125 9126 9126 /* Line 1806 of yacc.c */ 9127 #line 281 9"parser.yy"9127 #line 2818 "parser.yy" 9128 9128 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); } 9129 9129 break; … … 9132 9132 9133 9133 /* Line 1806 of yacc.c */ 9134 #line 284 3"parser.yy"9134 #line 2842 "parser.yy" 9135 9135 { (yyval.en) = 0; } 9136 9136 break; … … 9139 9139 9140 9140 /* Line 1806 of yacc.c */ 9141 #line 284 5"parser.yy"9141 #line 2844 "parser.yy" 9142 9142 { (yyval.en) = (yyvsp[(2) - (2)].en); } 9143 9143 break; … … 9377 9377 9378 9378 /* Line 2067 of yacc.c */ 9379 #line 284 8"parser.yy"9379 #line 2847 "parser.yy" 9380 9380 9381 9381 // ----end of grammar---- -
TabularUnified src/Parser/parser.yy ¶
r1d4580a r777bfcf 10 10 // Created On : Sat Sep 1 20:22:55 2001 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : S at Aug 13 18:59:02 201613 // Update Count : 187 712 // Last Modified On : Sun Aug 14 11:03:22 2016 13 // Update Count : 1879 14 14 // 15 15 … … 143 143 %type<en> constant_expression assignment_expression assignment_expression_opt 144 144 %type<en> comma_expression comma_expression_opt 145 //%type<en> argument_expression_list argument_expression for_control_expression assignment_opt146 145 %type<en> argument_expression_list argument_expression assignment_opt 147 146 %type<fctl> for_control_expression … … 932 931 asm_statement: 933 932 ASM asm_volatile_opt '(' string_literal_list ')' ';' 934 { $$ = new AsmStmtNode( StatementNode::Asm,$2, $4, 0 ); }933 { $$ = new AsmStmtNode( $2, $4, 0 ); } 935 934 | ASM asm_volatile_opt '(' string_literal_list ':' asm_operands_opt ')' ';' // remaining GCC 936 { $$ = new AsmStmtNode( StatementNode::Asm,$2, $4, $6 ); }935 { $$ = new AsmStmtNode( $2, $4, $6 ); } 937 936 | ASM asm_volatile_opt '(' string_literal_list ':' asm_operands_opt ':' asm_operands_opt ')' ';' 938 { $$ = new AsmStmtNode( StatementNode::Asm,$2, $4, $6, $8 ); }937 { $$ = new AsmStmtNode( $2, $4, $6, $8 ); } 939 938 | ASM asm_volatile_opt '(' string_literal_list ':' asm_operands_opt ':' asm_operands_opt ':' asm_clobbers_list_opt ')' ';' 940 { $$ = new AsmStmtNode( StatementNode::Asm,$2, $4, $6, $8, $10 ); }939 { $$ = new AsmStmtNode( $2, $4, $6, $8, $10 ); } 941 940 | ASM asm_volatile_opt GOTO '(' string_literal_list ':' ':' asm_operands_opt ':' asm_clobbers_list_opt ':' label_list ')' ';' 942 { $$ = new AsmStmtNode( StatementNode::Asm,$2, $5, 0, $8, $10, $12 ); }941 { $$ = new AsmStmtNode( $2, $5, 0, $8, $10, $12 ); } 943 942 ; 944 943 -
TabularUnified src/tests/.expect/64/gccExtensions.txt ¶
r1d4580a r777bfcf 5 5 extern void exit(int __status); 6 6 extern int printf(const char *__restrict __format, ...); 7 extern int __x__i_1; 7 8 int main(int __argc__i_1, const char **__argv__PPCc_1){ 8 9 asm ( "nop" : : : ); 9 10 asm ( "nop" : : : ); 10 11 asm ( "nop" : : : ); 12 static int __y__i_2; 13 int __src__i_2; 14 int __dst__i_2; 15 asm volatile ( "mov %1, %0\n\tadd $1, %0" : : : ); 16 asm volatile ( "mov %1, %0\n\tadd $1, %0" : "=r" ( __dst__i_2 ) : : ); 17 asm volatile ( "mov %1, %0\n\tadd $1, %0" : "=r" ( __dst__i_2 ) : "r" ( __src__i_2 ) : ); 18 asm ( "mov %1, %0\n\tadd $1, %0" : "=r" ( __dst__i_2 ), "=r" ( __src__i_2 ) : [ __src__i_2 ] "r" ( __dst__i_2 ) : "r0" ); 11 19 double _Complex __c1__Xd_2; 12 20 double _Complex __c2__Xd_2; -
TabularUnified src/tests/gccExtensions.c ¶
r1d4580a r777bfcf 1 // 2 // Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo 3 // 4 // The contents of this file are covered under the licence agreement in the 5 // file "LICENCE" distributed with Cforall. 6 // 7 // gccExtensions.c -- 8 // 9 // Author : Peter A. Buhr 10 // Created On : Sun Aug 14 17:28:17 2016 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sun Aug 14 17:36:28 2016 13 // Update Count : 3 14 // 15 16 extern int x asm( "xx" ); 17 1 18 int main(int argc, char const *argv[]) { 2 19 asm( "nop" ); … … 4 21 __asm__( "nop" ); 5 22 23 static int y asm( "yy" ); 24 // static * int z asm( "zz" ); // CFA declaration 25 26 int src; 27 int dst; 28 29 asm volatile ( "mov %1, %0\n\t" 30 "add $1, %0" : : : ); 31 32 asm volatile ( "mov %1, %0\n\t" 33 "add $1, %0" 34 : "=" "r" (dst)); 35 36 asm volatile ( "mov %1, %0\n\t" 37 "add $1, %0" 38 : "=r" (dst) 39 : "r" (src)); 40 41 asm ( "mov %1, %0\n\t" 42 "add $1, %0" 43 : "=r" (dst), "=r" (src) 44 : [src] "r" (dst) 45 : "r0"); 46 #if 0 47 L1: L2: 48 asm goto ( "frob %%r5, %1; jc %l[L1]; mov (%2), %%r5" 49 : /* No outputs. */ 50 : "r"(src), "r"(&dst) 51 : "r5", "memory" 52 : L1, L2 ); 53 #endif 6 54 __complex__ c1; 7 55 _Complex c2; … … 57 105 return 0; 58 106 } 107 108 // Local Variables: // 109 // tab-width: 4 // 110 // compile-command: "cfa gccExtensions.c" // 111 // End: //
Note: See TracChangeset
for help on using the changeset viewer.