Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/parser.cc

    r8e9cbb2 rc6b1105  
    10301030     613,   614,   615,   616,   617,   618,   619,   620,   624,   625,
    10311031     631,   632,   638,   639,   640,   641,   642,   643,   644,   645,
    1032      646,   656,   663,   665,   675,   676,   681,   683,   689,   691,
    1033      695,   696,   701,   706,   709,   711,   713,   718,   720,   728,
    1034      729,   731,   735,   736,   741,   742,   747,   748,   752,   757,
    1035      758,   762,   764,   770,   771,   775,   777,   779,   781,   787,
    1036      788,   792,   793,   797,   799,   801,   806,   808,   813,   815,
    1037      819,   822,   826,   829,   833,   835,   839,   841,   848,   850,
    1038      852,   861,   863,   865,   867,   869,   874,   876,   878,   880,
    1039      885,   898,   899,   904,   906,   911,   915,   917,   919,   921,
    1040      923,   929,   930,   936,   937,   941,   942,   947,   949,   955,
    1041      956,   958,   963,   965,   972,   974,   978,   979,   984,   986,
    1042      990,   991,   995,   997,  1001,  1002,  1006,  1007,  1011,  1012,
    1043     1027,  1028,  1029,  1030,  1031,  1035,  1040,  1047,  1057,  1062,
    1044     1067,  1075,  1080,  1085,  1090,  1095,  1103,  1125,  1130,  1137,
    1045     1139,  1146,  1151,  1156,  1167,  1172,  1177,  1182,  1187,  1196,
    1046     1201,  1209,  1210,  1211,  1212,  1218,  1223,  1231,  1232,  1233,
    1047     1234,  1238,  1239,  1240,  1241,  1246,  1247,  1256,  1257,  1262,
    1048     1263,  1268,  1270,  1272,  1274,  1276,  1279,  1278,  1290,  1291,
    1049     1293,  1303,  1304,  1309,  1313,  1315,  1317,  1319,  1321,  1323,
    1050     1325,  1327,  1332,  1334,  1336,  1338,  1340,  1342,  1344,  1346,
    1051     1348,  1350,  1352,  1354,  1356,  1362,  1363,  1365,  1367,  1369,
    1052     1374,  1375,  1381,  1382,  1384,  1386,  1391,  1393,  1395,  1397,
    1053     1402,  1403,  1405,  1407,  1412,  1413,  1415,  1420,  1421,  1423,
    1054     1425,  1430,  1432,  1434,  1439,  1440,  1444,  1446,  1452,  1451,
    1055     1455,  1457,  1462,  1464,  1469,  1471,  1476,  1477,  1479,  1480,
    1056     1489,  1490,  1492,  1494,  1499,  1501,  1507,  1508,  1510,  1513,
    1057     1516,  1521,  1522,  1527,  1532,  1536,  1538,  1544,  1543,  1550,
    1058     1552,  1558,  1559,  1567,  1568,  1572,  1573,  1574,  1576,  1578,
    1059     1585,  1586,  1588,  1590,  1595,  1596,  1602,  1603,  1607,  1608,
    1060     1613,  1614,  1615,  1617,  1625,  1626,  1628,  1631,  1633,  1637,
    1061     1638,  1639,  1641,  1643,  1647,  1652,  1660,  1661,  1670,  1672,
    1062     1677,  1678,  1679,  1683,  1684,  1685,  1689,  1690,  1691,  1695,
    1063     1696,  1697,  1702,  1703,  1704,  1705,  1711,  1712,  1714,  1719,
    1064     1720,  1725,  1726,  1727,  1728,  1729,  1744,  1745,  1750,  1751,
    1065     1759,  1761,  1763,  1766,  1768,  1770,  1793,  1794,  1796,  1798,
    1066     1803,  1804,  1806,  1811,  1816,  1817,  1823,  1822,  1826,  1830,
    1067     1832,  1834,  1840,  1841,  1846,  1851,  1853,  1858,  1860,  1861,
    1068     1863,  1868,  1870,  1872,  1877,  1879,  1884,  1889,  1897,  1903,
    1069     1902,  1916,  1917,  1922,  1923,  1927,  1932,  1937,  1945,  1950,
    1070     1961,  1962,  1973,  1974,  1980,  1981,  1985,  1986,  1987,  1990,
    1071     1989,  2000,  2009,  2015,  2021,  2030,  2036,  2042,  2048,  2054,
    1072     2062,  2068,  2076,  2082,  2091,  2092,  2093,  2097,  2101,  2103,
    1073     2108,  2109,  2113,  2114,  2119,  2125,  2126,  2129,  2131,  2132,
    1074     2136,  2137,  2138,  2139,  2173,  2175,  2176,  2178,  2183,  2188,
    1075     2193,  2195,  2197,  2202,  2204,  2206,  2208,  2213,  2215,  2224,
    1076     2226,  2227,  2232,  2234,  2236,  2241,  2243,  2245,  2250,  2252,
    1077     2254,  2263,  2264,  2265,  2269,  2271,  2273,  2278,  2280,  2282,
    1078     2287,  2289,  2291,  2306,  2308,  2309,  2311,  2316,  2317,  2322,
    1079     2324,  2326,  2331,  2333,  2335,  2337,  2342,  2344,  2346,  2356,
    1080     2358,  2359,  2361,  2366,  2368,  2370,  2375,  2377,  2379,  2381,
    1081     2386,  2388,  2390,  2421,  2423,  2424,  2426,  2431,  2436,  2444,
    1082     2446,  2448,  2453,  2455,  2460,  2462,  2476,  2477,  2479,  2484,
    1083     2486,  2488,  2490,  2492,  2497,  2498,  2500,  2502,  2507,  2509,
    1084     2511,  2517,  2519,  2521,  2525,  2527,  2529,  2531,  2545,  2546,
    1085     2548,  2553,  2555,  2557,  2559,  2561,  2566,  2567,  2569,  2571,
    1086     2576,  2578,  2580,  2586,  2587,  2589,  2598,  2601,  2603,  2606,
    1087     2608,  2610,  2623,  2624,  2626,  2631,  2633,  2635,  2637,  2639,
    1088     2644,  2645,  2647,  2649,  2654,  2656,  2664,  2665,  2666,  2671,
    1089     2672,  2676,  2678,  2680,  2682,  2684,  2686,  2693,  2695,  2697,
    1090     2699,  2701,  2703,  2705,  2707,  2709,  2711,  2716,  2718,  2720,
    1091     2725,  2751,  2752,  2754,  2758,  2759,  2763,  2765,  2767,  2769,
    1092     2771,  2773,  2780,  2782,  2784,  2786,  2788,  2790,  2795,  2800,
    1093     2802,  2804,  2822,  2824,  2829,  2830
     1032     646,   656,   663,   665,   675,   676,   681,   683,   685,   687,
     1033     691,   692,   697,   702,   705,   707,   709,   714,   716,   724,
     1034     725,   727,   731,   732,   737,   738,   743,   744,   748,   753,
     1035     754,   758,   760,   766,   767,   771,   773,   775,   777,   783,
     1036     784,   788,   789,   793,   795,   797,   802,   804,   809,   811,
     1037     815,   818,   822,   825,   829,   831,   835,   837,   844,   846,
     1038     848,   857,   859,   861,   863,   865,   870,   872,   874,   876,
     1039     881,   894,   895,   900,   902,   907,   911,   913,   915,   917,
     1040     919,   925,   926,   932,   933,   937,   938,   943,   945,   951,
     1041     952,   954,   959,   961,   968,   970,   974,   975,   980,   982,
     1042     986,   987,   991,   993,   997,   998,  1002,  1003,  1007,  1008,
     1043    1023,  1024,  1025,  1026,  1027,  1031,  1036,  1043,  1053,  1058,
     1044    1063,  1071,  1076,  1081,  1086,  1091,  1099,  1121,  1126,  1133,
     1045    1135,  1142,  1147,  1152,  1163,  1168,  1173,  1178,  1183,  1192,
     1046    1197,  1205,  1206,  1207,  1208,  1214,  1219,  1227,  1228,  1229,
     1047    1230,  1234,  1235,  1236,  1237,  1242,  1243,  1252,  1253,  1258,
     1048    1259,  1264,  1266,  1268,  1270,  1272,  1275,  1274,  1286,  1287,
     1049    1289,  1299,  1300,  1305,  1309,  1311,  1313,  1315,  1317,  1319,
     1050    1321,  1323,  1328,  1330,  1332,  1334,  1336,  1338,  1340,  1342,
     1051    1344,  1346,  1348,  1350,  1352,  1358,  1359,  1361,  1363,  1365,
     1052    1370,  1371,  1377,  1378,  1380,  1382,  1387,  1389,  1391,  1393,
     1053    1398,  1399,  1401,  1403,  1408,  1409,  1411,  1416,  1417,  1419,
     1054    1421,  1426,  1428,  1430,  1435,  1436,  1440,  1442,  1448,  1447,
     1055    1451,  1453,  1458,  1460,  1465,  1467,  1472,  1473,  1475,  1476,
     1056    1481,  1482,  1484,  1486,  1491,  1493,  1499,  1500,  1502,  1505,
     1057    1508,  1513,  1514,  1519,  1524,  1528,  1530,  1536,  1535,  1542,
     1058    1544,  1550,  1551,  1559,  1560,  1564,  1565,  1566,  1568,  1570,
     1059    1577,  1578,  1580,  1582,  1587,  1588,  1594,  1595,  1599,  1600,
     1060    1605,  1606,  1607,  1609,  1617,  1618,  1620,  1623,  1625,  1629,
     1061    1630,  1631,  1633,  1635,  1639,  1644,  1652,  1653,  1662,  1664,
     1062    1669,  1670,  1671,  1675,  1676,  1677,  1681,  1682,  1683,  1687,
     1063    1688,  1689,  1694,  1695,  1696,  1697,  1703,  1704,  1706,  1711,
     1064    1712,  1717,  1718,  1719,  1720,  1721,  1736,  1737,  1742,  1743,
     1065    1751,  1753,  1755,  1758,  1760,  1762,  1785,  1786,  1788,  1790,
     1066    1795,  1796,  1798,  1803,  1808,  1809,  1815,  1814,  1818,  1822,
     1067    1824,  1826,  1832,  1833,  1838,  1843,  1845,  1850,  1852,  1853,
     1068    1855,  1860,  1862,  1864,  1869,  1871,  1876,  1881,  1889,  1895,
     1069    1894,  1908,  1909,  1914,  1915,  1919,  1924,  1929,  1937,  1942,
     1070    1953,  1954,  1965,  1966,  1972,  1973,  1977,  1978,  1979,  1982,
     1071    1981,  1992,  1997,  2003,  2009,  2018,  2024,  2030,  2036,  2042,
     1072    2050,  2056,  2064,  2070,  2079,  2080,  2081,  2085,  2089,  2091,
     1073    2096,  2097,  2101,  2102,  2107,  2113,  2114,  2117,  2119,  2120,
     1074    2124,  2125,  2126,  2127,  2161,  2163,  2164,  2166,  2171,  2176,
     1075    2181,  2183,  2185,  2190,  2192,  2194,  2196,  2201,  2203,  2212,
     1076    2214,  2215,  2220,  2222,  2224,  2229,  2231,  2233,  2238,  2240,
     1077    2242,  2251,  2252,  2253,  2257,  2259,  2261,  2266,  2268,  2270,
     1078    2275,  2277,  2279,  2294,  2296,  2297,  2299,  2304,  2305,  2310,
     1079    2312,  2314,  2319,  2321,  2323,  2325,  2330,  2332,  2334,  2344,
     1080    2346,  2347,  2349,  2354,  2356,  2358,  2363,  2365,  2367,  2369,
     1081    2374,  2376,  2378,  2409,  2411,  2412,  2414,  2419,  2424,  2432,
     1082    2434,  2436,  2441,  2443,  2448,  2450,  2464,  2465,  2467,  2472,
     1083    2474,  2476,  2478,  2480,  2485,  2486,  2488,  2490,  2495,  2497,
     1084    2499,  2505,  2507,  2509,  2513,  2515,  2517,  2519,  2533,  2534,
     1085    2536,  2541,  2543,  2545,  2547,  2549,  2554,  2555,  2557,  2559,
     1086    2564,  2566,  2568,  2574,  2575,  2577,  2586,  2589,  2591,  2594,
     1087    2596,  2598,  2611,  2612,  2614,  2619,  2621,  2623,  2625,  2627,
     1088    2632,  2633,  2635,  2637,  2642,  2644,  2652,  2653,  2654,  2659,
     1089    2660,  2664,  2666,  2668,  2670,  2672,  2674,  2681,  2683,  2685,
     1090    2687,  2689,  2691,  2693,  2695,  2697,  2699,  2704,  2706,  2708,
     1091    2713,  2739,  2740,  2742,  2746,  2747,  2751,  2753,  2755,  2757,
     1092    2759,  2761,  2768,  2770,  2772,  2774,  2776,  2778,  2783,  2788,
     1093    2790,  2792,  2810,  2812,  2817,  2818
    10941094};
    10951095#endif
     
    52375237/* Line 1806 of yacc.c  */
    52385238#line 305 "parser.yy"
    5239     { (yyval.constant) = makeConstant( ConstantNode::Integer, (yyvsp[(1) - (1)].tok) ); }
     5239    { (yyval.constant) = new ConstantNode( ConstantNode::Integer, (yyvsp[(1) - (1)].tok) ); }
    52405240    break;
    52415241
     
    52445244/* Line 1806 of yacc.c  */
    52455245#line 306 "parser.yy"
    5246     { (yyval.constant) = makeConstant( ConstantNode::Float, (yyvsp[(1) - (1)].tok) ); }
     5246    { (yyval.constant) = new ConstantNode( ConstantNode::Float, (yyvsp[(1) - (1)].tok) ); }
    52475247    break;
    52485248
     
    52515251/* Line 1806 of yacc.c  */
    52525252#line 307 "parser.yy"
    5253     { (yyval.constant) = makeConstant( ConstantNode::Character, (yyvsp[(1) - (1)].tok) ); }
     5253    { (yyval.constant) = new ConstantNode( ConstantNode::Character, (yyvsp[(1) - (1)].tok) ); }
    52545254    break;
    52555255
     
    52585258/* Line 1806 of yacc.c  */
    52595259#line 332 "parser.yy"
    5260     { (yyval.constant) = makeConstantStr( ConstantNode::String, (yyvsp[(1) - (1)].tok) ); }
     5260    { (yyval.constant) = new ConstantNode( ConstantNode::String, (yyvsp[(1) - (1)].tok) ); }
    52615261    break;
    52625262
     
    59535953/* Line 1806 of yacc.c  */
    59545954#line 684 "parser.yy"
    5955     {   // mark all fields in list
    5956                         for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_link() )
    5957                                 iter->set_extension( true );
    5958                         (yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) );
    5959                 }
     5955    { (yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) )/*->set_extension( true )*/; }
    59605956    break;
    59615957
     
    59635959
    59645960/* Line 1806 of yacc.c  */
    5965 #line 690 "parser.yy"
     5961#line 686 "parser.yy"
    59665962    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    59675963    break;
     
    59705966
    59715967/* Line 1806 of yacc.c  */
    5972 #line 697 "parser.yy"
     5968#line 693 "parser.yy"
    59735969    { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
    59745970    break;
     
    59775973
    59785974/* Line 1806 of yacc.c  */
    5979 #line 702 "parser.yy"
     5975#line 698 "parser.yy"
    59805976    { (yyval.sn) = new StatementNode( StatementNode::Exp, (yyvsp[(1) - (2)].en), 0 ); }
    59815977    break;
     
    59845980
    59855981/* Line 1806 of yacc.c  */
     5982#line 704 "parser.yy"
     5983    { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
     5984    break;
     5985
     5986  case 154:
     5987
     5988/* Line 1806 of yacc.c  */
     5989#line 706 "parser.yy"
     5990    { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (7)].en), (StatementNode *)mkList((*(yyvsp[(5) - (7)].sn), *(yyvsp[(7) - (7)].sn) )) ); }
     5991    break;
     5992
     5993  case 155:
     5994
     5995/* Line 1806 of yacc.c  */
    59865996#line 708 "parser.yy"
    5987     { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    5988     break;
    5989 
    5990   case 154:
     5997    { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
     5998    break;
     5999
     6000  case 156:
    59916001
    59926002/* Line 1806 of yacc.c  */
    59936003#line 710 "parser.yy"
    5994     { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (7)].en), (StatementNode *)mkList((*(yyvsp[(5) - (7)].sn), *(yyvsp[(7) - (7)].sn) )) ); }
    5995     break;
    5996 
    5997   case 155:
    5998 
    5999 /* Line 1806 of yacc.c  */
    6000 #line 712 "parser.yy"
    6001     { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    6002     break;
    6003 
    6004   case 156:
    6005 
    6006 /* Line 1806 of yacc.c  */
    6007 #line 714 "parser.yy"
    60086004    { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); /* xxx */ }
    60096005    break;
     
    60126008
    60136009/* Line 1806 of yacc.c  */
    6014 #line 719 "parser.yy"
     6010#line 715 "parser.yy"
    60156011    { (yyval.sn) = new StatementNode( StatementNode::Choose, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    60166012    break;
     
    60196015
    60206016/* Line 1806 of yacc.c  */
    6021 #line 721 "parser.yy"
     6017#line 717 "parser.yy"
    60226018    { (yyval.sn) = new StatementNode( StatementNode::Choose, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); }
    60236019    break;
     
    60266022
    60276023/* Line 1806 of yacc.c  */
    6028 #line 728 "parser.yy"
     6024#line 724 "parser.yy"
    60296025    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    60306026    break;
     
    60336029
    60346030/* Line 1806 of yacc.c  */
    6035 #line 730 "parser.yy"
     6031#line 726 "parser.yy"
    60366032    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    60376033    break;
     
    60406036
    60416037/* Line 1806 of yacc.c  */
     6038#line 733 "parser.yy"
     6039    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(tupleContents( (yyvsp[(1) - (3)].en) ))->set_link( (yyvsp[(3) - (3)].en) ) ); }
     6040    break;
     6041
     6042  case 164:
     6043
     6044/* Line 1806 of yacc.c  */
    60426045#line 737 "parser.yy"
    6043     { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(tupleContents( (yyvsp[(1) - (3)].en) ))->set_link( (yyvsp[(3) - (3)].en) ) ); }
    6044     break;
    6045 
    6046   case 164:
    6047 
    6048 /* Line 1806 of yacc.c  */
    6049 #line 741 "parser.yy"
    60506046    { (yyval.sn) = new StatementNode( StatementNode::Case, (yyvsp[(2) - (3)].en), 0 ); }
    60516047    break;
     
    60546050
    60556051/* Line 1806 of yacc.c  */
    6056 #line 742 "parser.yy"
     6052#line 738 "parser.yy"
    60576053    { (yyval.sn) = new StatementNode( StatementNode::Default ); }
    60586054    break;
     
    60616057
    60626058/* Line 1806 of yacc.c  */
     6059#line 744 "parser.yy"
     6060    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) )); }
     6061    break;
     6062
     6063  case 168:
     6064
     6065/* Line 1806 of yacc.c  */
    60636066#line 748 "parser.yy"
    6064     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) )); }
    6065     break;
    6066 
    6067   case 168:
    6068 
    6069 /* Line 1806 of yacc.c  */
    6070 #line 752 "parser.yy"
    60716067    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    60726068    break;
     
    60756071
    60766072/* Line 1806 of yacc.c  */
    6077 #line 757 "parser.yy"
     6073#line 753 "parser.yy"
    60786074    { (yyval.sn) = 0; }
    60796075    break;
     
    60826078
    60836079/* Line 1806 of yacc.c  */
    6084 #line 763 "parser.yy"
     6080#line 759 "parser.yy"
    60856081    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    60866082    break;
     
    60896085
    60906086/* Line 1806 of yacc.c  */
    6091 #line 765 "parser.yy"
     6087#line 761 "parser.yy"
    60926088    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
    60936089    break;
     
    60966092
    60976093/* Line 1806 of yacc.c  */
    6098 #line 770 "parser.yy"
     6094#line 766 "parser.yy"
    60996095    { (yyval.sn) = 0; }
    61006096    break;
     
    61036099
    61046100/* Line 1806 of yacc.c  */
     6101#line 772 "parser.yy"
     6102    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
     6103    break;
     6104
     6105  case 176:
     6106
     6107/* Line 1806 of yacc.c  */
     6108#line 774 "parser.yy"
     6109    { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].sn) ))); }
     6110    break;
     6111
     6112  case 177:
     6113
     6114/* Line 1806 of yacc.c  */
    61056115#line 776 "parser.yy"
    6106     { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    6107     break;
    6108 
    6109   case 176:
     6116    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
     6117    break;
     6118
     6119  case 178:
    61106120
    61116121/* Line 1806 of yacc.c  */
    61126122#line 778 "parser.yy"
    6113     { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].sn) ))); }
    6114     break;
    6115 
    6116   case 177:
    6117 
    6118 /* Line 1806 of yacc.c  */
    6119 #line 780 "parser.yy"
    6120     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
    6121     break;
    6122 
    6123   case 178:
    6124 
    6125 /* Line 1806 of yacc.c  */
    6126 #line 782 "parser.yy"
    61276123    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_link( (yyvsp[(2) - (4)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(3) - (4)].sn),*(yyvsp[(4) - (4)].sn) ))))); }
    61286124    break;
     
    61316127
    61326128/* Line 1806 of yacc.c  */
    6133 #line 787 "parser.yy"
     6129#line 783 "parser.yy"
    61346130    { (yyval.sn) = 0; }
    61356131    break;
     
    61386134
    61396135/* Line 1806 of yacc.c  */
    6140 #line 792 "parser.yy"
     6136#line 788 "parser.yy"
    61416137    { (yyval.sn) = new StatementNode( StatementNode::Fallthru ); }
    61426138    break;
     
    61456141
    61466142/* Line 1806 of yacc.c  */
    6147 #line 793 "parser.yy"
     6143#line 789 "parser.yy"
    61486144    { (yyval.sn) = new StatementNode( StatementNode::Fallthru ); }
    61496145    break;
     
    61526148
    61536149/* Line 1806 of yacc.c  */
     6150#line 794 "parser.yy"
     6151    { (yyval.sn) = new StatementNode( StatementNode::While, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
     6152    break;
     6153
     6154  case 184:
     6155
     6156/* Line 1806 of yacc.c  */
     6157#line 796 "parser.yy"
     6158    { (yyval.sn) = new StatementNode( StatementNode::Do, (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ); }
     6159    break;
     6160
     6161  case 185:
     6162
     6163/* Line 1806 of yacc.c  */
    61546164#line 798 "parser.yy"
    6155     { (yyval.sn) = new StatementNode( StatementNode::While, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); }
    6156     break;
    6157 
    6158   case 184:
    6159 
    6160 /* Line 1806 of yacc.c  */
    6161 #line 800 "parser.yy"
    6162     { (yyval.sn) = new StatementNode( StatementNode::Do, (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ); }
    6163     break;
    6164 
    6165   case 185:
    6166 
    6167 /* Line 1806 of yacc.c  */
    6168 #line 802 "parser.yy"
    61696165    { (yyval.sn) = new StatementNode( StatementNode::For, (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].sn) ); }
    61706166    break;
     
    61736169
    61746170/* Line 1806 of yacc.c  */
    6175 #line 807 "parser.yy"
     6171#line 803 "parser.yy"
    61766172    { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
    61776173    break;
     
    61806176
    61816177/* Line 1806 of yacc.c  */
    6182 #line 809 "parser.yy"
     6178#line 805 "parser.yy"
    61836179    { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
    61846180    break;
     
    61876183
    61886184/* Line 1806 of yacc.c  */
     6185#line 810 "parser.yy"
     6186    { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(2) - (3)].tok) ); }
     6187    break;
     6188
     6189  case 189:
     6190
     6191/* Line 1806 of yacc.c  */
    61896192#line 814 "parser.yy"
    6190     { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(2) - (3)].tok) ); }
    6191     break;
    6192 
    6193   case 189:
    6194 
    6195 /* Line 1806 of yacc.c  */
    6196 #line 818 "parser.yy"
    61976193    { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(3) - (4)].en) ); }
    61986194    break;
     
    62016197
    62026198/* Line 1806 of yacc.c  */
     6199#line 817 "parser.yy"
     6200    { (yyval.sn) = new StatementNode( StatementNode::Continue ); }
     6201    break;
     6202
     6203  case 191:
     6204
     6205/* Line 1806 of yacc.c  */
    62036206#line 821 "parser.yy"
    6204     { (yyval.sn) = new StatementNode( StatementNode::Continue ); }
    6205     break;
    6206 
    6207   case 191:
    6208 
    6209 /* Line 1806 of yacc.c  */
    6210 #line 825 "parser.yy"
    62116207    { (yyval.sn) = new StatementNode( StatementNode::Continue, (yyvsp[(2) - (3)].tok) ); }
    62126208    break;
     
    62156211
    62166212/* Line 1806 of yacc.c  */
     6213#line 824 "parser.yy"
     6214    { (yyval.sn) = new StatementNode( StatementNode::Break ); }
     6215    break;
     6216
     6217  case 193:
     6218
     6219/* Line 1806 of yacc.c  */
    62176220#line 828 "parser.yy"
    6218     { (yyval.sn) = new StatementNode( StatementNode::Break ); }
    6219     break;
    6220 
    6221   case 193:
     6221    { (yyval.sn) = new StatementNode( StatementNode::Break, (yyvsp[(2) - (3)].tok) ); }
     6222    break;
     6223
     6224  case 194:
     6225
     6226/* Line 1806 of yacc.c  */
     6227#line 830 "parser.yy"
     6228    { (yyval.sn) = new StatementNode( StatementNode::Return, (yyvsp[(2) - (3)].en), 0 ); }
     6229    break;
     6230
     6231  case 195:
    62226232
    62236233/* Line 1806 of yacc.c  */
    62246234#line 832 "parser.yy"
    6225     { (yyval.sn) = new StatementNode( StatementNode::Break, (yyvsp[(2) - (3)].tok) ); }
    6226     break;
    6227 
    6228   case 194:
    6229 
    6230 /* Line 1806 of yacc.c  */
    6231 #line 834 "parser.yy"
    6232     { (yyval.sn) = new StatementNode( StatementNode::Return, (yyvsp[(2) - (3)].en), 0 ); }
    6233     break;
    6234 
    6235   case 195:
     6235    { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); }
     6236    break;
     6237
     6238  case 196:
    62366239
    62376240/* Line 1806 of yacc.c  */
     
    62406243    break;
    62416244
    6242   case 196:
    6243 
    6244 /* Line 1806 of yacc.c  */
    6245 #line 840 "parser.yy"
    6246     { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); }
    6247     break;
    6248 
    62496245  case 197:
    62506246
    62516247/* Line 1806 of yacc.c  */
    6252 #line 842 "parser.yy"
     6248#line 838 "parser.yy"
    62536249    { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (5)].en), 0 ); }
    62546250    break;
     
    62576253
    62586254/* Line 1806 of yacc.c  */
     6255#line 845 "parser.yy"
     6256    { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); }
     6257    break;
     6258
     6259  case 199:
     6260
     6261/* Line 1806 of yacc.c  */
     6262#line 847 "parser.yy"
     6263    { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); }
     6264    break;
     6265
     6266  case 200:
     6267
     6268/* Line 1806 of yacc.c  */
    62596269#line 849 "parser.yy"
    6260     { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); }
    6261     break;
    6262 
    6263   case 199:
    6264 
    6265 /* Line 1806 of yacc.c  */
    6266 #line 851 "parser.yy"
    6267     { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); }
    6268     break;
    6269 
    6270   case 200:
    6271 
    6272 /* Line 1806 of yacc.c  */
    6273 #line 853 "parser.yy"
    62746270    {
    62756271                        (yyvsp[(3) - (4)].pn)->set_link( (yyvsp[(4) - (4)].pn) );
     
    62816277
    62826278/* Line 1806 of yacc.c  */
     6279#line 860 "parser.yy"
     6280    { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); }
     6281    break;
     6282
     6283  case 203:
     6284
     6285/* Line 1806 of yacc.c  */
     6286#line 862 "parser.yy"
     6287    { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); }
     6288    break;
     6289
     6290  case 204:
     6291
     6292/* Line 1806 of yacc.c  */
    62836293#line 864 "parser.yy"
    62846294    { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); }
    62856295    break;
    62866296
    6287   case 203:
     6297  case 205:
    62886298
    62896299/* Line 1806 of yacc.c  */
     
    62926302    break;
    62936303
    6294   case 204:
    6295 
    6296 /* Line 1806 of yacc.c  */
    6297 #line 868 "parser.yy"
    6298     { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); }
    6299     break;
    6300 
    6301   case 205:
    6302 
    6303 /* Line 1806 of yacc.c  */
    6304 #line 870 "parser.yy"
    6305     { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); }
    6306     break;
    6307 
    63086304  case 206:
     6305
     6306/* Line 1806 of yacc.c  */
     6307#line 871 "parser.yy"
     6308    { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); }
     6309    break;
     6310
     6311  case 207:
     6312
     6313/* Line 1806 of yacc.c  */
     6314#line 873 "parser.yy"
     6315    { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); }
     6316    break;
     6317
     6318  case 208:
    63096319
    63106320/* Line 1806 of yacc.c  */
     
    63136323    break;
    63146324
    6315   case 207:
     6325  case 209:
    63166326
    63176327/* Line 1806 of yacc.c  */
     
    63206330    break;
    63216331
    6322   case 208:
    6323 
    6324 /* Line 1806 of yacc.c  */
    6325 #line 879 "parser.yy"
    6326     { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); }
    6327     break;
    6328 
    6329   case 209:
    6330 
    6331 /* Line 1806 of yacc.c  */
    6332 #line 881 "parser.yy"
    6333     { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); }
    6334     break;
    6335 
    63366332  case 210:
    63376333
    63386334/* Line 1806 of yacc.c  */
    6339 #line 886 "parser.yy"
     6335#line 882 "parser.yy"
    63406336    {
    63416337                        (yyval.pn) = new StatementNode( StatementNode::Finally, 0, (yyvsp[(2) - (2)].sn) );
     
    63476343
    63486344/* Line 1806 of yacc.c  */
    6349 #line 900 "parser.yy"
     6345#line 896 "parser.yy"
    63506346    {
    63516347                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63576353
    63586354/* Line 1806 of yacc.c  */
    6359 #line 905 "parser.yy"
     6355#line 901 "parser.yy"
    63606356    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    63616357    break;
     
    63646360
    63656361/* Line 1806 of yacc.c  */
    6366 #line 907 "parser.yy"
     6362#line 903 "parser.yy"
    63676363    {
    63686364                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63746370
    63756371/* Line 1806 of yacc.c  */
     6372#line 912 "parser.yy"
     6373    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ); }
     6374    break;
     6375
     6376  case 217:
     6377
     6378/* Line 1806 of yacc.c  */
     6379#line 914 "parser.yy"
     6380    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ); }
     6381    break;
     6382
     6383  case 218:
     6384
     6385/* Line 1806 of yacc.c  */
    63766386#line 916 "parser.yy"
    6377     { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ); }
    6378     break;
    6379 
    6380   case 217:
     6387    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ); }
     6388    break;
     6389
     6390  case 219:
    63816391
    63826392/* Line 1806 of yacc.c  */
    63836393#line 918 "parser.yy"
    6384     { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ); }
    6385     break;
    6386 
    6387   case 218:
     6394    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].constant) ); }
     6395    break;
     6396
     6397  case 220:
    63886398
    63896399/* Line 1806 of yacc.c  */
    63906400#line 920 "parser.yy"
    6391     { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ); }
    6392     break;
    6393 
    6394   case 219:
    6395 
    6396 /* Line 1806 of yacc.c  */
    6397 #line 922 "parser.yy"
    6398     { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].constant) ); }
    6399     break;
    6400 
    6401   case 220:
    6402 
    6403 /* Line 1806 of yacc.c  */
    6404 #line 924 "parser.yy"
    64056401    { (yyval.sn) = new AsmStmtNode( StatementNode::Asm, (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].constant), (yyvsp[(12) - (14)].label) ); }
    64066402    break;
     
    64096405
    64106406/* Line 1806 of yacc.c  */
    6411 #line 929 "parser.yy"
     6407#line 925 "parser.yy"
    64126408    { (yyval.flag) = false; }
    64136409    break;
     
    64166412
    64176413/* Line 1806 of yacc.c  */
    6418 #line 931 "parser.yy"
     6414#line 927 "parser.yy"
    64196415    { (yyval.flag) = true; }
    64206416    break;
     
    64236419
    64246420/* Line 1806 of yacc.c  */
    6425 #line 936 "parser.yy"
     6421#line 932 "parser.yy"
    64266422    { (yyval.en) = 0; }
    64276423    break;
     
    64306426
    64316427/* Line 1806 of yacc.c  */
    6432 #line 943 "parser.yy"
     6428#line 939 "parser.yy"
    64336429    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); }
    64346430    break;
     
    64376433
    64386434/* Line 1806 of yacc.c  */
    6439 #line 948 "parser.yy"
     6435#line 944 "parser.yy"
    64406436    { (yyval.en) = new AsmExprNode( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ); }
    64416437    break;
     
    64446440
    64456441/* Line 1806 of yacc.c  */
    6446 #line 950 "parser.yy"
     6442#line 946 "parser.yy"
    64476443    { (yyval.en) = new AsmExprNode( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ); }
    64486444    break;
     
    64516447
    64526448/* Line 1806 of yacc.c  */
     6449#line 951 "parser.yy"
     6450    { (yyval.constant) = 0; }
     6451    break;
     6452
     6453  case 230:
     6454
     6455/* Line 1806 of yacc.c  */
     6456#line 953 "parser.yy"
     6457    { (yyval.constant) = (yyvsp[(1) - (1)].constant); }
     6458    break;
     6459
     6460  case 231:
     6461
     6462/* Line 1806 of yacc.c  */
    64536463#line 955 "parser.yy"
    6454     { (yyval.constant) = 0; }
    6455     break;
    6456 
    6457   case 230:
    6458 
    6459 /* Line 1806 of yacc.c  */
    6460 #line 957 "parser.yy"
    6461     { (yyval.constant) = (yyvsp[(1) - (1)].constant); }
    6462     break;
    6463 
    6464   case 231:
    6465 
    6466 /* Line 1806 of yacc.c  */
    6467 #line 959 "parser.yy"
    64686464    { (yyval.constant) = (ConstantNode *)(yyvsp[(1) - (3)].constant)->set_link( (yyvsp[(3) - (3)].constant) ); }
    64696465    break;
     
    64726468
    64736469/* Line 1806 of yacc.c  */
    6474 #line 964 "parser.yy"
     6470#line 960 "parser.yy"
    64756471    { (yyval.label) = new LabelNode(); (yyval.label)->append_label( (yyvsp[(1) - (1)].tok) ); }
    64766472    break;
     
    64796475
    64806476/* Line 1806 of yacc.c  */
    6481 #line 966 "parser.yy"
     6477#line 962 "parser.yy"
    64826478    { (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->append_label( (yyvsp[(3) - (3)].tok) ); }
    64836479    break;
     
    64866482
    64876483/* Line 1806 of yacc.c  */
    6488 #line 973 "parser.yy"
     6484#line 969 "parser.yy"
    64896485    { (yyval.decl) = 0; }
    64906486    break;
     
    64936489
    64946490/* Line 1806 of yacc.c  */
    6495 #line 980 "parser.yy"
     6491#line 976 "parser.yy"
    64966492    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    64976493    break;
     
    65006496
    65016497/* Line 1806 of yacc.c  */
    6502 #line 985 "parser.yy"
     6498#line 981 "parser.yy"
    65036499    { (yyval.decl) = 0; }
    65046500    break;
     
    65076503
    65086504/* Line 1806 of yacc.c  */
    6509 #line 992 "parser.yy"
     6505#line 988 "parser.yy"
    65106506    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    65116507    break;
     
    65146510
    65156511/* Line 1806 of yacc.c  */
    6516 #line 1006 "parser.yy"
     6512#line 1002 "parser.yy"
    65176513    {}
    65186514    break;
     
    65216517
    65226518/* Line 1806 of yacc.c  */
    6523 #line 1007 "parser.yy"
     6519#line 1003 "parser.yy"
    65246520    {}
    65256521    break;
     
    65286524
    65296525/* Line 1806 of yacc.c  */
    6530 #line 1036 "parser.yy"
     6526#line 1032 "parser.yy"
    65316527    {
    65326528                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    65386534
    65396535/* Line 1806 of yacc.c  */
    6540 #line 1043 "parser.yy"
     6536#line 1039 "parser.yy"
    65416537    {
    65426538                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    65486544
    65496545/* Line 1806 of yacc.c  */
    6550 #line 1048 "parser.yy"
     6546#line 1044 "parser.yy"
    65516547    {
    65526548                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID );
     
    65586554
    65596555/* Line 1806 of yacc.c  */
    6560 #line 1058 "parser.yy"
     6556#line 1054 "parser.yy"
    65616557    {
    65626558                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    65686564
    65696565/* Line 1806 of yacc.c  */
    6570 #line 1063 "parser.yy"
     6566#line 1059 "parser.yy"
    65716567    {
    65726568                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    65786574
    65796575/* Line 1806 of yacc.c  */
    6580 #line 1068 "parser.yy"
     6576#line 1064 "parser.yy"
    65816577    {
    65826578                        typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) );
     
    65886584
    65896585/* Line 1806 of yacc.c  */
    6590 #line 1076 "parser.yy"
     6586#line 1072 "parser.yy"
    65916587    {
    65926588                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    65986594
    65996595/* Line 1806 of yacc.c  */
    6600 #line 1081 "parser.yy"
     6596#line 1077 "parser.yy"
    66016597    {
    66026598                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    66086604
    66096605/* Line 1806 of yacc.c  */
    6610 #line 1086 "parser.yy"
     6606#line 1082 "parser.yy"
    66116607    {
    66126608                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    66186614
    66196615/* Line 1806 of yacc.c  */
    6620 #line 1091 "parser.yy"
     6616#line 1087 "parser.yy"
    66216617    {
    66226618                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    66286624
    66296625/* Line 1806 of yacc.c  */
    6630 #line 1096 "parser.yy"
     6626#line 1092 "parser.yy"
    66316627    {
    66326628                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    66386634
    66396635/* Line 1806 of yacc.c  */
    6640 #line 1104 "parser.yy"
     6636#line 1100 "parser.yy"
    66416637    {
    66426638                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true );
     
    66456641
    66466642  case 267:
     6643
     6644/* Line 1806 of yacc.c  */
     6645#line 1123 "parser.yy"
     6646    {
     6647                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     6648                }
     6649    break;
     6650
     6651  case 268:
    66476652
    66486653/* Line 1806 of yacc.c  */
     
    66536658    break;
    66546659
    6655   case 268:
    6656 
    6657 /* Line 1806 of yacc.c  */
    6658 #line 1131 "parser.yy"
    6659     {
    6660                         (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
    6661                 }
    6662     break;
    6663 
    66646660  case 269:
    66656661
    66666662/* Line 1806 of yacc.c  */
     6663#line 1134 "parser.yy"
     6664    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
     6665    break;
     6666
     6667  case 270:
     6668
     6669/* Line 1806 of yacc.c  */
    66676670#line 1138 "parser.yy"
    6668     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    6669     break;
    6670 
    6671   case 270:
    6672 
    6673 /* Line 1806 of yacc.c  */
    6674 #line 1142 "parser.yy"
    66756671    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
    66766672    break;
     
    66796675
    66806676/* Line 1806 of yacc.c  */
    6681 #line 1147 "parser.yy"
     6677#line 1143 "parser.yy"
    66826678    {
    66836679                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    66896685
    66906686/* Line 1806 of yacc.c  */
    6691 #line 1152 "parser.yy"
     6687#line 1148 "parser.yy"
    66926688    {
    66936689                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    66996695
    67006696/* Line 1806 of yacc.c  */
    6701 #line 1157 "parser.yy"
     6697#line 1153 "parser.yy"
    67026698    {
    67036699                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD );
     
    67096705
    67106706/* Line 1806 of yacc.c  */
    6711 #line 1168 "parser.yy"
     6707#line 1164 "parser.yy"
    67126708    {
    67136709                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    67196715
    67206716/* Line 1806 of yacc.c  */
    6721 #line 1173 "parser.yy"
     6717#line 1169 "parser.yy"
    67226718    {
    67236719                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    67296725
    67306726/* Line 1806 of yacc.c  */
    6731 #line 1178 "parser.yy"
     6727#line 1174 "parser.yy"
    67326728    {
    67336729                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    67396735
    67406736/* Line 1806 of yacc.c  */
    6741 #line 1183 "parser.yy"
     6737#line 1179 "parser.yy"
    67426738    {
    67436739                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    67496745
    67506746/* Line 1806 of yacc.c  */
    6751 #line 1188 "parser.yy"
     6747#line 1184 "parser.yy"
    67526748    {
    67536749                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    67596755
    67606756/* Line 1806 of yacc.c  */
    6761 #line 1197 "parser.yy"
     6757#line 1193 "parser.yy"
    67626758    {
    67636759                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD );
     
    67696765
    67706766/* Line 1806 of yacc.c  */
    6771 #line 1202 "parser.yy"
     6767#line 1198 "parser.yy"
    67726768    {
    67736769                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD );
     
    67796775
    67806776/* Line 1806 of yacc.c  */
    6781 #line 1219 "parser.yy"
     6777#line 1215 "parser.yy"
    67826778    {
    67836779                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    67896785
    67906786/* Line 1806 of yacc.c  */
    6791 #line 1224 "parser.yy"
     6787#line 1220 "parser.yy"
    67926788    {
    67936789                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    67996795
    68006796/* Line 1806 of yacc.c  */
    6801 #line 1246 "parser.yy"
     6797#line 1242 "parser.yy"
    68026798    { (yyval.decl) = 0; }
    68036799    break;
     
    68066802
    68076803/* Line 1806 of yacc.c  */
    6808 #line 1258 "parser.yy"
     6804#line 1254 "parser.yy"
    68096805    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68106806    break;
     
    68136809
    68146810/* Line 1806 of yacc.c  */
     6811#line 1265 "parser.yy"
     6812    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
     6813    break;
     6814
     6815  case 302:
     6816
     6817/* Line 1806 of yacc.c  */
     6818#line 1267 "parser.yy"
     6819    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
     6820    break;
     6821
     6822  case 303:
     6823
     6824/* Line 1806 of yacc.c  */
    68156825#line 1269 "parser.yy"
    6816     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
    6817     break;
    6818 
    6819   case 302:
     6826    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
     6827    break;
     6828
     6829  case 304:
    68206830
    68216831/* Line 1806 of yacc.c  */
    68226832#line 1271 "parser.yy"
    6823     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
    6824     break;
    6825 
    6826   case 303:
     6833    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
     6834    break;
     6835
     6836  case 305:
    68276837
    68286838/* Line 1806 of yacc.c  */
    68296839#line 1273 "parser.yy"
    6830     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
    6831     break;
    6832 
    6833   case 304:
     6840    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
     6841    break;
     6842
     6843  case 306:
    68346844
    68356845/* Line 1806 of yacc.c  */
    68366846#line 1275 "parser.yy"
    6837     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
    6838     break;
    6839 
    6840   case 305:
    6841 
    6842 /* Line 1806 of yacc.c  */
    6843 #line 1277 "parser.yy"
    6844     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
    6845     break;
    6846 
    6847   case 306:
    6848 
    6849 /* Line 1806 of yacc.c  */
    6850 #line 1279 "parser.yy"
    68516847    {
    68526848                        typedefTable.enterScope();
     
    68576853
    68586854/* Line 1806 of yacc.c  */
    6859 #line 1283 "parser.yy"
     6855#line 1279 "parser.yy"
    68606856    {
    68616857                        typedefTable.leaveScope();
     
    68676863
    68686864/* Line 1806 of yacc.c  */
    6869 #line 1292 "parser.yy"
     6865#line 1288 "parser.yy"
    68706866    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68716867    break;
     
    68746870
    68756871/* Line 1806 of yacc.c  */
    6876 #line 1294 "parser.yy"
     6872#line 1290 "parser.yy"
    68776873    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68786874    break;
     
    68816877
    68826878/* Line 1806 of yacc.c  */
    6883 #line 1305 "parser.yy"
     6879#line 1301 "parser.yy"
    68846880    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68856881    break;
     
    68886884
    68896885/* Line 1806 of yacc.c  */
     6886#line 1310 "parser.yy"
     6887    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
     6888    break;
     6889
     6890  case 315:
     6891
     6892/* Line 1806 of yacc.c  */
     6893#line 1312 "parser.yy"
     6894    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
     6895    break;
     6896
     6897  case 316:
     6898
     6899/* Line 1806 of yacc.c  */
    68906900#line 1314 "parser.yy"
    6891     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
    6892     break;
    6893 
    6894   case 315:
     6901    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
     6902    break;
     6903
     6904  case 317:
    68956905
    68966906/* Line 1806 of yacc.c  */
    68976907#line 1316 "parser.yy"
    6898     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
    6899     break;
    6900 
    6901   case 316:
     6908    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
     6909    break;
     6910
     6911  case 318:
    69026912
    69036913/* Line 1806 of yacc.c  */
    69046914#line 1318 "parser.yy"
    6905     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
    6906     break;
    6907 
    6908   case 317:
     6915    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); }
     6916    break;
     6917
     6918  case 319:
    69096919
    69106920/* Line 1806 of yacc.c  */
    69116921#line 1320 "parser.yy"
    6912     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
    6913     break;
    6914 
    6915   case 318:
     6922    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
     6923    break;
     6924
     6925  case 320:
    69166926
    69176927/* Line 1806 of yacc.c  */
    69186928#line 1322 "parser.yy"
    6919     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); }
    6920     break;
    6921 
    6922   case 319:
     6929    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); }
     6930    break;
     6931
     6932  case 321:
    69236933
    69246934/* Line 1806 of yacc.c  */
    69256935#line 1324 "parser.yy"
    6926     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
    6927     break;
    6928 
    6929   case 320:
    6930 
    6931 /* Line 1806 of yacc.c  */
    6932 #line 1326 "parser.yy"
    6933     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); }
    6934     break;
    6935 
    6936   case 321:
    6937 
    6938 /* Line 1806 of yacc.c  */
    6939 #line 1328 "parser.yy"
    69406936    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
    69416937    break;
     
    69446940
    69456941/* Line 1806 of yacc.c  */
     6942#line 1329 "parser.yy"
     6943    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
     6944    break;
     6945
     6946  case 323:
     6947
     6948/* Line 1806 of yacc.c  */
     6949#line 1331 "parser.yy"
     6950    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
     6951    break;
     6952
     6953  case 324:
     6954
     6955/* Line 1806 of yacc.c  */
    69466956#line 1333 "parser.yy"
    6947     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
    6948     break;
    6949 
    6950   case 323:
     6957    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
     6958    break;
     6959
     6960  case 325:
    69516961
    69526962/* Line 1806 of yacc.c  */
    69536963#line 1335 "parser.yy"
    6954     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
    6955     break;
    6956 
    6957   case 324:
     6964    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
     6965    break;
     6966
     6967  case 326:
    69586968
    69596969/* Line 1806 of yacc.c  */
    69606970#line 1337 "parser.yy"
    6961     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
    6962     break;
    6963 
    6964   case 325:
     6971    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); }
     6972    break;
     6973
     6974  case 327:
    69656975
    69666976/* Line 1806 of yacc.c  */
    69676977#line 1339 "parser.yy"
    6968     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
    6969     break;
    6970 
    6971   case 326:
     6978    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); }
     6979    break;
     6980
     6981  case 328:
    69726982
    69736983/* Line 1806 of yacc.c  */
    69746984#line 1341 "parser.yy"
    6975     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); }
    6976     break;
    6977 
    6978   case 327:
     6985    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); }
     6986    break;
     6987
     6988  case 329:
    69796989
    69806990/* Line 1806 of yacc.c  */
    69816991#line 1343 "parser.yy"
    6982     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); }
    6983     break;
    6984 
    6985   case 328:
     6992    { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); }
     6993    break;
     6994
     6995  case 330:
    69866996
    69876997/* Line 1806 of yacc.c  */
    69886998#line 1345 "parser.yy"
    6989     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); }
    6990     break;
    6991 
    6992   case 329:
     6999    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
     7000    break;
     7001
     7002  case 331:
    69937003
    69947004/* Line 1806 of yacc.c  */
    69957005#line 1347 "parser.yy"
    6996     { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); }
    6997     break;
    6998 
    6999   case 330:
     7006    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
     7007    break;
     7008
     7009  case 332:
    70007010
    70017011/* Line 1806 of yacc.c  */
    70027012#line 1349 "parser.yy"
    7003     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
    7004     break;
    7005 
    7006   case 331:
     7013    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); }
     7014    break;
     7015
     7016  case 333:
    70077017
    70087018/* Line 1806 of yacc.c  */
    70097019#line 1351 "parser.yy"
    7010     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
    7011     break;
    7012 
    7013   case 332:
     7020    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); }
     7021    break;
     7022
     7023  case 334:
    70147024
    70157025/* Line 1806 of yacc.c  */
    70167026#line 1353 "parser.yy"
    7017     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); }
    7018     break;
    7019 
    7020   case 333:
    7021 
    7022 /* Line 1806 of yacc.c  */
    7023 #line 1355 "parser.yy"
    7024     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); }
    7025     break;
    7026 
    7027   case 334:
    7028 
    7029 /* Line 1806 of yacc.c  */
    7030 #line 1357 "parser.yy"
    70317027    { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
    70327028    break;
     
    70357031
    70367032/* Line 1806 of yacc.c  */
     7033#line 1360 "parser.yy"
     7034    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     7035    break;
     7036
     7037  case 337:
     7038
     7039/* Line 1806 of yacc.c  */
     7040#line 1362 "parser.yy"
     7041    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7042    break;
     7043
     7044  case 338:
     7045
     7046/* Line 1806 of yacc.c  */
    70377047#line 1364 "parser.yy"
     7048    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     7049    break;
     7050
     7051  case 339:
     7052
     7053/* Line 1806 of yacc.c  */
     7054#line 1366 "parser.yy"
     7055    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
     7056    break;
     7057
     7058  case 341:
     7059
     7060/* Line 1806 of yacc.c  */
     7061#line 1372 "parser.yy"
     7062    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     7063    break;
     7064
     7065  case 343:
     7066
     7067/* Line 1806 of yacc.c  */
     7068#line 1379 "parser.yy"
    70387069    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    70397070    break;
    70407071
    7041   case 337:
    7042 
    7043 /* Line 1806 of yacc.c  */
    7044 #line 1366 "parser.yy"
     7072  case 344:
     7073
     7074/* Line 1806 of yacc.c  */
     7075#line 1381 "parser.yy"
    70457076    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    70467077    break;
    70477078
    7048   case 338:
    7049 
    7050 /* Line 1806 of yacc.c  */
    7051 #line 1368 "parser.yy"
     7079  case 345:
     7080
     7081/* Line 1806 of yacc.c  */
     7082#line 1383 "parser.yy"
     7083    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
     7084    break;
     7085
     7086  case 346:
     7087
     7088/* Line 1806 of yacc.c  */
     7089#line 1388 "parser.yy"
     7090    { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
     7091    break;
     7092
     7093  case 347:
     7094
     7095/* Line 1806 of yacc.c  */
     7096#line 1390 "parser.yy"
     7097    { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
     7098    break;
     7099
     7100  case 348:
     7101
     7102/* Line 1806 of yacc.c  */
     7103#line 1392 "parser.yy"
     7104    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
     7105    break;
     7106
     7107  case 349:
     7108
     7109/* Line 1806 of yacc.c  */
     7110#line 1394 "parser.yy"
     7111    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
     7112    break;
     7113
     7114  case 351:
     7115
     7116/* Line 1806 of yacc.c  */
     7117#line 1400 "parser.yy"
     7118    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     7119    break;
     7120
     7121  case 352:
     7122
     7123/* Line 1806 of yacc.c  */
     7124#line 1402 "parser.yy"
     7125    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7126    break;
     7127
     7128  case 353:
     7129
     7130/* Line 1806 of yacc.c  */
     7131#line 1404 "parser.yy"
    70527132    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    70537133    break;
    70547134
    7055   case 339:
    7056 
    7057 /* Line 1806 of yacc.c  */
    7058 #line 1370 "parser.yy"
    7059     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
    7060     break;
    7061 
    7062   case 341:
    7063 
    7064 /* Line 1806 of yacc.c  */
    7065 #line 1376 "parser.yy"
    7066     { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    7067     break;
    7068 
    7069   case 343:
    7070 
    7071 /* Line 1806 of yacc.c  */
    7072 #line 1383 "parser.yy"
     7135  case 355:
     7136
     7137/* Line 1806 of yacc.c  */
     7138#line 1410 "parser.yy"
    70737139    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    70747140    break;
    70757141
    7076   case 344:
    7077 
    7078 /* Line 1806 of yacc.c  */
    7079 #line 1385 "parser.yy"
     7142  case 356:
     7143
     7144/* Line 1806 of yacc.c  */
     7145#line 1412 "parser.yy"
    70807146    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    70817147    break;
    70827148
    7083   case 345:
    7084 
    7085 /* Line 1806 of yacc.c  */
    7086 #line 1387 "parser.yy"
    7087     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
    7088     break;
    7089 
    7090   case 346:
    7091 
    7092 /* Line 1806 of yacc.c  */
    7093 #line 1392 "parser.yy"
    7094     { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
    7095     break;
    7096 
    7097   case 347:
    7098 
    7099 /* Line 1806 of yacc.c  */
    7100 #line 1394 "parser.yy"
    7101     { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
    7102     break;
    7103 
    7104   case 348:
    7105 
    7106 /* Line 1806 of yacc.c  */
    7107 #line 1396 "parser.yy"
    7108     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
    7109     break;
    7110 
    7111   case 349:
    7112 
    7113 /* Line 1806 of yacc.c  */
    7114 #line 1398 "parser.yy"
    7115     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    7116     break;
    7117 
    7118   case 351:
    7119 
    7120 /* Line 1806 of yacc.c  */
    7121 #line 1404 "parser.yy"
     7149  case 358:
     7150
     7151/* Line 1806 of yacc.c  */
     7152#line 1418 "parser.yy"
    71227153    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    71237154    break;
    71247155
    7125   case 352:
    7126 
    7127 /* Line 1806 of yacc.c  */
    7128 #line 1406 "parser.yy"
     7156  case 359:
     7157
     7158/* Line 1806 of yacc.c  */
     7159#line 1420 "parser.yy"
    71297160    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    71307161    break;
    71317162
    7132   case 353:
    7133 
    7134 /* Line 1806 of yacc.c  */
    7135 #line 1408 "parser.yy"
     7163  case 360:
     7164
     7165/* Line 1806 of yacc.c  */
     7166#line 1422 "parser.yy"
    71367167    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    71377168    break;
    71387169
    7139   case 355:
    7140 
    7141 /* Line 1806 of yacc.c  */
    7142 #line 1414 "parser.yy"
    7143     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    7144     break;
    7145 
    7146   case 356:
    7147 
    7148 /* Line 1806 of yacc.c  */
    7149 #line 1416 "parser.yy"
     7170  case 361:
     7171
     7172/* Line 1806 of yacc.c  */
     7173#line 1427 "parser.yy"
     7174    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
     7175    break;
     7176
     7177  case 362:
     7178
     7179/* Line 1806 of yacc.c  */
     7180#line 1429 "parser.yy"
     7181    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     7182    break;
     7183
     7184  case 363:
     7185
     7186/* Line 1806 of yacc.c  */
     7187#line 1431 "parser.yy"
    71507188    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    71517189    break;
    71527190
    7153   case 358:
    7154 
    7155 /* Line 1806 of yacc.c  */
    7156 #line 1422 "parser.yy"
    7157     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    7158     break;
    7159 
    7160   case 359:
    7161 
    7162 /* Line 1806 of yacc.c  */
    7163 #line 1424 "parser.yy"
    7164     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    7165     break;
    7166 
    7167   case 360:
    7168 
    7169 /* Line 1806 of yacc.c  */
    7170 #line 1426 "parser.yy"
    7171     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    7172     break;
    7173 
    7174   case 361:
    7175 
    7176 /* Line 1806 of yacc.c  */
    7177 #line 1431 "parser.yy"
    7178     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
    7179     break;
    7180 
    7181   case 362:
    7182 
    7183 /* Line 1806 of yacc.c  */
    7184 #line 1433 "parser.yy"
    7185     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    7186     break;
    7187 
    7188   case 363:
    7189 
    7190 /* Line 1806 of yacc.c  */
    7191 #line 1435 "parser.yy"
    7192     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    7193     break;
    7194 
    71957191  case 366:
    71967192
    71977193/* Line 1806 of yacc.c  */
    7198 #line 1445 "parser.yy"
     7194#line 1441 "parser.yy"
    71997195    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl) ); }
    72007196    break;
     
    72037199
    72047200/* Line 1806 of yacc.c  */
    7205 #line 1447 "parser.yy"
     7201#line 1443 "parser.yy"
    72067202    {
    72077203                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     
    72137209
    72147210/* Line 1806 of yacc.c  */
     7211#line 1448 "parser.yy"
     7212    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     7213    break;
     7214
     7215  case 369:
     7216
     7217/* Line 1806 of yacc.c  */
     7218#line 1450 "parser.yy"
     7219    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), 0, (yyvsp[(5) - (6)].decl)); }
     7220    break;
     7221
     7222  case 370:
     7223
     7224/* Line 1806 of yacc.c  */
    72157225#line 1452 "parser.yy"
    7216     { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
    7217     break;
    7218 
    7219   case 369:
     7226    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl) ); }
     7227    break;
     7228
     7229  case 371:
    72207230
    72217231/* Line 1806 of yacc.c  */
    72227232#line 1454 "parser.yy"
    7223     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), 0, (yyvsp[(5) - (6)].decl)); }
    7224     break;
    7225 
    7226   case 370:
    7227 
    7228 /* Line 1806 of yacc.c  */
    7229 #line 1456 "parser.yy"
    7230     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl) ); }
    7231     break;
    7232 
    7233   case 371:
    7234 
    7235 /* Line 1806 of yacc.c  */
    7236 #line 1458 "parser.yy"
    72377233    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    72387234    break;
     
    72417237
    72427238/* Line 1806 of yacc.c  */
    7243 #line 1463 "parser.yy"
     7239#line 1459 "parser.yy"
    72447240    { (yyval.aggKey) = DeclarationNode::Struct; }
    72457241    break;
     
    72487244
    72497245/* Line 1806 of yacc.c  */
    7250 #line 1465 "parser.yy"
     7246#line 1461 "parser.yy"
    72517247    { (yyval.aggKey) = DeclarationNode::Union; }
    72527248    break;
     
    72557251
    72567252/* Line 1806 of yacc.c  */
    7257 #line 1470 "parser.yy"
     7253#line 1466 "parser.yy"
    72587254    { (yyval.decl) = (yyvsp[(1) - (1)].decl); }
    72597255    break;
     
    72627258
    72637259/* Line 1806 of yacc.c  */
    7264 #line 1472 "parser.yy"
     7260#line 1468 "parser.yy"
    72657261    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
    72667262    break;
     
    72697265
    72707266/* Line 1806 of yacc.c  */
    7271 #line 1478 "parser.yy"
    7272     { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); }
     7267#line 1474 "parser.yy"
     7268    { (yyval.decl) = (yyvsp[(2) - (3)].decl)/*->set_extension( true )*/; }
    72737269    break;
    72747270
     
    72767272
    72777273/* Line 1806 of yacc.c  */
    7278 #line 1481 "parser.yy"
    7279     {   // mark all fields in list
    7280                         for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_link() )
    7281                                 iter->set_extension( true );
    7282                         (yyval.decl) = (yyvsp[(2) - (3)].decl);
    7283                 }
     7274#line 1477 "parser.yy"
     7275    { (yyval.decl) = (yyvsp[(2) - (3)].decl)/*->set_extension( true )*/; }
    72847276    break;
    72857277
     
    72877279
    72887280/* Line 1806 of yacc.c  */
    7289 #line 1491 "parser.yy"
     7281#line 1483 "parser.yy"
    72907282    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
    72917283    break;
     
    72947286
    72957287/* Line 1806 of yacc.c  */
    7296 #line 1493 "parser.yy"
     7288#line 1485 "parser.yy"
    72977289    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
    72987290    break;
     
    73017293
    73027294/* Line 1806 of yacc.c  */
    7303 #line 1495 "parser.yy"
     7295#line 1487 "parser.yy"
    73047296    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
    73057297    break;
     
    73087300
    73097301/* Line 1806 of yacc.c  */
    7310 #line 1500 "parser.yy"
     7302#line 1492 "parser.yy"
    73117303    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73127304    break;
     
    73157307
    73167308/* Line 1806 of yacc.c  */
    7317 #line 1502 "parser.yy"
     7309#line 1494 "parser.yy"
    73187310    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
    73197311    break;
     
    73227314
    73237315/* Line 1806 of yacc.c  */
     7316#line 1499 "parser.yy"
     7317    { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
     7318    break;
     7319
     7320  case 387:
     7321
     7322/* Line 1806 of yacc.c  */
     7323#line 1501 "parser.yy"
     7324    { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
     7325    break;
     7326
     7327  case 388:
     7328
     7329/* Line 1806 of yacc.c  */
     7330#line 1504 "parser.yy"
     7331    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
     7332    break;
     7333
     7334  case 389:
     7335
     7336/* Line 1806 of yacc.c  */
    73247337#line 1507 "parser.yy"
    7325     { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
    7326     break;
    7327 
    7328   case 387:
    7329 
    7330 /* Line 1806 of yacc.c  */
    7331 #line 1509 "parser.yy"
    7332     { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
    7333     break;
    7334 
    7335   case 388:
    7336 
    7337 /* Line 1806 of yacc.c  */
    7338 #line 1512 "parser.yy"
    73397338    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    73407339    break;
    73417340
    7342   case 389:
     7341  case 391:
     7342
     7343/* Line 1806 of yacc.c  */
     7344#line 1513 "parser.yy"
     7345    { (yyval.en) = 0; }
     7346    break;
     7347
     7348  case 392:
    73437349
    73447350/* Line 1806 of yacc.c  */
    73457351#line 1515 "parser.yy"
    7346     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    7347     break;
    7348 
    7349   case 391:
    7350 
    7351 /* Line 1806 of yacc.c  */
    7352 #line 1521 "parser.yy"
    7353     { (yyval.en) = 0; }
    7354     break;
    7355 
    7356   case 392:
    7357 
    7358 /* Line 1806 of yacc.c  */
    7359 #line 1523 "parser.yy"
    73607352    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    73617353    break;
     
    73647356
    73657357/* Line 1806 of yacc.c  */
    7366 #line 1528 "parser.yy"
     7358#line 1520 "parser.yy"
    73677359    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    73687360    break;
     
    73717363
    73727364/* Line 1806 of yacc.c  */
    7373 #line 1537 "parser.yy"
     7365#line 1529 "parser.yy"
    73747366    { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); }
    73757367    break;
     
    73787370
    73797371/* Line 1806 of yacc.c  */
    7380 #line 1539 "parser.yy"
     7372#line 1531 "parser.yy"
    73817373    {
    73827374                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     
    73887380
    73897381/* Line 1806 of yacc.c  */
    7390 #line 1544 "parser.yy"
     7382#line 1536 "parser.yy"
    73917383    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
    73927384    break;
     
    73957387
    73967388/* Line 1806 of yacc.c  */
    7397 #line 1546 "parser.yy"
     7389#line 1538 "parser.yy"
    73987390    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); }
    73997391    break;
     
    74027394
    74037395/* Line 1806 of yacc.c  */
    7404 #line 1551 "parser.yy"
     7396#line 1543 "parser.yy"
    74057397    { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
    74067398    break;
     
    74097401
    74107402/* Line 1806 of yacc.c  */
    7411 #line 1553 "parser.yy"
     7403#line 1545 "parser.yy"
    74127404    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
    74137405    break;
     
    74167408
    74177409/* Line 1806 of yacc.c  */
    7418 #line 1558 "parser.yy"
     7410#line 1550 "parser.yy"
    74197411    { (yyval.en) = 0; }
    74207412    break;
     
    74237415
    74247416/* Line 1806 of yacc.c  */
    7425 #line 1560 "parser.yy"
     7417#line 1552 "parser.yy"
    74267418    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    74277419    break;
     
    74307422
    74317423/* Line 1806 of yacc.c  */
     7424#line 1559 "parser.yy"
     7425    { (yyval.decl) = 0; }
     7426    break;
     7427
     7428  case 407:
     7429
     7430/* Line 1806 of yacc.c  */
    74327431#line 1567 "parser.yy"
    7433     { (yyval.decl) = 0; }
    7434     break;
    7435 
    7436   case 407:
    7437 
    7438 /* Line 1806 of yacc.c  */
    7439 #line 1575 "parser.yy"
    74407432    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    74417433    break;
     
    74447436
    74457437/* Line 1806 of yacc.c  */
    7446 #line 1577 "parser.yy"
     7438#line 1569 "parser.yy"
    74477439    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    74487440    break;
     
    74517443
    74527444/* Line 1806 of yacc.c  */
     7445#line 1571 "parser.yy"
     7446    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7447    break;
     7448
     7449  case 411:
     7450
     7451/* Line 1806 of yacc.c  */
    74537452#line 1579 "parser.yy"
    7454     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    7455     break;
    7456 
    7457   case 411:
    7458 
    7459 /* Line 1806 of yacc.c  */
    7460 #line 1587 "parser.yy"
    74617453    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    74627454    break;
    74637455
    74647456  case 412:
     7457
     7458/* Line 1806 of yacc.c  */
     7459#line 1581 "parser.yy"
     7460    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7461    break;
     7462
     7463  case 413:
     7464
     7465/* Line 1806 of yacc.c  */
     7466#line 1583 "parser.yy"
     7467    { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
     7468    break;
     7469
     7470  case 415:
    74657471
    74667472/* Line 1806 of yacc.c  */
     
    74697475    break;
    74707476
    7471   case 413:
    7472 
    7473 /* Line 1806 of yacc.c  */
    7474 #line 1591 "parser.yy"
    7475     { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
    7476     break;
    7477 
    7478   case 415:
    7479 
    7480 /* Line 1806 of yacc.c  */
    7481 #line 1597 "parser.yy"
     7477  case 416:
     7478
     7479/* Line 1806 of yacc.c  */
     7480#line 1594 "parser.yy"
     7481    { (yyval.decl) = 0; }
     7482    break;
     7483
     7484  case 419:
     7485
     7486/* Line 1806 of yacc.c  */
     7487#line 1601 "parser.yy"
     7488    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7489    break;
     7490
     7491  case 422:
     7492
     7493/* Line 1806 of yacc.c  */
     7494#line 1608 "parser.yy"
    74827495    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    74837496    break;
    74847497
    7485   case 416:
    7486 
    7487 /* Line 1806 of yacc.c  */
    7488 #line 1602 "parser.yy"
    7489     { (yyval.decl) = 0; }
    7490     break;
    7491 
    7492   case 419:
    7493 
    7494 /* Line 1806 of yacc.c  */
    7495 #line 1609 "parser.yy"
    7496     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    7497     break;
    7498 
    7499   case 422:
    7500 
    7501 /* Line 1806 of yacc.c  */
    7502 #line 1616 "parser.yy"
     7498  case 423:
     7499
     7500/* Line 1806 of yacc.c  */
     7501#line 1610 "parser.yy"
    75037502    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    75047503    break;
    75057504
    7506   case 423:
    7507 
    7508 /* Line 1806 of yacc.c  */
    7509 #line 1618 "parser.yy"
    7510     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7511     break;
    7512 
    75137505  case 425:
    75147506
    75157507/* Line 1806 of yacc.c  */
    7516 #line 1627 "parser.yy"
     7508#line 1619 "parser.yy"
    75177509    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    75187510    break;
     
    75217513
    75227514/* Line 1806 of yacc.c  */
    7523 #line 1630 "parser.yy"
     7515#line 1622 "parser.yy"
    75247516    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    75257517    break;
     
    75287520
    75297521/* Line 1806 of yacc.c  */
    7530 #line 1632 "parser.yy"
     7522#line 1624 "parser.yy"
    75317523    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
    75327524    break;
     
    75357527
    75367528/* Line 1806 of yacc.c  */
    7537 #line 1642 "parser.yy"
     7529#line 1634 "parser.yy"
    75387530    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    75397531    break;
     
    75427534
    75437535/* Line 1806 of yacc.c  */
    7544 #line 1648 "parser.yy"
     7536#line 1640 "parser.yy"
    75457537    {
    75467538                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    75527544
    75537545/* Line 1806 of yacc.c  */
    7554 #line 1653 "parser.yy"
     7546#line 1645 "parser.yy"
    75557547    {
    75567548                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    75627554
    75637555/* Line 1806 of yacc.c  */
    7564 #line 1662 "parser.yy"
     7556#line 1654 "parser.yy"
    75657557    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    75667558    break;
     
    75697561
    75707562/* Line 1806 of yacc.c  */
    7571 #line 1671 "parser.yy"
     7563#line 1663 "parser.yy"
    75727564    { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
    75737565    break;
     
    75767568
    75777569/* Line 1806 of yacc.c  */
    7578 #line 1673 "parser.yy"
     7570#line 1665 "parser.yy"
    75797571    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
    75807572    break;
    75817573
    75827574  case 451:
     7575
     7576/* Line 1806 of yacc.c  */
     7577#line 1690 "parser.yy"
     7578    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7579    break;
     7580
     7581  case 455:
    75837582
    75847583/* Line 1806 of yacc.c  */
     
    75877586    break;
    75887587
    7589   case 455:
    7590 
    7591 /* Line 1806 of yacc.c  */
    7592 #line 1706 "parser.yy"
    7593     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    7594     break;
    7595 
    75967588  case 456:
    75977589
    75987590/* Line 1806 of yacc.c  */
     7591#line 1703 "parser.yy"
     7592    { (yyval.in) = 0; }
     7593    break;
     7594
     7595  case 457:
     7596
     7597/* Line 1806 of yacc.c  */
     7598#line 1705 "parser.yy"
     7599    { (yyval.in) = (yyvsp[(2) - (2)].in); }
     7600    break;
     7601
     7602  case 458:
     7603
     7604/* Line 1806 of yacc.c  */
     7605#line 1707 "parser.yy"
     7606    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); }
     7607    break;
     7608
     7609  case 459:
     7610
     7611/* Line 1806 of yacc.c  */
    75997612#line 1711 "parser.yy"
     7613    { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
     7614    break;
     7615
     7616  case 460:
     7617
     7618/* Line 1806 of yacc.c  */
     7619#line 1712 "parser.yy"
     7620    { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
     7621    break;
     7622
     7623  case 461:
     7624
     7625/* Line 1806 of yacc.c  */
     7626#line 1717 "parser.yy"
    76007627    { (yyval.in) = 0; }
    76017628    break;
    76027629
    7603   case 457:
    7604 
    7605 /* Line 1806 of yacc.c  */
    7606 #line 1713 "parser.yy"
    7607     { (yyval.in) = (yyvsp[(2) - (2)].in); }
    7608     break;
    7609 
    7610   case 458:
    7611 
    7612 /* Line 1806 of yacc.c  */
    7613 #line 1715 "parser.yy"
    7614     { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); }
    7615     break;
    7616 
    7617   case 459:
     7630  case 463:
    76187631
    76197632/* Line 1806 of yacc.c  */
    76207633#line 1719 "parser.yy"
    7621     { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
    7622     break;
    7623 
    7624   case 460:
     7634    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
     7635    break;
     7636
     7637  case 464:
    76257638
    76267639/* Line 1806 of yacc.c  */
    76277640#line 1720 "parser.yy"
    7628     { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
    7629     break;
    7630 
    7631   case 461:
    7632 
    7633 /* Line 1806 of yacc.c  */
    7634 #line 1725 "parser.yy"
    7635     { (yyval.in) = 0; }
    7636     break;
    7637 
    7638   case 463:
    7639 
    7640 /* Line 1806 of yacc.c  */
    7641 #line 1727 "parser.yy"
    7642     { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
    7643     break;
    7644 
    7645   case 464:
    7646 
    7647 /* Line 1806 of yacc.c  */
    7648 #line 1728 "parser.yy"
    76497641    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link( (yyvsp[(3) - (3)].in) ) ); }
    76507642    break;
     
    76537645
    76547646/* Line 1806 of yacc.c  */
    7655 #line 1730 "parser.yy"
     7647#line 1722 "parser.yy"
    76567648    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_link( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
    76577649    break;
     
    76607652
    76617653/* Line 1806 of yacc.c  */
    7662 #line 1746 "parser.yy"
     7654#line 1738 "parser.yy"
    76637655    { (yyval.en) = new VarRefNode( (yyvsp[(1) - (2)].tok) ); }
    76647656    break;
     
    76677659
    76687660/* Line 1806 of yacc.c  */
     7661#line 1744 "parser.yy"
     7662    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) )); }
     7663    break;
     7664
     7665  case 470:
     7666
     7667/* Line 1806 of yacc.c  */
    76697668#line 1752 "parser.yy"
    7670     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) )); }
    7671     break;
    7672 
    7673   case 470:
    7674 
    7675 /* Line 1806 of yacc.c  */
    7676 #line 1760 "parser.yy"
    76777669    { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(1) - (1)].tok) ) ); }
    76787670    break;
     
    76817673
    76827674/* Line 1806 of yacc.c  */
    7683 #line 1762 "parser.yy"
     7675#line 1754 "parser.yy"
    76847676    { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(2) - (2)].tok) ) ); }
    76857677    break;
     
    76887680
    76897681/* Line 1806 of yacc.c  */
    7690 #line 1765 "parser.yy"
     7682#line 1757 "parser.yy"
    76917683    { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); }
    76927684    break;
     
    76957687
    76967688/* Line 1806 of yacc.c  */
    7697 #line 1767 "parser.yy"
     7689#line 1759 "parser.yy"
    76987690    { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); }
    76997691    break;
     
    77027694
    77037695/* Line 1806 of yacc.c  */
    7704 #line 1769 "parser.yy"
     7696#line 1761 "parser.yy"
    77057697    { (yyval.en) = new DesignatorNode( new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ), true ); }
    77067698    break;
     
    77097701
    77107702/* Line 1806 of yacc.c  */
    7711 #line 1771 "parser.yy"
     7703#line 1763 "parser.yy"
    77127704    { (yyval.en) = new DesignatorNode( (yyvsp[(4) - (6)].en) ); }
    77137705    break;
     
    77167708
    77177709/* Line 1806 of yacc.c  */
    7718 #line 1795 "parser.yy"
     7710#line 1787 "parser.yy"
    77197711    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    77207712    break;
     
    77237715
    77247716/* Line 1806 of yacc.c  */
     7717#line 1789 "parser.yy"
     7718    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     7719    break;
     7720
     7721  case 479:
     7722
     7723/* Line 1806 of yacc.c  */
     7724#line 1791 "parser.yy"
     7725    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     7726    break;
     7727
     7728  case 481:
     7729
     7730/* Line 1806 of yacc.c  */
    77257731#line 1797 "parser.yy"
     7732    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     7733    break;
     7734
     7735  case 482:
     7736
     7737/* Line 1806 of yacc.c  */
     7738#line 1799 "parser.yy"
    77267739    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    77277740    break;
    77287741
    7729   case 479:
    7730 
    7731 /* Line 1806 of yacc.c  */
    7732 #line 1799 "parser.yy"
    7733     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    7734     break;
    7735 
    7736   case 481:
    7737 
    7738 /* Line 1806 of yacc.c  */
    7739 #line 1805 "parser.yy"
    7740     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    7741     break;
    7742 
    7743   case 482:
    7744 
    7745 /* Line 1806 of yacc.c  */
    7746 #line 1807 "parser.yy"
    7747     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    7748     break;
    7749 
    77507742  case 483:
    77517743
    77527744/* Line 1806 of yacc.c  */
    7753 #line 1812 "parser.yy"
     7745#line 1804 "parser.yy"
    77547746    { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    77557747    break;
     
    77587750
    77597751/* Line 1806 of yacc.c  */
    7760 #line 1818 "parser.yy"
     7752#line 1810 "parser.yy"
    77617753    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
    77627754    break;
     
    77657757
    77667758/* Line 1806 of yacc.c  */
     7759#line 1815 "parser.yy"
     7760    { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
     7761    break;
     7762
     7763  case 487:
     7764
     7765/* Line 1806 of yacc.c  */
     7766#line 1817 "parser.yy"
     7767    { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
     7768    break;
     7769
     7770  case 489:
     7771
     7772/* Line 1806 of yacc.c  */
    77677773#line 1823 "parser.yy"
    7768     { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
    7769     break;
    7770 
    7771   case 487:
     7774    { (yyval.tclass) = DeclarationNode::Type; }
     7775    break;
     7776
     7777  case 490:
    77727778
    77737779/* Line 1806 of yacc.c  */
    77747780#line 1825 "parser.yy"
    7775     { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
    7776     break;
    7777 
    7778   case 489:
    7779 
    7780 /* Line 1806 of yacc.c  */
    7781 #line 1831 "parser.yy"
    7782     { (yyval.tclass) = DeclarationNode::Type; }
    7783     break;
    7784 
    7785   case 490:
    7786 
    7787 /* Line 1806 of yacc.c  */
    7788 #line 1833 "parser.yy"
    77897781    { (yyval.tclass) = DeclarationNode::Ftype; }
    77907782    break;
     
    77937785
    77947786/* Line 1806 of yacc.c  */
    7795 #line 1835 "parser.yy"
     7787#line 1827 "parser.yy"
    77967788    { (yyval.tclass) = DeclarationNode::Dtype; }
    77977789    break;
     
    78007792
    78017793/* Line 1806 of yacc.c  */
    7802 #line 1840 "parser.yy"
     7794#line 1832 "parser.yy"
    78037795    { (yyval.decl) = 0; }
    78047796    break;
     
    78077799
    78087800/* Line 1806 of yacc.c  */
    7809 #line 1842 "parser.yy"
     7801#line 1834 "parser.yy"
    78107802    { (yyval.decl) = (yyvsp[(1) - (2)].decl) == 0 ? (yyvsp[(2) - (2)].decl) : (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); }
    78117803    break;
     
    78147806
    78157807/* Line 1806 of yacc.c  */
    7816 #line 1847 "parser.yy"
     7808#line 1839 "parser.yy"
    78177809    {
    78187810                        typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) );
     
    78247816
    78257817/* Line 1806 of yacc.c  */
    7826 #line 1852 "parser.yy"
     7818#line 1844 "parser.yy"
    78277819    { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
    78287820    break;
     
    78317823
    78327824/* Line 1806 of yacc.c  */
     7825#line 1846 "parser.yy"
     7826    { (yyval.decl) = 0; }
     7827    break;
     7828
     7829  case 497:
     7830
     7831/* Line 1806 of yacc.c  */
     7832#line 1851 "parser.yy"
     7833    { (yyval.en) = new TypeValueNode( (yyvsp[(1) - (1)].decl) ); }
     7834    break;
     7835
     7836  case 499:
     7837
     7838/* Line 1806 of yacc.c  */
    78337839#line 1854 "parser.yy"
    7834     { (yyval.decl) = 0; }
    7835     break;
    7836 
    7837   case 497:
    7838 
    7839 /* Line 1806 of yacc.c  */
    7840 #line 1859 "parser.yy"
    7841     { (yyval.en) = new TypeValueNode( (yyvsp[(1) - (1)].decl) ); }
    7842     break;
    7843 
    7844   case 499:
    7845 
    7846 /* Line 1806 of yacc.c  */
    7847 #line 1862 "parser.yy"
    78487840    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( new TypeValueNode( (yyvsp[(3) - (3)].decl) ))); }
    78497841    break;
     
    78527844
    78537845/* Line 1806 of yacc.c  */
    7854 #line 1864 "parser.yy"
     7846#line 1856 "parser.yy"
    78557847    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); }
    78567848    break;
     
    78597851
    78607852/* Line 1806 of yacc.c  */
    7861 #line 1869 "parser.yy"
     7853#line 1861 "parser.yy"
    78627854    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    78637855    break;
     
    78667858
    78677859/* Line 1806 of yacc.c  */
    7868 #line 1871 "parser.yy"
     7860#line 1863 "parser.yy"
    78697861    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
    78707862    break;
     
    78737865
    78747866/* Line 1806 of yacc.c  */
    7875 #line 1873 "parser.yy"
     7867#line 1865 "parser.yy"
    78767868    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
    78777869    break;
     
    78807872
    78817873/* Line 1806 of yacc.c  */
    7882 #line 1878 "parser.yy"
     7874#line 1870 "parser.yy"
    78837875    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
    78847876    break;
     
    78877879
    78887880/* Line 1806 of yacc.c  */
    7889 #line 1880 "parser.yy"
     7881#line 1872 "parser.yy"
    78907882    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    78917883    break;
     
    78947886
    78957887/* Line 1806 of yacc.c  */
    7896 #line 1885 "parser.yy"
     7888#line 1877 "parser.yy"
    78977889    {
    78987890                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD );
     
    79047896
    79057897/* Line 1806 of yacc.c  */
    7906 #line 1890 "parser.yy"
     7898#line 1882 "parser.yy"
    79077899    {
    79087900                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG );
     
    79147906
    79157907/* Line 1806 of yacc.c  */
    7916 #line 1898 "parser.yy"
     7908#line 1890 "parser.yy"
    79177909    {
    79187910                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID );
     
    79247916
    79257917/* Line 1806 of yacc.c  */
    7926 #line 1903 "parser.yy"
     7918#line 1895 "parser.yy"
    79277919    {
    79287920                        typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) );
     
    79347926
    79357927/* Line 1806 of yacc.c  */
    7936 #line 1908 "parser.yy"
     7928#line 1900 "parser.yy"
    79377929    {
    79387930                        typedefTable.leaveTrait();
     
    79457937
    79467938/* Line 1806 of yacc.c  */
    7947 #line 1918 "parser.yy"
     7939#line 1910 "parser.yy"
    79487940    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    79497941    break;
     
    79527944
    79537945/* Line 1806 of yacc.c  */
    7954 #line 1928 "parser.yy"
     7946#line 1920 "parser.yy"
    79557947    {
    79567948                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    79627954
    79637955/* Line 1806 of yacc.c  */
    7964 #line 1933 "parser.yy"
     7956#line 1925 "parser.yy"
    79657957    {
    79667958                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    79727964
    79737965/* Line 1806 of yacc.c  */
    7974 #line 1938 "parser.yy"
     7966#line 1930 "parser.yy"
    79757967    {
    79767968                        typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    79827974
    79837975/* Line 1806 of yacc.c  */
    7984 #line 1946 "parser.yy"
     7976#line 1938 "parser.yy"
    79857977    {
    79867978                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    79927984
    79937985/* Line 1806 of yacc.c  */
    7994 #line 1951 "parser.yy"
     7986#line 1943 "parser.yy"
    79957987    {
    79967988                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    80027994
    80037995/* Line 1806 of yacc.c  */
    8004 #line 1961 "parser.yy"
     7996#line 1953 "parser.yy"
    80057997    {}
    80067998    break;
     
    80098001
    80108002/* Line 1806 of yacc.c  */
    8011 #line 1963 "parser.yy"
     8003#line 1955 "parser.yy"
    80128004    {
    80138005                        if ( theTree ) {
     
    80228014
    80238015/* Line 1806 of yacc.c  */
    8024 #line 1975 "parser.yy"
     8016#line 1967 "parser.yy"
    80258017    { (yyval.decl) = ( (yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
    80268018    break;
     
    80298021
    80308022/* Line 1806 of yacc.c  */
     8023#line 1972 "parser.yy"
     8024    { (yyval.decl) = 0; }
     8025    break;
     8026
     8027  case 528:
     8028
     8029/* Line 1806 of yacc.c  */
    80318030#line 1980 "parser.yy"
    8032     { (yyval.decl) = 0; }
    8033     break;
    8034 
    8035   case 528:
    8036 
    8037 /* Line 1806 of yacc.c  */
    8038 #line 1988 "parser.yy"
    80398031    {}
    80408032    break;
     
    80438035
    80448036/* Line 1806 of yacc.c  */
    8045 #line 1990 "parser.yy"
     8037#line 1982 "parser.yy"
    80468038    {
    80478039                        linkageStack.push( linkage );
     
    80538045
    80548046/* Line 1806 of yacc.c  */
    8055 #line 1995 "parser.yy"
     8047#line 1987 "parser.yy"
    80568048    {
    80578049                        linkage = linkageStack.top();
     
    80648056
    80658057/* Line 1806 of yacc.c  */
    8066 #line 2001 "parser.yy"
    8067     {   // mark all fields in list
    8068                         for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_link() )
    8069                                 iter->set_extension( true );
    8070                         (yyval.decl) = (yyvsp[(2) - (2)].decl);
    8071                 }
     8058#line 1993 "parser.yy"
     8059    { (yyval.decl) = (yyvsp[(2) - (2)].decl)/*->set_extension( true )*/; }
    80728060    break;
    80738061
     
    80758063
    80768064/* Line 1806 of yacc.c  */
    8077 #line 2016 "parser.yy"
     8065#line 2004 "parser.yy"
    80788066    {
    80798067                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    80868074
    80878075/* Line 1806 of yacc.c  */
    8088 #line 2022 "parser.yy"
     8076#line 2010 "parser.yy"
    80898077    {
    80908078                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    80978085
    80988086/* Line 1806 of yacc.c  */
    8099 #line 2031 "parser.yy"
     8087#line 2019 "parser.yy"
    81008088    {
    81018089                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    81088096
    81098097/* Line 1806 of yacc.c  */
    8110 #line 2037 "parser.yy"
     8098#line 2025 "parser.yy"
    81118099    {
    81128100                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    81198107
    81208108/* Line 1806 of yacc.c  */
    8121 #line 2043 "parser.yy"
     8109#line 2031 "parser.yy"
    81228110    {
    81238111                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    81308118
    81318119/* Line 1806 of yacc.c  */
    8132 #line 2049 "parser.yy"
     8120#line 2037 "parser.yy"
    81338121    {
    81348122                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    81418129
    81428130/* Line 1806 of yacc.c  */
    8143 #line 2055 "parser.yy"
     8131#line 2043 "parser.yy"
    81448132    {
    81458133                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    81528140
    81538141/* Line 1806 of yacc.c  */
    8154 #line 2063 "parser.yy"
     8142#line 2051 "parser.yy"
    81558143    {
    81568144                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    81638151
    81648152/* Line 1806 of yacc.c  */
    8165 #line 2069 "parser.yy"
     8153#line 2057 "parser.yy"
    81668154    {
    81678155                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    81748162
    81758163/* Line 1806 of yacc.c  */
    8176 #line 2077 "parser.yy"
     8164#line 2065 "parser.yy"
    81778165    {
    81788166                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    81858173
    81868174/* Line 1806 of yacc.c  */
    8187 #line 2083 "parser.yy"
     8175#line 2071 "parser.yy"
    81888176    {
    81898177                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    81968184
    81978185/* Line 1806 of yacc.c  */
    8198 #line 2098 "parser.yy"
     8186#line 2086 "parser.yy"
    81998187    { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); }
    82008188    break;
     
    82038191
    82048192/* Line 1806 of yacc.c  */
    8205 #line 2108 "parser.yy"
     8193#line 2096 "parser.yy"
    82068194    { (yyval.decl) = 0; }
    82078195    break;
     
    82108198
    82118199/* Line 1806 of yacc.c  */
    8212 #line 2115 "parser.yy"
     8200#line 2103 "parser.yy"
    82138201    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    82148202    break;
     
    82178205
    82188206/* Line 1806 of yacc.c  */
    8219 #line 2121 "parser.yy"
     8207#line 2109 "parser.yy"
    82208208    { (yyval.decl) = 0; }
    82218209    break;
     
    82248212
    82258213/* Line 1806 of yacc.c  */
    8226 #line 2136 "parser.yy"
     8214#line 2124 "parser.yy"
    82278215    {}
    82288216    break;
     
    82318219
    82328220/* Line 1806 of yacc.c  */
    8233 #line 2137 "parser.yy"
     8221#line 2125 "parser.yy"
    82348222    {}
    82358223    break;
     
    82388226
    82398227/* Line 1806 of yacc.c  */
    8240 #line 2138 "parser.yy"
     8228#line 2126 "parser.yy"
    82418229    {}
    82428230    break;
     
    82458233
    82468234/* Line 1806 of yacc.c  */
    8247 #line 2139 "parser.yy"
     8235#line 2127 "parser.yy"
    82488236    {}
    82498237    break;
     
    82528240
    82538241/* Line 1806 of yacc.c  */
    8254 #line 2174 "parser.yy"
     8242#line 2162 "parser.yy"
    82558243    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82568244    break;
     
    82598247
    82608248/* Line 1806 of yacc.c  */
    8261 #line 2177 "parser.yy"
     8249#line 2165 "parser.yy"
    82628250    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82638251    break;
     
    82668254
    82678255/* Line 1806 of yacc.c  */
    8268 #line 2179 "parser.yy"
     8256#line 2167 "parser.yy"
    82698257    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    82708258    break;
     
    82738261
    82748262/* Line 1806 of yacc.c  */
    8275 #line 2184 "parser.yy"
     8263#line 2172 "parser.yy"
    82768264    {
    82778265                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    82838271
    82848272/* Line 1806 of yacc.c  */
    8285 #line 2189 "parser.yy"
     8273#line 2177 "parser.yy"
    82868274    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82878275    break;
     
    82908278
    82918279/* Line 1806 of yacc.c  */
    8292 #line 2194 "parser.yy"
     8280#line 2182 "parser.yy"
    82938281    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    82948282    break;
     
    82978285
    82988286/* Line 1806 of yacc.c  */
    8299 #line 2196 "parser.yy"
     8287#line 2184 "parser.yy"
    83008288    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    83018289    break;
     
    83048292
    83058293/* Line 1806 of yacc.c  */
    8306 #line 2198 "parser.yy"
     8294#line 2186 "parser.yy"
    83078295    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83088296    break;
     
    83118299
    83128300/* Line 1806 of yacc.c  */
    8313 #line 2203 "parser.yy"
     8301#line 2191 "parser.yy"
    83148302    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    83158303    break;
     
    83188306
    83198307/* Line 1806 of yacc.c  */
    8320 #line 2205 "parser.yy"
     8308#line 2193 "parser.yy"
    83218309    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    83228310    break;
     
    83258313
    83268314/* Line 1806 of yacc.c  */
    8327 #line 2207 "parser.yy"
     8315#line 2195 "parser.yy"
    83288316    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    83298317    break;
     
    83328320
    83338321/* Line 1806 of yacc.c  */
    8334 #line 2209 "parser.yy"
     8322#line 2197 "parser.yy"
    83358323    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83368324    break;
     
    83398327
    83408328/* Line 1806 of yacc.c  */
    8341 #line 2214 "parser.yy"
     8329#line 2202 "parser.yy"
    83428330    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    83438331    break;
     
    83468334
    83478335/* Line 1806 of yacc.c  */
     8336#line 2204 "parser.yy"
     8337    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8338    break;
     8339
     8340  case 579:
     8341
     8342/* Line 1806 of yacc.c  */
     8343#line 2213 "parser.yy"
     8344    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8345    break;
     8346
     8347  case 581:
     8348
     8349/* Line 1806 of yacc.c  */
    83488350#line 2216 "parser.yy"
     8351    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8352    break;
     8353
     8354  case 582:
     8355
     8356/* Line 1806 of yacc.c  */
     8357#line 2221 "parser.yy"
     8358    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8359    break;
     8360
     8361  case 583:
     8362
     8363/* Line 1806 of yacc.c  */
     8364#line 2223 "parser.yy"
     8365    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8366    break;
     8367
     8368  case 584:
     8369
     8370/* Line 1806 of yacc.c  */
     8371#line 2225 "parser.yy"
    83498372    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83508373    break;
    83518374
    8352   case 579:
    8353 
    8354 /* Line 1806 of yacc.c  */
    8355 #line 2225 "parser.yy"
     8375  case 585:
     8376
     8377/* Line 1806 of yacc.c  */
     8378#line 2230 "parser.yy"
     8379    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8380    break;
     8381
     8382  case 586:
     8383
     8384/* Line 1806 of yacc.c  */
     8385#line 2232 "parser.yy"
     8386    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8387    break;
     8388
     8389  case 587:
     8390
     8391/* Line 1806 of yacc.c  */
     8392#line 2234 "parser.yy"
     8393    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8394    break;
     8395
     8396  case 588:
     8397
     8398/* Line 1806 of yacc.c  */
     8399#line 2239 "parser.yy"
     8400    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8401    break;
     8402
     8403  case 589:
     8404
     8405/* Line 1806 of yacc.c  */
     8406#line 2241 "parser.yy"
     8407    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8408    break;
     8409
     8410  case 590:
     8411
     8412/* Line 1806 of yacc.c  */
     8413#line 2243 "parser.yy"
     8414    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8415    break;
     8416
     8417  case 594:
     8418
     8419/* Line 1806 of yacc.c  */
     8420#line 2258 "parser.yy"
     8421    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
     8422    break;
     8423
     8424  case 595:
     8425
     8426/* Line 1806 of yacc.c  */
     8427#line 2260 "parser.yy"
     8428    { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
     8429    break;
     8430
     8431  case 596:
     8432
     8433/* Line 1806 of yacc.c  */
     8434#line 2262 "parser.yy"
     8435    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8436    break;
     8437
     8438  case 597:
     8439
     8440/* Line 1806 of yacc.c  */
     8441#line 2267 "parser.yy"
     8442    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8443    break;
     8444
     8445  case 598:
     8446
     8447/* Line 1806 of yacc.c  */
     8448#line 2269 "parser.yy"
     8449    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8450    break;
     8451
     8452  case 599:
     8453
     8454/* Line 1806 of yacc.c  */
     8455#line 2271 "parser.yy"
     8456    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8457    break;
     8458
     8459  case 600:
     8460
     8461/* Line 1806 of yacc.c  */
     8462#line 2276 "parser.yy"
     8463    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8464    break;
     8465
     8466  case 601:
     8467
     8468/* Line 1806 of yacc.c  */
     8469#line 2278 "parser.yy"
     8470    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8471    break;
     8472
     8473  case 602:
     8474
     8475/* Line 1806 of yacc.c  */
     8476#line 2280 "parser.yy"
     8477    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8478    break;
     8479
     8480  case 603:
     8481
     8482/* Line 1806 of yacc.c  */
     8483#line 2295 "parser.yy"
    83568484    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83578485    break;
    83588486
    8359   case 581:
    8360 
    8361 /* Line 1806 of yacc.c  */
    8362 #line 2228 "parser.yy"
     8487  case 605:
     8488
     8489/* Line 1806 of yacc.c  */
     8490#line 2298 "parser.yy"
    83638491    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83648492    break;
    83658493
    8366   case 582:
    8367 
    8368 /* Line 1806 of yacc.c  */
    8369 #line 2233 "parser.yy"
     8494  case 606:
     8495
     8496/* Line 1806 of yacc.c  */
     8497#line 2300 "parser.yy"
     8498    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8499    break;
     8500
     8501  case 608:
     8502
     8503/* Line 1806 of yacc.c  */
     8504#line 2306 "parser.yy"
     8505    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8506    break;
     8507
     8508  case 609:
     8509
     8510/* Line 1806 of yacc.c  */
     8511#line 2311 "parser.yy"
     8512    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8513    break;
     8514
     8515  case 610:
     8516
     8517/* Line 1806 of yacc.c  */
     8518#line 2313 "parser.yy"
     8519    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8520    break;
     8521
     8522  case 611:
     8523
     8524/* Line 1806 of yacc.c  */
     8525#line 2315 "parser.yy"
     8526    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8527    break;
     8528
     8529  case 612:
     8530
     8531/* Line 1806 of yacc.c  */
     8532#line 2320 "parser.yy"
     8533    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8534    break;
     8535
     8536  case 613:
     8537
     8538/* Line 1806 of yacc.c  */
     8539#line 2322 "parser.yy"
     8540    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8541    break;
     8542
     8543  case 614:
     8544
     8545/* Line 1806 of yacc.c  */
     8546#line 2324 "parser.yy"
     8547    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8548    break;
     8549
     8550  case 615:
     8551
     8552/* Line 1806 of yacc.c  */
     8553#line 2326 "parser.yy"
     8554    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8555    break;
     8556
     8557  case 616:
     8558
     8559/* Line 1806 of yacc.c  */
     8560#line 2331 "parser.yy"
    83708561    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    83718562    break;
    83728563
    8373   case 583:
    8374 
    8375 /* Line 1806 of yacc.c  */
    8376 #line 2235 "parser.yy"
     8564  case 617:
     8565
     8566/* Line 1806 of yacc.c  */
     8567#line 2333 "parser.yy"
    83778568    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    83788569    break;
    83798570
    8380   case 584:
    8381 
    8382 /* Line 1806 of yacc.c  */
    8383 #line 2237 "parser.yy"
     8571  case 618:
     8572
     8573/* Line 1806 of yacc.c  */
     8574#line 2335 "parser.yy"
    83848575    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83858576    break;
    83868577
    8387   case 585:
    8388 
    8389 /* Line 1806 of yacc.c  */
    8390 #line 2242 "parser.yy"
     8578  case 619:
     8579
     8580/* Line 1806 of yacc.c  */
     8581#line 2345 "parser.yy"
     8582    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8583    break;
     8584
     8585  case 621:
     8586
     8587/* Line 1806 of yacc.c  */
     8588#line 2348 "parser.yy"
     8589    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8590    break;
     8591
     8592  case 622:
     8593
     8594/* Line 1806 of yacc.c  */
     8595#line 2350 "parser.yy"
     8596    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8597    break;
     8598
     8599  case 623:
     8600
     8601/* Line 1806 of yacc.c  */
     8602#line 2355 "parser.yy"
    83918603    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    83928604    break;
    83938605
    8394   case 586:
    8395 
    8396 /* Line 1806 of yacc.c  */
    8397 #line 2244 "parser.yy"
     8606  case 624:
     8607
     8608/* Line 1806 of yacc.c  */
     8609#line 2357 "parser.yy"
    83988610    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    83998611    break;
    84008612
    8401   case 587:
    8402 
    8403 /* Line 1806 of yacc.c  */
    8404 #line 2246 "parser.yy"
     8613  case 625:
     8614
     8615/* Line 1806 of yacc.c  */
     8616#line 2359 "parser.yy"
    84058617    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84068618    break;
    84078619
    8408   case 588:
    8409 
    8410 /* Line 1806 of yacc.c  */
    8411 #line 2251 "parser.yy"
     8620  case 626:
     8621
     8622/* Line 1806 of yacc.c  */
     8623#line 2364 "parser.yy"
     8624    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8625    break;
     8626
     8627  case 627:
     8628
     8629/* Line 1806 of yacc.c  */
     8630#line 2366 "parser.yy"
    84128631    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    84138632    break;
    84148633
    8415   case 589:
    8416 
    8417 /* Line 1806 of yacc.c  */
    8418 #line 2253 "parser.yy"
     8634  case 628:
     8635
     8636/* Line 1806 of yacc.c  */
     8637#line 2368 "parser.yy"
    84198638    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    84208639    break;
    84218640
    8422   case 590:
    8423 
    8424 /* Line 1806 of yacc.c  */
    8425 #line 2255 "parser.yy"
     8641  case 629:
     8642
     8643/* Line 1806 of yacc.c  */
     8644#line 2370 "parser.yy"
    84268645    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84278646    break;
    84288647
    8429   case 594:
    8430 
    8431 /* Line 1806 of yacc.c  */
    8432 #line 2270 "parser.yy"
    8433     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
    8434     break;
    8435 
    8436   case 595:
    8437 
    8438 /* Line 1806 of yacc.c  */
    8439 #line 2272 "parser.yy"
    8440     { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
    8441     break;
    8442 
    8443   case 596:
    8444 
    8445 /* Line 1806 of yacc.c  */
    8446 #line 2274 "parser.yy"
     8648  case 630:
     8649
     8650/* Line 1806 of yacc.c  */
     8651#line 2375 "parser.yy"
     8652    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8653    break;
     8654
     8655  case 631:
     8656
     8657/* Line 1806 of yacc.c  */
     8658#line 2377 "parser.yy"
     8659    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8660    break;
     8661
     8662  case 632:
     8663
     8664/* Line 1806 of yacc.c  */
     8665#line 2379 "parser.yy"
    84478666    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84488667    break;
    84498668
    8450   case 597:
    8451 
    8452 /* Line 1806 of yacc.c  */
    8453 #line 2279 "parser.yy"
    8454     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8455     break;
    8456 
    8457   case 598:
    8458 
    8459 /* Line 1806 of yacc.c  */
    8460 #line 2281 "parser.yy"
    8461     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8462     break;
    8463 
    8464   case 599:
    8465 
    8466 /* Line 1806 of yacc.c  */
    8467 #line 2283 "parser.yy"
    8468     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8469     break;
    8470 
    8471   case 600:
    8472 
    8473 /* Line 1806 of yacc.c  */
    8474 #line 2288 "parser.yy"
    8475     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8476     break;
    8477 
    8478   case 601:
    8479 
    8480 /* Line 1806 of yacc.c  */
    8481 #line 2290 "parser.yy"
    8482     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8483     break;
    8484 
    8485   case 602:
    8486 
    8487 /* Line 1806 of yacc.c  */
    8488 #line 2292 "parser.yy"
    8489     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8490     break;
    8491 
    8492   case 603:
    8493 
    8494 /* Line 1806 of yacc.c  */
    8495 #line 2307 "parser.yy"
     8669  case 633:
     8670
     8671/* Line 1806 of yacc.c  */
     8672#line 2410 "parser.yy"
    84968673    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84978674    break;
    84988675
    8499   case 605:
    8500 
    8501 /* Line 1806 of yacc.c  */
    8502 #line 2310 "parser.yy"
     8676  case 635:
     8677
     8678/* Line 1806 of yacc.c  */
     8679#line 2413 "parser.yy"
    85038680    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    85048681    break;
    85058682
    8506   case 606:
    8507 
    8508 /* Line 1806 of yacc.c  */
    8509 #line 2312 "parser.yy"
     8683  case 636:
     8684
     8685/* Line 1806 of yacc.c  */
     8686#line 2415 "parser.yy"
    85108687    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    85118688    break;
    85128689
    8513   case 608:
    8514 
    8515 /* Line 1806 of yacc.c  */
    8516 #line 2318 "parser.yy"
    8517     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8518     break;
    8519 
    8520   case 609:
    8521 
    8522 /* Line 1806 of yacc.c  */
    8523 #line 2323 "parser.yy"
    8524     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8525     break;
    8526 
    8527   case 610:
    8528 
    8529 /* Line 1806 of yacc.c  */
    8530 #line 2325 "parser.yy"
    8531     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8532     break;
    8533 
    8534   case 611:
    8535 
    8536 /* Line 1806 of yacc.c  */
    8537 #line 2327 "parser.yy"
    8538     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8539     break;
    8540 
    8541   case 612:
    8542 
    8543 /* Line 1806 of yacc.c  */
    8544 #line 2332 "parser.yy"
    8545     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8546     break;
    8547 
    8548   case 613:
    8549 
    8550 /* Line 1806 of yacc.c  */
    8551 #line 2334 "parser.yy"
    8552     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8553     break;
    8554 
    8555   case 614:
    8556 
    8557 /* Line 1806 of yacc.c  */
    8558 #line 2336 "parser.yy"
    8559     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8560     break;
    8561 
    8562   case 615:
    8563 
    8564 /* Line 1806 of yacc.c  */
    8565 #line 2338 "parser.yy"
    8566     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8567     break;
    8568 
    8569   case 616:
    8570 
    8571 /* Line 1806 of yacc.c  */
    8572 #line 2343 "parser.yy"
    8573     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8574     break;
    8575 
    8576   case 617:
    8577 
    8578 /* Line 1806 of yacc.c  */
    8579 #line 2345 "parser.yy"
    8580     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8581     break;
    8582 
    8583   case 618:
    8584 
    8585 /* Line 1806 of yacc.c  */
    8586 #line 2347 "parser.yy"
    8587     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8588     break;
    8589 
    8590   case 619:
    8591 
    8592 /* Line 1806 of yacc.c  */
    8593 #line 2357 "parser.yy"
    8594     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8595     break;
    8596 
    8597   case 621:
    8598 
    8599 /* Line 1806 of yacc.c  */
    8600 #line 2360 "parser.yy"
    8601     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8602     break;
    8603 
    8604   case 622:
    8605 
    8606 /* Line 1806 of yacc.c  */
    8607 #line 2362 "parser.yy"
    8608     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8609     break;
    8610 
    8611   case 623:
    8612 
    8613 /* Line 1806 of yacc.c  */
    8614 #line 2367 "parser.yy"
    8615     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8616     break;
    8617 
    8618   case 624:
    8619 
    8620 /* Line 1806 of yacc.c  */
    8621 #line 2369 "parser.yy"
    8622     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8623     break;
    8624 
    8625   case 625:
    8626 
    8627 /* Line 1806 of yacc.c  */
    8628 #line 2371 "parser.yy"
    8629     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8630     break;
    8631 
    8632   case 626:
    8633 
    8634 /* Line 1806 of yacc.c  */
    8635 #line 2376 "parser.yy"
    8636     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8637     break;
    8638 
    8639   case 627:
    8640 
    8641 /* Line 1806 of yacc.c  */
    8642 #line 2378 "parser.yy"
    8643     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8644     break;
    8645 
    8646   case 628:
    8647 
    8648 /* Line 1806 of yacc.c  */
    8649 #line 2380 "parser.yy"
    8650     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8651     break;
    8652 
    8653   case 629:
    8654 
    8655 /* Line 1806 of yacc.c  */
    8656 #line 2382 "parser.yy"
    8657     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8658     break;
    8659 
    8660   case 630:
    8661 
    8662 /* Line 1806 of yacc.c  */
    8663 #line 2387 "parser.yy"
    8664     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8665     break;
    8666 
    8667   case 631:
    8668 
    8669 /* Line 1806 of yacc.c  */
    8670 #line 2389 "parser.yy"
    8671     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8672     break;
    8673 
    8674   case 632:
    8675 
    8676 /* Line 1806 of yacc.c  */
    8677 #line 2391 "parser.yy"
    8678     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8679     break;
    8680 
    8681   case 633:
    8682 
    8683 /* Line 1806 of yacc.c  */
    8684 #line 2422 "parser.yy"
    8685     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8686     break;
    8687 
    8688   case 635:
    8689 
    8690 /* Line 1806 of yacc.c  */
    8691 #line 2425 "parser.yy"
    8692     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8693     break;
    8694 
    8695   case 636:
    8696 
    8697 /* Line 1806 of yacc.c  */
    8698 #line 2427 "parser.yy"
    8699     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8700     break;
    8701 
    87028690  case 637:
    87038691
    87048692/* Line 1806 of yacc.c  */
    8705 #line 2432 "parser.yy"
     8693#line 2420 "parser.yy"
    87068694    {
    87078695                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    87138701
    87148702/* Line 1806 of yacc.c  */
    8715 #line 2437 "parser.yy"
     8703#line 2425 "parser.yy"
    87168704    {
    87178705                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    87238711
    87248712/* Line 1806 of yacc.c  */
    8725 #line 2445 "parser.yy"
     8713#line 2433 "parser.yy"
    87268714    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    87278715    break;
     
    87308718
    87318719/* Line 1806 of yacc.c  */
    8732 #line 2447 "parser.yy"
     8720#line 2435 "parser.yy"
    87338721    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    87348722    break;
     
    87378725
    87388726/* Line 1806 of yacc.c  */
     8727#line 2437 "parser.yy"
     8728    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8729    break;
     8730
     8731  case 642:
     8732
     8733/* Line 1806 of yacc.c  */
     8734#line 2442 "parser.yy"
     8735    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8736    break;
     8737
     8738  case 643:
     8739
     8740/* Line 1806 of yacc.c  */
     8741#line 2444 "parser.yy"
     8742    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8743    break;
     8744
     8745  case 644:
     8746
     8747/* Line 1806 of yacc.c  */
    87398748#line 2449 "parser.yy"
     8749    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8750    break;
     8751
     8752  case 645:
     8753
     8754/* Line 1806 of yacc.c  */
     8755#line 2451 "parser.yy"
     8756    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8757    break;
     8758
     8759  case 647:
     8760
     8761/* Line 1806 of yacc.c  */
     8762#line 2466 "parser.yy"
     8763    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8764    break;
     8765
     8766  case 648:
     8767
     8768/* Line 1806 of yacc.c  */
     8769#line 2468 "parser.yy"
     8770    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8771    break;
     8772
     8773  case 649:
     8774
     8775/* Line 1806 of yacc.c  */
     8776#line 2473 "parser.yy"
     8777    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     8778    break;
     8779
     8780  case 650:
     8781
     8782/* Line 1806 of yacc.c  */
     8783#line 2475 "parser.yy"
     8784    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     8785    break;
     8786
     8787  case 651:
     8788
     8789/* Line 1806 of yacc.c  */
     8790#line 2477 "parser.yy"
     8791    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8792    break;
     8793
     8794  case 652:
     8795
     8796/* Line 1806 of yacc.c  */
     8797#line 2479 "parser.yy"
     8798    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8799    break;
     8800
     8801  case 653:
     8802
     8803/* Line 1806 of yacc.c  */
     8804#line 2481 "parser.yy"
    87408805    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87418806    break;
    87428807
    8743   case 642:
    8744 
    8745 /* Line 1806 of yacc.c  */
    8746 #line 2454 "parser.yy"
     8808  case 655:
     8809
     8810/* Line 1806 of yacc.c  */
     8811#line 2487 "parser.yy"
     8812    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8813    break;
     8814
     8815  case 656:
     8816
     8817/* Line 1806 of yacc.c  */
     8818#line 2489 "parser.yy"
     8819    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8820    break;
     8821
     8822  case 657:
     8823
     8824/* Line 1806 of yacc.c  */
     8825#line 2491 "parser.yy"
     8826    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8827    break;
     8828
     8829  case 658:
     8830
     8831/* Line 1806 of yacc.c  */
     8832#line 2496 "parser.yy"
     8833    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
     8834    break;
     8835
     8836  case 659:
     8837
     8838/* Line 1806 of yacc.c  */
     8839#line 2498 "parser.yy"
     8840    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8841    break;
     8842
     8843  case 660:
     8844
     8845/* Line 1806 of yacc.c  */
     8846#line 2500 "parser.yy"
     8847    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8848    break;
     8849
     8850  case 661:
     8851
     8852/* Line 1806 of yacc.c  */
     8853#line 2506 "parser.yy"
     8854    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     8855    break;
     8856
     8857  case 662:
     8858
     8859/* Line 1806 of yacc.c  */
     8860#line 2508 "parser.yy"
     8861    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
     8862    break;
     8863
     8864  case 664:
     8865
     8866/* Line 1806 of yacc.c  */
     8867#line 2514 "parser.yy"
     8868    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
     8869    break;
     8870
     8871  case 665:
     8872
     8873/* Line 1806 of yacc.c  */
     8874#line 2516 "parser.yy"
     8875    { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
     8876    break;
     8877
     8878  case 666:
     8879
     8880/* Line 1806 of yacc.c  */
     8881#line 2518 "parser.yy"
     8882    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
     8883    break;
     8884
     8885  case 667:
     8886
     8887/* Line 1806 of yacc.c  */
     8888#line 2520 "parser.yy"
     8889    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
     8890    break;
     8891
     8892  case 669:
     8893
     8894/* Line 1806 of yacc.c  */
     8895#line 2535 "parser.yy"
     8896    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8897    break;
     8898
     8899  case 670:
     8900
     8901/* Line 1806 of yacc.c  */
     8902#line 2537 "parser.yy"
     8903    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8904    break;
     8905
     8906  case 671:
     8907
     8908/* Line 1806 of yacc.c  */
     8909#line 2542 "parser.yy"
     8910    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     8911    break;
     8912
     8913  case 672:
     8914
     8915/* Line 1806 of yacc.c  */
     8916#line 2544 "parser.yy"
     8917    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     8918    break;
     8919
     8920  case 673:
     8921
     8922/* Line 1806 of yacc.c  */
     8923#line 2546 "parser.yy"
     8924    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8925    break;
     8926
     8927  case 674:
     8928
     8929/* Line 1806 of yacc.c  */
     8930#line 2548 "parser.yy"
     8931    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8932    break;
     8933
     8934  case 675:
     8935
     8936/* Line 1806 of yacc.c  */
     8937#line 2550 "parser.yy"
     8938    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8939    break;
     8940
     8941  case 677:
     8942
     8943/* Line 1806 of yacc.c  */
     8944#line 2556 "parser.yy"
     8945    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8946    break;
     8947
     8948  case 678:
     8949
     8950/* Line 1806 of yacc.c  */
     8951#line 2558 "parser.yy"
     8952    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8953    break;
     8954
     8955  case 679:
     8956
     8957/* Line 1806 of yacc.c  */
     8958#line 2560 "parser.yy"
     8959    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8960    break;
     8961
     8962  case 680:
     8963
     8964/* Line 1806 of yacc.c  */
     8965#line 2565 "parser.yy"
     8966    { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
     8967    break;
     8968
     8969  case 681:
     8970
     8971/* Line 1806 of yacc.c  */
     8972#line 2567 "parser.yy"
     8973    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8974    break;
     8975
     8976  case 682:
     8977
     8978/* Line 1806 of yacc.c  */
     8979#line 2569 "parser.yy"
     8980    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8981    break;
     8982
     8983  case 684:
     8984
     8985/* Line 1806 of yacc.c  */
     8986#line 2576 "parser.yy"
    87478987    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    87488988    break;
    87498989
    8750   case 643:
    8751 
    8752 /* Line 1806 of yacc.c  */
    8753 #line 2456 "parser.yy"
     8990  case 686:
     8991
     8992/* Line 1806 of yacc.c  */
     8993#line 2587 "parser.yy"
     8994    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     8995    break;
     8996
     8997  case 687:
     8998
     8999/* Line 1806 of yacc.c  */
     9000#line 2590 "parser.yy"
     9001    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
     9002    break;
     9003
     9004  case 688:
     9005
     9006/* Line 1806 of yacc.c  */
     9007#line 2592 "parser.yy"
     9008    { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
     9009    break;
     9010
     9011  case 689:
     9012
     9013/* Line 1806 of yacc.c  */
     9014#line 2595 "parser.yy"
     9015    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
     9016    break;
     9017
     9018  case 690:
     9019
     9020/* Line 1806 of yacc.c  */
     9021#line 2597 "parser.yy"
     9022    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
     9023    break;
     9024
     9025  case 691:
     9026
     9027/* Line 1806 of yacc.c  */
     9028#line 2599 "parser.yy"
     9029    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
     9030    break;
     9031
     9032  case 693:
     9033
     9034/* Line 1806 of yacc.c  */
     9035#line 2613 "parser.yy"
     9036    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     9037    break;
     9038
     9039  case 694:
     9040
     9041/* Line 1806 of yacc.c  */
     9042#line 2615 "parser.yy"
     9043    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     9044    break;
     9045
     9046  case 695:
     9047
     9048/* Line 1806 of yacc.c  */
     9049#line 2620 "parser.yy"
     9050    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     9051    break;
     9052
     9053  case 696:
     9054
     9055/* Line 1806 of yacc.c  */
     9056#line 2622 "parser.yy"
     9057    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     9058    break;
     9059
     9060  case 697:
     9061
     9062/* Line 1806 of yacc.c  */
     9063#line 2624 "parser.yy"
     9064    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     9065    break;
     9066
     9067  case 698:
     9068
     9069/* Line 1806 of yacc.c  */
     9070#line 2626 "parser.yy"
     9071    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     9072    break;
     9073
     9074  case 699:
     9075
     9076/* Line 1806 of yacc.c  */
     9077#line 2628 "parser.yy"
     9078    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     9079    break;
     9080
     9081  case 701:
     9082
     9083/* Line 1806 of yacc.c  */
     9084#line 2634 "parser.yy"
    87549085    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    87559086    break;
    87569087
    8757   case 644:
    8758 
    8759 /* Line 1806 of yacc.c  */
    8760 #line 2461 "parser.yy"
    8761     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8762     break;
    8763 
    8764   case 645:
    8765 
    8766 /* Line 1806 of yacc.c  */
    8767 #line 2463 "parser.yy"
     9088  case 702:
     9089
     9090/* Line 1806 of yacc.c  */
     9091#line 2636 "parser.yy"
     9092    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     9093    break;
     9094
     9095  case 703:
     9096
     9097/* Line 1806 of yacc.c  */
     9098#line 2638 "parser.yy"
     9099    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     9100    break;
     9101
     9102  case 704:
     9103
     9104/* Line 1806 of yacc.c  */
     9105#line 2643 "parser.yy"
    87689106    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    87699107    break;
    87709108
    8771   case 647:
    8772 
    8773 /* Line 1806 of yacc.c  */
    8774 #line 2478 "parser.yy"
    8775     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8776     break;
    8777 
    8778   case 648:
    8779 
    8780 /* Line 1806 of yacc.c  */
    8781 #line 2480 "parser.yy"
    8782     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8783     break;
    8784 
    8785   case 649:
    8786 
    8787 /* Line 1806 of yacc.c  */
    8788 #line 2485 "parser.yy"
    8789     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    8790     break;
    8791 
    8792   case 650:
    8793 
    8794 /* Line 1806 of yacc.c  */
    8795 #line 2487 "parser.yy"
    8796     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    8797     break;
    8798 
    8799   case 651:
    8800 
    8801 /* Line 1806 of yacc.c  */
    8802 #line 2489 "parser.yy"
    8803     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8804     break;
    8805 
    8806   case 652:
    8807 
    8808 /* Line 1806 of yacc.c  */
    8809 #line 2491 "parser.yy"
    8810     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8811     break;
    8812 
    8813   case 653:
    8814 
    8815 /* Line 1806 of yacc.c  */
    8816 #line 2493 "parser.yy"
     9109  case 705:
     9110
     9111/* Line 1806 of yacc.c  */
     9112#line 2645 "parser.yy"
    88179113    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    88189114    break;
    88199115
    8820   case 655:
    8821 
    8822 /* Line 1806 of yacc.c  */
    8823 #line 2499 "parser.yy"
    8824     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8825     break;
    8826 
    8827   case 656:
    8828 
    8829 /* Line 1806 of yacc.c  */
    8830 #line 2501 "parser.yy"
    8831     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8832     break;
    8833 
    8834   case 657:
    8835 
    8836 /* Line 1806 of yacc.c  */
    8837 #line 2503 "parser.yy"
    8838     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8839     break;
    8840 
    8841   case 658:
    8842 
    8843 /* Line 1806 of yacc.c  */
    8844 #line 2508 "parser.yy"
    8845     { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    8846     break;
    8847 
    8848   case 659:
    8849 
    8850 /* Line 1806 of yacc.c  */
    8851 #line 2510 "parser.yy"
    8852     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8853     break;
    8854 
    8855   case 660:
    8856 
    8857 /* Line 1806 of yacc.c  */
    8858 #line 2512 "parser.yy"
    8859     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8860     break;
    8861 
    8862   case 661:
    8863 
    8864 /* Line 1806 of yacc.c  */
    8865 #line 2518 "parser.yy"
    8866     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    8867     break;
    8868 
    8869   case 662:
    8870 
    8871 /* Line 1806 of yacc.c  */
    8872 #line 2520 "parser.yy"
    8873     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
    8874     break;
    8875 
    8876   case 664:
    8877 
    8878 /* Line 1806 of yacc.c  */
    8879 #line 2526 "parser.yy"
    8880     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
    8881     break;
    8882 
    8883   case 665:
    8884 
    8885 /* Line 1806 of yacc.c  */
    8886 #line 2528 "parser.yy"
    8887     { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
    8888     break;
    8889 
    8890   case 666:
    8891 
    8892 /* Line 1806 of yacc.c  */
    8893 #line 2530 "parser.yy"
    8894     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
    8895     break;
    8896 
    8897   case 667:
    8898 
    8899 /* Line 1806 of yacc.c  */
    8900 #line 2532 "parser.yy"
    8901     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
    8902     break;
    8903 
    8904   case 669:
    8905 
    8906 /* Line 1806 of yacc.c  */
    8907 #line 2547 "parser.yy"
    8908     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8909     break;
    8910 
    8911   case 670:
    8912 
    8913 /* Line 1806 of yacc.c  */
    8914 #line 2549 "parser.yy"
    8915     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8916     break;
    8917 
    8918   case 671:
    8919 
    8920 /* Line 1806 of yacc.c  */
    8921 #line 2554 "parser.yy"
    8922     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    8923     break;
    8924 
    8925   case 672:
    8926 
    8927 /* Line 1806 of yacc.c  */
    8928 #line 2556 "parser.yy"
    8929     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    8930     break;
    8931 
    8932   case 673:
    8933 
    8934 /* Line 1806 of yacc.c  */
    8935 #line 2558 "parser.yy"
    8936     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8937     break;
    8938 
    8939   case 674:
    8940 
    8941 /* Line 1806 of yacc.c  */
    8942 #line 2560 "parser.yy"
    8943     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8944     break;
    8945 
    8946   case 675:
    8947 
    8948 /* Line 1806 of yacc.c  */
    8949 #line 2562 "parser.yy"
    8950     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8951     break;
    8952 
    8953   case 677:
    8954 
    8955 /* Line 1806 of yacc.c  */
    8956 #line 2568 "parser.yy"
    8957     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8958     break;
    8959 
    8960   case 678:
    8961 
    8962 /* Line 1806 of yacc.c  */
    8963 #line 2570 "parser.yy"
    8964     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8965     break;
    8966 
    8967   case 679:
    8968 
    8969 /* Line 1806 of yacc.c  */
    8970 #line 2572 "parser.yy"
    8971     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8972     break;
    8973 
    8974   case 680:
    8975 
    8976 /* Line 1806 of yacc.c  */
    8977 #line 2577 "parser.yy"
    8978     { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
    8979     break;
    8980 
    8981   case 681:
    8982 
    8983 /* Line 1806 of yacc.c  */
    8984 #line 2579 "parser.yy"
    8985     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8986     break;
    8987 
    8988   case 682:
    8989 
    8990 /* Line 1806 of yacc.c  */
    8991 #line 2581 "parser.yy"
    8992     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8993     break;
    8994 
    8995   case 684:
    8996 
    8997 /* Line 1806 of yacc.c  */
    8998 #line 2588 "parser.yy"
    8999     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    9000     break;
    9001 
    9002   case 686:
    9003 
    9004 /* Line 1806 of yacc.c  */
    9005 #line 2599 "parser.yy"
    9006     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    9007     break;
    9008 
    9009   case 687:
    9010 
    9011 /* Line 1806 of yacc.c  */
    9012 #line 2602 "parser.yy"
     9116  case 708:
     9117
     9118/* Line 1806 of yacc.c  */
     9119#line 2655 "parser.yy"
     9120    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     9121    break;
     9122
     9123  case 711:
     9124
     9125/* Line 1806 of yacc.c  */
     9126#line 2665 "parser.yy"
     9127    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     9128    break;
     9129
     9130  case 712:
     9131
     9132/* Line 1806 of yacc.c  */
     9133#line 2667 "parser.yy"
     9134    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     9135    break;
     9136
     9137  case 713:
     9138
     9139/* Line 1806 of yacc.c  */
     9140#line 2669 "parser.yy"
     9141    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     9142    break;
     9143
     9144  case 714:
     9145
     9146/* Line 1806 of yacc.c  */
     9147#line 2671 "parser.yy"
     9148    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     9149    break;
     9150
     9151  case 715:
     9152
     9153/* Line 1806 of yacc.c  */
     9154#line 2673 "parser.yy"
     9155    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     9156    break;
     9157
     9158  case 716:
     9159
     9160/* Line 1806 of yacc.c  */
     9161#line 2675 "parser.yy"
     9162    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     9163    break;
     9164
     9165  case 717:
     9166
     9167/* Line 1806 of yacc.c  */
     9168#line 2682 "parser.yy"
     9169    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     9170    break;
     9171
     9172  case 718:
     9173
     9174/* Line 1806 of yacc.c  */
     9175#line 2684 "parser.yy"
     9176    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     9177    break;
     9178
     9179  case 719:
     9180
     9181/* Line 1806 of yacc.c  */
     9182#line 2686 "parser.yy"
     9183    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     9184    break;
     9185
     9186  case 720:
     9187
     9188/* Line 1806 of yacc.c  */
     9189#line 2688 "parser.yy"
     9190    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     9191    break;
     9192
     9193  case 721:
     9194
     9195/* Line 1806 of yacc.c  */
     9196#line 2690 "parser.yy"
     9197    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     9198    break;
     9199
     9200  case 722:
     9201
     9202/* Line 1806 of yacc.c  */
     9203#line 2692 "parser.yy"
     9204    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     9205    break;
     9206
     9207  case 723:
     9208
     9209/* Line 1806 of yacc.c  */
     9210#line 2694 "parser.yy"
     9211    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     9212    break;
     9213
     9214  case 724:
     9215
     9216/* Line 1806 of yacc.c  */
     9217#line 2696 "parser.yy"
     9218    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     9219    break;
     9220
     9221  case 725:
     9222
     9223/* Line 1806 of yacc.c  */
     9224#line 2698 "parser.yy"
     9225    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     9226    break;
     9227
     9228  case 726:
     9229
     9230/* Line 1806 of yacc.c  */
     9231#line 2700 "parser.yy"
     9232    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     9233    break;
     9234
     9235  case 727:
     9236
     9237/* Line 1806 of yacc.c  */
     9238#line 2705 "parser.yy"
    90139239    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    90149240    break;
    90159241
    9016   case 688:
    9017 
    9018 /* Line 1806 of yacc.c  */
    9019 #line 2604 "parser.yy"
    9020     { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
    9021     break;
    9022 
    9023   case 689:
    9024 
    9025 /* Line 1806 of yacc.c  */
    9026 #line 2607 "parser.yy"
     9242  case 728:
     9243
     9244/* Line 1806 of yacc.c  */
     9245#line 2707 "parser.yy"
    90279246    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    90289247    break;
    90299248
    9030   case 690:
    9031 
    9032 /* Line 1806 of yacc.c  */
    9033 #line 2609 "parser.yy"
    9034     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
    9035     break;
    9036 
    9037   case 691:
    9038 
    9039 /* Line 1806 of yacc.c  */
    9040 #line 2611 "parser.yy"
    9041     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
    9042     break;
    9043 
    9044   case 693:
    9045 
    9046 /* Line 1806 of yacc.c  */
    9047 #line 2625 "parser.yy"
    9048     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    9049     break;
    9050 
    9051   case 694:
    9052 
    9053 /* Line 1806 of yacc.c  */
    9054 #line 2627 "parser.yy"
    9055     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    9056     break;
    9057 
    9058   case 695:
    9059 
    9060 /* Line 1806 of yacc.c  */
    9061 #line 2632 "parser.yy"
    9062     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    9063     break;
    9064 
    9065   case 696:
    9066 
    9067 /* Line 1806 of yacc.c  */
    9068 #line 2634 "parser.yy"
    9069     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    9070     break;
    9071 
    9072   case 697:
    9073 
    9074 /* Line 1806 of yacc.c  */
    9075 #line 2636 "parser.yy"
    9076     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    9077     break;
    9078 
    9079   case 698:
    9080 
    9081 /* Line 1806 of yacc.c  */
    9082 #line 2638 "parser.yy"
    9083     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    9084     break;
    9085 
    9086   case 699:
    9087 
    9088 /* Line 1806 of yacc.c  */
    9089 #line 2640 "parser.yy"
    9090     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    9091     break;
    9092 
    9093   case 701:
    9094 
    9095 /* Line 1806 of yacc.c  */
    9096 #line 2646 "parser.yy"
    9097     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    9098     break;
    9099 
    9100   case 702:
    9101 
    9102 /* Line 1806 of yacc.c  */
    9103 #line 2648 "parser.yy"
    9104     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    9105     break;
    9106 
    9107   case 703:
    9108 
    9109 /* Line 1806 of yacc.c  */
    9110 #line 2650 "parser.yy"
    9111     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    9112     break;
    9113 
    9114   case 704:
    9115 
    9116 /* Line 1806 of yacc.c  */
    9117 #line 2655 "parser.yy"
    9118     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    9119     break;
    9120 
    9121   case 705:
    9122 
    9123 /* Line 1806 of yacc.c  */
    9124 #line 2657 "parser.yy"
    9125     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    9126     break;
    9127 
    9128   case 708:
    9129 
    9130 /* Line 1806 of yacc.c  */
    9131 #line 2667 "parser.yy"
     9249  case 729:
     9250
     9251/* Line 1806 of yacc.c  */
     9252#line 2712 "parser.yy"
     9253    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
     9254    break;
     9255
     9256  case 730:
     9257
     9258/* Line 1806 of yacc.c  */
     9259#line 2714 "parser.yy"
     9260    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
     9261    break;
     9262
     9263  case 732:
     9264
     9265/* Line 1806 of yacc.c  */
     9266#line 2741 "parser.yy"
    91329267    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    91339268    break;
    91349269
    9135   case 711:
    9136 
    9137 /* Line 1806 of yacc.c  */
    9138 #line 2677 "parser.yy"
     9270  case 736:
     9271
     9272/* Line 1806 of yacc.c  */
     9273#line 2752 "parser.yy"
    91399274    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    91409275    break;
    91419276
    9142   case 712:
    9143 
    9144 /* Line 1806 of yacc.c  */
    9145 #line 2679 "parser.yy"
     9277  case 737:
     9278
     9279/* Line 1806 of yacc.c  */
     9280#line 2754 "parser.yy"
    91469281    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    91479282    break;
    91489283
    9149   case 713:
    9150 
    9151 /* Line 1806 of yacc.c  */
    9152 #line 2681 "parser.yy"
     9284  case 738:
     9285
     9286/* Line 1806 of yacc.c  */
     9287#line 2756 "parser.yy"
    91539288    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    91549289    break;
    91559290
    9156   case 714:
    9157 
    9158 /* Line 1806 of yacc.c  */
    9159 #line 2683 "parser.yy"
     9291  case 739:
     9292
     9293/* Line 1806 of yacc.c  */
     9294#line 2758 "parser.yy"
    91609295    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    91619296    break;
    91629297
    9163   case 715:
    9164 
    9165 /* Line 1806 of yacc.c  */
    9166 #line 2685 "parser.yy"
     9298  case 740:
     9299
     9300/* Line 1806 of yacc.c  */
     9301#line 2760 "parser.yy"
    91679302    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    91689303    break;
    91699304
    9170   case 716:
    9171 
    9172 /* Line 1806 of yacc.c  */
    9173 #line 2687 "parser.yy"
     9305  case 741:
     9306
     9307/* Line 1806 of yacc.c  */
     9308#line 2762 "parser.yy"
    91749309    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    91759310    break;
    91769311
    9177   case 717:
    9178 
    9179 /* Line 1806 of yacc.c  */
    9180 #line 2694 "parser.yy"
     9312  case 742:
     9313
     9314/* Line 1806 of yacc.c  */
     9315#line 2769 "parser.yy"
    91819316    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    91829317    break;
    91839318
    9184   case 718:
    9185 
    9186 /* Line 1806 of yacc.c  */
    9187 #line 2696 "parser.yy"
     9319  case 743:
     9320
     9321/* Line 1806 of yacc.c  */
     9322#line 2771 "parser.yy"
     9323    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     9324    break;
     9325
     9326  case 744:
     9327
     9328/* Line 1806 of yacc.c  */
     9329#line 2773 "parser.yy"
    91889330    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    91899331    break;
    91909332
    9191   case 719:
    9192 
    9193 /* Line 1806 of yacc.c  */
    9194 #line 2698 "parser.yy"
     9333  case 745:
     9334
     9335/* Line 1806 of yacc.c  */
     9336#line 2775 "parser.yy"
     9337    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     9338    break;
     9339
     9340  case 746:
     9341
     9342/* Line 1806 of yacc.c  */
     9343#line 2777 "parser.yy"
    91959344    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    91969345    break;
    91979346
    9198   case 720:
    9199 
    9200 /* Line 1806 of yacc.c  */
    9201 #line 2700 "parser.yy"
    9202     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    9203     break;
    9204 
    9205   case 721:
    9206 
    9207 /* Line 1806 of yacc.c  */
    9208 #line 2702 "parser.yy"
     9347  case 747:
     9348
     9349/* Line 1806 of yacc.c  */
     9350#line 2779 "parser.yy"
    92099351    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    92109352    break;
    92119353
    9212   case 722:
    9213 
    9214 /* Line 1806 of yacc.c  */
    9215 #line 2704 "parser.yy"
    9216     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    9217     break;
    9218 
    9219   case 723:
    9220 
    9221 /* Line 1806 of yacc.c  */
    9222 #line 2706 "parser.yy"
    9223     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    9224     break;
    9225 
    9226   case 724:
    9227 
    9228 /* Line 1806 of yacc.c  */
    9229 #line 2708 "parser.yy"
    9230     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    9231     break;
    9232 
    9233   case 725:
    9234 
    9235 /* Line 1806 of yacc.c  */
    9236 #line 2710 "parser.yy"
    9237     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    9238     break;
    9239 
    9240   case 726:
    9241 
    9242 /* Line 1806 of yacc.c  */
    9243 #line 2712 "parser.yy"
    9244     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    9245     break;
    9246 
    9247   case 727:
    9248 
    9249 /* Line 1806 of yacc.c  */
    9250 #line 2717 "parser.yy"
    9251     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    9252     break;
    9253 
    9254   case 728:
    9255 
    9256 /* Line 1806 of yacc.c  */
    9257 #line 2719 "parser.yy"
    9258     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    9259     break;
    9260 
    9261   case 729:
    9262 
    9263 /* Line 1806 of yacc.c  */
    9264 #line 2724 "parser.yy"
    9265     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
    9266     break;
    9267 
    9268   case 730:
    9269 
    9270 /* Line 1806 of yacc.c  */
    9271 #line 2726 "parser.yy"
    9272     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
    9273     break;
    9274 
    9275   case 732:
    9276 
    9277 /* Line 1806 of yacc.c  */
    9278 #line 2753 "parser.yy"
    9279     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    9280     break;
    9281 
    9282   case 736:
    9283 
    9284 /* Line 1806 of yacc.c  */
    9285 #line 2764 "parser.yy"
    9286     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    9287     break;
    9288 
    9289   case 737:
    9290 
    9291 /* Line 1806 of yacc.c  */
    9292 #line 2766 "parser.yy"
    9293     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    9294     break;
    9295 
    9296   case 738:
    9297 
    9298 /* Line 1806 of yacc.c  */
    9299 #line 2768 "parser.yy"
    9300     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    9301     break;
    9302 
    9303   case 739:
    9304 
    9305 /* Line 1806 of yacc.c  */
    9306 #line 2770 "parser.yy"
    9307     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    9308     break;
    9309 
    9310   case 740:
    9311 
    9312 /* Line 1806 of yacc.c  */
    9313 #line 2772 "parser.yy"
    9314     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    9315     break;
    9316 
    9317   case 741:
    9318 
    9319 /* Line 1806 of yacc.c  */
    9320 #line 2774 "parser.yy"
    9321     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    9322     break;
    9323 
    9324   case 742:
    9325 
    9326 /* Line 1806 of yacc.c  */
    9327 #line 2781 "parser.yy"
    9328     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    9329     break;
    9330 
    9331   case 743:
    9332 
    9333 /* Line 1806 of yacc.c  */
    9334 #line 2783 "parser.yy"
    9335     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    9336     break;
    9337 
    9338   case 744:
    9339 
    9340 /* Line 1806 of yacc.c  */
    9341 #line 2785 "parser.yy"
    9342     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    9343     break;
    9344 
    9345   case 745:
    9346 
    9347 /* Line 1806 of yacc.c  */
    9348 #line 2787 "parser.yy"
    9349     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    9350     break;
    9351 
    9352   case 746:
     9354  case 748:
     9355
     9356/* Line 1806 of yacc.c  */
     9357#line 2784 "parser.yy"
     9358    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
     9359    break;
     9360
     9361  case 749:
    93539362
    93549363/* Line 1806 of yacc.c  */
    93559364#line 2789 "parser.yy"
    9356     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    9357     break;
    9358 
    9359   case 747:
     9365    { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); }
     9366    break;
     9367
     9368  case 750:
    93609369
    93619370/* Line 1806 of yacc.c  */
    93629371#line 2791 "parser.yy"
    9363     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    9364     break;
    9365 
    9366   case 748:
    9367 
    9368 /* Line 1806 of yacc.c  */
    9369 #line 2796 "parser.yy"
    9370     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    9371     break;
    9372 
    9373   case 749:
    9374 
    9375 /* Line 1806 of yacc.c  */
    9376 #line 2801 "parser.yy"
    9377     { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); }
    9378     break;
    9379 
    9380   case 750:
    9381 
    9382 /* Line 1806 of yacc.c  */
    9383 #line 2803 "parser.yy"
    93849372    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    93859373    break;
     
    93889376
    93899377/* Line 1806 of yacc.c  */
    9390 #line 2805 "parser.yy"
     9378#line 2793 "parser.yy"
    93919379    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
    93929380    break;
     
    93959383
    93969384/* Line 1806 of yacc.c  */
    9397 #line 2829 "parser.yy"
     9385#line 2817 "parser.yy"
    93989386    { (yyval.en) = 0; }
    93999387    break;
     
    94029390
    94039391/* Line 1806 of yacc.c  */
    9404 #line 2831 "parser.yy"
     9392#line 2819 "parser.yy"
    94059393    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    94069394    break;
     
    94099397
    94109398/* Line 1806 of yacc.c  */
    9411 #line 9412 "Parser/parser.cc"
     9399#line 9400 "Parser/parser.cc"
    94129400      default: break;
    94139401    }
     
    96409628
    96419629/* Line 2067 of yacc.c  */
    9642 #line 2834 "parser.yy"
     9630#line 2822 "parser.yy"
    96439631
    96449632// ----end of grammar----
Note: See TracChangeset for help on using the changeset viewer.