From db6f0342cc4f68ec15725c0c6002595e9c154e68 Mon Sep 17 00:00:00 2001 From: rdb Date: Thu, 24 Dec 2015 14:25:30 +0100 Subject: [PATCH] Add properties with has/clear (interrogatedb v3.1) --- dtool/src/cppparser/cppBison.cxx.prebuilt | 6597 +++++++++-------- dtool/src/cppparser/cppBison.h.prebuilt | 146 +- dtool/src/cppparser/cppBison.yxx | 56 + dtool/src/cppparser/cppMakeProperty.cxx | 50 +- dtool/src/cppparser/cppMakeProperty.h | 11 +- dtool/src/cppparser/cppPreprocessor.cxx | 1 + dtool/src/dtoolbase/dtoolbase.h | 2 + dtool/src/interrogate/interfaceMaker.cxx | 4 +- dtool/src/interrogate/interfaceMaker.h | 2 + .../interfaceMakerPythonNative.cxx | 112 +- .../interrogate/interfaceMakerPythonNative.h | 1 + dtool/src/interrogate/interrogateBuilder.cxx | 58 +- .../src/interrogatedb/interrogateDatabase.cxx | 2 +- dtool/src/interrogatedb/interrogateElement.I | 44 + .../src/interrogatedb/interrogateElement.cxx | 7 +- dtool/src/interrogatedb/interrogateElement.h | 10 +- panda/src/display/graphicsStateGuardian.cxx | 2 +- panda/src/display/graphicsStateGuardian.h | 2 +- panda/src/display/windowProperties.h | 25 + panda/src/express/patchfile.h | 5 + 20 files changed, 3790 insertions(+), 3347 deletions(-) diff --git a/dtool/src/cppparser/cppBison.cxx.prebuilt b/dtool/src/cppparser/cppBison.cxx.prebuilt index 178412beb0..cd2465951c 100644 --- a/dtool/src/cppparser/cppBison.cxx.prebuilt +++ b/dtool/src/cppparser/cppBison.cxx.prebuilt @@ -380,42 +380,43 @@ extern int cppyydebug; KW_LONG = 333, KW_LONGLONG = 334, KW_MAKE_PROPERTY = 335, - KW_MAKE_SEQ = 336, - KW_MUTABLE = 337, - KW_NAMESPACE = 338, - KW_NEW = 339, - KW_NOEXCEPT = 340, - KW_NULLPTR = 341, - KW_OPERATOR = 342, - KW_PRIVATE = 343, - KW_PROTECTED = 344, - KW_PUBLIC = 345, - KW_REGISTER = 346, - KW_RETURN = 347, - KW_SHORT = 348, - KW_SIGNED = 349, - KW_SIZEOF = 350, - KW_STATIC = 351, - KW_STATIC_ASSERT = 352, - KW_STATIC_CAST = 353, - KW_STRUCT = 354, - KW_TEMPLATE = 355, - KW_THROW = 356, - KW_TRUE = 357, - KW_TRY = 358, - KW_TYPEDEF = 359, - KW_TYPENAME = 360, - KW_UNION = 361, - KW_UNSIGNED = 362, - KW_USING = 363, - KW_VIRTUAL = 364, - KW_VOID = 365, - KW_VOLATILE = 366, - KW_WCHAR_T = 367, - KW_WHILE = 368, - START_CPP = 369, - START_CONST_EXPR = 370, - START_TYPE = 371 + KW_MAKE_PROPERTY2 = 336, + KW_MAKE_SEQ = 337, + KW_MUTABLE = 338, + KW_NAMESPACE = 339, + KW_NEW = 340, + KW_NOEXCEPT = 341, + KW_NULLPTR = 342, + KW_OPERATOR = 343, + KW_PRIVATE = 344, + KW_PROTECTED = 345, + KW_PUBLIC = 346, + KW_REGISTER = 347, + KW_RETURN = 348, + KW_SHORT = 349, + KW_SIGNED = 350, + KW_SIZEOF = 351, + KW_STATIC = 352, + KW_STATIC_ASSERT = 353, + KW_STATIC_CAST = 354, + KW_STRUCT = 355, + KW_TEMPLATE = 356, + KW_THROW = 357, + KW_TRUE = 358, + KW_TRY = 359, + KW_TYPEDEF = 360, + KW_TYPENAME = 361, + KW_UNION = 362, + KW_UNSIGNED = 363, + KW_USING = 364, + KW_VIRTUAL = 365, + KW_VOID = 366, + KW_VOLATILE = 367, + KW_WCHAR_T = 368, + KW_WHILE = 369, + START_CPP = 370, + START_CONST_EXPR = 371, + START_TYPE = 372 }; #endif /* Tokens. */ @@ -497,42 +498,43 @@ extern int cppyydebug; #define KW_LONG 333 #define KW_LONGLONG 334 #define KW_MAKE_PROPERTY 335 -#define KW_MAKE_SEQ 336 -#define KW_MUTABLE 337 -#define KW_NAMESPACE 338 -#define KW_NEW 339 -#define KW_NOEXCEPT 340 -#define KW_NULLPTR 341 -#define KW_OPERATOR 342 -#define KW_PRIVATE 343 -#define KW_PROTECTED 344 -#define KW_PUBLIC 345 -#define KW_REGISTER 346 -#define KW_RETURN 347 -#define KW_SHORT 348 -#define KW_SIGNED 349 -#define KW_SIZEOF 350 -#define KW_STATIC 351 -#define KW_STATIC_ASSERT 352 -#define KW_STATIC_CAST 353 -#define KW_STRUCT 354 -#define KW_TEMPLATE 355 -#define KW_THROW 356 -#define KW_TRUE 357 -#define KW_TRY 358 -#define KW_TYPEDEF 359 -#define KW_TYPENAME 360 -#define KW_UNION 361 -#define KW_UNSIGNED 362 -#define KW_USING 363 -#define KW_VIRTUAL 364 -#define KW_VOID 365 -#define KW_VOLATILE 366 -#define KW_WCHAR_T 367 -#define KW_WHILE 368 -#define START_CPP 369 -#define START_CONST_EXPR 370 -#define START_TYPE 371 +#define KW_MAKE_PROPERTY2 336 +#define KW_MAKE_SEQ 337 +#define KW_MUTABLE 338 +#define KW_NAMESPACE 339 +#define KW_NEW 340 +#define KW_NOEXCEPT 341 +#define KW_NULLPTR 342 +#define KW_OPERATOR 343 +#define KW_PRIVATE 344 +#define KW_PROTECTED 345 +#define KW_PUBLIC 346 +#define KW_REGISTER 347 +#define KW_RETURN 348 +#define KW_SHORT 349 +#define KW_SIGNED 350 +#define KW_SIZEOF 351 +#define KW_STATIC 352 +#define KW_STATIC_ASSERT 353 +#define KW_STATIC_CAST 354 +#define KW_STRUCT 355 +#define KW_TEMPLATE 356 +#define KW_THROW 357 +#define KW_TRUE 358 +#define KW_TRY 359 +#define KW_TYPEDEF 360 +#define KW_TYPENAME 361 +#define KW_UNION 362 +#define KW_UNSIGNED 363 +#define KW_USING 364 +#define KW_VIRTUAL 365 +#define KW_VOID 366 +#define KW_VOLATILE 367 +#define KW_WCHAR_T 368 +#define KW_WHILE 369 +#define START_CPP 370 +#define START_CONST_EXPR 371 +#define START_TYPE 372 @@ -575,7 +577,7 @@ int cppyyparse (); /* Copy the second part of user declarations. */ /* Line 390 of yacc.c */ -#line 579 "built/tmp/cppBison.yxx.c" +#line 581 "built/tmp/cppBison.yxx.c" #ifdef short # undef short @@ -797,20 +799,20 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 79 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 4517 +#define YYLAST 4680 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 141 +#define YYNTOKENS 142 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 95 /* YYNRULES -- Number of rules. */ -#define YYNRULES 589 +#define YYNRULES 591 /* YYNRULES -- Number of states. */ -#define YYNSTATES 1082 +#define YYNSTATES 1097 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 371 +#define YYMAXUTOK 372 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -821,16 +823,16 @@ static const yytype_uint8 yytranslate[] = 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 139, 2, 2, 2, 132, 125, 2, - 135, 137, 130, 128, 118, 129, 134, 131, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 120, 119, - 126, 121, 127, 122, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 140, 2, 2, 2, 133, 126, 2, + 136, 138, 131, 129, 119, 130, 135, 132, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 121, 120, + 127, 122, 128, 123, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 136, 2, 140, 124, 2, 2, 2, 2, 2, + 2, 137, 2, 141, 125, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 117, 123, 138, 133, 2, 2, 2, + 2, 2, 2, 118, 124, 139, 134, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -855,7 +857,7 @@ static const yytype_uint8 yytranslate[] = 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116 + 115, 116, 117 }; #if YYDEBUG @@ -866,36 +868,35 @@ static const yytype_uint16 yyprhs[] = 0, 0, 3, 6, 9, 12, 14, 17, 20, 22, 26, 31, 32, 38, 40, 42, 44, 46, 48, 50, 53, 55, 57, 60, 63, 66, 69, 77, 87, 97, - 104, 109, 110, 114, 116, 119, 123, 126, 129, 132, - 135, 138, 141, 144, 147, 150, 153, 155, 159, 163, - 164, 169, 170, 176, 179, 184, 187, 192, 193, 198, - 199, 205, 209, 212, 217, 220, 225, 226, 233, 234, - 241, 242, 250, 251, 262, 263, 275, 276, 285, 286, - 296, 298, 300, 302, 305, 310, 316, 318, 320, 322, - 324, 326, 328, 330, 332, 334, 336, 338, 340, 342, + 111, 121, 128, 133, 134, 138, 140, 143, 147, 150, + 153, 156, 159, 162, 165, 168, 171, 174, 177, 179, + 183, 187, 188, 193, 194, 200, 203, 208, 211, 216, + 217, 222, 223, 229, 233, 236, 241, 244, 249, 250, + 257, 258, 265, 266, 274, 275, 286, 287, 299, 300, + 309, 310, 320, 322, 324, 326, 329, 334, 340, 342, 344, 346, 348, 350, 352, 354, 356, 358, 360, 362, 364, 366, 368, 370, 372, 374, 376, 378, 380, 382, - 384, 386, 389, 392, 394, 396, 398, 400, 401, 408, - 411, 413, 415, 417, 421, 424, 429, 432, 437, 441, - 446, 448, 450, 452, 454, 457, 461, 464, 467, 470, - 473, 476, 480, 485, 489, 493, 494, 501, 503, 505, - 507, 511, 514, 516, 520, 522, 525, 527, 530, 532, - 536, 542, 546, 551, 553, 555, 558, 560, 564, 568, - 574, 578, 583, 589, 592, 594, 596, 598, 600, 603, - 606, 609, 612, 615, 619, 624, 626, 628, 630, 633, - 636, 639, 642, 645, 649, 654, 662, 666, 668, 671, - 674, 677, 680, 683, 687, 692, 700, 702, 704, 707, - 709, 711, 713, 716, 721, 726, 728, 730, 732, 735, - 737, 739, 741, 744, 749, 752, 757, 759, 761, 763, - 766, 769, 772, 774, 776, 779, 783, 784, 790, 791, - 799, 801, 803, 806, 810, 813, 816, 819, 823, 827, - 831, 835, 839, 843, 848, 853, 856, 860, 862, 864, - 866, 868, 872, 878, 880, 883, 888, 890, 892, 894, - 896, 897, 904, 905, 913, 918, 924, 927, 931, 933, - 935, 937, 939, 941, 943, 945, 947, 949, 951, 953, - 955, 957, 959, 962, 965, 968, 971, 973, 976, 978, - 982, 985, 987, 988, 991, 993, 996, 998, 1000, 1002, - 1004, 1006, 1008, 1010, 1012, 1014, 1016, 1018, 1020, 1022, + 384, 386, 388, 390, 392, 394, 396, 398, 400, 402, + 404, 406, 408, 410, 413, 416, 418, 420, 422, 424, + 425, 432, 435, 437, 439, 441, 445, 448, 453, 456, + 461, 465, 470, 472, 474, 476, 478, 481, 485, 488, + 491, 494, 497, 500, 504, 509, 513, 517, 518, 525, + 527, 529, 531, 535, 538, 540, 544, 546, 549, 551, + 554, 556, 560, 566, 570, 575, 577, 579, 582, 584, + 588, 592, 598, 602, 607, 613, 616, 618, 620, 622, + 624, 627, 630, 633, 636, 639, 643, 648, 650, 652, + 654, 657, 660, 663, 666, 669, 673, 678, 686, 690, + 692, 695, 698, 701, 704, 707, 711, 716, 724, 726, + 728, 731, 733, 735, 737, 740, 745, 750, 752, 754, + 756, 759, 761, 763, 765, 768, 773, 776, 781, 783, + 785, 787, 790, 793, 796, 798, 800, 803, 807, 808, + 814, 815, 823, 825, 827, 830, 834, 837, 840, 843, + 847, 851, 855, 859, 863, 867, 872, 877, 880, 884, + 886, 888, 890, 892, 896, 902, 904, 907, 912, 914, + 916, 918, 920, 921, 928, 929, 937, 942, 948, 951, + 955, 957, 959, 961, 963, 965, 967, 969, 971, 973, + 975, 977, 979, 981, 983, 986, 989, 992, 995, 997, + 1000, 1002, 1006, 1009, 1011, 1012, 1015, 1017, 1020, 1022, 1024, 1026, 1028, 1030, 1032, 1034, 1036, 1038, 1040, 1042, 1044, 1046, 1048, 1050, 1052, 1054, 1056, 1058, 1060, 1062, 1064, 1066, 1068, 1070, 1072, 1074, 1076, 1078, 1080, 1082, @@ -906,275 +907,280 @@ static const yytype_uint16 yyprhs[] = 1164, 1166, 1168, 1170, 1172, 1174, 1176, 1178, 1180, 1182, 1184, 1186, 1188, 1190, 1192, 1194, 1196, 1198, 1200, 1202, 1204, 1206, 1208, 1210, 1212, 1214, 1216, 1218, 1220, 1222, - 1224, 1226, 1228, 1230, 1234, 1236, 1238, 1240, 1242, 1244, - 1248, 1250, 1255, 1263, 1271, 1276, 1281, 1284, 1287, 1290, - 1293, 1296, 1300, 1304, 1308, 1312, 1316, 1320, 1324, 1328, - 1332, 1336, 1340, 1344, 1348, 1352, 1356, 1360, 1366, 1371, - 1376, 1380, 1384, 1388, 1392, 1394, 1399, 1407, 1415, 1420, - 1425, 1430, 1435, 1440, 1445, 1450, 1455, 1460, 1465, 1470, - 1475, 1480, 1485, 1490, 1493, 1499, 1502, 1505, 1508, 1511, - 1514, 1518, 1522, 1526, 1530, 1534, 1538, 1542, 1546, 1550, - 1554, 1558, 1562, 1566, 1570, 1574, 1578, 1582, 1586, 1592, - 1597, 1602, 1606, 1610, 1614, 1618, 1620, 1622, 1624, 1626, - 1628, 1630, 1632, 1634, 1636, 1638, 1643, 1651, 1659, 1664, - 1669, 1672, 1678, 1681, 1684, 1687, 1690, 1694, 1698, 1702, - 1706, 1710, 1714, 1718, 1722, 1726, 1730, 1734, 1738, 1742, - 1746, 1750, 1754, 1758, 1762, 1768, 1773, 1778, 1782, 1786, - 1790, 1794, 1796, 1798, 1800, 1802, 1804, 1806, 1808, 1810, - 1812, 1814, 1817, 1820, 1822, 1824, 1826, 1828, 1831, 1834 + 1224, 1226, 1228, 1230, 1232, 1234, 1236, 1238, 1240, 1242, + 1244, 1246, 1248, 1250, 1252, 1254, 1258, 1260, 1262, 1264, + 1266, 1268, 1272, 1274, 1279, 1287, 1295, 1300, 1305, 1308, + 1311, 1314, 1317, 1320, 1324, 1328, 1332, 1336, 1340, 1344, + 1348, 1352, 1356, 1360, 1364, 1368, 1372, 1376, 1380, 1384, + 1390, 1395, 1400, 1404, 1408, 1412, 1416, 1418, 1423, 1431, + 1439, 1444, 1449, 1454, 1459, 1464, 1469, 1474, 1479, 1484, + 1489, 1494, 1499, 1504, 1509, 1514, 1517, 1523, 1526, 1529, + 1532, 1535, 1538, 1542, 1546, 1550, 1554, 1558, 1562, 1566, + 1570, 1574, 1578, 1582, 1586, 1590, 1594, 1598, 1602, 1606, + 1610, 1616, 1621, 1626, 1630, 1634, 1638, 1642, 1644, 1646, + 1648, 1650, 1652, 1654, 1656, 1658, 1660, 1662, 1667, 1675, + 1683, 1688, 1693, 1696, 1702, 1705, 1708, 1711, 1714, 1718, + 1722, 1726, 1730, 1734, 1738, 1742, 1746, 1750, 1754, 1758, + 1762, 1766, 1770, 1774, 1778, 1782, 1786, 1792, 1797, 1802, + 1806, 1810, 1814, 1818, 1820, 1822, 1824, 1826, 1828, 1830, + 1832, 1834, 1836, 1838, 1841, 1844, 1846, 1848, 1850, 1852, + 1855, 1858 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 142, 0, -1, 114, 143, -1, 115, 228, -1, 116, - 197, -1, 235, -1, 143, 119, -1, 143, 148, -1, - 145, -1, 144, 118, 145, -1, 233, 135, 225, 137, - -1, -1, 151, 117, 147, 143, 138, -1, 152, -1, - 174, -1, 146, -1, 212, -1, 215, -1, 149, -1, - 104, 158, -1, 48, -1, 64, -1, 69, 120, -1, - 90, 120, -1, 89, 120, -1, 88, 120, -1, 80, - 135, 10, 118, 10, 137, 119, -1, 80, 135, 10, - 118, 10, 118, 10, 137, 119, -1, 81, 135, 10, - 118, 10, 118, 10, 137, 119, -1, 97, 135, 228, - 118, 234, 137, -1, 97, 135, 228, 137, -1, -1, - 72, 150, 148, -1, 235, -1, 67, 151, -1, 67, - 6, 151, -1, 96, 151, -1, 76, 151, -1, 109, - 151, -1, 68, 151, -1, 91, 151, -1, 111, 151, - -1, 82, 151, -1, 57, 151, -1, 49, 151, -1, - 66, 151, -1, 153, -1, 151, 194, 119, -1, 151, - 163, 186, -1, -1, 151, 196, 154, 156, -1, -1, - 151, 56, 196, 155, 157, -1, 180, 186, -1, 180, - 185, 118, 156, -1, 180, 186, -1, 180, 185, 118, - 157, -1, -1, 151, 196, 159, 161, -1, -1, 151, - 56, 196, 160, 162, -1, 151, 163, 186, -1, 180, - 186, -1, 180, 185, 118, 161, -1, 180, 186, -1, - 180, 185, 118, 162, -1, -1, 10, 135, 164, 182, - 137, 171, -1, -1, 11, 135, 165, 182, 137, 171, - -1, -1, 133, 233, 135, 166, 182, 137, 171, -1, - -1, 11, 135, 130, 180, 137, 135, 167, 182, 137, - 171, -1, -1, 11, 135, 12, 130, 180, 137, 135, - 168, 182, 137, 171, -1, -1, 87, 193, 190, 135, - 169, 182, 137, 171, -1, -1, 87, 56, 193, 190, - 135, 170, 182, 137, 171, -1, 10, -1, 235, -1, - 56, -1, 171, 85, -1, 171, 101, 135, 137, -1, - 171, 101, 135, 233, 137, -1, 139, -1, 133, -1, - 130, -1, 131, -1, 132, -1, 128, -1, 129, -1, - 123, -1, 125, -1, 124, -1, 15, -1, 16, -1, - 17, -1, 18, -1, 19, -1, 20, -1, 126, -1, - 127, -1, 21, -1, 22, -1, 121, -1, 118, -1, - 33, -1, 34, -1, 35, -1, 36, -1, 37, -1, - 38, -1, 39, -1, 40, -1, 41, -1, 42, -1, - 43, -1, 44, -1, 31, -1, 136, 140, -1, 135, - 137, -1, 84, -1, 60, -1, 152, -1, 174, -1, - -1, 100, 175, 126, 176, 127, 173, -1, 100, 152, - -1, 235, -1, 177, -1, 178, -1, 177, 118, 178, - -1, 55, 233, -1, 55, 233, 121, 197, -1, 105, - 233, -1, 105, 233, 121, 197, -1, 179, 191, 184, - -1, 56, 179, 191, 184, -1, 216, -1, 10, -1, - 11, -1, 233, -1, 87, 172, -1, 87, 6, 10, - -1, 56, 180, -1, 111, 180, -1, 130, 180, -1, - 125, 180, -1, 16, 180, -1, 12, 130, 180, -1, - 180, 136, 224, 140, -1, 180, 120, 4, -1, 135, - 180, 137, -1, -1, 180, 135, 181, 182, 137, 171, - -1, 235, -1, 14, -1, 183, -1, 183, 118, 14, - -1, 183, 14, -1, 189, -1, 183, 118, 189, -1, - 235, -1, 121, 227, -1, 235, -1, 121, 228, -1, - 119, -1, 117, 220, 138, -1, 120, 144, 117, 220, - 138, -1, 121, 228, 119, -1, 121, 117, 187, 138, - -1, 235, -1, 188, -1, 188, 118, -1, 228, -1, - 117, 187, 138, -1, 188, 118, 228, -1, 188, 118, - 117, 187, 138, -1, 193, 191, 185, -1, 56, 193, - 191, 185, -1, 56, 91, 193, 191, 185, -1, 91, - 189, -1, 230, -1, 235, -1, 10, -1, 11, -1, - 56, 190, -1, 111, 190, -1, 130, 190, -1, 125, - 190, -1, 16, 190, -1, 12, 130, 190, -1, 190, - 136, 224, 140, -1, 235, -1, 10, -1, 11, -1, - 56, 191, -1, 111, 191, -1, 130, 191, -1, 125, - 191, -1, 16, 191, -1, 12, 130, 191, -1, 191, - 136, 224, 140, -1, 135, 191, 137, 135, 182, 137, - 171, -1, 135, 191, 137, -1, 235, -1, 56, 192, - -1, 111, 192, -1, 130, 192, -1, 125, 192, -1, - 16, 192, -1, 12, 130, 192, -1, 192, 136, 224, - 140, -1, 135, 192, 137, 135, 182, 137, 171, -1, - 216, -1, 11, -1, 105, 233, -1, 198, -1, 200, - -1, 205, -1, 211, 233, -1, 210, 233, 120, 207, - -1, 58, 135, 228, 137, -1, 47, -1, 216, -1, - 11, -1, 105, 233, -1, 198, -1, 200, -1, 205, - -1, 211, 233, -1, 210, 233, 120, 207, -1, 210, - 233, -1, 58, 135, 228, 137, -1, 47, -1, 216, - -1, 11, -1, 105, 233, -1, 211, 233, -1, 210, - 233, -1, 194, -1, 10, -1, 193, 192, -1, 56, - 193, 192, -1, -1, 211, 117, 199, 143, 138, -1, - -1, 211, 233, 201, 202, 117, 143, 138, -1, 235, - -1, 203, -1, 120, 204, -1, 203, 118, 204, -1, - 90, 232, -1, 89, 232, -1, 88, 232, -1, 109, - 90, 232, -1, 109, 89, 232, -1, 109, 88, 232, - -1, 90, 109, 232, -1, 89, 109, 232, -1, 88, - 109, 232, -1, 206, 117, 209, 138, -1, 210, 233, - 120, 207, -1, 210, 233, -1, 210, 120, 207, -1, - 210, -1, 217, -1, 11, -1, 235, -1, 208, 233, - 118, -1, 208, 233, 121, 228, 118, -1, 208, -1, - 208, 233, -1, 208, 233, 121, 228, -1, 65, -1, - 55, -1, 99, -1, 106, -1, -1, 83, 233, 117, - 213, 143, 138, -1, -1, 76, 83, 233, 117, 214, - 143, 138, -1, 83, 117, 143, 138, -1, 76, 83, - 117, 143, 138, -1, 108, 233, -1, 108, 83, 233, - -1, 217, -1, 218, -1, 219, -1, 50, -1, 52, - -1, 112, -1, 53, -1, 54, -1, 93, -1, 78, - -1, 79, -1, 107, -1, 94, -1, 77, -1, 93, - 217, -1, 78, 217, -1, 107, 217, -1, 94, 217, - -1, 71, -1, 78, 71, -1, 61, -1, 78, 78, - 71, -1, 78, 61, -1, 110, -1, -1, 221, 222, - -1, 235, -1, 222, 223, -1, 3, -1, 4, -1, - 6, -1, 8, -1, 9, -1, 5, -1, 10, -1, - 11, -1, 12, -1, 7, -1, 14, -1, 15, -1, - 16, -1, 17, -1, 18, -1, 19, -1, 20, -1, - 21, -1, 22, -1, 23, -1, 24, -1, 31, -1, - 32, -1, 33, -1, 34, -1, 35, -1, 36, -1, - 37, -1, 38, -1, 39, -1, 40, -1, 41, -1, - 42, -1, 43, -1, 44, -1, 45, -1, 46, -1, - 47, -1, 50, -1, 51, -1, 52, -1, 53, -1, - 54, -1, 55, -1, 56, -1, 57, -1, 58, -1, - 59, -1, 60, -1, 61, -1, 62, -1, 63, -1, - 65, -1, 67, -1, 68, -1, 70, -1, 71, -1, - 72, -1, 73, -1, 74, -1, 75, -1, 76, -1, - 77, -1, 78, -1, 82, -1, 83, -1, 84, -1, - 86, -1, 87, -1, 88, -1, 89, -1, 90, -1, - 69, -1, 91, -1, 92, -1, 93, -1, 94, -1, - 95, -1, 96, -1, 97, -1, 98, -1, 99, -1, - 101, -1, 102, -1, 103, -1, 104, -1, 105, -1, - 106, -1, 107, -1, 108, -1, 109, -1, 110, -1, - 111, -1, 112, -1, 113, -1, 128, -1, 129, -1, - 130, -1, 131, -1, 125, -1, 123, -1, 124, -1, - 139, -1, 133, -1, 121, -1, 132, -1, 126, -1, - 127, -1, 135, -1, 137, -1, 134, -1, 118, -1, - 119, -1, 120, -1, 136, -1, 140, -1, 122, -1, - 117, 222, 138, -1, 235, -1, 228, -1, 235, -1, - 226, -1, 228, -1, 226, 118, 228, -1, 229, -1, - 135, 197, 137, 227, -1, 98, 126, 197, 127, 135, - 226, 137, -1, 62, 126, 197, 127, 135, 226, 137, - -1, 95, 135, 197, 137, -1, 46, 135, 197, 137, - -1, 139, 227, -1, 133, 227, -1, 129, 227, -1, - 130, 227, -1, 125, 227, -1, 227, 130, 227, -1, - 227, 131, 227, -1, 227, 132, 227, -1, 227, 128, - 227, -1, 227, 129, 227, -1, 227, 123, 227, -1, - 227, 124, 227, -1, 227, 125, 227, -1, 227, 15, - 227, -1, 227, 16, 227, -1, 227, 17, 227, -1, - 227, 18, 227, -1, 227, 19, 227, -1, 227, 20, - 227, -1, 227, 21, 227, -1, 227, 22, 227, -1, - 227, 122, 227, 120, 227, -1, 227, 136, 228, 140, - -1, 227, 135, 226, 137, -1, 227, 135, 137, -1, - 227, 134, 227, -1, 227, 31, 227, -1, 135, 226, - 137, -1, 229, -1, 135, 197, 137, 228, -1, 98, - 126, 197, 127, 135, 226, 137, -1, 62, 126, 197, - 127, 135, 226, 137, -1, 11, 135, 225, 137, -1, - 77, 135, 225, 137, -1, 52, 135, 225, 137, -1, - 112, 135, 225, 137, -1, 53, 135, 225, 137, -1, - 54, 135, 225, 137, -1, 50, 135, 225, 137, -1, - 93, 135, 225, 137, -1, 78, 135, 225, 137, -1, - 107, 135, 225, 137, -1, 94, 135, 225, 137, -1, - 71, 135, 225, 137, -1, 61, 135, 225, 137, -1, - 95, 135, 197, 137, -1, 46, 135, 197, 137, -1, - 84, 195, -1, 84, 195, 135, 225, 137, -1, 139, - 228, -1, 133, 228, -1, 129, 228, -1, 130, 228, - -1, 125, 228, -1, 228, 130, 228, -1, 228, 131, - 228, -1, 228, 132, 228, -1, 228, 128, 228, -1, - 228, 129, 228, -1, 228, 123, 228, -1, 228, 124, - 228, -1, 228, 125, 228, -1, 228, 15, 228, -1, - 228, 16, 228, -1, 228, 17, 228, -1, 228, 18, - 228, -1, 228, 19, 228, -1, 228, 20, 228, -1, - 228, 126, 228, -1, 228, 127, 228, -1, 228, 21, - 228, -1, 228, 22, 228, -1, 228, 122, 228, 120, - 228, -1, 228, 136, 228, 140, -1, 228, 135, 226, - 137, -1, 228, 135, 137, -1, 228, 134, 228, -1, - 228, 31, 228, -1, 135, 226, 137, -1, 4, -1, - 102, -1, 70, -1, 5, -1, 3, -1, 234, -1, - 9, -1, 10, -1, 86, -1, 231, -1, 135, 197, - 137, 228, -1, 98, 126, 197, 127, 135, 226, 137, - -1, 62, 126, 197, 127, 135, 226, 137, -1, 95, - 135, 197, 137, -1, 46, 135, 197, 137, -1, 84, - 195, -1, 84, 195, 135, 225, 137, -1, 139, 228, - -1, 133, 228, -1, 129, 228, -1, 125, 228, -1, - 230, 130, 228, -1, 230, 131, 228, -1, 230, 132, - 228, -1, 230, 128, 228, -1, 230, 129, 228, -1, - 230, 123, 228, -1, 230, 124, 228, -1, 230, 125, - 228, -1, 230, 15, 228, -1, 230, 16, 228, -1, - 230, 17, 228, -1, 230, 18, 228, -1, 230, 19, - 228, -1, 230, 20, 228, -1, 230, 126, 228, -1, - 230, 127, 228, -1, 230, 21, 228, -1, 230, 22, - 228, -1, 230, 122, 228, 120, 228, -1, 230, 136, - 228, 140, -1, 230, 135, 226, 137, -1, 230, 135, - 137, -1, 230, 134, 228, -1, 230, 31, 228, -1, - 135, 226, 137, -1, 4, -1, 102, -1, 70, -1, - 5, -1, 3, -1, 234, -1, 9, -1, 10, -1, - 86, -1, 233, -1, 211, 233, -1, 105, 233, -1, - 10, -1, 11, -1, 6, -1, 8, -1, 234, 6, - -1, 234, 8, -1, -1 + 143, 0, -1, 115, 144, -1, 116, 229, -1, 117, + 198, -1, 236, -1, 144, 120, -1, 144, 149, -1, + 146, -1, 145, 119, 146, -1, 234, 136, 226, 138, + -1, -1, 152, 118, 148, 144, 139, -1, 153, -1, + 175, -1, 147, -1, 213, -1, 216, -1, 150, -1, + 105, 159, -1, 48, -1, 64, -1, 69, 121, -1, + 91, 121, -1, 90, 121, -1, 89, 121, -1, 80, + 136, 10, 119, 10, 138, 120, -1, 80, 136, 10, + 119, 10, 119, 10, 138, 120, -1, 81, 136, 10, + 119, 10, 119, 10, 138, 120, -1, 81, 136, 10, + 119, 10, 119, 10, 119, 10, 119, 10, 138, 120, + -1, 82, 136, 10, 119, 10, 119, 10, 138, 120, + -1, 98, 136, 229, 119, 235, 138, -1, 98, 136, + 229, 138, -1, -1, 72, 151, 149, -1, 236, -1, + 67, 152, -1, 67, 6, 152, -1, 97, 152, -1, + 76, 152, -1, 110, 152, -1, 68, 152, -1, 92, + 152, -1, 112, 152, -1, 83, 152, -1, 57, 152, + -1, 49, 152, -1, 66, 152, -1, 154, -1, 152, + 195, 120, -1, 152, 164, 187, -1, -1, 152, 197, + 155, 157, -1, -1, 152, 56, 197, 156, 158, -1, + 181, 187, -1, 181, 186, 119, 157, -1, 181, 187, + -1, 181, 186, 119, 158, -1, -1, 152, 197, 160, + 162, -1, -1, 152, 56, 197, 161, 163, -1, 152, + 164, 187, -1, 181, 187, -1, 181, 186, 119, 162, + -1, 181, 187, -1, 181, 186, 119, 163, -1, -1, + 10, 136, 165, 183, 138, 172, -1, -1, 11, 136, + 166, 183, 138, 172, -1, -1, 134, 234, 136, 167, + 183, 138, 172, -1, -1, 11, 136, 131, 181, 138, + 136, 168, 183, 138, 172, -1, -1, 11, 136, 12, + 131, 181, 138, 136, 169, 183, 138, 172, -1, -1, + 88, 194, 191, 136, 170, 183, 138, 172, -1, -1, + 88, 56, 194, 191, 136, 171, 183, 138, 172, -1, + 10, -1, 236, -1, 56, -1, 172, 86, -1, 172, + 102, 136, 138, -1, 172, 102, 136, 234, 138, -1, + 140, -1, 134, -1, 131, -1, 132, -1, 133, -1, + 129, -1, 130, -1, 124, -1, 126, -1, 125, -1, + 15, -1, 16, -1, 17, -1, 18, -1, 19, -1, + 20, -1, 127, -1, 128, -1, 21, -1, 22, -1, + 122, -1, 119, -1, 33, -1, 34, -1, 35, -1, + 36, -1, 37, -1, 38, -1, 39, -1, 40, -1, + 41, -1, 42, -1, 43, -1, 44, -1, 31, -1, + 137, 141, -1, 136, 138, -1, 85, -1, 60, -1, + 153, -1, 175, -1, -1, 101, 176, 127, 177, 128, + 174, -1, 101, 153, -1, 236, -1, 178, -1, 179, + -1, 178, 119, 179, -1, 55, 234, -1, 55, 234, + 122, 198, -1, 106, 234, -1, 106, 234, 122, 198, + -1, 180, 192, 185, -1, 56, 180, 192, 185, -1, + 217, -1, 10, -1, 11, -1, 234, -1, 88, 173, + -1, 88, 6, 10, -1, 56, 181, -1, 112, 181, + -1, 131, 181, -1, 126, 181, -1, 16, 181, -1, + 12, 131, 181, -1, 181, 137, 225, 141, -1, 181, + 121, 4, -1, 136, 181, 138, -1, -1, 181, 136, + 182, 183, 138, 172, -1, 236, -1, 14, -1, 184, + -1, 184, 119, 14, -1, 184, 14, -1, 190, -1, + 184, 119, 190, -1, 236, -1, 122, 228, -1, 236, + -1, 122, 229, -1, 120, -1, 118, 221, 139, -1, + 121, 145, 118, 221, 139, -1, 122, 229, 120, -1, + 122, 118, 188, 139, -1, 236, -1, 189, -1, 189, + 119, -1, 229, -1, 118, 188, 139, -1, 189, 119, + 229, -1, 189, 119, 118, 188, 139, -1, 194, 192, + 186, -1, 56, 194, 192, 186, -1, 56, 92, 194, + 192, 186, -1, 92, 190, -1, 231, -1, 236, -1, + 10, -1, 11, -1, 56, 191, -1, 112, 191, -1, + 131, 191, -1, 126, 191, -1, 16, 191, -1, 12, + 131, 191, -1, 191, 137, 225, 141, -1, 236, -1, + 10, -1, 11, -1, 56, 192, -1, 112, 192, -1, + 131, 192, -1, 126, 192, -1, 16, 192, -1, 12, + 131, 192, -1, 192, 137, 225, 141, -1, 136, 192, + 138, 136, 183, 138, 172, -1, 136, 192, 138, -1, + 236, -1, 56, 193, -1, 112, 193, -1, 131, 193, + -1, 126, 193, -1, 16, 193, -1, 12, 131, 193, + -1, 193, 137, 225, 141, -1, 136, 193, 138, 136, + 183, 138, 172, -1, 217, -1, 11, -1, 106, 234, + -1, 199, -1, 201, -1, 206, -1, 212, 234, -1, + 211, 234, 121, 208, -1, 58, 136, 229, 138, -1, + 47, -1, 217, -1, 11, -1, 106, 234, -1, 199, + -1, 201, -1, 206, -1, 212, 234, -1, 211, 234, + 121, 208, -1, 211, 234, -1, 58, 136, 229, 138, + -1, 47, -1, 217, -1, 11, -1, 106, 234, -1, + 212, 234, -1, 211, 234, -1, 195, -1, 10, -1, + 194, 193, -1, 56, 194, 193, -1, -1, 212, 118, + 200, 144, 139, -1, -1, 212, 234, 202, 203, 118, + 144, 139, -1, 236, -1, 204, -1, 121, 205, -1, + 204, 119, 205, -1, 91, 233, -1, 90, 233, -1, + 89, 233, -1, 110, 91, 233, -1, 110, 90, 233, + -1, 110, 89, 233, -1, 91, 110, 233, -1, 90, + 110, 233, -1, 89, 110, 233, -1, 207, 118, 210, + 139, -1, 211, 234, 121, 208, -1, 211, 234, -1, + 211, 121, 208, -1, 211, -1, 218, -1, 11, -1, + 236, -1, 209, 234, 119, -1, 209, 234, 122, 229, + 119, -1, 209, -1, 209, 234, -1, 209, 234, 122, + 229, -1, 65, -1, 55, -1, 100, -1, 107, -1, + -1, 84, 234, 118, 214, 144, 139, -1, -1, 76, + 84, 234, 118, 215, 144, 139, -1, 84, 118, 144, + 139, -1, 76, 84, 118, 144, 139, -1, 109, 234, + -1, 109, 84, 234, -1, 218, -1, 219, -1, 220, + -1, 50, -1, 52, -1, 113, -1, 53, -1, 54, + -1, 94, -1, 78, -1, 79, -1, 108, -1, 95, + -1, 77, -1, 94, 218, -1, 78, 218, -1, 108, + 218, -1, 95, 218, -1, 71, -1, 78, 71, -1, + 61, -1, 78, 78, 71, -1, 78, 61, -1, 111, + -1, -1, 222, 223, -1, 236, -1, 223, 224, -1, + 3, -1, 4, -1, 6, -1, 8, -1, 9, -1, + 5, -1, 10, -1, 11, -1, 12, -1, 7, -1, + 14, -1, 15, -1, 16, -1, 17, -1, 18, -1, + 19, -1, 20, -1, 21, -1, 22, -1, 23, -1, + 24, -1, 31, -1, 32, -1, 33, -1, 34, -1, + 35, -1, 36, -1, 37, -1, 38, -1, 39, -1, + 40, -1, 41, -1, 42, -1, 43, -1, 44, -1, + 45, -1, 46, -1, 47, -1, 50, -1, 51, -1, + 52, -1, 53, -1, 54, -1, 55, -1, 56, -1, + 57, -1, 58, -1, 59, -1, 60, -1, 61, -1, + 62, -1, 63, -1, 65, -1, 67, -1, 68, -1, + 70, -1, 71, -1, 72, -1, 73, -1, 74, -1, + 75, -1, 76, -1, 77, -1, 78, -1, 83, -1, + 84, -1, 85, -1, 87, -1, 88, -1, 89, -1, + 90, -1, 91, -1, 69, -1, 92, -1, 93, -1, + 94, -1, 95, -1, 96, -1, 97, -1, 98, -1, + 99, -1, 100, -1, 102, -1, 103, -1, 104, -1, + 105, -1, 106, -1, 107, -1, 108, -1, 109, -1, + 110, -1, 111, -1, 112, -1, 113, -1, 114, -1, + 129, -1, 130, -1, 131, -1, 132, -1, 126, -1, + 124, -1, 125, -1, 140, -1, 134, -1, 122, -1, + 133, -1, 127, -1, 128, -1, 136, -1, 138, -1, + 135, -1, 119, -1, 120, -1, 121, -1, 137, -1, + 141, -1, 123, -1, 118, 223, 139, -1, 236, -1, + 229, -1, 236, -1, 227, -1, 229, -1, 227, 119, + 229, -1, 230, -1, 136, 198, 138, 228, -1, 99, + 127, 198, 128, 136, 227, 138, -1, 62, 127, 198, + 128, 136, 227, 138, -1, 96, 136, 198, 138, -1, + 46, 136, 198, 138, -1, 140, 228, -1, 134, 228, + -1, 130, 228, -1, 131, 228, -1, 126, 228, -1, + 228, 131, 228, -1, 228, 132, 228, -1, 228, 133, + 228, -1, 228, 129, 228, -1, 228, 130, 228, -1, + 228, 124, 228, -1, 228, 125, 228, -1, 228, 126, + 228, -1, 228, 15, 228, -1, 228, 16, 228, -1, + 228, 17, 228, -1, 228, 18, 228, -1, 228, 19, + 228, -1, 228, 20, 228, -1, 228, 21, 228, -1, + 228, 22, 228, -1, 228, 123, 228, 121, 228, -1, + 228, 137, 229, 141, -1, 228, 136, 227, 138, -1, + 228, 136, 138, -1, 228, 135, 228, -1, 228, 31, + 228, -1, 136, 227, 138, -1, 230, -1, 136, 198, + 138, 229, -1, 99, 127, 198, 128, 136, 227, 138, + -1, 62, 127, 198, 128, 136, 227, 138, -1, 11, + 136, 226, 138, -1, 77, 136, 226, 138, -1, 52, + 136, 226, 138, -1, 113, 136, 226, 138, -1, 53, + 136, 226, 138, -1, 54, 136, 226, 138, -1, 50, + 136, 226, 138, -1, 94, 136, 226, 138, -1, 78, + 136, 226, 138, -1, 108, 136, 226, 138, -1, 95, + 136, 226, 138, -1, 71, 136, 226, 138, -1, 61, + 136, 226, 138, -1, 96, 136, 198, 138, -1, 46, + 136, 198, 138, -1, 85, 196, -1, 85, 196, 136, + 226, 138, -1, 140, 229, -1, 134, 229, -1, 130, + 229, -1, 131, 229, -1, 126, 229, -1, 229, 131, + 229, -1, 229, 132, 229, -1, 229, 133, 229, -1, + 229, 129, 229, -1, 229, 130, 229, -1, 229, 124, + 229, -1, 229, 125, 229, -1, 229, 126, 229, -1, + 229, 15, 229, -1, 229, 16, 229, -1, 229, 17, + 229, -1, 229, 18, 229, -1, 229, 19, 229, -1, + 229, 20, 229, -1, 229, 127, 229, -1, 229, 128, + 229, -1, 229, 21, 229, -1, 229, 22, 229, -1, + 229, 123, 229, 121, 229, -1, 229, 137, 229, 141, + -1, 229, 136, 227, 138, -1, 229, 136, 138, -1, + 229, 135, 229, -1, 229, 31, 229, -1, 136, 227, + 138, -1, 4, -1, 103, -1, 70, -1, 5, -1, + 3, -1, 235, -1, 9, -1, 10, -1, 87, -1, + 232, -1, 136, 198, 138, 229, -1, 99, 127, 198, + 128, 136, 227, 138, -1, 62, 127, 198, 128, 136, + 227, 138, -1, 96, 136, 198, 138, -1, 46, 136, + 198, 138, -1, 85, 196, -1, 85, 196, 136, 226, + 138, -1, 140, 229, -1, 134, 229, -1, 130, 229, + -1, 126, 229, -1, 231, 131, 229, -1, 231, 132, + 229, -1, 231, 133, 229, -1, 231, 129, 229, -1, + 231, 130, 229, -1, 231, 124, 229, -1, 231, 125, + 229, -1, 231, 126, 229, -1, 231, 15, 229, -1, + 231, 16, 229, -1, 231, 17, 229, -1, 231, 18, + 229, -1, 231, 19, 229, -1, 231, 20, 229, -1, + 231, 127, 229, -1, 231, 128, 229, -1, 231, 21, + 229, -1, 231, 22, 229, -1, 231, 123, 229, 121, + 229, -1, 231, 137, 229, 141, -1, 231, 136, 227, + 138, -1, 231, 136, 138, -1, 231, 135, 229, -1, + 231, 31, 229, -1, 136, 227, 138, -1, 4, -1, + 103, -1, 70, -1, 5, -1, 3, -1, 235, -1, + 9, -1, 10, -1, 87, -1, 234, -1, 212, 234, + -1, 106, 234, -1, 10, -1, 11, -1, 6, -1, + 8, -1, 235, 6, -1, 235, 8, -1, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 405, 405, 406, 410, 417, 418, 419, 423, 424, - 428, 441, 440, 452, 453, 454, 455, 456, 457, 458, - 459, 472, 481, 485, 493, 497, 501, 512, 533, 555, - 566, 580, 579, 594, 598, 602, 613, 617, 621, 625, - 629, 633, 637, 641, 645, 649, 656, 660, 669, 681, - 680, 696, 695, 717, 725, 736, 745, 759, 758, 774, - 773, 788, 803, 809, 818, 825, 838, 837, 862, 861, - 886, 885, 916, 915, 934, 933, 954, 953, 985, 984, - 1010, 1023, 1027, 1031, 1035, 1039, 1046, 1050, 1054, 1058, - 1062, 1066, 1070, 1074, 1078, 1082, 1086, 1090, 1094, 1098, - 1102, 1106, 1110, 1114, 1118, 1122, 1126, 1130, 1134, 1138, - 1142, 1146, 1150, 1154, 1158, 1162, 1166, 1170, 1174, 1178, - 1182, 1186, 1190, 1194, 1198, 1205, 1206, 1211, 1210, 1218, - 1222, 1223, 1227, 1233, 1242, 1246, 1250, 1254, 1258, 1264, - 1274, 1278, 1283, 1295, 1299, 1313, 1328, 1333, 1338, 1343, - 1348, 1353, 1358, 1363, 1368, 1374, 1373, 1395, 1399, 1404, - 1408, 1413, 1421, 1426, 1434, 1438, 1445, 1449, 1456, 1460, - 1464, 1468, 1472, 1479, 1480, 1481, 1485, 1488, 1489, 1490, - 1494, 1499, 1505, 1511, 1515, 1525, 1529, 1533, 1537, 1542, - 1547, 1552, 1557, 1562, 1567, 1575, 1579, 1583, 1587, 1592, - 1597, 1602, 1607, 1612, 1617, 1622, 1628, 1636, 1640, 1645, - 1650, 1655, 1660, 1665, 1670, 1675, 1684, 1688, 1696, 1700, - 1704, 1708, 1712, 1728, 1744, 1753, 1760, 1764, 1772, 1776, - 1780, 1784, 1788, 1804, 1820, 1838, 1847, 1854, 1858, 1866, - 1870, 1886, 1905, 1909, 1917, 1923, 1934, 1933, 1958, 1957, - 1987, 1988, 1992, 1993, 1997, 2001, 2005, 2009, 2013, 2017, - 2021, 2025, 2029, 2036, 2044, 2048, 2052, 2056, 2063, 2067, - 2074, 2075, 2081, 2089, 2090, 2096, 2105, 2112, 2116, 2120, - 2128, 2127, 2150, 2149, 2172, 2173, 2177, 2183, 2192, 2193, - 2194, 2198, 2202, 2206, 2210, 2214, 2218, 2223, 2228, 2233, - 2238, 2243, 2247, 2252, 2261, 2266, 2274, 2278, 2283, 2287, - 2292, 2300, 2310, 2310, 2320, 2321, 2325, 2326, 2327, 2328, - 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2335, 2335, 2336, - 2336, 2336, 2336, 2337, 2337, 2337, 2337, 2337, 2338, 2338, - 2338, 2339, 2339, 2339, 2339, 2339, 2340, 2340, 2340, 2340, - 2340, 2341, 2341, 2341, 2341, 2341, 2342, 2342, 2342, 2343, - 2343, 2343, 2343, 2343, 2344, 2344, 2344, 2344, 2344, 2345, - 2345, 2345, 2346, 2346, 2346, 2346, 2346, 2346, 2347, 2347, - 2347, 2347, 2348, 2348, 2348, 2348, 2348, 2349, 2349, 2349, - 2349, 2350, 2350, 2350, 2350, 2350, 2351, 2351, 2351, 2351, - 2351, 2352, 2352, 2352, 2352, 2352, 2353, 2353, 2353, 2353, - 2353, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, - 2356, 2356, 2357, 2357, 2357, 2357, 2357, 2357, 2357, 2357, - 2357, 2357, 2358, 2358, 2362, 2366, 2373, 2377, 2384, 2388, - 2395, 2399, 2403, 2407, 2411, 2415, 2419, 2423, 2427, 2431, - 2435, 2439, 2443, 2447, 2451, 2455, 2459, 2463, 2467, 2471, - 2475, 2479, 2483, 2487, 2491, 2495, 2499, 2503, 2507, 2511, - 2515, 2519, 2523, 2527, 2535, 2539, 2543, 2547, 2551, 2561, - 2567, 2573, 2579, 2585, 2591, 2597, 2604, 2611, 2618, 2625, - 2631, 2637, 2641, 2645, 2649, 2653, 2657, 2661, 2665, 2669, - 2673, 2677, 2681, 2685, 2689, 2693, 2697, 2701, 2705, 2709, - 2713, 2717, 2721, 2725, 2729, 2733, 2737, 2741, 2745, 2749, - 2753, 2757, 2761, 2765, 2769, 2776, 2780, 2784, 2788, 2792, - 2796, 2800, 2804, 2808, 2822, 2826, 2830, 2834, 2838, 2842, - 2846, 2850, 2854, 2858, 2862, 2866, 2870, 2874, 2878, 2882, - 2886, 2890, 2894, 2898, 2902, 2906, 2910, 2914, 2918, 2922, - 2926, 2930, 2934, 2938, 2942, 2946, 2950, 2954, 2958, 2962, - 2966, 2973, 2977, 2981, 2985, 2989, 2993, 2997, 3001, 3005, - 3012, 3020, 3028, 3054, 3058, 3065, 3069, 3073, 3079, 3090 + 0, 406, 406, 407, 411, 418, 419, 420, 424, 425, + 429, 442, 441, 453, 454, 455, 456, 457, 458, 459, + 460, 473, 482, 486, 494, 498, 502, 513, 534, 556, + 589, 611, 622, 636, 635, 650, 654, 658, 669, 673, + 677, 681, 685, 689, 693, 697, 701, 705, 712, 716, + 725, 737, 736, 752, 751, 773, 781, 792, 801, 815, + 814, 830, 829, 844, 859, 865, 874, 881, 894, 893, + 918, 917, 942, 941, 972, 971, 990, 989, 1010, 1009, + 1041, 1040, 1066, 1079, 1083, 1087, 1091, 1095, 1102, 1106, + 1110, 1114, 1118, 1122, 1126, 1130, 1134, 1138, 1142, 1146, + 1150, 1154, 1158, 1162, 1166, 1170, 1174, 1178, 1182, 1186, + 1190, 1194, 1198, 1202, 1206, 1210, 1214, 1218, 1222, 1226, + 1230, 1234, 1238, 1242, 1246, 1250, 1254, 1261, 1262, 1267, + 1266, 1274, 1278, 1279, 1283, 1289, 1298, 1302, 1306, 1310, + 1314, 1320, 1330, 1334, 1339, 1351, 1355, 1369, 1384, 1389, + 1394, 1399, 1404, 1409, 1414, 1419, 1424, 1430, 1429, 1451, + 1455, 1460, 1464, 1469, 1477, 1482, 1490, 1494, 1501, 1505, + 1512, 1516, 1520, 1524, 1528, 1535, 1536, 1537, 1541, 1544, + 1545, 1546, 1550, 1555, 1561, 1567, 1571, 1581, 1585, 1589, + 1593, 1598, 1603, 1608, 1613, 1618, 1623, 1631, 1635, 1639, + 1643, 1648, 1653, 1658, 1663, 1668, 1673, 1678, 1684, 1692, + 1696, 1701, 1706, 1711, 1716, 1721, 1726, 1731, 1740, 1744, + 1752, 1756, 1760, 1764, 1768, 1784, 1800, 1809, 1816, 1820, + 1828, 1832, 1836, 1840, 1844, 1860, 1876, 1894, 1903, 1910, + 1914, 1922, 1926, 1942, 1961, 1965, 1973, 1979, 1990, 1989, + 2014, 2013, 2043, 2044, 2048, 2049, 2053, 2057, 2061, 2065, + 2069, 2073, 2077, 2081, 2085, 2092, 2100, 2104, 2108, 2112, + 2119, 2123, 2130, 2131, 2137, 2145, 2146, 2152, 2161, 2168, + 2172, 2176, 2184, 2183, 2206, 2205, 2228, 2229, 2233, 2239, + 2248, 2249, 2250, 2254, 2258, 2262, 2266, 2270, 2274, 2279, + 2284, 2289, 2294, 2299, 2303, 2308, 2317, 2322, 2330, 2334, + 2339, 2343, 2348, 2356, 2366, 2366, 2376, 2377, 2381, 2382, + 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2391, + 2391, 2392, 2392, 2392, 2392, 2393, 2393, 2393, 2393, 2393, + 2394, 2394, 2394, 2395, 2395, 2395, 2395, 2395, 2396, 2396, + 2396, 2396, 2396, 2397, 2397, 2397, 2397, 2397, 2398, 2398, + 2398, 2399, 2399, 2399, 2399, 2399, 2400, 2400, 2400, 2400, + 2400, 2401, 2401, 2401, 2402, 2402, 2402, 2402, 2402, 2402, + 2403, 2403, 2403, 2403, 2404, 2404, 2404, 2404, 2404, 2405, + 2405, 2405, 2405, 2406, 2406, 2406, 2406, 2406, 2407, 2407, + 2407, 2407, 2407, 2408, 2408, 2408, 2408, 2408, 2409, 2409, + 2409, 2409, 2409, 2412, 2412, 2412, 2412, 2412, 2412, 2412, + 2412, 2412, 2412, 2412, 2413, 2413, 2413, 2413, 2413, 2413, + 2413, 2413, 2413, 2413, 2414, 2414, 2418, 2422, 2429, 2433, + 2440, 2444, 2451, 2455, 2459, 2463, 2467, 2471, 2475, 2479, + 2483, 2487, 2491, 2495, 2499, 2503, 2507, 2511, 2515, 2519, + 2523, 2527, 2531, 2535, 2539, 2543, 2547, 2551, 2555, 2559, + 2563, 2567, 2571, 2575, 2579, 2583, 2591, 2595, 2599, 2603, + 2607, 2617, 2623, 2629, 2635, 2641, 2647, 2653, 2660, 2667, + 2674, 2681, 2687, 2693, 2697, 2701, 2705, 2709, 2713, 2717, + 2721, 2725, 2729, 2733, 2737, 2741, 2745, 2749, 2753, 2757, + 2761, 2765, 2769, 2773, 2777, 2781, 2785, 2789, 2793, 2797, + 2801, 2805, 2809, 2813, 2817, 2821, 2825, 2832, 2836, 2840, + 2844, 2848, 2852, 2856, 2860, 2864, 2878, 2882, 2886, 2890, + 2894, 2898, 2902, 2906, 2910, 2914, 2918, 2922, 2926, 2930, + 2934, 2938, 2942, 2946, 2950, 2954, 2958, 2962, 2966, 2970, + 2974, 2978, 2982, 2986, 2990, 2994, 2998, 3002, 3006, 3010, + 3014, 3018, 3022, 3029, 3033, 3037, 3041, 3045, 3049, 3053, + 3057, 3061, 3068, 3076, 3084, 3110, 3114, 3121, 3125, 3129, + 3135, 3146 }; #endif @@ -1198,20 +1204,21 @@ static const char *const yytname[] = "KW_DOUBLE", "KW_DYNAMIC_CAST", "KW_ELSE", "KW_END_PUBLISH", "KW_ENUM", "KW_EXTENSION", "KW_EXTERN", "KW_EXPLICIT", "KW_PUBLISHED", "KW_FALSE", "KW_FLOAT", "KW_FRIEND", "KW_FOR", "KW_GOTO", "KW_IF", "KW_INLINE", - "KW_INT", "KW_LONG", "KW_LONGLONG", "KW_MAKE_PROPERTY", "KW_MAKE_SEQ", - "KW_MUTABLE", "KW_NAMESPACE", "KW_NEW", "KW_NOEXCEPT", "KW_NULLPTR", - "KW_OPERATOR", "KW_PRIVATE", "KW_PROTECTED", "KW_PUBLIC", "KW_REGISTER", - "KW_RETURN", "KW_SHORT", "KW_SIGNED", "KW_SIZEOF", "KW_STATIC", - "KW_STATIC_ASSERT", "KW_STATIC_CAST", "KW_STRUCT", "KW_TEMPLATE", - "KW_THROW", "KW_TRUE", "KW_TRY", "KW_TYPEDEF", "KW_TYPENAME", "KW_UNION", - "KW_UNSIGNED", "KW_USING", "KW_VIRTUAL", "KW_VOID", "KW_VOLATILE", - "KW_WCHAR_T", "KW_WHILE", "START_CPP", "START_CONST_EXPR", "START_TYPE", - "'{'", "','", "';'", "':'", "'='", "'?'", "'|'", "'^'", "'&'", "'<'", - "'>'", "'+'", "'-'", "'*'", "'/'", "'%'", "'~'", "'.'", "'('", "'['", - "')'", "'}'", "'!'", "']'", "$accept", "grammar", "cpp", - "constructor_inits", "constructor_init", "extern_c", "$@1", - "declaration", "friend_declaration", "$@2", "storage_class", - "type_like_declaration", "multiple_var_declaration", "$@3", "$@4", + "KW_INT", "KW_LONG", "KW_LONGLONG", "KW_MAKE_PROPERTY", + "KW_MAKE_PROPERTY2", "KW_MAKE_SEQ", "KW_MUTABLE", "KW_NAMESPACE", + "KW_NEW", "KW_NOEXCEPT", "KW_NULLPTR", "KW_OPERATOR", "KW_PRIVATE", + "KW_PROTECTED", "KW_PUBLIC", "KW_REGISTER", "KW_RETURN", "KW_SHORT", + "KW_SIGNED", "KW_SIZEOF", "KW_STATIC", "KW_STATIC_ASSERT", + "KW_STATIC_CAST", "KW_STRUCT", "KW_TEMPLATE", "KW_THROW", "KW_TRUE", + "KW_TRY", "KW_TYPEDEF", "KW_TYPENAME", "KW_UNION", "KW_UNSIGNED", + "KW_USING", "KW_VIRTUAL", "KW_VOID", "KW_VOLATILE", "KW_WCHAR_T", + "KW_WHILE", "START_CPP", "START_CONST_EXPR", "START_TYPE", "'{'", "','", + "';'", "':'", "'='", "'?'", "'|'", "'^'", "'&'", "'<'", "'>'", "'+'", + "'-'", "'*'", "'/'", "'%'", "'~'", "'.'", "'('", "'['", "')'", "'}'", + "'!'", "']'", "$accept", "grammar", "cpp", "constructor_inits", + "constructor_init", "extern_c", "$@1", "declaration", + "friend_declaration", "$@2", "storage_class", "type_like_declaration", + "multiple_var_declaration", "$@3", "$@4", "multiple_instance_identifiers", "multiple_const_instance_identifiers", "typedef_declaration", "$@5", "$@6", "typedef_instance_identifiers", "typedef_const_instance_identifiers", "function_prototype", "$@7", "$@8", @@ -1256,75 +1263,76 @@ static const yytype_uint16 yytoknum[] = 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, 369, 370, 371, 123, 44, 59, - 58, 61, 63, 124, 94, 38, 60, 62, 43, 45, - 42, 47, 37, 126, 46, 40, 91, 41, 125, 33, - 93 + 365, 366, 367, 368, 369, 370, 371, 372, 123, 44, + 59, 58, 61, 63, 124, 94, 38, 60, 62, 43, + 45, 42, 47, 37, 126, 46, 40, 91, 41, 125, + 33, 93 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 141, 142, 142, 142, 143, 143, 143, 144, 144, - 145, 147, 146, 148, 148, 148, 148, 148, 148, 148, - 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, - 148, 150, 149, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 152, 152, 152, 154, - 153, 155, 153, 156, 156, 157, 157, 159, 158, 160, - 158, 158, 161, 161, 162, 162, 164, 163, 165, 163, - 166, 163, 167, 163, 168, 163, 169, 163, 170, 163, - 163, 171, 171, 171, 171, 171, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 173, 173, 175, 174, 174, - 176, 176, 177, 177, 178, 178, 178, 178, 178, 178, - 179, 179, 179, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 181, 180, 182, 182, 182, - 182, 182, 183, 183, 184, 184, 185, 185, 186, 186, - 186, 186, 186, 187, 187, 187, 188, 188, 188, 188, - 189, 189, 189, 189, 189, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 191, 191, 191, 191, 191, + 0, 142, 143, 143, 143, 144, 144, 144, 145, 145, + 146, 148, 147, 149, 149, 149, 149, 149, 149, 149, + 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, + 149, 149, 149, 151, 150, 152, 152, 152, 152, 152, + 152, 152, 152, 152, 152, 152, 152, 152, 153, 153, + 153, 155, 154, 156, 154, 157, 157, 158, 158, 160, + 159, 161, 159, 159, 162, 162, 163, 163, 165, 164, + 166, 164, 167, 164, 168, 164, 169, 164, 170, 164, + 171, 164, 164, 172, 172, 172, 172, 172, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 174, 174, 176, + 175, 175, 177, 177, 178, 178, 179, 179, 179, 179, + 179, 179, 180, 180, 180, 181, 181, 181, 181, 181, + 181, 181, 181, 181, 181, 181, 181, 182, 181, 183, + 183, 183, 183, 183, 184, 184, 185, 185, 186, 186, + 187, 187, 187, 187, 187, 188, 188, 188, 189, 189, + 189, 189, 190, 190, 190, 190, 190, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 194, 194, 194, 194, - 194, 194, 194, 194, 194, 194, 194, 195, 195, 195, - 195, 195, 196, 196, 197, 197, 199, 198, 201, 200, - 202, 202, 203, 203, 204, 204, 204, 204, 204, 204, - 204, 204, 204, 205, 206, 206, 206, 206, 207, 207, - 208, 208, 208, 209, 209, 209, 210, 211, 211, 211, - 213, 212, 214, 212, 212, 212, 215, 215, 216, 216, - 216, 217, 217, 217, 217, 217, 217, 217, 217, 217, - 217, 217, 217, 217, 217, 217, 218, 218, 218, 218, - 218, 219, 221, 220, 222, 222, 223, 223, 223, 223, - 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, - 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, - 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, - 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, - 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, - 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, - 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, - 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, - 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, - 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, - 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, - 223, 223, 223, 223, 224, 224, 225, 225, 226, 226, - 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, - 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, - 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, - 227, 227, 227, 227, 228, 228, 228, 228, 228, 228, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 193, + 193, 193, 193, 193, 193, 193, 193, 193, 194, 194, + 194, 194, 194, 194, 194, 194, 194, 194, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 196, + 196, 196, 196, 196, 197, 197, 198, 198, 200, 199, + 202, 201, 203, 203, 204, 204, 205, 205, 205, 205, + 205, 205, 205, 205, 205, 206, 207, 207, 207, 207, + 208, 208, 209, 209, 209, 210, 210, 210, 211, 212, + 212, 212, 214, 213, 215, 213, 213, 213, 216, 216, + 217, 217, 217, 218, 218, 218, 218, 218, 218, 218, + 218, 218, 218, 218, 218, 218, 218, 218, 219, 219, + 219, 219, 219, 220, 222, 221, 223, 223, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 225, 225, 226, 226, + 227, 227, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, - 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, - 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, - 228, 228, 228, 228, 228, 229, 229, 229, 229, 229, - 229, 229, 229, 229, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, - 230, 231, 231, 231, 231, 231, 231, 231, 231, 231, - 232, 232, 232, 233, 233, 234, 234, 234, 234, 235 + 228, 228, 228, 228, 228, 228, 229, 229, 229, 229, + 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, + 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, + 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, + 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, + 229, 229, 229, 229, 229, 229, 229, 230, 230, 230, + 230, 230, 230, 230, 230, 230, 231, 231, 231, 231, + 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, + 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, + 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, + 231, 231, 231, 232, 232, 232, 232, 232, 232, 232, + 232, 232, 233, 233, 233, 234, 234, 235, 235, 235, + 235, 236 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -1332,36 +1340,36 @@ static const yytype_uint8 yyr2[] = { 0, 2, 2, 2, 2, 1, 2, 2, 1, 3, 4, 0, 5, 1, 1, 1, 1, 1, 1, 2, - 1, 1, 2, 2, 2, 2, 7, 9, 9, 6, - 4, 0, 3, 1, 2, 3, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 1, 3, 3, 0, - 4, 0, 5, 2, 4, 2, 4, 0, 4, 0, - 5, 3, 2, 4, 2, 4, 0, 6, 0, 6, - 0, 7, 0, 10, 0, 11, 0, 8, 0, 9, - 1, 1, 1, 2, 4, 5, 1, 1, 1, 1, + 1, 1, 2, 2, 2, 2, 7, 9, 9, 13, + 9, 6, 4, 0, 3, 1, 2, 3, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 1, 3, + 3, 0, 4, 0, 5, 2, 4, 2, 4, 0, + 4, 0, 5, 3, 2, 4, 2, 4, 0, 6, + 0, 6, 0, 7, 0, 10, 0, 11, 0, 8, + 0, 9, 1, 1, 1, 2, 4, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 1, 1, 1, 1, 0, 6, 2, - 1, 1, 1, 3, 2, 4, 2, 4, 3, 4, - 1, 1, 1, 1, 2, 3, 2, 2, 2, 2, - 2, 3, 4, 3, 3, 0, 6, 1, 1, 1, - 3, 2, 1, 3, 1, 2, 1, 2, 1, 3, - 5, 3, 4, 1, 1, 2, 1, 3, 3, 5, - 3, 4, 5, 2, 1, 1, 1, 1, 2, 2, - 2, 2, 2, 3, 4, 1, 1, 1, 2, 2, - 2, 2, 2, 3, 4, 7, 3, 1, 2, 2, - 2, 2, 2, 3, 4, 7, 1, 1, 2, 1, - 1, 1, 2, 4, 4, 1, 1, 1, 2, 1, - 1, 1, 2, 4, 2, 4, 1, 1, 1, 2, - 2, 2, 1, 1, 2, 3, 0, 5, 0, 7, - 1, 1, 2, 3, 2, 2, 2, 3, 3, 3, - 3, 3, 3, 4, 4, 2, 3, 1, 1, 1, - 1, 3, 5, 1, 2, 4, 1, 1, 1, 1, - 0, 6, 0, 7, 4, 5, 2, 3, 1, 1, + 1, 1, 1, 2, 2, 1, 1, 1, 1, 0, + 6, 2, 1, 1, 1, 3, 2, 4, 2, 4, + 3, 4, 1, 1, 1, 1, 2, 3, 2, 2, + 2, 2, 2, 3, 4, 3, 3, 0, 6, 1, + 1, 1, 3, 2, 1, 3, 1, 2, 1, 2, + 1, 3, 5, 3, 4, 1, 1, 2, 1, 3, + 3, 5, 3, 4, 5, 2, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 3, 4, 1, 1, 1, + 2, 2, 2, 2, 2, 3, 4, 7, 3, 1, + 2, 2, 2, 2, 2, 3, 4, 7, 1, 1, + 2, 1, 1, 1, 2, 4, 4, 1, 1, 1, + 2, 1, 1, 1, 2, 4, 2, 4, 1, 1, + 1, 2, 2, 2, 1, 1, 2, 3, 0, 5, + 0, 7, 1, 1, 2, 3, 2, 2, 2, 3, + 3, 3, 3, 3, 3, 4, 4, 2, 3, 1, + 1, 1, 1, 3, 5, 1, 2, 4, 1, 1, + 1, 1, 0, 6, 0, 7, 4, 5, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 2, 2, 2, 1, 2, 1, 3, - 2, 1, 0, 2, 1, 2, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, + 1, 3, 2, 1, 0, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1373,22 +1381,23 @@ static const yytype_uint8 yyr2[] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 3, 1, 1, 1, 1, 1, 3, - 1, 4, 7, 7, 4, 4, 2, 2, 2, 2, - 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 5, 4, 4, - 3, 3, 3, 3, 1, 4, 7, 7, 4, 4, + 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, + 1, 3, 1, 4, 7, 7, 4, 4, 2, 2, + 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, + 4, 4, 3, 3, 3, 3, 1, 4, 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 2, 5, 2, 2, 2, 2, 2, + 4, 4, 4, 4, 4, 2, 5, 2, 2, 2, + 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 5, 4, - 4, 3, 3, 3, 3, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 4, 7, 7, 4, 4, - 2, 5, 2, 2, 2, 2, 3, 3, 3, 3, + 5, 4, 4, 3, 3, 3, 3, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 4, 7, 7, + 4, 4, 2, 5, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 5, 4, 4, 3, 3, 3, - 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 1, 1, 1, 1, 2, 2, 0 + 3, 3, 3, 3, 3, 3, 5, 4, 4, 3, + 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, + 2, 0 }; /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. @@ -1396,1298 +1405,1335 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint16 yydefact[] = { - 0, 589, 0, 0, 0, 589, 5, 529, 525, 528, - 585, 586, 531, 532, 0, 0, 0, 0, 0, 0, - 0, 0, 527, 0, 0, 0, 0, 533, 0, 0, - 0, 0, 526, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 474, 530, 217, 225, 291, 292, 294, 295, - 277, 0, 0, 308, 276, 306, 301, 297, 298, 296, - 300, 278, 0, 279, 299, 311, 293, 589, 4, 219, - 220, 221, 0, 267, 0, 216, 288, 289, 290, 1, - 20, 589, 589, 21, 589, 589, 589, 0, 31, 589, - 0, 0, 589, 0, 0, 0, 0, 589, 589, 0, - 589, 589, 0, 589, 589, 6, 15, 7, 18, 0, - 13, 46, 14, 16, 17, 33, 589, 0, 589, 589, - 589, 589, 589, 0, 589, 589, 589, 238, 0, 493, - 0, 0, 237, 589, 589, 0, 0, 589, 589, 499, - 497, 498, 496, 217, 291, 292, 294, 295, 308, 306, - 301, 297, 296, 300, 299, 293, 0, 0, 438, 495, + 0, 591, 0, 0, 0, 591, 5, 531, 527, 530, + 587, 588, 533, 534, 0, 0, 0, 0, 0, 0, + 0, 0, 529, 0, 0, 0, 0, 535, 0, 0, + 0, 0, 528, 0, 0, 0, 0, 0, 0, 0, + 0, 3, 476, 532, 219, 227, 293, 294, 296, 297, + 279, 0, 0, 310, 278, 308, 303, 299, 300, 298, + 302, 280, 0, 281, 301, 313, 295, 591, 4, 221, + 222, 223, 0, 269, 0, 218, 290, 291, 292, 1, + 20, 591, 591, 21, 591, 591, 591, 0, 33, 591, + 0, 0, 0, 591, 0, 0, 0, 0, 591, 591, + 0, 591, 591, 0, 591, 591, 6, 15, 7, 18, + 0, 13, 48, 14, 16, 17, 35, 591, 0, 591, + 591, 591, 591, 591, 0, 591, 591, 591, 240, 0, + 495, 0, 0, 239, 591, 591, 0, 0, 591, 591, + 501, 499, 500, 498, 219, 293, 294, 296, 297, 310, + 308, 303, 299, 298, 302, 301, 295, 0, 0, 440, + 497, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 589, 590, 591, 0, 312, 309, + 299, 305, 299, 304, 307, 585, 586, 220, 306, 0, + 591, 591, 591, 591, 591, 591, 246, 209, 591, 0, + 267, 248, 224, 591, 46, 45, 47, 591, 36, 41, + 22, 591, 0, 39, 0, 0, 0, 44, 591, 0, + 25, 24, 23, 42, 38, 0, 0, 131, 0, 0, + 19, 0, 288, 40, 43, 245, 229, 238, 0, 0, + 0, 0, 11, 0, 0, 244, 51, 231, 232, 233, + 269, 0, 228, 0, 439, 438, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 241, 591, 243, 242, + 0, 0, 0, 0, 0, 0, 0, 0, 526, 510, + 511, 512, 513, 514, 515, 518, 519, 525, 0, 507, + 508, 509, 516, 517, 505, 506, 502, 503, 504, 524, + 523, 0, 0, 247, 0, 311, 591, 214, 210, 211, + 213, 212, 0, 591, 275, 0, 272, 271, 268, 270, + 0, 591, 591, 37, 34, 591, 0, 0, 0, 0, + 591, 282, 0, 591, 0, 0, 244, 59, 289, 68, + 70, 245, 229, 53, 0, 0, 591, 230, 591, 0, + 314, 170, 0, 0, 50, 49, 0, 236, 234, 480, + 494, 486, 482, 484, 485, 492, 0, 491, 481, 488, + 0, 487, 490, 493, 0, 489, 483, 477, 441, 0, + 522, 521, 226, 215, 0, 0, 437, 436, 276, 265, + 225, 591, 0, 0, 253, 252, 591, 284, 0, 0, + 0, 286, 591, 0, 32, 143, 144, 0, 0, 0, + 0, 133, 134, 591, 142, 132, 61, 63, 0, 591, + 0, 0, 591, 0, 0, 591, 188, 189, 0, 591, + 591, 591, 591, 591, 0, 187, 591, 72, 0, 591, + 0, 8, 0, 591, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 52, 591, 145, 0, 0, 496, 0, + 520, 591, 216, 273, 0, 249, 0, 0, 0, 0, + 254, 591, 0, 287, 591, 0, 0, 0, 591, 0, + 136, 591, 138, 591, 0, 198, 199, 0, 591, 591, + 591, 591, 591, 591, 591, 197, 0, 60, 591, 577, + 573, 576, 579, 580, 160, 0, 0, 0, 575, 0, + 581, 0, 0, 0, 574, 0, 0, 0, 0, 0, + 0, 161, 164, 591, 186, 536, 578, 159, 0, 0, + 0, 54, 591, 237, 0, 591, 194, 190, 191, 193, + 192, 78, 591, 12, 591, 171, 315, 316, 314, 0, + 591, 591, 0, 176, 178, 175, 173, 0, 152, 148, + 0, 98, 99, 100, 101, 102, 103, 106, 107, 122, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 126, 125, 109, 108, 95, 97, 96, 104, + 105, 93, 94, 90, 91, 92, 89, 0, 0, 88, + 146, 149, 151, 150, 0, 0, 0, 157, 591, 0, + 55, 168, 235, 0, 0, 0, 277, 0, 0, 0, + 258, 582, 0, 257, 0, 256, 0, 0, 0, 591, + 255, 591, 0, 0, 0, 0, 283, 31, 0, 591, + 0, 127, 130, 128, 135, 591, 204, 200, 201, 203, + 202, 0, 0, 591, 140, 166, 62, 591, 0, 64, + 0, 0, 591, 0, 542, 185, 0, 0, 547, 546, + 545, 0, 0, 544, 591, 163, 0, 591, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 587, 588, 589, 0, 310, 307, 297, - 303, 297, 302, 305, 583, 584, 218, 304, 0, 589, - 589, 589, 589, 589, 589, 244, 207, 589, 0, 265, - 246, 222, 589, 44, 43, 45, 589, 34, 39, 22, - 589, 0, 37, 0, 0, 42, 589, 0, 25, 24, - 23, 40, 36, 0, 0, 129, 0, 0, 19, 0, - 286, 38, 41, 243, 227, 236, 0, 0, 0, 0, - 11, 0, 0, 242, 49, 229, 230, 231, 267, 0, - 226, 0, 437, 436, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 239, 589, 241, 240, 0, 0, - 0, 0, 0, 0, 0, 0, 524, 508, 509, 510, - 511, 512, 513, 516, 517, 523, 0, 505, 506, 507, - 514, 515, 503, 504, 500, 501, 502, 522, 521, 0, - 0, 245, 0, 309, 589, 212, 208, 209, 211, 210, - 0, 589, 273, 0, 270, 269, 266, 268, 0, 589, - 589, 35, 32, 589, 0, 0, 0, 589, 280, 0, - 589, 0, 0, 242, 57, 287, 66, 68, 243, 227, - 51, 0, 0, 589, 228, 589, 0, 312, 168, 0, - 0, 48, 47, 0, 234, 232, 478, 492, 484, 480, - 482, 483, 490, 0, 489, 479, 486, 0, 485, 488, - 491, 0, 487, 481, 475, 439, 0, 520, 519, 224, - 213, 0, 0, 435, 434, 274, 263, 223, 589, 0, - 0, 251, 250, 589, 282, 0, 0, 284, 589, 0, - 30, 141, 142, 0, 0, 0, 0, 131, 132, 589, - 140, 130, 59, 61, 0, 589, 0, 0, 589, 0, - 0, 589, 186, 187, 0, 589, 589, 589, 589, 589, - 0, 185, 589, 70, 0, 589, 0, 8, 0, 589, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, - 589, 143, 0, 0, 494, 0, 518, 589, 214, 271, - 0, 247, 0, 0, 0, 0, 252, 589, 0, 285, - 589, 0, 0, 589, 0, 134, 589, 136, 589, 0, - 196, 197, 0, 589, 589, 589, 589, 589, 589, 589, - 195, 0, 58, 589, 575, 571, 574, 577, 578, 158, - 0, 0, 0, 573, 0, 579, 0, 0, 0, 572, - 0, 0, 0, 0, 0, 0, 159, 162, 589, 184, - 534, 576, 157, 0, 0, 0, 52, 589, 235, 0, - 589, 192, 188, 189, 191, 190, 76, 589, 12, 589, - 169, 313, 314, 312, 0, 589, 589, 0, 174, 176, - 173, 171, 0, 150, 146, 0, 96, 97, 98, 99, - 100, 101, 104, 105, 120, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 124, 123, 107, - 106, 93, 95, 94, 102, 103, 91, 92, 88, 89, - 90, 87, 0, 0, 86, 144, 147, 149, 148, 0, - 0, 0, 155, 589, 0, 53, 166, 233, 0, 0, - 0, 275, 0, 0, 0, 256, 580, 0, 255, 0, - 254, 0, 0, 0, 589, 253, 589, 0, 0, 0, - 281, 29, 0, 589, 0, 125, 128, 126, 133, 589, - 202, 198, 199, 201, 200, 0, 0, 589, 138, 164, - 60, 589, 0, 62, 0, 0, 589, 0, 540, 183, - 0, 0, 545, 544, 543, 0, 0, 542, 589, 161, - 0, 589, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 591, 0, 57, 80, 195, 591, + 0, 0, 318, 319, 323, 320, 327, 321, 322, 324, + 325, 326, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 390, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 591, 429, 430, + 431, 422, 434, 418, 419, 417, 424, 425, 413, 414, + 415, 416, 423, 421, 428, 426, 432, 427, 420, 433, + 317, 0, 9, 0, 0, 174, 177, 153, 147, 124, + 123, 156, 155, 169, 591, 0, 0, 479, 478, 591, + 274, 584, 264, 583, 263, 262, 261, 260, 259, 251, + 285, 0, 26, 0, 0, 137, 141, 139, 205, 208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 589, 0, - 55, 78, 193, 589, 0, 0, 316, 317, 321, 318, - 325, 319, 320, 322, 323, 324, 326, 327, 328, 329, - 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, - 370, 388, 371, 372, 373, 374, 375, 376, 377, 378, - 379, 380, 381, 382, 383, 384, 385, 386, 387, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 589, 427, 428, 429, 420, 432, 416, 417, 415, - 422, 423, 411, 412, 413, 414, 421, 419, 426, 424, - 430, 425, 418, 431, 315, 0, 9, 0, 0, 172, - 175, 151, 145, 122, 121, 154, 153, 167, 589, 0, - 0, 477, 476, 589, 272, 582, 262, 581, 261, 260, - 259, 258, 257, 249, 283, 0, 26, 0, 135, 139, - 137, 203, 206, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 165, 440, 0, 0, 64, 0, 0, - 589, 589, 0, 589, 0, 0, 0, 570, 82, 67, - 81, 160, 163, 0, 180, 554, 555, 556, 557, 558, - 559, 562, 563, 569, 0, 551, 552, 553, 560, 561, - 549, 550, 546, 547, 548, 568, 567, 0, 0, 0, - 72, 69, 0, 589, 0, 194, 589, 0, 170, 10, - 177, 589, 178, 0, 152, 54, 215, 0, 0, 589, - 0, 0, 0, 0, 450, 448, 449, 447, 0, 0, - 446, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 167, 442, 0, 0, 66, 0, 0, 591, 591, 0, + 591, 0, 0, 0, 572, 84, 69, 83, 162, 165, + 0, 182, 556, 557, 558, 559, 560, 561, 564, 565, + 571, 0, 553, 554, 555, 562, 563, 551, 552, 548, + 549, 550, 570, 569, 0, 0, 0, 74, 71, 0, + 591, 0, 196, 591, 0, 172, 10, 179, 591, 180, + 0, 154, 56, 217, 0, 0, 0, 0, 591, 0, + 0, 0, 0, 452, 450, 451, 449, 0, 0, 448, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 204, 0, 63, 539, 589, 181, 0, 0, - 538, 0, 535, 83, 0, 167, 0, 566, 565, 74, - 589, 56, 0, 589, 71, 433, 0, 589, 27, 28, - 0, 0, 0, 0, 0, 0, 473, 459, 460, 461, - 462, 463, 464, 465, 466, 472, 0, 456, 457, 458, - 454, 455, 451, 452, 453, 471, 470, 0, 0, 65, - 182, 0, 541, 0, 0, 564, 589, 0, 589, 77, - 179, 156, 589, 445, 0, 444, 0, 441, 0, 469, - 468, 0, 0, 84, 0, 0, 589, 79, 205, 0, - 0, 467, 537, 536, 85, 589, 73, 0, 0, 75, - 443, 442 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 206, 0, 65, 541, 591, 183, 0, 0, 540, + 0, 537, 85, 0, 169, 0, 568, 567, 76, 591, + 58, 0, 591, 73, 435, 0, 591, 27, 0, 28, + 30, 0, 0, 0, 0, 0, 0, 475, 461, 462, + 463, 464, 465, 466, 467, 468, 474, 0, 458, 459, + 460, 456, 457, 453, 454, 455, 473, 472, 0, 0, + 67, 184, 0, 543, 0, 0, 566, 591, 0, 591, + 79, 181, 158, 0, 591, 447, 0, 446, 0, 443, + 0, 471, 470, 0, 0, 86, 0, 0, 591, 81, + 0, 207, 0, 0, 469, 539, 538, 87, 591, 75, + 0, 0, 0, 77, 29, 445, 444 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 4, 5, 446, 447, 106, 355, 107, 108, 220, - 109, 110, 111, 363, 429, 459, 536, 238, 424, 501, - 502, 660, 252, 425, 428, 549, 1000, 1046, 713, 933, - 899, 605, 646, 112, 236, 416, 417, 418, 419, 460, - 848, 525, 526, 658, 614, 361, 557, 558, 527, 440, - 499, 205, 67, 343, 129, 254, 68, 69, 329, 70, - 330, 400, 401, 476, 71, 72, 326, 322, 323, 73, - 74, 113, 408, 480, 114, 75, 76, 77, 78, 444, - 445, 551, 834, 392, 261, 262, 883, 158, 42, 529, - 530, 625, 461, 43, 115 + -1, 4, 5, 450, 451, 107, 358, 108, 109, 221, + 110, 111, 112, 366, 433, 463, 541, 240, 428, 506, + 507, 666, 254, 429, 432, 554, 1009, 1057, 719, 940, + 906, 610, 652, 113, 238, 420, 421, 422, 423, 464, + 854, 530, 531, 664, 619, 364, 562, 563, 532, 444, + 504, 206, 67, 346, 130, 256, 68, 69, 331, 70, + 332, 403, 404, 480, 71, 72, 328, 324, 325, 73, + 74, 114, 412, 484, 115, 75, 76, 77, 78, 448, + 449, 556, 840, 395, 263, 264, 890, 159, 42, 534, + 535, 630, 465, 43, 116 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -698 +#define YYPACT_NINF -666 static const yytype_int16 yypact[] = { - 259, -698, 2649, 3749, 13, 3327, -698, -698, -698, -698, - -698, -698, -698, -698, -128, -110, -46, -31, -5, 4, - 24, -68, -698, 33, 45, 50, 3651, -698, 56, 61, - 117, 97, -698, 141, 144, 2649, 2649, 2649, 2649, 1829, - 2649, 3160, -698, 226, -698, -698, -698, -698, -698, -698, - -698, 3908, 149, -698, -698, -698, -698, 4391, -698, 2773, - 2773, -698, 65, -698, 2773, -698, -698, 242, -698, -698, - -698, -698, 91, 32, 69, -698, -698, -698, -698, -698, - -698, 4406, 4406, -698, 4406, 3643, 4406, 109, -698, 1116, - 151, 166, 4406, 71, 177, 194, 201, 4406, 4406, 189, - 4293, 4406, 232, 4406, 4406, -698, -698, -698, -698, 2712, - -698, -698, -698, -698, -698, -698, 2649, 3749, 2649, 2649, - 2649, 2649, 2649, 3749, 2649, 2649, 2649, -698, 65, 196, - 65, 65, -698, 2649, 2649, 3749, 3749, 2649, 2649, 59, - 59, 59, 59, -128, -46, -31, -5, 4, 24, 33, - 45, 4285, 2038, 3601, 3738, 144, 205, -100, 3160, 59, - 2649, 2649, 2649, 2649, 2649, 2649, 2649, 2649, 2649, 2649, - 2649, 2649, 2649, 2649, 2649, 2649, 2649, 2649, 2649, 2649, - 2649, 2049, 2649, -698, -698, 242, 2649, -698, -698, 915, - -698, 2773, -698, -698, -698, -698, -698, -698, 206, 242, - 242, 242, 242, 242, 242, 202, -698, -698, 3918, 227, - -698, -7, 4406, -698, -698, -698, 4406, -698, -698, -698, - 4342, 73, -698, 360, 369, -698, -698, 270, -698, -698, - -698, -698, -698, 2649, 2783, -698, 267, 2847, -698, 65, - -698, -698, -698, 280, 269, -698, 3688, 273, 3810, 65, - -698, 65, 403, 298, -698, -698, -698, -698, 32, 69, - -698, 276, 308, -698, 286, 292, 302, 313, 317, 323, - 343, 335, 341, 344, -698, 2649, -698, -698, 346, 349, - 351, 362, 354, 367, 2649, 2649, -698, 3227, 3422, 3511, - 3511, 229, 229, 509, 509, -698, 2984, 3437, 3468, 932, - 229, 229, 173, 173, 59, 59, 59, -698, -698, -64, - 959, 202, 2945, -698, 242, 202, 202, 202, 202, 202, - 28, 2649, 65, 374, -698, -698, -698, -698, 3918, -698, - 385, -698, -698, -698, 397, 401, 408, 3960, -698, 1847, - 1124, 3688, 403, -698, -698, -698, -698, 17, -698, -698, - -698, 2649, 3908, 255, -698, -698, 383, -698, -698, 65, - 2149, -698, -698, 284, 18, -7, -698, -698, -698, -698, - -698, -698, -698, 396, -698, -698, -698, 395, -698, -698, - -698, 399, -698, -698, 59, 3160, 2649, -698, -698, -698, - 202, 402, 398, 3160, -698, -12, -698, 427, 4006, 294, - 428, 429, -698, 4052, -698, 540, 541, -698, -698, 262, - -698, -698, -698, 65, 771, 65, 425, 435, -698, 400, - -698, -698, -698, -698, 284, 1609, 431, 284, 1609, 284, - 2966, 255, -698, -698, 433, 255, 255, 255, 255, 255, - 82, -698, 4098, -698, 419, -698, 303, -698, 424, 2249, - 3002, 434, 284, 284, 567, 284, 284, 284, 284, -698, - 332, -698, 3918, 2649, -698, 2649, 3160, 1609, -698, -698, - 2649, -698, 729, 789, 805, 453, -698, -698, 294, -698, - -698, -32, 448, 4144, 8, 457, 400, 458, 4399, 1124, - -698, -698, 460, 400, 400, 400, 400, 400, 400, -106, - -698, 284, -698, 332, -698, -698, -698, -698, -698, -698, - 462, 3847, 469, -698, 3651, -698, 1939, 464, 487, -698, - 2649, 2649, 2649, 1829, 2649, 477, -4, -698, 400, 3177, - -698, 226, -698, 284, 305, 478, -698, 332, -698, 296, - 255, 480, 480, 480, 480, 480, -698, 2649, -698, 1609, - -698, 1471, -698, -698, 65, 2649, 2249, 479, 500, 3160, - -698, -698, 284, 311, 311, 612, -698, -698, -698, -698, - -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, - -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, - -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, - -698, -698, 486, 484, -698, -698, 311, 311, 311, 338, - 506, 2149, -698, 2649, 507, -698, -698, 427, -11, 120, - 492, 3021, 65, 156, 65, -698, -698, 156, -698, 156, - -698, 156, 156, 156, 4190, -698, 4236, 620, 514, 625, - -698, -698, 3749, -106, 3749, -698, -698, -698, -698, 400, - 498, 498, 498, 498, 498, 327, 741, 2649, -698, -698, - -698, 332, 518, -698, 3749, 3908, 400, 3749, 515, -698, - 3749, 3749, 59, 59, 59, 516, 145, 59, 596, -698, - 1719, 6, 2649, 2649, 2649, 2649, 2649, 2649, 2649, 2649, - 2649, 2649, 2649, 2649, 2649, 2649, 2649, 2649, 2649, 2649, - 2649, 2649, 2649, 2349, 2649, 364, 650, 522, 596, 543, - -698, -698, 480, 1609, 519, 533, -698, -698, -698, -698, - -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, - -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, - -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, - -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, - -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, - -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, - -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, - -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, - -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, - -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, - -698, -698, -698, -698, -698, -698, -698, -698, -698, -698, - -698, -698, -698, -698, -698, 535, -698, 534, 536, -698, - 2449, 311, -698, -698, -698, -698, -698, 3002, 1609, 542, - 284, -698, -698, 596, -698, -698, -698, -698, -698, -698, - -698, -698, -698, -698, -698, 544, -698, 547, -698, -698, - -698, 498, 551, 552, 563, 569, 579, 741, 741, 741, - 741, 1829, 741, 3211, -698, 568, 591, -698, 284, 573, - 400, 6, 584, 2649, 576, 587, 2649, -698, -698, -51, - -698, -698, -698, 2649, -698, 3227, 3422, 3511, 3511, 229, - 229, 509, 509, -698, 3143, 3437, 3468, 932, 229, 229, - 173, 173, 59, 59, 59, -698, -698, 162, 1140, 580, - -698, -51, 284, 1609, 600, -698, 596, 1280, -698, -698, - -698, 2249, 3160, 604, -698, -698, -51, 629, 642, 1609, - 3749, 3749, 3749, 3749, 199, 199, 199, 199, 606, 204, - 199, 741, 741, 741, 741, 741, 741, 741, 741, 741, - 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, - 2549, 2649, -698, 284, -698, -698, 6, -698, 630, 635, - -698, 638, 59, -698, 640, 3160, 2649, -698, -698, -698, - 1609, -698, 646, 596, -51, -698, 639, 596, -698, -698, - 648, 649, 661, 653, 664, 741, -698, 3348, 3483, 3555, - 3555, 440, 440, 624, 624, -698, 3194, 3498, 2062, 908, - 632, 632, 199, 199, 199, -698, -698, 207, 1627, -698, - -698, 2649, -698, 2649, 52, 3160, 1609, 655, 596, -51, - -698, -51, 596, -698, 658, -698, 659, 199, 741, -698, - -698, 209, 212, -698, 660, 665, 596, -51, -51, 2649, - 2649, 3211, -698, -698, -698, 596, -51, 219, 244, -51, - -698, -698 + 258, -666, 2548, 3820, 65, 2628, -666, -666, -666, -666, + -666, -666, -666, -666, -62, -30, 60, 110, 114, 130, + 149, 18, -666, 153, 173, 181, 4026, -666, 190, 207, + 210, 221, -666, 214, 226, 2548, 2548, 2548, 2548, 1720, + 2548, 3185, -666, 107, -666, -666, -666, -666, -666, -666, + -666, 4006, 228, -666, -666, -666, -666, 4537, -666, 3871, + 3871, -666, 75, -666, 3871, -666, -666, 276, -666, -666, + -666, -666, 161, 67, 14, -666, -666, -666, -666, -666, + -666, 4568, 4568, -666, 4568, 892, 4568, 15, -666, 2540, + 235, 243, 247, 4568, 41, 269, 271, 285, 4568, 4568, + 278, 2563, 4568, 33, 4568, 4568, -666, -666, -666, -666, + 2741, -666, -666, -666, -666, -666, -666, 2548, 3820, 2548, + 2548, 2548, 2548, 2548, 3820, 2548, 2548, 2548, -666, 75, + 283, 75, 75, -666, 2548, 2548, 3820, 3820, 2548, 2548, + 167, 167, 167, 167, -62, 60, 110, 114, 130, 149, + 153, 173, 4449, 1931, 3341, 3699, 226, 286, -107, 3185, + 167, 2548, 2548, 2548, 2548, 2548, 2548, 2548, 2548, 2548, + 2548, 2548, 2548, 2548, 2548, 2548, 2548, 2548, 2548, 2548, + 2548, 2548, 1942, 2548, -666, -666, 276, 2548, -666, -666, + 3809, -666, 3871, -666, -666, -666, -666, -666, -666, 290, + 276, 276, 276, 276, 276, 276, 292, -666, -666, 736, + 311, -666, 206, 4568, -666, -666, -666, 4568, -666, -666, + -666, 4483, 72, -666, 417, 426, 436, -666, -666, 329, + -666, -666, -666, -666, -666, 2548, 2811, -666, 323, 2873, + -666, 75, -666, -666, -666, 260, 315, -666, 3689, 328, + 3882, 75, -666, 75, 198, 339, -666, -666, -666, -666, + 67, 14, -666, 330, 346, -666, 334, 335, 337, 340, + 347, 350, 338, 351, 354, 355, -666, 2548, -666, -666, + 367, 370, 375, 349, 376, 377, 2548, 2548, -666, 3274, + 3357, 3574, 3574, 460, 460, 325, 325, -666, 3011, 3395, + 3410, 3440, 460, 460, 524, 524, 167, 167, 167, -666, + -666, -58, 1516, 292, 2972, -666, 276, 292, 292, 292, + 292, 292, 160, 2548, 75, 345, -666, -666, -666, -666, + 736, -666, 396, -666, -666, -666, 400, 401, 402, 404, + 3575, -666, 2938, 3709, 3689, 198, -666, -666, -666, -666, + -2, -666, -666, -666, 2548, 4006, 553, -666, -666, 383, + -666, -666, 75, 2043, -666, -666, 289, 217, 206, -666, + -666, -666, -666, -666, -666, -666, 388, -666, -666, -666, + 390, -666, -666, -666, 394, -666, -666, 167, 3185, 2548, + -666, -666, -666, 292, 397, 399, 3185, -666, 158, -666, + 419, 4074, -71, 420, 423, -666, 4139, -666, 537, 538, + 539, -666, -666, 333, -666, -666, -666, 75, 3771, 75, + 422, 435, -666, 714, -666, -666, -666, -666, 289, 1498, + 425, 289, 1498, 289, 2993, 553, -666, -666, 427, 553, + 553, 553, 553, 553, 216, -666, 4204, -666, 428, -666, + 267, -666, 430, 2144, 3029, 437, 289, 289, 1064, 289, + 289, 289, 289, -666, 147, -666, 736, 2548, -666, 2548, + 3185, 1498, -666, -666, 2548, -666, 476, 891, 940, 327, + -666, -666, -71, -666, -666, -50, 451, 452, 4269, 8, + 453, 714, 458, 4545, 3709, -666, -666, 450, 714, 714, + 714, 714, 714, 714, -69, -666, 289, -666, 147, -666, + -666, -666, -666, -666, -666, 448, 3944, 461, -666, 4026, + -666, 1831, 462, 472, -666, 2548, 2548, 2548, 1720, 2548, + 464, 9, -666, 714, 3202, -666, 107, -666, 289, 170, + 477, -666, 147, -666, 261, 553, 463, 463, 463, 463, + 463, -666, 2548, -666, 1498, -666, 1359, -666, -666, 75, + 2548, 2144, 474, 495, 3185, -666, -666, 289, 273, 273, + 609, -666, -666, -666, -666, -666, -666, -666, -666, -666, + -666, -666, -666, -666, -666, -666, -666, -666, -666, -666, + -666, -666, -666, -666, -666, -666, -666, -666, -666, -666, + -666, -666, -666, -666, -666, -666, -666, 483, 481, -666, + -666, 273, 273, 273, 223, 86, 2043, -666, 2548, 504, + -666, -666, 419, -49, -44, 486, 3062, 75, 659, 75, + -666, -666, 659, -666, 659, -666, 659, 659, 659, 4334, + -666, 4399, 615, 507, 618, 620, -666, -666, 3820, -69, + 3820, -666, -666, -666, -666, 714, 497, 497, 497, 497, + 497, 306, 883, 2548, -666, -666, -666, 147, 516, -666, + 3820, 4006, 714, 3820, 501, -666, 3820, 3820, 167, 167, + 167, 498, -27, 167, 582, -666, 1609, 174, 2548, 2548, + 2548, 2548, 2548, 2548, 2548, 2548, 2548, 2548, 2548, 2548, + 2548, 2548, 2548, 2548, 2548, 2548, 2548, 2548, 2548, 2245, + 2548, 374, 635, 506, 582, 534, -666, -666, 463, 1498, + 523, 530, -666, -666, -666, -666, -666, -666, -666, -666, + -666, -666, -666, -666, -666, -666, -666, -666, -666, -666, + -666, -666, -666, -666, -666, -666, -666, -666, -666, -666, + -666, -666, -666, -666, -666, -666, -666, -666, -666, -666, + -666, -666, -666, -666, -666, -666, -666, -666, -666, -666, + -666, -666, -666, -666, -666, -666, -666, -666, -666, -666, + -666, -666, -666, -666, -666, -666, -666, -666, -666, -666, + -666, -666, -666, -666, -666, -666, -666, -666, -666, -666, + -666, -666, -666, -666, -666, -666, -666, -666, -666, -666, + -666, -666, -666, -666, -666, -666, -666, -666, -666, -666, + -666, -666, -666, -666, -666, -666, -666, -666, -666, -666, + -666, -666, -666, -666, -666, -666, -666, -666, -666, -666, + -666, 533, -666, 535, 541, -666, 2346, 273, -666, -666, + -666, -666, -666, 3029, 1498, 536, 289, -666, -666, 582, + -666, -666, -666, -666, -666, -666, -666, -666, -666, -666, + -666, 540, -666, 104, 543, -666, -666, -666, 497, 546, + 549, 560, 573, 584, 883, 883, 883, 883, 1720, 883, + 3236, -666, 571, 596, -666, 289, 578, 714, 174, 589, + 2548, 581, 592, 2548, -666, -666, -38, -666, -666, -666, + 2548, -666, 3274, 3357, 3574, 3574, 460, 460, 325, 325, + -666, 3152, 3395, 3410, 3440, 460, 460, 524, 524, 167, + 167, 167, -666, -666, 115, 1738, 595, -666, -38, 289, + 1498, 590, -666, 582, 1220, -666, -666, -666, 2144, 3185, + 594, -666, -666, -38, 614, 726, 622, 624, 1498, 3820, + 3820, 3820, 3820, 177, 177, 177, 177, 602, 118, 177, + 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, + 883, 883, 883, 883, 883, 883, 883, 883, 883, 2447, + 2548, -666, 289, -666, -666, 174, -666, 612, 607, -666, + 616, 167, -666, 619, 3185, 2548, -666, -666, -666, 1498, + -666, 625, 582, -38, -666, 617, 582, -666, 638, -666, + -666, 639, 640, 626, 645, 630, 883, -666, 801, 3425, + 3597, 3597, 514, 514, 475, 475, -666, 3219, 3478, 1955, + 3561, 636, 636, 177, 177, 177, -666, -666, 135, 2649, + -666, -666, 2548, -666, 2548, 11, 3185, 1498, 647, 582, + -38, -666, -38, 752, 582, -666, 651, -666, 655, 177, + 883, -666, -666, 143, 152, -666, 654, 656, 582, -38, + 657, -38, 2548, 2548, 3236, -666, -666, -666, 582, -38, + 673, 155, 156, -38, -666, -666, -666 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -698, -698, -221, -698, 247, -698, -698, 578, -698, -698, - -33, -99, -698, -698, -698, -54, -127, -698, -698, -698, - -84, -177, 570, -698, -698, -698, -698, -698, -698, -698, - -697, -698, -698, 320, -698, -698, -698, 324, 404, -355, - -698, -420, -698, 169, -499, -311, -553, -698, -504, -343, - -323, 88, -34, -103, 306, -191, 5, -77, -698, -22, - -698, -698, -698, 339, -18, -698, -319, -698, -698, 7, - 35, -698, -698, -698, -698, -24, 94, -698, -698, 266, - -698, 11, -698, -502, -98, -20, 175, 556, 153, -698, - -698, -396, 147, -368, -1 + -666, -666, -76, -666, 215, -666, -666, 555, -666, -666, + 159, -100, -666, -666, -666, -60, -142, -666, -666, -666, + -96, -194, 561, -666, -666, -666, -666, -666, -666, -666, + -665, -666, -666, 308, -666, -666, -666, 309, 384, -352, + -666, -424, -666, 157, -449, -272, -557, -666, -504, -385, + -133, -102, -45, -101, 291, -125, 73, -97, -666, -95, + -666, -666, -666, 322, -19, -666, -323, -666, -666, -23, + 101, -666, -666, -666, -666, -15, 3, -666, -666, 250, + -666, -12, -666, -412, -93, -34, 180, 0, -105, -666, + -666, -406, 500, -282, -1 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule which number is the opposite. If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -266 +#define YYTABLE_NINF -268 static const yytype_int16 yytable[] = { - 6, 235, 132, 838, 662, 337, 253, 116, 535, 397, - 679, 931, 669, 79, 183, 656, 184, 185, 285, 157, - 265, 266, 267, 268, 269, 117, 271, 272, 273, 426, - 657, 423, 255, 130, 993, 278, 279, 286, 709, 282, - 283, 484, 194, 195, 156, 714, 344, 620, 213, 214, - 994, 215, 217, 218, 285, 350, 222, 531, 123, 225, - 531, 131, 194, 195, 231, 232, 206, 234, 237, 503, - 241, 242, 534, 387, 537, 194, 195, 628, 630, 194, - 195, 194, 195, 194, 195, 260, 637, 256, 539, 118, - 168, 257, 541, 542, 543, 544, 545, 563, 564, 531, - 606, 607, 608, 609, 119, 638, 469, 285, 398, 470, - -248, 849, 403, -248, 680, 263, 258, 263, 263, 263, - 263, 263, 264, 263, 263, 263, 851, 903, 270, 715, - 120, 253, 263, 263, 442, -265, 263, 263, 462, 121, - 280, 281, 657, 617, 259, 641, 661, 427, 531, 615, - 422, 190, 208, 192, 193, 885, 946, 255, 197, 122, - 255, 309, 886, 643, 321, 391, 194, 195, 124, 255, - 650, 651, 652, 653, 654, 655, 902, 377, 705, 222, - 125, 531, 904, 331, 206, 126, 210, 483, 226, 1063, - 333, 133, 663, 180, 181, 182, 134, 712, 206, 206, - 206, 206, 206, 206, 168, 681, 324, 841, 207, 196, - 260, 50, 256, 260, 353, 256, 257, 546, 547, 257, - 209, 211, 260, 136, 256, 6, 710, 856, 257, 219, - 969, 858, 183, 859, 184, 860, 861, 862, 285, 1004, - 227, 258, 194, 195, 258, 190, 192, 193, 197, 240, - 166, 167, 135, 258, 198, 61, 634, 852, 199, 636, - 168, 622, 63, 285, 255, 432, 433, 434, 10, 259, - 11, 435, 259, 311, 263, 274, 137, 276, 277, 138, - 285, 259, 897, 190, 186, 190, 223, 315, 316, 317, - 318, 319, 320, 934, 194, 195, 451, 228, 200, 997, - 452, 224, 327, 177, 178, 179, 1049, 180, 181, 182, - 1051, 436, 531, 206, 229, 239, 420, 260, 431, 256, - 394, 230, 285, 257, 233, 285, 871, 285, 6, 402, - 285, 275, 6, 979, 980, 981, 314, 285, 321, 421, - 453, 1016, 284, 891, 1059, 531, 1072, 328, 258, 1073, - 887, 1067, 441, 201, 6, 1068, 1080, 175, 176, 177, - 178, 179, 285, 180, 181, 182, 437, 202, 334, 1076, - 335, 454, 203, 1, 2, 3, 259, 204, 1079, 336, - 438, 1081, 472, 473, 474, 439, 345, 338, 1006, 645, - 420, 528, 987, 340, 528, 455, 354, -80, 356, -80, - -80, -80, 390, 475, 347, 364, 365, 6, 351, 456, - 490, 491, 492, 366, 457, 346, 493, 362, 500, 458, - 553, 554, 327, 367, 532, 706, 285, 532, 943, 368, - 441, 711, 547, 528, 441, 441, 441, 441, 441, 369, - 612, 613, 707, 618, 552, 619, 612, 613, 560, 357, - 370, 358, 610, 611, 371, 234, 494, 837, 706, 616, - 372, 967, 968, 657, 872, 420, 532, 612, 613, 395, - 373, 969, 374, 612, 613, 845, 6, 666, 375, 6, - 531, 376, 528, 378, 706, 500, 379, 1040, 380, 381, - 132, 382, 500, 500, 500, 500, 500, 500, 659, 612, - 613, 929, 616, 676, 383, 399, 448, 624, 624, 624, - 846, 495, 396, 1002, 404, 528, 194, 195, 443, 405, - 357, 130, 358, 359, 360, 496, 406, 500, 675, 1010, - 497, 463, 464, 503, 465, 498, 616, 467, 468, 441, - 168, 631, 632, 633, -264, 477, 394, 478, 532, 131, - 481, 482, 488, 489, 263, 560, 327, 550, 41, 555, - 485, 533, 487, 540, 562, 531, 639, 986, 974, 975, - 976, 977, 978, 565, 979, 980, 981, 537, 642, 644, - 1047, 531, 566, 567, 568, 569, 570, 571, 572, 573, - 649, 139, 140, 141, 142, 667, 159, 664, 574, 670, - 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, - 585, 586, 394, 671, 678, 708, 547, 839, 840, 626, - 626, 626, 842, 843, 844, 850, 1065, 587, 661, 853, - 865, 890, 531, 866, 657, 867, 888, 175, 176, 177, - 178, 179, 659, 180, 181, 182, 528, 868, 500, 870, - 893, 588, 898, 896, 846, 969, 394, 930, 624, 935, - 616, 932, 624, 969, 624, 500, 624, 624, 624, 889, - 936, 939, 892, 938, 940, 894, 895, 900, 531, 528, - 616, 947, 944, 927, 948, 589, 949, 950, 590, 951, - 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, - 601, 448, 602, 603, 952, 953, 604, 900, 982, 983, - 985, 988, 532, 990, 991, 999, 287, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 1003, 310, 194, - 195, 1007, 312, 1015, 7, 8, 9, 10, 1008, 11, - 12, 13, 974, 975, 976, 977, 978, 448, 979, 980, - 981, 1009, 976, 977, 978, 1041, 979, 980, 981, 855, - 626, 857, 1042, 1043, 626, 1044, 626, 1050, 626, 626, - 626, 411, 412, 1048, 50, 1052, 1053, 873, 1054, 339, - 1055, 1056, 1066, 1069, 1070, 989, 945, 1074, 332, 194, - 195, 836, 1075, 874, 984, 1001, 1039, 342, 647, 884, - 552, 22, 869, 648, 528, 194, 195, 635, 486, 835, - 668, 46, 937, 47, 48, 49, 0, 27, 61, 0, - 0, 0, 53, 0, 622, 63, 875, 0, 623, 876, - 384, 385, 55, 32, 50, 0, 0, 532, 56, 57, - 58, 0, 900, 0, 0, 0, 0, 0, 0, 0, - 50, 959, 0, 0, 59, 60, 877, 0, 0, 0, - 878, 879, 0, 0, 880, 0, 881, 393, 64, 0, - 882, 65, 0, 66, 0, 0, 958, 0, 61, 500, - 616, 0, 263, 0, 622, 63, 0, 0, 627, 528, - 0, 0, 0, 0, 61, 0, 0, 430, 0, 0, - 622, 63, 0, 0, 629, 528, 450, 0, 0, 0, - 0, 0, 0, 0, 0, 963, 964, 965, 966, 967, - 968, 0, 532, 0, 0, 900, 0, 0, 0, 969, - 560, 0, 466, 0, 0, 0, 0, 0, 532, 162, - 163, 164, 165, 166, 167, 1011, 1012, 1013, 1014, 0, - 1037, 0, 0, 168, 0, 46, 528, 47, 48, 49, - 0, 0, 0, 0, 160, 161, 162, 163, 164, 165, - 166, 167, 0, 0, 0, 616, 313, 0, 0, 0, - 168, 0, 56, 191, 58, 0, 0, 0, 0, 532, - 0, 0, 900, 0, 0, 559, 900, 0, 59, 60, - 0, 0, 528, 0, 0, 0, 0, 0, 0, 0, - 0, 1061, 64, 1062, 0, 0, 621, 66, 0, 0, - 884, 884, 884, 884, 0, 884, 974, 975, 976, 977, - 978, 0, 979, 980, 981, 532, 0, 900, 0, 1077, - 1078, 900, 954, 955, 956, 957, 0, 960, 173, 174, - 175, 176, 177, 178, 179, 900, 180, 181, 182, 0, - 0, 0, 0, 0, 900, 0, 672, 673, 674, 0, - 677, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 0, 180, 181, 182, 0, 0, 0, 388, - 0, 0, 0, 393, 0, 0, 0, 0, 0, 0, - 0, 0, 559, 0, 884, 884, 884, 884, 884, 884, - 884, 884, 884, 884, 884, 884, 884, 884, 884, 884, - 884, 884, 884, 0, 411, 412, 1017, 1018, 1019, 1020, - 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, - 1031, 1032, 1033, 1034, 1035, 160, 161, 162, 163, 164, - 165, 166, 167, 0, 0, 81, 0, 847, 884, 393, - 0, 168, 0, 82, 46, 0, 47, 48, 49, 413, - 414, 0, 84, 85, 86, 53, 0, 0, 0, 0, - 1057, 1064, 212, 0, 0, 55, 0, 0, 92, 221, - 0, 56, 57, 58, 0, 0, 0, 97, 0, 0, - 0, 884, 98, 393, 0, 0, 0, 59, 60, 0, - 0, 0, 0, 0, 0, 103, 0, 104, 0, 415, - 0, 64, 0, 1071, 65, 0, 66, 0, 905, 906, - 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, - 917, 918, 919, 920, 921, 922, 923, 924, 925, 0, - 928, 0, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 178, 179, 0, 180, 181, 182, 0, 0, 0, - 998, 0, 0, 716, 717, 718, 719, 720, 721, 722, - 723, 724, 725, 0, 726, 727, 728, 729, 730, 731, - 732, 733, 734, 735, 736, 0, 0, 0, 0, 0, - 0, 737, 738, 739, 740, 741, 742, 743, 744, 745, - 746, 747, 748, 749, 750, 751, 752, 753, 0, 0, - 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, - 764, 765, 766, 767, 0, 768, 0, 769, 770, 771, - 772, 773, 774, 775, 776, 777, 778, 779, 780, 0, - 0, 0, 781, 782, 783, 0, 784, 785, 786, 787, - 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, - 0, 798, 799, 800, 801, 802, 803, 804, 805, 806, - 807, 808, 809, 810, 0, 0, 942, 811, 812, 813, - 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, - 824, 825, 826, 827, 828, 829, 830, 831, 1005, 832, - 833, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 6, 237, 41, 131, 844, 158, 186, 400, 540, 255, + 430, 133, 287, 257, 184, 258, 185, 675, 476, 477, + 478, 195, 196, 685, 195, 196, 267, 268, 269, 270, + 271, 288, 273, 274, 275, 140, 141, 142, 143, 479, + 160, 280, 281, 195, 196, 284, 285, 625, 1002, 938, + 544, 195, 196, 662, 546, 547, 548, 549, 550, 668, + 191, 287, 193, 194, 1003, 79, 207, 198, 663, 642, + 287, 633, 635, 427, 117, 287, 508, 195, 196, 539, + 390, 542, 195, 196, 313, 195, 196, 260, 643, 857, + 852, 259, 287, 715, 858, 262, 195, 196, 317, 318, + 319, 320, 321, 322, 568, 569, 118, 611, 612, 613, + 614, 904, 157, 184, 347, 185, 265, 241, 265, 265, + 265, 265, 265, 353, 265, 265, 265, 132, 686, 431, + 721, 489, 211, 265, 265, 255, 220, 265, 265, 257, + 720, 258, 257, 622, 258, 124, 647, 536, 311, 1075, + 536, 257, 340, 258, 667, 191, 193, 194, 198, 228, + 718, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 909, 312, 380, 207, 711, 314, 209, 536, + 335, 266, 620, 191, 953, 191, 119, 272, 169, 207, + 207, 207, 207, 207, 207, 356, 855, 326, 978, 282, + 283, 261, 329, 260, 393, 847, 260, 259, 893, 426, + 259, 262, 862, 955, 262, 260, 864, 6, 865, 259, + 866, 867, 868, 262, 287, 342, 669, 287, 911, 536, + 214, 215, 956, 216, 218, 219, 120, 257, 223, 258, + 121, 892, 227, 1006, 287, 401, 1027, 233, 234, 406, + 236, 239, 287, 243, 244, 360, 122, 361, 615, 616, + 716, 287, 536, 1071, 287, 287, 265, 473, 1013, 208, + 474, 1085, 446, 617, 618, 123, 387, 388, 199, 125, + 1086, 712, 200, 1095, 1096, 941, 910, 323, 394, 195, + 196, 455, 181, 182, 183, 456, 617, 618, 713, 126, + 435, 663, 988, 989, 990, 207, 360, 127, 361, 362, + 363, 260, 397, 396, -250, 259, 134, -250, 424, 262, + 6, 405, 201, 329, 6, -267, 488, 261, 466, 10, + 261, 11, 425, 135, 712, 457, 136, 1060, 137, 261, + 138, 1062, 551, 552, 434, 445, 169, 6, 649, 617, + 618, 851, 139, 454, 187, 656, 657, 658, 659, 660, + 661, 224, 223, 1, 2, 3, 333, 458, -82, 225, + -82, -82, -82, 226, 533, 558, 559, 533, 202, 470, + 230, 1015, 231, 651, 1079, 894, 349, 717, 552, 1081, + 687, 459, 203, 424, 536, 639, 232, 204, 641, 617, + 618, 6, 205, 1089, 235, 460, 636, 637, 638, 277, + 461, 316, 505, 1093, 286, 462, 533, 337, 537, 323, + 950, 537, 330, 623, 445, 624, 338, 536, 445, 445, + 445, 445, 445, 663, 879, 261, 339, 341, 557, 996, + 343, 350, 565, 564, 176, 177, 178, 179, 180, 365, + 181, 182, 183, 621, 354, 287, 376, 843, 369, 329, + 537, 672, 370, 371, 626, 372, 533, 384, 373, 424, + 6, 167, 168, 6, 399, 374, 195, 196, 375, 377, + 505, 169, 378, 379, 682, 712, 131, 505, 505, 505, + 505, 505, 505, 665, 133, 381, 978, 621, 382, 533, + 617, 618, 936, 383, 385, 386, 1011, 402, 407, 447, + 408, 409, 878, 410, 467, 678, 679, 680, 468, 683, + 469, 50, 505, 471, 1021, 976, 977, -266, 481, 898, + 472, 621, 482, 508, 445, 978, 1051, 485, 486, 487, + 493, 397, 396, 537, 494, 169, 538, 891, 545, 265, + 565, 564, 197, 436, 437, 438, 560, 555, 567, 439, + 644, 645, 536, 210, 212, 648, 61, 629, 629, 629, + 650, 655, 627, 63, 670, 1058, 628, 542, 673, 176, + 177, 178, 179, 180, 229, 181, 182, 183, 676, 677, + 552, 681, 684, 242, 983, 984, 985, 986, 987, 440, + 988, 989, 990, 845, 846, 714, 853, 397, 396, 848, + 132, 849, 850, 856, 859, 871, 897, 872, 873, 276, + 874, 278, 279, 1077, 663, 895, 903, 900, 905, 852, + 667, 533, 937, 983, 984, 985, 986, 987, 665, 988, + 989, 990, 236, 939, 505, 178, 179, 180, 536, 181, + 182, 183, 397, 396, 942, 441, 621, 978, 943, 195, + 196, 505, 945, 946, 533, 934, 536, 951, 954, 442, + 947, 957, 958, 907, 443, 959, 621, 960, 912, 913, + 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, + 924, 925, 926, 927, 928, 929, 930, 931, 932, 961, + 935, 962, 991, 907, 50, 992, 994, 997, 537, 999, + 1000, 875, 336, 877, 495, 496, 497, 536, 1012, 629, + 498, 1008, 1016, 629, 1017, 629, 1018, 629, 629, 629, + 1026, 348, 1019, 896, 1020, 1053, 899, 327, 1052, 901, + 902, 357, 1054, 359, 1066, 1055, 1061, 1063, 1068, 61, + 367, 368, 1080, 1059, 995, 627, 63, 985, 986, 987, + 499, 988, 989, 990, 842, 536, 334, 1064, 1065, 891, + 891, 891, 891, 1067, 891, 1078, 46, 1082, 47, 48, + 49, 1083, 1087, 1094, 1088, 1090, 952, 1010, 1050, 993, + 345, 653, 491, 654, 640, 944, 876, 998, 841, 533, + 674, 0, 0, 56, 192, 58, 557, 971, 972, 973, + 974, 975, 976, 977, 398, 0, 500, 0, 0, 0, + 59, 60, 978, 0, 0, 0, 0, 0, 0, 0, + 501, 0, 0, 0, 64, 502, 949, 0, 0, 66, + 503, 0, 0, 537, 968, 0, 0, 0, 907, 0, + 0, 0, 452, 0, 0, 891, 891, 891, 891, 891, + 891, 891, 891, 891, 891, 891, 891, 891, 891, 891, + 891, 891, 891, 891, 0, 0, 7, 8, 9, 10, + 0, 11, 12, 13, 0, 533, 505, 621, 217, 265, + 0, 195, 196, 1001, 0, 0, 0, 0, 0, 0, + 1004, 0, 0, 533, 0, 0, 0, 490, 0, 492, + 0, 891, 0, 0, 0, 980, 981, 982, 0, 880, + 983, 984, 985, 986, 987, 0, 988, 989, 990, 537, + 0, 81, 907, 0, 0, 881, 50, 565, 564, 82, + 195, 196, 0, 22, 0, 1048, 0, 537, 84, 85, + 86, 967, 0, 0, 533, 891, 0, 0, 213, 0, + 27, 0, 0, 0, 0, 93, 631, 631, 631, 882, + 0, 0, 883, 0, 98, 0, 32, 0, 0, 99, + 1049, 61, 0, 0, 621, 50, 0, 627, 63, 0, + 0, 632, 104, 0, 105, 1056, 0, 0, 537, 884, + 0, 907, 533, 885, 886, 907, 0, 887, 1073, 888, + 1074, 0, 0, 889, 0, 0, 0, 0, 0, 0, + 0, 0, 1022, 1023, 1024, 1025, 0, 0, 0, 0, + 61, 0, 0, 0, 0, 0, 627, 63, 1091, 1092, + 634, 0, 0, 0, 0, 0, 537, 0, 907, 452, + 0, 0, 0, 907, 963, 964, 965, 966, 0, 969, + 570, 0, 0, 0, 0, 0, 0, 907, 0, 571, + 572, 573, 574, 575, 576, 577, 578, 907, 0, 0, + 0, 0, 0, 0, 0, 579, 0, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 0, + 0, 0, 0, 0, 0, 452, 0, 0, 0, 0, + 0, 0, 0, 0, 592, 0, 0, 861, 631, 863, + 0, 0, 631, 0, 631, 0, 631, 631, 631, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 593, + 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, + 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 594, 0, 0, 595, 0, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 0, + 607, 608, 0, 0, 609, 0, 1069, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 992, 0, 0, 0, 0, 0, 0, 995, + 0, 0, 0, 722, 723, 724, 725, 726, 727, 728, + 729, 730, 731, 0, 732, 733, 734, 735, 736, 737, + 738, 739, 740, 741, 742, 0, 0, 0, 0, 0, + 1084, 743, 744, 745, 746, 747, 748, 749, 750, 751, + 752, 753, 754, 755, 756, 757, 758, 759, 0, 0, + 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, + 770, 771, 772, 773, 0, 774, 0, 775, 776, 777, + 778, 779, 780, 781, 782, 783, 784, 785, 786, 0, + 0, 0, 0, 787, 788, 789, 0, 790, 791, 792, + 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, + 803, 0, 804, 805, 806, 807, 808, 809, 810, 811, + 812, 813, 814, 815, 816, 0, 0, 0, 817, 818, + 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, + 829, 830, 831, 832, 833, 834, 835, 836, 837, 1014, + 838, 839, 722, 723, 724, 725, 726, 727, 728, 729, + 730, 731, 0, 732, 733, 734, 735, 736, 737, 738, + 739, 740, 741, 742, 0, 0, 0, 0, 0, 0, + 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, + 753, 754, 755, 756, 757, 758, 759, 0, 0, 760, + 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, + 771, 772, 773, 0, 774, 0, 775, 776, 777, 778, + 779, 780, 781, 782, 783, 784, 785, 786, 0, 0, + 0, 0, 787, 788, 789, 0, 790, 791, 792, 793, + 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, + 0, 804, 805, 806, 807, 808, 809, 810, 811, 812, + 813, 814, 815, 816, 0, 0, 0, 817, 818, 819, + 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, + 830, 831, 832, 833, 834, 835, 836, 837, 0, 838, + 839, 509, 510, 511, 10, 0, 11, 512, 513, 44, + 0, 0, 514, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 716, 717, 718, 719, 720, 721, - 722, 723, 724, 725, 0, 726, 727, 728, 729, 730, - 731, 732, 733, 734, 735, 736, 0, 559, 0, 0, - 0, 0, 737, 738, 739, 740, 741, 742, 743, 744, - 745, 746, 747, 748, 749, 750, 751, 752, 753, 0, - 0, 754, 755, 756, 757, 758, 759, 760, 761, 762, - 763, 764, 765, 766, 767, 0, 768, 1038, 769, 770, - 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, - 0, 0, 1045, 781, 782, 783, 0, 784, 785, 786, - 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, - 797, 0, 798, 799, 800, 801, 802, 803, 804, 805, - 806, 807, 808, 809, 810, 0, 0, 0, 811, 812, - 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, - 823, 824, 825, 826, 827, 828, 829, 830, 831, 0, - 832, 833, 504, 505, 506, 10, 0, 11, 507, 508, - 44, 0, 0, 509, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 160, 161, 162, 163, 164, 165, 166, 167, - 0, 0, 0, 0, 0, 510, 45, 0, 168, 46, - 0, 47, 48, 49, 50, 511, 0, 52, 0, 0, - 53, 512, 0, 0, 54, 0, 0, 0, 0, 513, - 55, 0, 0, 0, 0, 0, 56, 57, 58, 0, - 0, 0, 0, 514, 0, 515, 0, 0, 0, 0, - 516, 0, 59, 60, 517, 0, 0, 518, 61, 0, - 0, 519, 0, 0, 62, 63, 64, 0, 0, 65, - 0, 66, 504, 505, 506, 10, 0, 11, 507, 508, - 44, 0, 0, 901, 520, 0, 0, 0, 521, 0, - 0, 0, 522, 0, 523, 0, 0, 0, 524, 169, - 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, - 0, 180, 181, 182, 0, 510, 45, 1060, 0, 46, - 0, 47, 48, 49, 50, 511, 0, 52, 0, 0, - 53, 512, 0, 0, 54, 0, 0, 0, 0, 513, - 55, 0, 0, 0, 0, 0, 56, 57, 58, 0, - 0, 0, 0, 514, 0, 515, 0, 0, 0, 0, - 516, 0, 59, 60, 517, 0, 0, 518, 61, 0, - 0, 519, 0, 0, 62, 63, 64, 0, 0, 65, - 0, 66, 7, 8, 9, 10, 0, 11, 12, 13, - 143, 0, 0, 0, 520, 0, 0, 0, 521, 0, - 0, 0, 522, 0, 523, 0, 0, 0, 524, 0, - 0, 0, 160, 161, 162, 163, 164, 165, 166, 167, - 0, 0, 0, 0, 0, 15, 45, 0, 168, 144, - 0, 145, 146, 147, 50, 51, 0, 52, 0, 0, - 148, 21, 0, 0, 54, 0, 0, 0, 0, 22, - 149, 0, 0, 0, 0, 0, 150, 151, 58, 0, - 0, 0, 0, 26, 0, 27, 0, 0, 0, 0, - 0, 0, 152, 153, 30, 0, 0, 31, 61, 0, - 0, 32, 0, 0, 62, 63, 154, 0, 0, 65, - 0, 155, 504, 505, 506, 10, 0, 11, 507, 508, - 44, 0, 0, 0, 35, 0, 0, 0, 36, 37, - 0, 0, 38, 0, 39, 409, 0, 0, 40, 169, - 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, - 0, 180, 181, 182, 410, 510, 45, 0, 0, 46, - 0, 47, 48, 49, 50, 511, 0, 52, 0, 0, - 53, 512, 0, 0, 54, 0, 0, 0, 0, 513, - 55, 0, 0, 0, 0, 0, 56, 57, 58, 0, - 0, 0, 0, 514, 0, 515, 0, 0, 0, 0, - 516, 0, 59, 60, 517, 0, 0, 518, 61, 0, - 0, 519, 0, 0, 62, 63, 64, 0, 0, 65, - 0, 66, 7, 8, 9, 10, 0, 11, 12, 13, - 14, 0, 0, 0, 520, 0, 0, 0, 521, 0, - 0, 0, 522, 0, 523, 0, 0, 0, 524, 963, - 964, 965, 966, 967, 968, 0, 0, 0, 46, 0, - 47, 48, 49, 969, 0, 15, 0, 0, 0, 16, - 0, 17, 18, 19, 0, 0, 0, 0, 0, 0, - 20, 21, 0, 0, 0, 56, 191, 58, 0, 22, - 23, 0, 0, 0, 0, 0, 24, 25, 0, 0, - 0, 59, 60, 26, 0, 27, 0, 0, 0, 0, - 0, 0, 28, 29, 30, 64, 0, 31, 0, 0, - 66, 32, 7, 8, 9, 10, 33, 11, 12, 13, - 14, 34, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 133, 35, 0, 0, 0, 36, 37, - 0, 0, 38, 0, 39, 0, 308, 973, 40, 0, - 974, 975, 976, 977, 978, 15, 979, 980, 981, 16, - 0, 17, 18, 19, 0, 0, 0, 0, 0, 0, - 20, 21, 0, 0, 0, 0, 0, 0, 0, 22, - 23, 0, 0, 0, 0, 0, 24, 25, 0, 0, - 0, 0, 0, 26, 0, 27, 0, 0, 0, 0, - 0, 0, 28, 29, 30, 0, 0, 31, 0, 0, - 0, 32, 7, 8, 9, 10, 33, 11, 12, 13, - 14, 34, 0, 0, 0, 0, 449, 0, 0, 0, - 0, 0, 0, 0, 35, 0, 0, 0, 36, 37, - 0, 0, 38, 0, 39, 0, 0, 0, 40, 0, - 0, 0, 0, 0, 0, 15, 0, 0, 0, 16, - 0, 17, 18, 19, 0, 0, 0, 0, 0, 0, - 20, 21, 0, 0, 0, 0, 0, 0, 0, 22, - 23, 0, 0, 0, 0, 0, 24, 25, 0, 0, - 0, 0, 0, 26, 0, 27, 0, 0, 0, 0, - 0, 0, 28, 29, 30, 0, 0, 31, 0, 0, - 0, 32, 7, 8, 9, 10, 33, 11, 12, 13, - 14, 34, 0, 0, 0, 0, 556, 0, 0, 0, - 0, 0, 0, 0, 35, 0, 0, 0, 36, 37, - 0, 0, 38, 0, 39, 0, 0, 0, 40, 0, - 0, 0, 0, 0, 0, 15, 0, 0, 0, 16, - 0, 17, 18, 19, 0, 0, 0, 0, 0, 0, - 20, 21, 0, 0, 0, 0, 0, 0, 0, 22, - 23, 0, 0, 0, 0, 0, 24, 25, 0, 0, - 0, 0, 0, 26, 0, 27, 0, 0, 0, 0, - 0, 0, 28, 29, 30, 0, 0, 31, 0, 0, - 0, 32, 7, 8, 9, 10, 33, 11, 12, 13, - 14, 34, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 35, 0, 0, 0, 36, 37, - 0, 0, 38, 0, 39, 0, 926, 0, 40, 0, - 0, 0, 0, 0, 0, 15, 0, 0, 0, 16, - 0, 17, 18, 19, 0, 0, 0, 0, 0, 0, - 20, 21, 0, 0, 0, 0, 0, 0, 0, 22, - 23, 0, 0, 0, 0, 0, 24, 25, 0, 0, - 0, 0, 0, 26, 0, 27, 0, 0, 0, 0, - 0, 0, 28, 29, 30, 0, 0, 31, 0, 0, - 0, 32, 7, 8, 9, 10, 33, 11, 12, 13, - 14, 34, 0, 0, 0, 0, 941, 0, 0, 0, - 0, 0, 0, 0, 35, 0, 0, 0, 36, 37, - 0, 0, 38, 0, 39, 0, 0, 0, 40, 0, - 0, 0, 0, 0, 0, 15, 0, 0, 0, 16, - 0, 17, 18, 19, 0, 0, 0, 0, 0, 0, - 20, 21, 0, 0, 0, 0, 0, 0, 0, 22, - 23, 0, 0, 0, 0, 0, 24, 25, 0, 0, - 0, 0, 0, 26, 0, 27, 0, 0, 0, 0, - 0, 0, 28, 29, 30, 0, 0, 31, 0, 0, - 0, 32, 7, 8, 9, 10, 33, 11, 12, 13, - 14, 34, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 35, 0, 0, 0, 36, 37, - 0, 0, 38, 0, 39, 0, 1036, 0, 40, 0, - 0, 0, 0, 0, 0, 15, 0, 0, 0, 16, - 0, 17, 18, 19, 0, 0, 0, 0, 0, 0, - 20, 21, 0, 0, 0, 0, 0, 0, 0, 22, - 23, 0, 243, 244, 0, 0, 24, 25, 0, 0, - 0, 0, 0, 26, 0, 27, 0, 0, 0, 0, - 0, 0, 28, 29, 30, 0, 0, 31, 0, 0, - 0, 32, 0, 0, 0, 0, 33, 0, 0, 245, - 0, 34, 46, 0, 47, 48, 49, 50, 246, 0, - 247, 0, 0, 53, 35, 0, 0, 54, 36, 37, - 0, 0, 38, 55, 39, 0, 0, 0, 40, 56, - 57, 58, 0, 243, 244, 0, 0, 0, 0, 248, - 0, 0, 0, 0, 0, 59, 60, 0, 0, 0, - 0, 61, 0, 0, 0, 0, 0, 249, 63, 64, - 0, 0, 65, 46, 66, 47, 48, 49, 0, 250, - 245, 0, 0, 46, 0, 47, 48, 49, 50, 246, - 0, 247, 0, 0, 53, 251, 0, 0, 54, 0, - 56, 191, 58, 0, 55, 0, 0, 243, 244, 0, - 56, 57, 58, 0, 0, 0, 59, 60, 0, 0, - 248, 0, 0, 0, 0, 0, 59, 60, 0, 0, - 64, 0, 61, 0, 0, 66, 0, 0, 249, 63, - 64, 0, 0, 65, 245, 66, 0, 46, 0, 47, - 48, 49, 50, 341, 0, 247, 0, 0, 53, 0, - 0, 0, 54, 0, 0, 0, 251, 0, 55, 0, - 0, 0, 0, 0, 56, 57, 58, 0, 0, 0, - 0, 0, 0, 0, 248, 0, 0, 0, 0, 0, - 59, 60, 0, 0, 0, 0, 61, 0, 0, 0, - 0, 0, 249, 63, 64, 0, 0, 65, 0, 66, - 160, 161, 162, 163, 164, 165, 166, 167, 0, 0, - 0, 0, 0, 0, 0, 0, 168, 0, 0, 0, - 251, 160, 161, 162, 163, 164, 165, 166, 167, 0, - 0, 0, 0, 0, 0, 0, 0, 168, 0, 160, - 161, 162, 163, 164, 165, 166, 167, 0, 0, 0, - 0, 0, 0, 0, 0, 168, 0, 160, 161, 162, - 163, 164, 165, 166, 167, 0, 0, 0, 0, 0, - 0, 0, 0, 168, 0, 0, 160, 161, 162, 163, - 164, 165, 166, 167, 0, 0, 0, 0, 0, 0, - 0, 0, 168, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 169, 170, 171, - 172, 173, 174, 175, 176, 177, 178, 179, 0, 180, - 181, 182, 389, 0, 0, 0, 0, 0, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 0, - 180, 181, 182, 538, 386, 0, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 0, 180, 181, - 182, 561, 0, 0, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 0, 180, 181, 182, 854, - 0, 0, 0, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 0, 180, 181, 182, 160, 161, - 162, 163, 164, 165, 166, 167, 0, 0, 0, 0, - 0, 0, 0, 0, 168, 160, 161, 162, 163, 164, - 165, 166, 167, 0, 0, 0, 0, 0, 0, 0, - 0, 168, 682, 683, 684, 685, 686, 687, 688, 689, - 0, 0, 0, 0, 0, 0, 0, 0, 690, 961, - 962, 963, 964, 965, 966, 967, 968, 0, 0, 0, - 0, 0, 0, 0, 0, 969, 961, 962, 963, 964, - 965, 966, 967, 968, 0, 0, 0, 0, 0, 0, - 0, 0, 969, 161, 162, 163, 164, 165, 166, 167, - 0, 0, 0, 0, 0, 0, 0, 0, 168, 0, - 0, 0, 0, 996, 0, 169, 170, 171, 172, 173, - 174, 175, 176, 177, 178, 179, 0, 180, 181, 182, - 0, 0, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 178, 179, 0, 180, 181, 182, 0, 0, 691, - 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, - 0, 702, 703, 704, 1058, 0, 970, 971, 972, 973, - 0, 0, 974, 975, 976, 977, 978, -2, 979, 980, - 981, 0, 0, 970, 971, 972, 973, 0, 0, 974, - 975, 976, 977, 978, 0, 979, 980, 981, 0, 0, - 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, - 0, 180, 181, 182, 962, 963, 964, 965, 966, 967, - 968, 0, 0, 0, 0, 80, 81, 0, 0, 969, - 0, 0, 0, 0, 82, 0, 0, 0, 0, 0, - 0, 83, 0, 84, 85, 86, 87, 0, 0, 88, - 0, 0, 0, 89, 0, 0, 0, 90, 91, 92, - 93, 0, 0, 0, 0, 94, 95, 96, 97, 0, - 0, 0, 0, 98, 99, 0, 0, 100, 0, 0, - 0, 101, 0, 0, 0, 102, 103, 0, 104, 162, - 163, 164, 165, 166, 167, 0, 105, 0, 0, 0, - 0, 0, 0, 168, 162, 163, 164, 165, 166, 167, - 0, 0, 0, 0, 0, 0, 0, 0, 168, 0, - 0, 971, 972, 973, 0, 0, 974, 975, 976, 977, - 978, 0, 979, 980, 981, 162, 163, 164, 165, 166, - 167, 0, 0, 0, 0, 0, 0, 0, 0, 168, - 963, 964, 965, 966, 967, 968, 0, 0, 0, 0, - 0, 0, 0, 0, 969, 963, 964, 965, 966, 967, - 968, 0, 0, 0, 0, 0, 0, 0, 0, 969, - 164, 165, 166, 167, 0, 0, 0, 0, 0, 0, - 0, 0, 168, 0, 0, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 0, 180, 181, 182, 0, - 0, 171, 172, 173, 174, 175, 176, 177, 178, 179, - 0, 180, 181, 182, 965, 966, 967, 968, 0, 0, - 0, 0, 0, 0, 0, 0, 969, 0, 0, 0, - 0, 0, 0, 172, 173, 174, 175, 176, 177, 178, - 179, 0, 180, 181, 182, 0, 971, 972, 973, 0, - 0, 974, 975, 976, 977, 978, 0, 979, 980, 981, - 0, 0, 972, 973, 0, 0, 974, 975, 976, 977, - 978, 0, 979, 980, 981, 0, 0, 173, 174, 175, - 176, 177, 178, 179, 0, 180, 181, 182, 0, 216, - 0, 46, 0, 47, 48, 49, 0, 0, 0, 0, - 0, 0, 127, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 56, 191, - 58, 0, 0, 974, 975, 976, 977, 978, 0, 979, - 980, 981, 81, 0, 59, 60, 0, 0, 348, 349, - 82, 46, 0, 47, 48, 49, 50, 0, 64, 84, - 85, 86, 53, 66, 0, 0, 54, 0, 0, 212, - 0, 0, 55, 0, 0, 92, 0, 0, 56, 57, - 58, 0, 0, 0, 97, 245, 134, 0, 46, 98, - 47, 48, 49, 50, 59, 60, 247, 0, 0, 53, - 61, 0, 103, 54, 104, 0, 128, 63, 64, 55, - 44, 65, 0, 66, 0, 56, 57, 58, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 59, 60, 0, 0, 0, 0, 61, 46, 0, - 47, 48, 49, 249, 63, 64, 45, 0, 65, 46, - 66, 47, 48, 49, 50, 51, 0, 52, 0, 0, - 53, 0, 0, 0, 54, 56, 191, 58, 0, 0, - 55, 44, 0, 0, 0, 0, 56, 57, 58, 0, - 0, 59, 60, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 59, 60, 0, 64, 0, 0, 61, 0, - 66, 0, 0, 0, 62, 63, 64, 45, 44, 65, - 46, 66, 47, 48, 49, 50, 352, 0, 52, 0, - 0, 53, 0, 137, 0, 54, 0, 0, 0, 0, - 0, 55, 0, 0, 0, 0, 0, 56, 57, 58, - 0, 0, 0, 0, 45, 0, 0, 46, 0, 47, - 48, 49, 50, 59, 60, 52, 0, 0, 53, 61, - 0, 0, 54, 0, 0, 62, 63, 64, 55, 44, - 65, 0, 66, 0, 56, 57, 58, 0, 0, 325, - 0, 0, 0, 0, 0, 0, 0, 0, 665, 0, - 59, 60, 0, 0, 0, 0, 61, 0, 0, 0, - 0, 0, 62, 63, 64, 45, 0, 65, 46, 66, - 47, 48, 49, 50, 0, 0, 52, 0, 46, 53, - 47, 48, 49, 54, 0, 0, 0, 0, 0, 55, + 0, 161, 162, 163, 164, 165, 166, 167, 168, 0, + 0, 0, 0, 0, 515, 45, 0, 169, 46, 0, + 47, 48, 49, 50, 516, 1076, 52, 0, 0, 53, + 517, 0, 0, 54, 0, 0, 0, 0, 518, 55, 0, 0, 0, 0, 0, 56, 57, 58, 0, 0, - 0, 0, 0, 0, 0, 56, 191, 58, 0, 0, - 0, 59, 60, 0, 0, 0, 0, 61, 80, 81, - 0, 59, 60, 62, 63, 64, 0, 82, 65, 0, - 66, 0, 0, 0, 83, 64, 84, 85, 86, 87, - 66, 0, 88, 0, 0, 0, 89, 0, 0, 0, - 90, 91, 92, 93, 0, 0, 0, 0, 94, 95, - 96, 97, 0, 0, 80, 81, 98, 99, 0, 0, - 100, 0, 0, 82, 101, 0, 0, 0, 102, 103, - 83, 104, 84, 85, 86, 87, 0, 0, 88, 105, - 0, 0, 89, 0, 0, 0, 90, 91, 92, 93, - 0, 0, 0, 0, 94, 95, 96, 97, 407, 0, - 80, 81, 98, 99, 0, 0, 100, 0, 0, 82, - 101, 0, 0, 0, 102, 103, 83, 104, 84, 85, - 86, 87, 0, 0, 88, 105, 0, 0, 89, 0, - 0, 0, 90, 91, 92, 93, 0, 0, 0, 0, - 94, 95, 96, 97, 471, 0, 80, 81, 98, 99, - 0, 0, 100, 0, 0, 82, 101, 0, 0, 0, - 102, 103, 83, 104, 84, 85, 86, 87, 0, 0, - 88, 105, 0, 0, 89, 0, 0, 0, 90, 91, - 92, 93, 0, 0, 0, 0, 94, 95, 96, 97, - 479, 0, 80, 81, 98, 99, 0, 0, 100, 0, - 0, 82, 101, 0, 0, 0, 102, 103, 83, 104, - 84, 85, 86, 87, 0, 0, 88, 105, 0, 0, - 89, 0, 0, 0, 90, 91, 92, 93, 0, 0, - 0, 0, 94, 95, 96, 97, 548, 0, 80, 81, - 98, 99, 0, 0, 100, 0, 0, 82, 101, 0, - 0, 0, 102, 103, 83, 104, 84, 85, 86, 87, - 0, 0, 88, 105, 0, 0, 89, 0, 0, 0, - 90, 91, 92, 93, 0, 0, 0, 0, 94, 95, - 96, 97, 640, 0, 80, 81, 98, 99, 0, 0, - 100, 0, 0, 82, 101, 0, 0, 0, 102, 103, - 83, 104, 84, 85, 86, 87, 0, 0, 88, 105, - 0, 0, 89, 0, 0, 0, 90, 91, 92, 93, - 0, 0, 0, 0, 94, 95, 96, 97, 863, 0, - 0, 0, 98, 99, 0, 46, 100, 47, 48, 49, - 101, 0, 81, 0, 102, 103, 187, 104, 0, 0, - 82, 0, 0, 0, 0, 105, 188, 0, 0, 84, - 85, 86, 56, 189, 58, 0, 0, 0, 0, 212, - 0, 0, 0, 0, 864, 92, 0, 0, 59, 60, - 0, 0, 0, 0, 97, 0, 0, 0, 0, 98, - 80, 81, 64, 0, 0, 0, 0, 66, 0, 82, - 0, 0, 103, 0, 104, 0, 83, 0, 84, 85, - 86, 87, 0, 0, 88, 0, 0, 0, 89, -127, - 126, 0, 90, 91, 92, 93, 0, 0, 0, 0, - 94, 95, 96, 97, 0, 0, 0, 0, 98, 99, - 0, 46, 100, 47, 48, 49, 101, 0, 81, 0, - 102, 103, 187, 104, 0, 81, 82, 0, 0, 0, - 0, 0, 188, 82, 0, 84, 85, 86, 56, 189, - 58, 0, 84, 85, 86, 212, 0, 0, 0, 0, - 0, 92, 212, 0, 59, 60, 0, 0, 92, 0, - 97, 0, 0, 0, 0, 98, 0, 97, 64, 100, - 0, 0, 98, 66, 0, 0, 0, 0, 103, 0, - 104, 0, 0, 0, 0, 103, 0, 104 + 0, 0, 0, 519, 0, 520, 0, 0, 0, 0, + 521, 0, 59, 60, 522, 0, 0, 523, 61, 0, + 0, 524, 0, 0, 62, 63, 64, 0, 0, 65, + 0, 66, 509, 510, 511, 10, 0, 11, 512, 513, + 44, 0, 0, 908, 525, 0, 0, 0, 526, 0, + 0, 0, 527, 0, 528, 0, 0, 0, 529, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 0, 181, 182, 183, 0, 515, 45, 391, 0, 46, + 0, 47, 48, 49, 50, 516, 0, 52, 0, 0, + 53, 517, 0, 0, 54, 0, 0, 0, 0, 518, + 55, 0, 0, 0, 0, 0, 56, 57, 58, 0, + 0, 0, 0, 0, 519, 0, 520, 0, 0, 0, + 0, 521, 0, 59, 60, 522, 0, 0, 523, 61, + 0, 0, 524, 0, 0, 62, 63, 64, 0, 0, + 65, 0, 66, 7, 8, 9, 10, 0, 11, 12, + 13, 144, 0, 0, 0, 525, 0, 0, 0, 526, + 0, 0, 0, 527, 0, 528, 0, 0, 0, 529, + 0, 0, 0, 161, 162, 163, 164, 165, 166, 167, + 168, 0, 0, 0, 0, 0, 15, 45, 0, 169, + 145, 0, 146, 147, 148, 50, 51, 0, 52, 0, + 0, 149, 21, 0, 0, 54, 0, 0, 0, 0, + 22, 150, 0, 0, 0, 0, 0, 151, 152, 58, + 0, 0, 0, 0, 0, 26, 0, 27, 0, 0, + 0, 0, 0, 0, 153, 154, 30, 0, 0, 31, + 61, 0, 0, 32, 0, 0, 62, 63, 155, 0, + 0, 65, 0, 156, 509, 510, 511, 10, 0, 11, + 512, 513, 44, 0, 0, 0, 35, 0, 0, 0, + 36, 37, 0, 0, 38, 0, 39, 0, 0, 0, + 40, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 0, 181, 182, 183, 0, 515, 45, 1007, + 0, 46, 0, 47, 48, 49, 50, 516, 0, 52, + 0, 0, 53, 517, 0, 0, 54, 0, 0, 0, + 0, 518, 55, 0, 0, 0, 0, 0, 56, 57, + 58, 0, 0, 0, 0, 0, 519, 0, 520, 0, + 0, 0, 0, 521, 0, 59, 60, 522, 0, 0, + 523, 61, 0, 0, 524, 0, 0, 62, 63, 64, + 0, 0, 65, 0, 66, 7, 8, 9, 10, 0, + 11, 12, 13, 14, 0, 0, 0, 525, 0, 0, + 0, 526, 0, 0, 0, 527, 0, 528, 0, 0, + 0, 529, 972, 973, 974, 975, 976, 977, 0, 0, + 0, 46, 0, 47, 48, 49, 978, 0, 15, 0, + 0, 0, 16, 0, 17, 18, 19, 0, 0, 0, + 0, 0, 0, 20, 21, 0, 0, 0, 56, 192, + 58, 0, 22, 23, 0, 0, 0, 0, 0, 24, + 25, 0, 0, 0, 0, 59, 60, 26, 0, 27, + 0, 0, 0, 0, 0, 0, 28, 29, 30, 64, + 0, 31, 0, 0, 66, 32, 7, 8, 9, 10, + 33, 11, 12, 13, 14, 34, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 134, 35, 0, + 0, 0, 36, 37, 0, 0, 38, 0, 39, 0, + 310, 982, 40, 0, 983, 984, 985, 986, 987, 15, + 988, 989, 990, 16, 0, 17, 18, 19, 0, 0, + 0, 0, 0, 0, 20, 21, 0, 0, 0, 0, + 0, 0, 0, 22, 23, 0, 0, 0, 0, 0, + 24, 25, 0, 0, 0, 0, 0, 0, 26, 0, + 27, 0, 0, 0, 0, 0, 0, 28, 29, 30, + 0, 0, 31, 0, 0, 0, 32, 7, 8, 9, + 10, 33, 11, 12, 13, 14, 34, 0, 0, 0, + 0, 453, 0, 0, 0, 0, 0, 0, 0, 35, + 0, 0, 0, 36, 37, 0, 0, 38, 0, 39, + 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, + 15, 0, 0, 0, 16, 0, 17, 18, 19, 0, + 0, 0, 0, 0, 0, 20, 21, 0, 0, 0, + 0, 0, 0, 0, 22, 23, 0, 0, 0, 0, + 0, 24, 25, 0, 0, 0, 0, 0, 0, 26, + 0, 27, 0, 0, 0, 0, 0, 0, 28, 29, + 30, 0, 0, 31, 0, 0, 0, 32, 7, 8, + 9, 10, 33, 11, 12, 13, 14, 34, 0, 0, + 0, 0, 561, 0, 0, 0, 0, 0, 0, 0, + 35, 0, 0, 0, 36, 37, 0, 0, 38, 0, + 39, 0, 0, 0, 40, 0, 0, 0, 0, 0, + 0, 15, 0, 0, 0, 16, 0, 17, 18, 19, + 0, 0, 0, 0, 0, 0, 20, 21, 0, 0, + 0, 0, 0, 0, 0, 22, 23, 0, 0, 0, + 0, 0, 24, 25, 0, 0, 0, 0, 0, 0, + 26, 0, 27, 0, 0, 0, 0, 0, 0, 28, + 29, 30, 0, 0, 31, 0, 0, 0, 32, 7, + 8, 9, 10, 33, 11, 12, 13, 14, 34, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 35, 0, 0, 0, 36, 37, 0, 0, 38, + 0, 39, 0, 933, 0, 40, 0, 0, 0, 0, + 0, 0, 15, 0, 0, 0, 16, 0, 17, 18, + 19, 0, 0, 0, 0, 0, 0, 20, 21, 0, + 0, 0, 0, 0, 0, 0, 22, 23, 0, 0, + 0, 0, 0, 24, 25, 0, 0, 0, 0, 0, + 0, 26, 0, 27, 0, 0, 0, 0, 0, 0, + 28, 29, 30, 0, 0, 31, 0, 0, 0, 32, + 7, 8, 9, 10, 33, 11, 12, 13, 14, 34, + 0, 0, 0, 0, 948, 0, 0, 0, 0, 0, + 0, 0, 35, 0, 0, 0, 36, 37, 0, 0, + 38, 0, 39, 0, 0, 0, 40, 0, 0, 0, + 0, 0, 0, 15, 0, 0, 0, 16, 0, 17, + 18, 19, 0, 0, 0, 0, 0, 0, 20, 21, + 0, 0, 0, 0, 0, 0, 0, 22, 23, 0, + 0, 0, 0, 0, 24, 25, 0, 0, 0, 0, + 0, 0, 26, 0, 27, 0, 0, 0, 0, 0, + 0, 28, 29, 30, 0, 0, 31, 0, 0, 0, + 32, 7, 8, 9, 10, 33, 11, 12, 13, 14, + 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 35, 0, 0, 0, 36, 37, 0, + 0, 38, 0, 39, 0, 1047, 0, 40, 0, 81, + 0, 0, 0, 0, 15, 0, 0, 82, 16, 0, + 17, 18, 19, 0, 0, 0, 84, 85, 86, 20, + 21, 0, 81, 0, 0, 0, 213, 0, 22, 23, + 82, 0, 0, 93, 222, 24, 25, 0, -2, 84, + 85, 86, 98, 26, 0, 27, 0, 99, 0, 213, + 0, 0, 28, 29, 30, 0, 93, 31, 0, 0, + 104, 32, 105, 0, 0, 98, 33, 0, 0, 0, + 99, 34, 0, 0, 161, 162, 163, 164, 165, 166, + 167, 168, 0, 104, 35, 105, 80, 81, 36, 37, + 169, 0, 38, 0, 39, 82, 0, 0, 40, 0, + -129, 0, 83, 0, 84, 85, 86, 87, 0, 0, + 88, 0, 0, 0, 89, 0, 0, 0, 90, 91, + 92, 93, 94, 0, 0, 0, 0, 95, 96, 97, + 98, 0, 0, 0, 0, 99, 100, 0, 0, 101, + 0, 0, 0, 102, 0, 0, 0, 103, 104, 0, + 105, 0, 0, 0, 0, 0, 0, 0, 106, 0, + 0, 245, 246, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 0, 181, 182, 183, 0, 247, 0, + 1072, 46, 0, 47, 48, 49, 50, 248, 0, 249, + 0, 0, 53, 0, 0, 0, 54, 0, 0, 0, + 0, 0, 55, 0, 0, 0, 0, 0, 56, 57, + 58, 245, 246, 0, 0, 0, 0, 0, 0, 250, + 0, 0, 0, 0, 0, 59, 60, 0, 0, 0, + 0, 61, 0, 0, 0, 0, 0, 251, 63, 64, + 0, 0, 65, 0, 66, 0, 0, 0, 247, 252, + 0, 46, 0, 47, 48, 49, 50, 248, 0, 249, + 0, 0, 53, 0, 0, 253, 54, 0, 0, 0, + 0, 0, 55, 245, 246, 0, 0, 0, 56, 57, + 58, 0, 0, 0, 0, 0, 0, 0, 0, 250, + 0, 0, 0, 0, 0, 59, 60, 0, 0, 0, + 0, 61, 0, 0, 0, 0, 0, 251, 63, 64, + 247, 0, 65, 46, 66, 47, 48, 49, 50, 344, + 0, 249, 0, 0, 53, 0, 0, 0, 54, 0, + 0, 0, 0, 0, 55, 253, 0, 0, 0, 0, + 56, 57, 58, 161, 162, 163, 164, 165, 166, 167, + 168, 250, 0, 0, 0, 0, 0, 59, 60, 169, + 0, 0, 0, 61, 0, 0, 0, 0, 0, 251, + 63, 64, 0, 0, 65, 0, 66, 161, 162, 163, + 164, 165, 166, 167, 168, 0, 0, 0, 0, 0, + 0, 0, 0, 169, 0, 0, 0, 253, 161, 162, + 163, 164, 165, 166, 167, 168, 0, 0, 0, 0, + 0, 0, 0, 0, 169, 0, 161, 162, 163, 164, + 165, 166, 167, 168, 0, 0, 0, 0, 0, 0, + 0, 0, 169, 0, 161, 162, 163, 164, 165, 166, + 167, 168, 0, 0, 0, 0, 0, 413, 0, 0, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 0, 181, 182, 183, 414, 161, 162, 163, + 164, 165, 166, 167, 168, 0, 0, 0, 0, 0, + 0, 0, 0, 169, 0, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 0, 181, 182, 183, + 392, 0, 0, 0, 0, 0, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 0, 181, 182, + 183, 543, 389, 0, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 0, 181, 182, 183, 566, + 0, 0, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 0, 181, 182, 183, 161, 162, 163, + 164, 165, 166, 167, 168, 0, 0, 0, 0, 0, + 0, 860, 0, 169, 0, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 0, 181, 182, 183, + 161, 162, 163, 164, 165, 166, 167, 168, 0, 0, + 0, 0, 0, 0, 0, 0, 169, 688, 689, 690, + 691, 692, 693, 694, 695, 0, 0, 0, 0, 0, + 0, 0, 0, 696, 970, 971, 972, 973, 974, 975, + 976, 977, 0, 0, 0, 0, 0, 0, 0, 0, + 978, 970, 971, 972, 973, 974, 975, 976, 977, 0, + 0, 0, 0, 0, 0, 0, 0, 978, 0, 0, + 0, 0, 0, 1005, 0, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 0, 181, 182, 183, + 162, 163, 164, 165, 166, 167, 168, 0, 0, 0, + 0, 0, 0, 0, 0, 169, 0, 0, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 0, + 181, 182, 183, 0, 0, 697, 698, 699, 700, 701, + 702, 703, 704, 705, 706, 707, 0, 708, 709, 710, + 1070, 0, 979, 980, 981, 982, 0, 0, 983, 984, + 985, 986, 987, 0, 988, 989, 990, 0, 0, 979, + 980, 981, 982, 0, 0, 983, 984, 985, 986, 987, + 0, 988, 989, 990, 163, 164, 165, 166, 167, 168, + 0, 0, 0, 0, 0, 0, 0, 0, 169, 0, + 0, 46, 0, 47, 48, 49, 0, 0, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 0, 181, + 182, 183, 163, 164, 165, 166, 167, 168, 56, 192, + 58, 0, 0, 0, 0, 0, 169, 163, 164, 165, + 166, 167, 168, 0, 0, 59, 60, 0, 0, 0, + 0, 169, 972, 973, 974, 975, 976, 977, 0, 64, + 0, 0, 0, 0, 66, 0, 978, 163, 164, 165, + 166, 167, 168, 0, 0, 0, 0, 0, 0, 0, + 0, 169, 0, 0, 0, 0, 0, 135, 0, 0, + 0, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 0, 181, 182, 183, 972, 973, 974, 975, 976, + 977, 0, 0, 0, 0, 0, 0, 0, 0, 978, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 0, + 181, 182, 183, 0, 0, 0, 173, 174, 175, 176, + 177, 178, 179, 180, 0, 181, 182, 183, 0, 980, + 981, 982, 0, 0, 983, 984, 985, 986, 987, 0, + 988, 989, 990, 0, 0, 0, 0, 174, 175, 176, + 177, 178, 179, 180, 0, 181, 182, 183, 972, 973, + 974, 975, 976, 977, 0, 0, 0, 0, 0, 0, + 0, 0, 978, 165, 166, 167, 168, 0, 0, 0, + 0, 0, 0, 981, 982, 169, 0, 983, 984, 985, + 986, 987, 0, 988, 989, 990, 974, 975, 976, 977, + 0, 0, 0, 80, 81, 0, 0, 0, 978, 0, + 0, 0, 82, 0, 0, 0, 0, 0, 0, 83, + 0, 84, 85, 86, 87, 0, 0, 88, 0, 0, + 0, 89, 0, 0, 0, 90, 91, 92, 93, 94, + 0, 0, 0, 0, 95, 96, 97, 98, 0, 0, + 0, 0, 99, 100, 0, 0, 101, 0, 0, 0, + 102, 0, 0, 0, 103, 104, 0, 105, 0, 0, + 983, 984, 985, 986, 987, 106, 988, 989, 990, 351, + 352, 174, 175, 176, 177, 178, 179, 180, 0, 181, + 182, 183, 0, 0, 411, 0, 0, 0, 0, 415, + 416, 0, 0, 0, 0, 0, 983, 984, 985, 986, + 987, 0, 988, 989, 990, 0, 247, 0, 0, 46, + 0, 47, 48, 49, 50, 0, 0, 249, 0, 46, + 53, 47, 48, 49, 54, 0, 0, 0, 0, 46, + 55, 47, 48, 49, 417, 418, 56, 57, 58, 0, + 53, 0, 0, 0, 0, 0, 56, 192, 58, 0, + 55, 415, 416, 59, 60, 0, 56, 57, 58, 61, + 0, 0, 0, 59, 60, 251, 63, 64, 0, 0, + 65, 0, 66, 59, 60, 0, 0, 64, 0, 0, + 0, 0, 66, 0, 0, 419, 0, 64, 0, 0, + 65, 46, 66, 47, 48, 49, 0, 0, 0, 0, + 0, 44, 53, 0, 0, 138, 0, 0, 0, 0, + 0, 0, 55, 0, 0, 0, 0, 0, 56, 57, + 58, 0, 0, 0, 0, 0, 0, 0, 0, 46, + 0, 47, 48, 49, 0, 59, 60, 45, 0, 0, + 46, 0, 47, 48, 49, 50, 51, 0, 52, 64, + 315, 53, 65, 0, 66, 54, 56, 192, 58, 0, + 0, 55, 0, 44, 0, 0, 0, 56, 57, 58, + 0, 0, 0, 59, 60, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 59, 60, 0, 64, 0, 0, + 61, 46, 66, 47, 48, 49, 62, 63, 64, 45, + 0, 65, 46, 66, 47, 48, 49, 50, 355, 0, + 52, 0, 0, 53, 0, 0, 0, 54, 56, 192, + 58, 0, 0, 55, 0, 44, 0, 0, 0, 56, + 57, 58, 0, 0, 0, 59, 60, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 59, 60, 0, 64, + 0, 0, 61, 0, 66, 0, 0, 0, 62, 63, + 64, 45, 0, 65, 46, 66, 47, 48, 49, 50, + 0, 0, 52, 0, 0, 53, 0, 0, 0, 54, + 0, 0, 0, 0, 0, 55, 0, 44, 0, 0, + 0, 56, 57, 58, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 671, 128, 59, 60, + 0, 0, 0, 0, 61, 0, 0, 0, 0, 0, + 62, 63, 64, 45, 0, 65, 46, 66, 47, 48, + 49, 50, 0, 0, 52, 0, 0, 53, 0, 0, + 0, 54, 0, 0, 0, 0, 46, 55, 47, 48, + 49, 50, 0, 56, 57, 58, 0, 53, 0, 0, + 0, 54, 0, 0, 0, 0, 0, 55, 0, 0, + 59, 60, 0, 56, 57, 58, 61, 0, 0, 0, + 0, 0, 62, 63, 64, 0, 0, 65, 0, 66, + 59, 60, 80, 81, 0, 0, 61, 0, 0, 0, + 0, 82, 129, 63, 64, 0, 0, 65, 83, 66, + 84, 85, 86, 87, 0, 0, 88, 0, 0, 0, + 89, 0, 0, 0, 90, 91, 92, 93, 94, 0, + 0, 0, 0, 95, 96, 97, 98, 0, 0, 0, + 0, 99, 100, 0, 0, 101, 0, 0, 0, 102, + 0, 0, 0, 103, 104, 0, 105, 80, 81, 0, + 0, 0, 0, 0, 106, 0, 82, 0, 0, 0, + 0, 0, 0, 83, 0, 84, 85, 86, 87, 0, + 0, 88, 0, 475, 0, 89, 0, 0, 0, 90, + 91, 92, 93, 94, 0, 0, 0, 0, 95, 96, + 97, 98, 0, 0, 0, 0, 99, 100, 0, 0, + 101, 0, 0, 0, 102, 0, 0, 0, 103, 104, + 0, 105, 80, 81, 0, 0, 0, 0, 0, 106, + 0, 82, 0, 0, 0, 0, 0, 0, 83, 0, + 84, 85, 86, 87, 0, 0, 88, 0, 483, 0, + 89, 0, 0, 0, 90, 91, 92, 93, 94, 0, + 0, 0, 0, 95, 96, 97, 98, 0, 0, 0, + 0, 99, 100, 0, 0, 101, 0, 0, 0, 102, + 0, 0, 0, 103, 104, 0, 105, 80, 81, 0, + 0, 0, 0, 0, 106, 0, 82, 0, 0, 0, + 0, 0, 0, 83, 0, 84, 85, 86, 87, 0, + 0, 88, 0, 553, 0, 89, 0, 0, 0, 90, + 91, 92, 93, 94, 0, 0, 0, 0, 95, 96, + 97, 98, 0, 0, 0, 0, 99, 100, 0, 0, + 101, 0, 0, 0, 102, 0, 0, 0, 103, 104, + 0, 105, 80, 81, 0, 0, 0, 0, 0, 106, + 0, 82, 0, 0, 0, 0, 0, 0, 83, 0, + 84, 85, 86, 87, 0, 0, 88, 0, 646, 0, + 89, 0, 0, 0, 90, 91, 92, 93, 94, 0, + 0, 0, 0, 95, 96, 97, 98, 0, 0, 0, + 0, 99, 100, 0, 0, 101, 0, 0, 0, 102, + 0, 0, 0, 103, 104, 0, 105, 80, 81, 0, + 0, 0, 0, 0, 106, 0, 82, 0, 0, 0, + 0, 0, 0, 83, 0, 84, 85, 86, 87, 0, + 0, 88, 0, 869, 0, 89, 0, 0, 0, 90, + 91, 92, 93, 94, 0, 0, 0, 0, 95, 96, + 97, 98, 0, 0, 0, 0, 99, 100, 0, 46, + 101, 47, 48, 49, 102, 0, 0, 0, 103, 104, + 188, 105, 0, 0, 0, 0, 0, 0, 0, 106, + 189, 0, 0, 0, 0, 0, 56, 190, 58, 0, + 0, 80, 81, 0, 0, 0, 0, 0, 870, 0, + 82, 0, 0, 59, 60, 0, 0, 83, 0, 84, + 85, 86, 87, 0, 0, 88, 0, 64, 0, 89, + 0, 0, 66, 90, 91, 92, 93, 94, 0, 0, + 0, 0, 95, 96, 97, 98, 0, 0, 0, 0, + 99, 100, 0, 0, 101, 127, 0, 46, 102, 47, + 48, 49, 103, 104, 81, 105, 0, 0, 188, 0, + 0, 0, 82, 0, 0, 0, 0, 0, 189, 0, + 0, 84, 85, 86, 56, 190, 58, 81, 0, 0, + 0, 213, 0, 0, 0, 82, 0, 0, 93, 0, + 0, 59, 60, 0, 84, 85, 86, 98, 0, 0, + 0, 0, 99, 0, 213, 64, 101, 0, 0, 0, + 66, 93, 0, 0, 0, 104, 0, 105, 0, 0, + 98, 0, 0, 0, 0, 99, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 104, 0, + 105 }; #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-698))) + (!!((Yystate) == (-666))) #define yytable_value_is_error(Yytable_value) \ YYID (0) static const yytype_int16 yycheck[] = { - 1, 100, 26, 556, 503, 226, 109, 135, 428, 328, - 14, 708, 516, 0, 6, 121, 8, 51, 118, 39, - 118, 119, 120, 121, 122, 135, 124, 125, 126, 12, - 136, 342, 109, 26, 85, 133, 134, 137, 537, 137, - 138, 409, 10, 11, 39, 547, 237, 467, 81, 82, - 101, 84, 85, 86, 118, 246, 89, 425, 126, 92, - 428, 26, 10, 11, 97, 98, 67, 100, 101, 424, - 103, 104, 427, 137, 429, 10, 11, 473, 474, 10, - 11, 10, 11, 10, 11, 109, 118, 109, 431, 135, - 31, 109, 435, 436, 437, 438, 439, 452, 453, 467, - 455, 456, 457, 458, 135, 137, 118, 118, 329, 121, - 117, 613, 333, 120, 118, 116, 109, 118, 119, 120, - 121, 122, 117, 124, 125, 126, 137, 121, 123, 549, - 135, 234, 133, 134, 355, 117, 137, 138, 120, 135, - 135, 136, 136, 462, 109, 137, 501, 130, 516, 460, - 341, 57, 120, 59, 60, 657, 853, 234, 64, 135, - 237, 181, 661, 486, 136, 137, 10, 11, 135, 246, - 493, 494, 495, 496, 497, 498, 680, 275, 533, 212, - 135, 549, 681, 216, 185, 135, 117, 408, 117, 137, - 117, 135, 503, 134, 135, 136, 135, 540, 199, 200, - 201, 202, 203, 204, 31, 528, 207, 562, 117, 62, - 234, 55, 234, 237, 248, 237, 234, 135, 136, 237, - 73, 74, 246, 126, 246, 226, 537, 623, 246, 120, - 31, 627, 6, 629, 8, 631, 632, 633, 118, 936, - 93, 234, 10, 11, 237, 151, 152, 153, 154, 102, - 21, 22, 135, 246, 12, 99, 477, 137, 16, 480, - 31, 105, 106, 118, 341, 10, 11, 12, 6, 234, - 8, 16, 237, 185, 275, 128, 135, 130, 131, 135, - 118, 246, 137, 189, 135, 191, 135, 199, 200, 201, - 202, 203, 204, 713, 10, 11, 12, 120, 56, 137, - 16, 135, 208, 130, 131, 132, 1003, 134, 135, 136, - 1007, 56, 680, 314, 120, 83, 340, 341, 352, 341, - 321, 120, 118, 341, 135, 118, 649, 118, 329, 330, - 118, 135, 333, 134, 135, 136, 130, 118, 136, 340, - 56, 137, 137, 666, 137, 713, 137, 120, 341, 137, - 661, 1048, 353, 111, 355, 1052, 137, 128, 129, 130, - 131, 132, 118, 134, 135, 136, 111, 125, 221, 1066, - 10, 87, 130, 114, 115, 116, 341, 135, 1075, 10, - 125, 137, 88, 89, 90, 130, 239, 117, 941, 488, - 414, 425, 891, 126, 428, 111, 249, 117, 251, 119, - 120, 121, 314, 109, 135, 258, 259, 408, 135, 125, - 10, 11, 12, 137, 130, 135, 16, 119, 419, 135, - 117, 118, 328, 137, 425, 120, 118, 428, 848, 137, - 431, 135, 136, 467, 435, 436, 437, 438, 439, 137, - 135, 136, 137, 463, 445, 465, 135, 136, 449, 117, - 137, 119, 120, 121, 137, 488, 56, 555, 120, 460, - 137, 21, 22, 136, 137, 489, 467, 135, 136, 322, - 127, 31, 137, 135, 136, 137, 477, 511, 137, 480, - 848, 137, 516, 137, 120, 486, 137, 986, 137, 127, - 514, 137, 493, 494, 495, 496, 497, 498, 499, 135, - 136, 137, 503, 523, 137, 120, 359, 472, 473, 474, - 4, 111, 138, 933, 117, 549, 10, 11, 135, 118, - 117, 514, 119, 120, 121, 125, 118, 528, 523, 949, - 130, 135, 137, 888, 135, 135, 537, 135, 140, 540, - 31, 88, 89, 90, 117, 117, 547, 118, 549, 514, - 10, 10, 127, 118, 555, 556, 462, 138, 2, 135, - 413, 130, 415, 130, 130, 933, 118, 890, 128, 129, - 130, 131, 132, 6, 134, 135, 136, 932, 121, 121, - 1000, 949, 15, 16, 17, 18, 19, 20, 21, 22, - 130, 35, 36, 37, 38, 126, 40, 135, 31, 135, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 613, 126, 137, 137, 136, 138, 118, 472, - 473, 474, 10, 137, 140, 118, 1046, 60, 983, 137, - 10, 665, 1000, 119, 136, 10, 118, 128, 129, 130, - 131, 132, 643, 134, 135, 136, 680, 642, 649, 644, - 135, 84, 56, 137, 4, 31, 657, 135, 623, 140, - 661, 118, 627, 31, 629, 666, 631, 632, 633, 664, - 137, 137, 667, 138, 138, 670, 671, 678, 1046, 713, - 681, 137, 140, 703, 137, 118, 135, 135, 121, 126, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 554, 135, 136, 135, 126, 139, 708, 140, 118, - 137, 127, 713, 137, 127, 135, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 174, 175, 176, 177, 178, 179, 180, 137, 182, 10, - 11, 137, 186, 137, 3, 4, 5, 6, 119, 8, - 9, 10, 128, 129, 130, 131, 132, 610, 134, 135, - 136, 119, 130, 131, 132, 135, 134, 135, 136, 622, - 623, 624, 137, 135, 627, 135, 629, 138, 631, 632, - 633, 10, 11, 137, 55, 137, 137, 46, 127, 233, - 137, 127, 137, 135, 135, 893, 850, 137, 220, 10, - 11, 554, 137, 62, 888, 932, 983, 237, 488, 656, - 811, 70, 643, 489, 848, 10, 11, 478, 414, 553, - 514, 50, 811, 52, 53, 54, -1, 86, 99, -1, - -1, -1, 61, -1, 105, 106, 95, -1, 109, 98, - 284, 285, 71, 102, 55, -1, -1, 848, 77, 78, - 79, -1, 853, -1, -1, -1, -1, -1, -1, -1, - 55, 881, -1, -1, 93, 94, 125, -1, -1, -1, - 129, 130, -1, -1, 133, -1, 135, 321, 107, -1, - 139, 110, -1, 112, -1, -1, 881, -1, 99, 890, - 891, -1, 893, -1, 105, 106, -1, -1, 109, 933, - -1, -1, -1, -1, 99, -1, -1, 351, -1, -1, - 105, 106, -1, -1, 109, 949, 360, -1, -1, -1, - -1, -1, -1, -1, -1, 17, 18, 19, 20, 21, - 22, -1, 933, -1, -1, 936, -1, -1, -1, 31, - 941, -1, 386, -1, -1, -1, -1, -1, 949, 17, - 18, 19, 20, 21, 22, 950, 951, 952, 953, -1, - 980, -1, -1, 31, -1, 50, 1000, 52, 53, 54, - -1, -1, -1, -1, 15, 16, 17, 18, 19, 20, - 21, 22, -1, -1, -1, 986, 71, -1, -1, -1, - 31, -1, 77, 78, 79, -1, -1, -1, -1, 1000, - -1, -1, 1003, -1, -1, 449, 1007, -1, 93, 94, - -1, -1, 1046, -1, -1, -1, -1, -1, -1, -1, - -1, 1041, 107, 1043, -1, -1, 470, 112, -1, -1, - 877, 878, 879, 880, -1, 882, 128, 129, 130, 131, - 132, -1, 134, 135, 136, 1046, -1, 1048, -1, 1069, - 1070, 1052, 877, 878, 879, 880, -1, 882, 126, 127, - 128, 129, 130, 131, 132, 1066, 134, 135, 136, -1, - -1, -1, -1, -1, 1075, -1, 520, 521, 522, -1, - 524, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, -1, 134, 135, 136, -1, -1, -1, 140, - -1, -1, -1, 547, -1, -1, -1, -1, -1, -1, - -1, -1, 556, -1, 961, 962, 963, 964, 965, 966, - 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, - 977, 978, 979, -1, 10, 11, 961, 962, 963, 964, - 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, - 975, 976, 977, 978, 979, 15, 16, 17, 18, 19, - 20, 21, 22, -1, -1, 49, -1, 611, 1015, 613, - -1, 31, -1, 57, 50, -1, 52, 53, 54, 55, - 56, -1, 66, 67, 68, 61, -1, -1, -1, -1, - 1015, 1044, 76, -1, -1, 71, -1, -1, 82, 83, - -1, 77, 78, 79, -1, -1, -1, 91, -1, -1, - -1, 1058, 96, 657, -1, -1, -1, 93, 94, -1, - -1, -1, -1, -1, -1, 109, -1, 111, -1, 105, - -1, 107, -1, 1058, 110, -1, 112, -1, 682, 683, - 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, - 694, 695, 696, 697, 698, 699, 700, 701, 702, -1, - 704, -1, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, -1, 134, 135, 136, -1, -1, -1, - 140, -1, -1, 3, 4, 5, 6, 7, 8, 9, + 1, 101, 2, 26, 561, 39, 51, 330, 432, 110, + 12, 26, 119, 110, 6, 110, 8, 521, 89, 90, + 91, 10, 11, 14, 10, 11, 119, 120, 121, 122, + 123, 138, 125, 126, 127, 35, 36, 37, 38, 110, + 40, 134, 135, 10, 11, 138, 139, 471, 86, 714, + 435, 10, 11, 122, 439, 440, 441, 442, 443, 508, + 57, 119, 59, 60, 102, 0, 67, 64, 137, 119, + 119, 477, 478, 345, 136, 119, 428, 10, 11, 431, + 138, 433, 10, 11, 186, 10, 11, 110, 138, 138, + 4, 110, 119, 542, 138, 110, 10, 11, 200, 201, + 202, 203, 204, 205, 456, 457, 136, 459, 460, 461, + 462, 138, 39, 6, 239, 8, 117, 84, 119, 120, + 121, 122, 123, 248, 125, 126, 127, 26, 119, 131, + 554, 413, 118, 134, 135, 236, 121, 138, 139, 236, + 552, 236, 239, 466, 239, 127, 138, 429, 182, 138, + 432, 248, 228, 248, 506, 152, 153, 154, 155, 118, + 545, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 686, 183, 277, 186, 538, 187, 121, 471, + 118, 118, 464, 190, 859, 192, 136, 124, 31, 200, + 201, 202, 203, 204, 205, 250, 618, 208, 31, 136, + 137, 110, 209, 236, 316, 567, 239, 236, 667, 344, + 239, 236, 628, 119, 239, 248, 632, 228, 634, 248, + 636, 637, 638, 248, 119, 235, 508, 119, 687, 521, + 81, 82, 138, 84, 85, 86, 136, 344, 89, 344, + 136, 663, 93, 138, 119, 331, 138, 98, 99, 335, + 101, 102, 119, 104, 105, 118, 136, 120, 121, 122, + 542, 119, 554, 138, 119, 119, 277, 119, 943, 118, + 122, 138, 358, 136, 137, 136, 286, 287, 12, 136, + 138, 121, 16, 138, 138, 719, 122, 137, 138, 10, + 11, 12, 135, 136, 137, 16, 136, 137, 138, 136, + 355, 137, 135, 136, 137, 316, 118, 136, 120, 121, + 122, 344, 323, 323, 118, 344, 136, 121, 343, 344, + 331, 332, 56, 330, 335, 118, 412, 236, 121, 6, + 239, 8, 343, 136, 121, 56, 136, 1012, 127, 248, + 136, 1016, 136, 137, 354, 356, 31, 358, 491, 136, + 137, 138, 136, 363, 136, 498, 499, 500, 501, 502, + 503, 136, 213, 115, 116, 117, 217, 88, 118, 136, + 120, 121, 122, 136, 429, 118, 119, 432, 112, 389, + 121, 948, 121, 493, 1059, 667, 136, 136, 137, 1064, + 533, 112, 126, 418, 686, 481, 121, 131, 484, 136, + 137, 412, 136, 1078, 136, 126, 89, 90, 91, 136, + 131, 131, 423, 1088, 138, 136, 471, 10, 429, 137, + 854, 432, 121, 467, 435, 469, 10, 719, 439, 440, + 441, 442, 443, 137, 138, 344, 10, 118, 449, 898, + 127, 136, 453, 453, 129, 130, 131, 132, 133, 120, + 135, 136, 137, 464, 136, 119, 128, 560, 138, 466, + 471, 516, 138, 138, 474, 138, 521, 128, 138, 494, + 481, 21, 22, 484, 139, 138, 10, 11, 138, 138, + 491, 31, 138, 138, 528, 121, 519, 498, 499, 500, + 501, 502, 503, 504, 519, 138, 31, 508, 138, 554, + 136, 137, 138, 138, 138, 138, 940, 121, 118, 136, + 119, 119, 655, 119, 136, 525, 526, 527, 138, 529, + 136, 55, 533, 136, 958, 21, 22, 118, 118, 672, + 141, 542, 119, 895, 545, 31, 995, 10, 10, 10, + 128, 552, 552, 554, 119, 31, 131, 662, 131, 560, + 561, 561, 62, 10, 11, 12, 136, 139, 131, 16, + 119, 119, 854, 73, 74, 122, 100, 476, 477, 478, + 122, 131, 106, 107, 136, 1009, 110, 939, 127, 129, + 130, 131, 132, 133, 94, 135, 136, 137, 136, 127, + 137, 528, 138, 103, 129, 130, 131, 132, 133, 56, + 135, 136, 137, 139, 119, 138, 616, 618, 618, 10, + 519, 138, 141, 119, 138, 10, 671, 120, 10, 129, + 10, 131, 132, 1057, 137, 119, 138, 136, 56, 4, + 992, 686, 136, 129, 130, 131, 132, 133, 649, 135, + 136, 137, 493, 119, 655, 131, 132, 133, 940, 135, + 136, 137, 663, 663, 141, 112, 667, 31, 138, 10, + 11, 672, 139, 138, 719, 709, 958, 141, 138, 126, + 139, 138, 136, 684, 131, 136, 687, 127, 688, 689, + 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, + 700, 701, 702, 703, 704, 705, 706, 707, 708, 136, + 710, 127, 141, 714, 55, 119, 138, 128, 719, 138, + 128, 648, 222, 650, 10, 11, 12, 1009, 138, 628, + 16, 136, 138, 632, 120, 634, 10, 636, 637, 638, + 138, 241, 120, 670, 120, 138, 673, 11, 136, 676, + 677, 251, 136, 253, 128, 136, 139, 119, 128, 100, + 260, 261, 10, 138, 897, 106, 107, 131, 132, 133, + 56, 135, 136, 137, 559, 1057, 221, 138, 138, 884, + 885, 886, 887, 138, 889, 138, 50, 136, 52, 53, + 54, 136, 138, 120, 138, 138, 856, 939, 992, 895, + 239, 493, 418, 494, 482, 817, 649, 900, 558, 854, + 519, -1, -1, 77, 78, 79, 817, 16, 17, 18, + 19, 20, 21, 22, 324, -1, 112, -1, -1, -1, + 94, 95, 31, -1, -1, -1, -1, -1, -1, -1, + 126, -1, -1, -1, 108, 131, 846, -1, -1, 113, + 136, -1, -1, 854, 888, -1, -1, -1, 859, -1, + -1, -1, 362, -1, -1, 970, 971, 972, 973, 974, + 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, + 985, 986, 987, 988, -1, -1, 3, 4, 5, 6, + -1, 8, 9, 10, -1, 940, 897, 898, 6, 900, + -1, 10, 11, 903, -1, -1, -1, -1, -1, -1, + 910, -1, -1, 958, -1, -1, -1, 417, -1, 419, + -1, 1026, -1, -1, -1, 124, 125, 126, -1, 46, + 129, 130, 131, 132, 133, -1, 135, 136, 137, 940, + -1, 49, 943, -1, -1, 62, 55, 948, 948, 57, + 10, 11, -1, 70, -1, 989, -1, 958, 66, 67, + 68, 888, -1, -1, 1009, 1070, -1, -1, 76, -1, + 87, -1, -1, -1, -1, 83, 476, 477, 478, 96, + -1, -1, 99, -1, 92, -1, 103, -1, -1, 97, + 990, 100, -1, -1, 995, 55, -1, 106, 107, -1, + -1, 110, 110, -1, 112, 1005, -1, -1, 1009, 126, + -1, 1012, 1057, 130, 131, 1016, -1, 134, 1052, 136, + 1054, -1, -1, 140, -1, -1, -1, -1, -1, -1, + -1, -1, 959, 960, 961, 962, -1, -1, -1, -1, + 100, -1, -1, -1, -1, -1, 106, 107, 1082, 1083, + 110, -1, -1, -1, -1, -1, 1057, -1, 1059, 559, + -1, -1, -1, 1064, 884, 885, 886, 887, -1, 889, + 6, -1, -1, -1, -1, -1, -1, 1078, -1, 15, + 16, 17, 18, 19, 20, 21, 22, 1088, -1, -1, + -1, -1, -1, -1, -1, 31, -1, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, -1, + -1, -1, -1, -1, -1, 615, -1, -1, -1, -1, + -1, -1, -1, -1, 60, -1, -1, 627, 628, 629, + -1, -1, 632, -1, 634, -1, 636, 637, 638, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, + 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, + 980, 981, 982, 983, 984, 985, 986, 987, 988, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 119, -1, -1, 122, -1, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, -1, + 136, 137, -1, -1, 140, -1, 1026, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, -1, -1, -1, -1, -1, - -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 1070, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, -1, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, 65, -1, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, -1, - -1, -1, 82, 83, 84, -1, 86, 87, 88, 89, + -1, -1, -1, 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, -1, -1, 840, 117, 118, 119, + 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, -1, -1, -1, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 140, 141, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, -1, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, -1, -1, -1, -1, -1, -1, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, -1, -1, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, -1, 65, -1, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, -1, -1, + -1, -1, 83, 84, 85, -1, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, -1, -1, -1, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, + 141, 3, 4, 5, 6, -1, 8, 9, 10, 11, + -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 896, -1, -1, -1, -1, -1, -1, 903, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12, -1, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, -1, 941, -1, -1, - -1, -1, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, - -1, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, -1, 65, 981, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - -1, -1, 996, 82, 83, 84, -1, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, -1, -1, -1, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, -1, - 139, 140, 3, 4, 5, 6, -1, 8, 9, 10, - 11, -1, -1, 14, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 15, 16, 17, 18, 19, 20, 21, 22, - -1, -1, -1, -1, -1, 46, 47, -1, 31, 50, + -1, 15, 16, 17, 18, 19, 20, 21, 22, -1, + -1, -1, -1, -1, 46, 47, -1, 31, 50, -1, + 52, 53, 54, 55, 56, 1055, 58, -1, -1, 61, + 62, -1, -1, 65, -1, -1, -1, -1, 70, 71, + -1, -1, -1, -1, -1, 77, 78, 79, -1, -1, + -1, -1, -1, 85, -1, 87, -1, -1, -1, -1, + 92, -1, 94, 95, 96, -1, -1, 99, 100, -1, + -1, 103, -1, -1, 106, 107, 108, -1, -1, 111, + -1, 113, 3, 4, 5, 6, -1, 8, 9, 10, + 11, -1, -1, 14, 126, -1, -1, -1, 130, -1, + -1, -1, 134, -1, 136, -1, -1, -1, 140, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + -1, 135, 136, 137, -1, 46, 47, 141, -1, 50, -1, 52, 53, 54, 55, 56, -1, 58, -1, -1, 61, 62, -1, -1, 65, -1, -1, -1, -1, 70, 71, -1, -1, -1, -1, -1, 77, 78, 79, -1, - -1, -1, -1, 84, -1, 86, -1, -1, -1, -1, - 91, -1, 93, 94, 95, -1, -1, 98, 99, -1, - -1, 102, -1, -1, 105, 106, 107, -1, -1, 110, - -1, 112, 3, 4, 5, 6, -1, 8, 9, 10, - 11, -1, -1, 14, 125, -1, -1, -1, 129, -1, - -1, -1, 133, -1, 135, -1, -1, -1, 139, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - -1, 134, 135, 136, -1, 46, 47, 140, -1, 50, - -1, 52, 53, 54, 55, 56, -1, 58, -1, -1, - 61, 62, -1, -1, 65, -1, -1, -1, -1, 70, - 71, -1, -1, -1, -1, -1, 77, 78, 79, -1, - -1, -1, -1, 84, -1, 86, -1, -1, -1, -1, - 91, -1, 93, 94, 95, -1, -1, 98, 99, -1, - -1, 102, -1, -1, 105, 106, 107, -1, -1, 110, - -1, 112, 3, 4, 5, 6, -1, 8, 9, 10, - 11, -1, -1, -1, 125, -1, -1, -1, 129, -1, - -1, -1, 133, -1, 135, -1, -1, -1, 139, -1, - -1, -1, 15, 16, 17, 18, 19, 20, 21, 22, - -1, -1, -1, -1, -1, 46, 47, -1, 31, 50, - -1, 52, 53, 54, 55, 56, -1, 58, -1, -1, - 61, 62, -1, -1, 65, -1, -1, -1, -1, 70, - 71, -1, -1, -1, -1, -1, 77, 78, 79, -1, - -1, -1, -1, 84, -1, 86, -1, -1, -1, -1, - -1, -1, 93, 94, 95, -1, -1, 98, 99, -1, - -1, 102, -1, -1, 105, 106, 107, -1, -1, 110, - -1, 112, 3, 4, 5, 6, -1, 8, 9, 10, - 11, -1, -1, -1, 125, -1, -1, -1, 129, 130, - -1, -1, 133, -1, 135, 118, -1, -1, 139, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - -1, 134, 135, 136, 137, 46, 47, -1, -1, 50, - -1, 52, 53, 54, 55, 56, -1, 58, -1, -1, - 61, 62, -1, -1, 65, -1, -1, -1, -1, 70, - 71, -1, -1, -1, -1, -1, 77, 78, 79, -1, - -1, -1, -1, 84, -1, 86, -1, -1, -1, -1, - 91, -1, 93, 94, 95, -1, -1, 98, 99, -1, - -1, 102, -1, -1, 105, 106, 107, -1, -1, 110, - -1, 112, 3, 4, 5, 6, -1, 8, 9, 10, - 11, -1, -1, -1, 125, -1, -1, -1, 129, -1, - -1, -1, 133, -1, 135, -1, -1, -1, 139, 17, - 18, 19, 20, 21, 22, -1, -1, -1, 50, -1, - 52, 53, 54, 31, -1, 46, -1, -1, -1, 50, - -1, 52, 53, 54, -1, -1, -1, -1, -1, -1, - 61, 62, -1, -1, -1, 77, 78, 79, -1, 70, - 71, -1, -1, -1, -1, -1, 77, 78, -1, -1, - -1, 93, 94, 84, -1, 86, -1, -1, -1, -1, - -1, -1, 93, 94, 95, 107, -1, 98, -1, -1, - 112, 102, 3, 4, 5, 6, 107, 8, 9, 10, - 11, 112, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 135, 125, -1, -1, -1, 129, 130, - -1, -1, 133, -1, 135, -1, 137, 125, 139, -1, - 128, 129, 130, 131, 132, 46, 134, 135, 136, 50, - -1, 52, 53, 54, -1, -1, -1, -1, -1, -1, - 61, 62, -1, -1, -1, -1, -1, -1, -1, 70, - 71, -1, -1, -1, -1, -1, 77, 78, -1, -1, - -1, -1, -1, 84, -1, 86, -1, -1, -1, -1, - -1, -1, 93, 94, 95, -1, -1, 98, -1, -1, - -1, 102, 3, 4, 5, 6, 107, 8, 9, 10, - 11, 112, -1, -1, -1, -1, 117, -1, -1, -1, - -1, -1, -1, -1, 125, -1, -1, -1, 129, 130, - -1, -1, 133, -1, 135, -1, -1, -1, 139, -1, - -1, -1, -1, -1, -1, 46, -1, -1, -1, 50, - -1, 52, 53, 54, -1, -1, -1, -1, -1, -1, - 61, 62, -1, -1, -1, -1, -1, -1, -1, 70, - 71, -1, -1, -1, -1, -1, 77, 78, -1, -1, - -1, -1, -1, 84, -1, 86, -1, -1, -1, -1, - -1, -1, 93, 94, 95, -1, -1, 98, -1, -1, - -1, 102, 3, 4, 5, 6, 107, 8, 9, 10, - 11, 112, -1, -1, -1, -1, 117, -1, -1, -1, - -1, -1, -1, -1, 125, -1, -1, -1, 129, 130, - -1, -1, 133, -1, 135, -1, -1, -1, 139, -1, - -1, -1, -1, -1, -1, 46, -1, -1, -1, 50, - -1, 52, 53, 54, -1, -1, -1, -1, -1, -1, - 61, 62, -1, -1, -1, -1, -1, -1, -1, 70, - 71, -1, -1, -1, -1, -1, 77, 78, -1, -1, - -1, -1, -1, 84, -1, 86, -1, -1, -1, -1, - -1, -1, 93, 94, 95, -1, -1, 98, -1, -1, - -1, 102, 3, 4, 5, 6, 107, 8, 9, 10, - 11, 112, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 125, -1, -1, -1, 129, 130, - -1, -1, 133, -1, 135, -1, 137, -1, 139, -1, - -1, -1, -1, -1, -1, 46, -1, -1, -1, 50, - -1, 52, 53, 54, -1, -1, -1, -1, -1, -1, - 61, 62, -1, -1, -1, -1, -1, -1, -1, 70, - 71, -1, -1, -1, -1, -1, 77, 78, -1, -1, - -1, -1, -1, 84, -1, 86, -1, -1, -1, -1, - -1, -1, 93, 94, 95, -1, -1, 98, -1, -1, - -1, 102, 3, 4, 5, 6, 107, 8, 9, 10, - 11, 112, -1, -1, -1, -1, 117, -1, -1, -1, - -1, -1, -1, -1, 125, -1, -1, -1, 129, 130, - -1, -1, 133, -1, 135, -1, -1, -1, 139, -1, - -1, -1, -1, -1, -1, 46, -1, -1, -1, 50, - -1, 52, 53, 54, -1, -1, -1, -1, -1, -1, - 61, 62, -1, -1, -1, -1, -1, -1, -1, 70, - 71, -1, -1, -1, -1, -1, 77, 78, -1, -1, - -1, -1, -1, 84, -1, 86, -1, -1, -1, -1, - -1, -1, 93, 94, 95, -1, -1, 98, -1, -1, - -1, 102, 3, 4, 5, 6, 107, 8, 9, 10, - 11, 112, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 125, -1, -1, -1, 129, 130, - -1, -1, 133, -1, 135, -1, 137, -1, 139, -1, - -1, -1, -1, -1, -1, 46, -1, -1, -1, 50, - -1, 52, 53, 54, -1, -1, -1, -1, -1, -1, - 61, 62, -1, -1, -1, -1, -1, -1, -1, 70, - 71, -1, 10, 11, -1, -1, 77, 78, -1, -1, - -1, -1, -1, 84, -1, 86, -1, -1, -1, -1, - -1, -1, 93, 94, 95, -1, -1, 98, -1, -1, - -1, 102, -1, -1, -1, -1, 107, -1, -1, 47, - -1, 112, 50, -1, 52, 53, 54, 55, 56, -1, - 58, -1, -1, 61, 125, -1, -1, 65, 129, 130, - -1, -1, 133, 71, 135, -1, -1, -1, 139, 77, - 78, 79, -1, 10, 11, -1, -1, -1, -1, 87, - -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, - -1, 99, -1, -1, -1, -1, -1, 105, 106, 107, - -1, -1, 110, 50, 112, 52, 53, 54, -1, 117, - 47, -1, -1, 50, -1, 52, 53, 54, 55, 56, - -1, 58, -1, -1, 61, 133, -1, -1, 65, -1, - 77, 78, 79, -1, 71, -1, -1, 10, 11, -1, - 77, 78, 79, -1, -1, -1, 93, 94, -1, -1, - 87, -1, -1, -1, -1, -1, 93, 94, -1, -1, - 107, -1, 99, -1, -1, 112, -1, -1, 105, 106, - 107, -1, -1, 110, 47, 112, -1, 50, -1, 52, - 53, 54, 55, 56, -1, 58, -1, -1, 61, -1, - -1, -1, 65, -1, -1, -1, 133, -1, 71, -1, - -1, -1, -1, -1, 77, 78, 79, -1, -1, -1, - -1, -1, -1, -1, 87, -1, -1, -1, -1, -1, - 93, 94, -1, -1, -1, -1, 99, -1, -1, -1, - -1, -1, 105, 106, 107, -1, -1, 110, -1, 112, - 15, 16, 17, 18, 19, 20, 21, 22, -1, -1, - -1, -1, -1, -1, -1, -1, 31, -1, -1, -1, - 133, 15, 16, 17, 18, 19, 20, 21, 22, -1, - -1, -1, -1, -1, -1, -1, -1, 31, -1, 15, - 16, 17, 18, 19, 20, 21, 22, -1, -1, -1, - -1, -1, -1, -1, -1, 31, -1, 15, 16, 17, + -1, -1, -1, -1, 85, -1, 87, -1, -1, -1, + -1, 92, -1, 94, 95, 96, -1, -1, 99, 100, + -1, -1, 103, -1, -1, 106, 107, 108, -1, -1, + 111, -1, 113, 3, 4, 5, 6, -1, 8, 9, + 10, 11, -1, -1, -1, 126, -1, -1, -1, 130, + -1, -1, -1, 134, -1, 136, -1, -1, -1, 140, + -1, -1, -1, 15, 16, 17, 18, 19, 20, 21, + 22, -1, -1, -1, -1, -1, 46, 47, -1, 31, + 50, -1, 52, 53, 54, 55, 56, -1, 58, -1, + -1, 61, 62, -1, -1, 65, -1, -1, -1, -1, + 70, 71, -1, -1, -1, -1, -1, 77, 78, 79, + -1, -1, -1, -1, -1, 85, -1, 87, -1, -1, + -1, -1, -1, -1, 94, 95, 96, -1, -1, 99, + 100, -1, -1, 103, -1, -1, 106, 107, 108, -1, + -1, 111, -1, 113, 3, 4, 5, 6, -1, 8, + 9, 10, 11, -1, -1, -1, 126, -1, -1, -1, + 130, 131, -1, -1, 134, -1, 136, -1, -1, -1, + 140, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, -1, 135, 136, 137, -1, 46, 47, 141, + -1, 50, -1, 52, 53, 54, 55, 56, -1, 58, + -1, -1, 61, 62, -1, -1, 65, -1, -1, -1, + -1, 70, 71, -1, -1, -1, -1, -1, 77, 78, + 79, -1, -1, -1, -1, -1, 85, -1, 87, -1, + -1, -1, -1, 92, -1, 94, 95, 96, -1, -1, + 99, 100, -1, -1, 103, -1, -1, 106, 107, 108, + -1, -1, 111, -1, 113, 3, 4, 5, 6, -1, + 8, 9, 10, 11, -1, -1, -1, 126, -1, -1, + -1, 130, -1, -1, -1, 134, -1, 136, -1, -1, + -1, 140, 17, 18, 19, 20, 21, 22, -1, -1, + -1, 50, -1, 52, 53, 54, 31, -1, 46, -1, + -1, -1, 50, -1, 52, 53, 54, -1, -1, -1, + -1, -1, -1, 61, 62, -1, -1, -1, 77, 78, + 79, -1, 70, 71, -1, -1, -1, -1, -1, 77, + 78, -1, -1, -1, -1, 94, 95, 85, -1, 87, + -1, -1, -1, -1, -1, -1, 94, 95, 96, 108, + -1, 99, -1, -1, 113, 103, 3, 4, 5, 6, + 108, 8, 9, 10, 11, 113, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 136, 126, -1, + -1, -1, 130, 131, -1, -1, 134, -1, 136, -1, + 138, 126, 140, -1, 129, 130, 131, 132, 133, 46, + 135, 136, 137, 50, -1, 52, 53, 54, -1, -1, + -1, -1, -1, -1, 61, 62, -1, -1, -1, -1, + -1, -1, -1, 70, 71, -1, -1, -1, -1, -1, + 77, 78, -1, -1, -1, -1, -1, -1, 85, -1, + 87, -1, -1, -1, -1, -1, -1, 94, 95, 96, + -1, -1, 99, -1, -1, -1, 103, 3, 4, 5, + 6, 108, 8, 9, 10, 11, 113, -1, -1, -1, + -1, 118, -1, -1, -1, -1, -1, -1, -1, 126, + -1, -1, -1, 130, 131, -1, -1, 134, -1, 136, + -1, -1, -1, 140, -1, -1, -1, -1, -1, -1, + 46, -1, -1, -1, 50, -1, 52, 53, 54, -1, + -1, -1, -1, -1, -1, 61, 62, -1, -1, -1, + -1, -1, -1, -1, 70, 71, -1, -1, -1, -1, + -1, 77, 78, -1, -1, -1, -1, -1, -1, 85, + -1, 87, -1, -1, -1, -1, -1, -1, 94, 95, + 96, -1, -1, 99, -1, -1, -1, 103, 3, 4, + 5, 6, 108, 8, 9, 10, 11, 113, -1, -1, + -1, -1, 118, -1, -1, -1, -1, -1, -1, -1, + 126, -1, -1, -1, 130, 131, -1, -1, 134, -1, + 136, -1, -1, -1, 140, -1, -1, -1, -1, -1, + -1, 46, -1, -1, -1, 50, -1, 52, 53, 54, + -1, -1, -1, -1, -1, -1, 61, 62, -1, -1, + -1, -1, -1, -1, -1, 70, 71, -1, -1, -1, + -1, -1, 77, 78, -1, -1, -1, -1, -1, -1, + 85, -1, 87, -1, -1, -1, -1, -1, -1, 94, + 95, 96, -1, -1, 99, -1, -1, -1, 103, 3, + 4, 5, 6, 108, 8, 9, 10, 11, 113, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 126, -1, -1, -1, 130, 131, -1, -1, 134, + -1, 136, -1, 138, -1, 140, -1, -1, -1, -1, + -1, -1, 46, -1, -1, -1, 50, -1, 52, 53, + 54, -1, -1, -1, -1, -1, -1, 61, 62, -1, + -1, -1, -1, -1, -1, -1, 70, 71, -1, -1, + -1, -1, -1, 77, 78, -1, -1, -1, -1, -1, + -1, 85, -1, 87, -1, -1, -1, -1, -1, -1, + 94, 95, 96, -1, -1, 99, -1, -1, -1, 103, + 3, 4, 5, 6, 108, 8, 9, 10, 11, 113, + -1, -1, -1, -1, 118, -1, -1, -1, -1, -1, + -1, -1, 126, -1, -1, -1, 130, 131, -1, -1, + 134, -1, 136, -1, -1, -1, 140, -1, -1, -1, + -1, -1, -1, 46, -1, -1, -1, 50, -1, 52, + 53, 54, -1, -1, -1, -1, -1, -1, 61, 62, + -1, -1, -1, -1, -1, -1, -1, 70, 71, -1, + -1, -1, -1, -1, 77, 78, -1, -1, -1, -1, + -1, -1, 85, -1, 87, -1, -1, -1, -1, -1, + -1, 94, 95, 96, -1, -1, 99, -1, -1, -1, + 103, 3, 4, 5, 6, 108, 8, 9, 10, 11, + 113, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 126, -1, -1, -1, 130, 131, -1, + -1, 134, -1, 136, -1, 138, -1, 140, -1, 49, + -1, -1, -1, -1, 46, -1, -1, 57, 50, -1, + 52, 53, 54, -1, -1, -1, 66, 67, 68, 61, + 62, -1, 49, -1, -1, -1, 76, -1, 70, 71, + 57, -1, -1, 83, 84, 77, 78, -1, 0, 66, + 67, 68, 92, 85, -1, 87, -1, 97, -1, 76, + -1, -1, 94, 95, 96, -1, 83, 99, -1, -1, + 110, 103, 112, -1, -1, 92, 108, -1, -1, -1, + 97, 113, -1, -1, 15, 16, 17, 18, 19, 20, + 21, 22, -1, 110, 126, 112, 48, 49, 130, 131, + 31, -1, 134, -1, 136, 57, -1, -1, 140, -1, + 127, -1, 64, -1, 66, 67, 68, 69, -1, -1, + 72, -1, -1, -1, 76, -1, -1, -1, 80, 81, + 82, 83, 84, -1, -1, -1, -1, 89, 90, 91, + 92, -1, -1, -1, -1, 97, 98, -1, -1, 101, + -1, -1, -1, 105, -1, -1, -1, 109, 110, -1, + 112, -1, -1, -1, -1, -1, -1, -1, 120, -1, + -1, 10, 11, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, -1, 135, 136, 137, -1, 47, -1, + 141, 50, -1, 52, 53, 54, 55, 56, -1, 58, + -1, -1, 61, -1, -1, -1, 65, -1, -1, -1, + -1, -1, 71, -1, -1, -1, -1, -1, 77, 78, + 79, 10, 11, -1, -1, -1, -1, -1, -1, 88, + -1, -1, -1, -1, -1, 94, 95, -1, -1, -1, + -1, 100, -1, -1, -1, -1, -1, 106, 107, 108, + -1, -1, 111, -1, 113, -1, -1, -1, 47, 118, + -1, 50, -1, 52, 53, 54, 55, 56, -1, 58, + -1, -1, 61, -1, -1, 134, 65, -1, -1, -1, + -1, -1, 71, 10, 11, -1, -1, -1, 77, 78, + 79, -1, -1, -1, -1, -1, -1, -1, -1, 88, + -1, -1, -1, -1, -1, 94, 95, -1, -1, -1, + -1, 100, -1, -1, -1, -1, -1, 106, 107, 108, + 47, -1, 111, 50, 113, 52, 53, 54, 55, 56, + -1, 58, -1, -1, 61, -1, -1, -1, 65, -1, + -1, -1, -1, -1, 71, 134, -1, -1, -1, -1, + 77, 78, 79, 15, 16, 17, 18, 19, 20, 21, + 22, 88, -1, -1, -1, -1, -1, 94, 95, 31, + -1, -1, -1, 100, -1, -1, -1, -1, -1, 106, + 107, 108, -1, -1, 111, -1, 113, 15, 16, 17, 18, 19, 20, 21, 22, -1, -1, -1, -1, -1, - -1, -1, -1, 31, -1, -1, 15, 16, 17, 18, - 19, 20, 21, 22, -1, -1, -1, -1, -1, -1, - -1, -1, 31, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, -1, 134, - 135, 136, 137, -1, -1, -1, -1, -1, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, -1, - 134, 135, 136, 137, 120, -1, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, -1, 134, 135, - 136, 119, -1, -1, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, -1, 134, 135, 136, 118, - -1, -1, -1, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, -1, 134, 135, 136, 15, 16, + -1, -1, -1, 31, -1, -1, -1, 134, 15, 16, 17, 18, 19, 20, 21, 22, -1, -1, -1, -1, - -1, -1, -1, -1, 31, 15, 16, 17, 18, 19, - 20, 21, 22, -1, -1, -1, -1, -1, -1, -1, - -1, 31, 15, 16, 17, 18, 19, 20, 21, 22, - -1, -1, -1, -1, -1, -1, -1, -1, 31, 15, + -1, -1, -1, -1, 31, -1, 15, 16, 17, 18, + 19, 20, 21, 22, -1, -1, -1, -1, -1, -1, + -1, -1, 31, -1, 15, 16, 17, 18, 19, 20, + 21, 22, -1, -1, -1, -1, -1, 119, -1, -1, + 31, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, -1, 135, 136, 137, 138, 15, 16, 17, + 18, 19, 20, 21, 22, -1, -1, -1, -1, -1, + -1, -1, -1, 31, -1, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, -1, 135, 136, 137, + 138, -1, -1, -1, -1, -1, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, -1, 135, 136, + 137, 138, 121, -1, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, -1, 135, 136, 137, 120, + -1, -1, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, -1, 135, 136, 137, 15, 16, 17, + 18, 19, 20, 21, 22, -1, -1, -1, -1, -1, + -1, 119, -1, 31, -1, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, -1, 135, 136, 137, + 15, 16, 17, 18, 19, 20, 21, 22, -1, -1, + -1, -1, -1, -1, -1, -1, 31, 15, 16, 17, + 18, 19, 20, 21, 22, -1, -1, -1, -1, -1, + -1, -1, -1, 31, 15, 16, 17, 18, 19, 20, + 21, 22, -1, -1, -1, -1, -1, -1, -1, -1, + 31, 15, 16, 17, 18, 19, 20, 21, 22, -1, + -1, -1, -1, -1, -1, -1, -1, 31, -1, -1, + -1, -1, -1, 121, -1, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, -1, 135, 136, 137, 16, 17, 18, 19, 20, 21, 22, -1, -1, -1, - -1, -1, -1, -1, -1, 31, 15, 16, 17, 18, - 19, 20, 21, 22, -1, -1, -1, -1, -1, -1, - -1, -1, 31, 16, 17, 18, 19, 20, 21, 22, + -1, -1, -1, -1, -1, 31, -1, -1, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, + 135, 136, 137, -1, -1, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, -1, 135, 136, 137, + 121, -1, 123, 124, 125, 126, -1, -1, 129, 130, + 131, 132, 133, -1, 135, 136, 137, -1, -1, 123, + 124, 125, 126, -1, -1, 129, 130, 131, 132, 133, + -1, 135, 136, 137, 17, 18, 19, 20, 21, 22, -1, -1, -1, -1, -1, -1, -1, -1, 31, -1, - -1, -1, -1, 120, -1, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, -1, 134, 135, 136, - -1, -1, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, -1, 134, 135, 136, -1, -1, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - -1, 134, 135, 136, 120, -1, 122, 123, 124, 125, - -1, -1, 128, 129, 130, 131, 132, 0, 134, 135, - 136, -1, -1, 122, 123, 124, 125, -1, -1, 128, - 129, 130, 131, 132, -1, 134, 135, 136, -1, -1, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - -1, 134, 135, 136, 16, 17, 18, 19, 20, 21, - 22, -1, -1, -1, -1, 48, 49, -1, -1, 31, - -1, -1, -1, -1, 57, -1, -1, -1, -1, -1, - -1, 64, -1, 66, 67, 68, 69, -1, -1, 72, - -1, -1, -1, 76, -1, -1, -1, 80, 81, 82, - 83, -1, -1, -1, -1, 88, 89, 90, 91, -1, - -1, -1, -1, 96, 97, -1, -1, 100, -1, -1, - -1, 104, -1, -1, -1, 108, 109, -1, 111, 17, - 18, 19, 20, 21, 22, -1, 119, -1, -1, -1, - -1, -1, -1, 31, 17, 18, 19, 20, 21, 22, - -1, -1, -1, -1, -1, -1, -1, -1, 31, -1, - -1, 123, 124, 125, -1, -1, 128, 129, 130, 131, - 132, -1, 134, 135, 136, 17, 18, 19, 20, 21, - 22, -1, -1, -1, -1, -1, -1, -1, -1, 31, - 17, 18, 19, 20, 21, 22, -1, -1, -1, -1, - -1, -1, -1, -1, 31, 17, 18, 19, 20, 21, - 22, -1, -1, -1, -1, -1, -1, -1, -1, 31, - 19, 20, 21, 22, -1, -1, -1, -1, -1, -1, - -1, -1, 31, -1, -1, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, + -1, 50, -1, 52, 53, 54, -1, -1, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, -1, 135, + 136, 137, 17, 18, 19, 20, 21, 22, 77, 78, + 79, -1, -1, -1, -1, -1, 31, 17, 18, 19, + 20, 21, 22, -1, -1, 94, 95, -1, -1, -1, + -1, 31, 17, 18, 19, 20, 21, 22, -1, 108, + -1, -1, -1, -1, 113, -1, 31, 17, 18, 19, + 20, 21, 22, -1, -1, -1, -1, -1, -1, -1, + -1, 31, -1, -1, -1, -1, -1, 136, -1, -1, -1, 124, 125, 126, 127, 128, 129, 130, 131, 132, - -1, 134, 135, 136, 19, 20, 21, 22, -1, -1, - -1, -1, -1, -1, -1, -1, 31, -1, -1, -1, - -1, -1, -1, 125, 126, 127, 128, 129, 130, 131, - 132, -1, 134, 135, 136, -1, 123, 124, 125, -1, - -1, 128, 129, 130, 131, 132, -1, 134, 135, 136, - -1, -1, 124, 125, -1, -1, 128, 129, 130, 131, - 132, -1, 134, 135, 136, -1, -1, 126, 127, 128, - 129, 130, 131, 132, -1, 134, 135, 136, -1, 6, - -1, 50, -1, 52, 53, 54, -1, -1, -1, -1, - -1, -1, 11, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 77, 78, - 79, -1, -1, 128, 129, 130, 131, 132, -1, 134, - 135, 136, 49, -1, 93, 94, -1, -1, 10, 11, - 57, 50, -1, 52, 53, 54, 55, -1, 107, 66, - 67, 68, 61, 112, -1, -1, 65, -1, -1, 76, - -1, -1, 71, -1, -1, 82, -1, -1, 77, 78, - 79, -1, -1, -1, 91, 47, 135, -1, 50, 96, - 52, 53, 54, 55, 93, 94, 58, -1, -1, 61, - 99, -1, 109, 65, 111, -1, 105, 106, 107, 71, - 11, 110, -1, 112, -1, 77, 78, 79, -1, -1, + 133, -1, 135, 136, 137, 17, 18, 19, 20, 21, + 22, -1, -1, -1, -1, -1, -1, -1, -1, 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 93, 94, -1, -1, -1, -1, 99, 50, -1, - 52, 53, 54, 105, 106, 107, 47, -1, 110, 50, - 112, 52, 53, 54, 55, 56, -1, 58, -1, -1, - 61, -1, -1, -1, 65, 77, 78, 79, -1, -1, - 71, 11, -1, -1, -1, -1, 77, 78, 79, -1, - -1, 93, 94, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 93, 94, -1, 107, -1, -1, 99, -1, - 112, -1, -1, -1, 105, 106, 107, 47, 11, 110, - 50, 112, 52, 53, 54, 55, 56, -1, 58, -1, - -1, 61, -1, 135, -1, 65, -1, -1, -1, -1, - -1, 71, -1, -1, -1, -1, -1, 77, 78, 79, - -1, -1, -1, -1, 47, -1, -1, 50, -1, 52, - 53, 54, 55, 93, 94, 58, -1, -1, 61, 99, - -1, -1, 65, -1, -1, 105, 106, 107, 71, 11, - 110, -1, 112, -1, 77, 78, 79, -1, -1, 11, - -1, -1, -1, -1, -1, -1, -1, -1, 91, -1, - 93, 94, -1, -1, -1, -1, 99, -1, -1, -1, - -1, -1, 105, 106, 107, 47, -1, 110, 50, 112, - 52, 53, 54, 55, -1, -1, 58, -1, 50, 61, - 52, 53, 54, 65, -1, -1, -1, -1, -1, 71, - -1, -1, -1, -1, -1, 77, 78, 79, -1, -1, - -1, -1, -1, -1, -1, 77, 78, 79, -1, -1, - -1, 93, 94, -1, -1, -1, -1, 99, 48, 49, - -1, 93, 94, 105, 106, 107, -1, 57, 110, -1, - 112, -1, -1, -1, 64, 107, 66, 67, 68, 69, - 112, -1, 72, -1, -1, -1, 76, -1, -1, -1, - 80, 81, 82, 83, -1, -1, -1, -1, 88, 89, - 90, 91, -1, -1, 48, 49, 96, 97, -1, -1, - 100, -1, -1, 57, 104, -1, -1, -1, 108, 109, - 64, 111, 66, 67, 68, 69, -1, -1, 72, 119, - -1, -1, 76, -1, -1, -1, 80, 81, 82, 83, - -1, -1, -1, -1, 88, 89, 90, 91, 138, -1, - 48, 49, 96, 97, -1, -1, 100, -1, -1, 57, - 104, -1, -1, -1, 108, 109, 64, 111, 66, 67, - 68, 69, -1, -1, 72, 119, -1, -1, 76, -1, - -1, -1, 80, 81, 82, 83, -1, -1, -1, -1, - 88, 89, 90, 91, 138, -1, 48, 49, 96, 97, - -1, -1, 100, -1, -1, 57, 104, -1, -1, -1, - 108, 109, 64, 111, 66, 67, 68, 69, -1, -1, - 72, 119, -1, -1, 76, -1, -1, -1, 80, 81, - 82, 83, -1, -1, -1, -1, 88, 89, 90, 91, - 138, -1, 48, 49, 96, 97, -1, -1, 100, -1, - -1, 57, 104, -1, -1, -1, 108, 109, 64, 111, - 66, 67, 68, 69, -1, -1, 72, 119, -1, -1, - 76, -1, -1, -1, 80, 81, 82, 83, -1, -1, - -1, -1, 88, 89, 90, 91, 138, -1, 48, 49, - 96, 97, -1, -1, 100, -1, -1, 57, 104, -1, - -1, -1, 108, 109, 64, 111, 66, 67, 68, 69, - -1, -1, 72, 119, -1, -1, 76, -1, -1, -1, - 80, 81, 82, 83, -1, -1, -1, -1, 88, 89, - 90, 91, 138, -1, 48, 49, 96, 97, -1, -1, - 100, -1, -1, 57, 104, -1, -1, -1, 108, 109, - 64, 111, 66, 67, 68, 69, -1, -1, 72, 119, - -1, -1, 76, -1, -1, -1, 80, 81, 82, 83, - -1, -1, -1, -1, 88, 89, 90, 91, 138, -1, - -1, -1, 96, 97, -1, 50, 100, 52, 53, 54, - 104, -1, 49, -1, 108, 109, 61, 111, -1, -1, - 57, -1, -1, -1, -1, 119, 71, -1, -1, 66, - 67, 68, 77, 78, 79, -1, -1, -1, -1, 76, - -1, -1, -1, -1, 138, 82, -1, -1, 93, 94, - -1, -1, -1, -1, 91, -1, -1, -1, -1, 96, - 48, 49, 107, -1, -1, -1, -1, 112, -1, 57, - -1, -1, 109, -1, 111, -1, 64, -1, 66, 67, - 68, 69, -1, -1, 72, -1, -1, -1, 76, 126, - 135, -1, 80, 81, 82, 83, -1, -1, -1, -1, - 88, 89, 90, 91, -1, -1, -1, -1, 96, 97, - -1, 50, 100, 52, 53, 54, 104, -1, 49, -1, - 108, 109, 61, 111, -1, 49, 57, -1, -1, -1, - -1, -1, 71, 57, -1, 66, 67, 68, 77, 78, - 79, -1, 66, 67, 68, 76, -1, -1, -1, -1, - -1, 82, 76, -1, 93, 94, -1, -1, 82, -1, - 91, -1, -1, -1, -1, 96, -1, 91, 107, 100, - -1, -1, 96, 112, -1, -1, -1, -1, 109, -1, - 111, -1, -1, -1, -1, 109, -1, 111 + 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, + 135, 136, 137, -1, -1, -1, 126, 127, 128, 129, + 130, 131, 132, 133, -1, 135, 136, 137, -1, 124, + 125, 126, -1, -1, 129, 130, 131, 132, 133, -1, + 135, 136, 137, -1, -1, -1, -1, 127, 128, 129, + 130, 131, 132, 133, -1, 135, 136, 137, 17, 18, + 19, 20, 21, 22, -1, -1, -1, -1, -1, -1, + -1, -1, 31, 19, 20, 21, 22, -1, -1, -1, + -1, -1, -1, 125, 126, 31, -1, 129, 130, 131, + 132, 133, -1, 135, 136, 137, 19, 20, 21, 22, + -1, -1, -1, 48, 49, -1, -1, -1, 31, -1, + -1, -1, 57, -1, -1, -1, -1, -1, -1, 64, + -1, 66, 67, 68, 69, -1, -1, 72, -1, -1, + -1, 76, -1, -1, -1, 80, 81, 82, 83, 84, + -1, -1, -1, -1, 89, 90, 91, 92, -1, -1, + -1, -1, 97, 98, -1, -1, 101, -1, -1, -1, + 105, -1, -1, -1, 109, 110, -1, 112, -1, -1, + 129, 130, 131, 132, 133, 120, 135, 136, 137, 10, + 11, 127, 128, 129, 130, 131, 132, 133, -1, 135, + 136, 137, -1, -1, 139, -1, -1, -1, -1, 10, + 11, -1, -1, -1, -1, -1, 129, 130, 131, 132, + 133, -1, 135, 136, 137, -1, 47, -1, -1, 50, + -1, 52, 53, 54, 55, -1, -1, 58, -1, 50, + 61, 52, 53, 54, 65, -1, -1, -1, -1, 50, + 71, 52, 53, 54, 55, 56, 77, 78, 79, -1, + 61, -1, -1, -1, -1, -1, 77, 78, 79, -1, + 71, 10, 11, 94, 95, -1, 77, 78, 79, 100, + -1, -1, -1, 94, 95, 106, 107, 108, -1, -1, + 111, -1, 113, 94, 95, -1, -1, 108, -1, -1, + -1, -1, 113, -1, -1, 106, -1, 108, -1, -1, + 111, 50, 113, 52, 53, 54, -1, -1, -1, -1, + -1, 11, 61, -1, -1, 136, -1, -1, -1, -1, + -1, -1, 71, -1, -1, -1, -1, -1, 77, 78, + 79, -1, -1, -1, -1, -1, -1, -1, -1, 50, + -1, 52, 53, 54, -1, 94, 95, 47, -1, -1, + 50, -1, 52, 53, 54, 55, 56, -1, 58, 108, + 71, 61, 111, -1, 113, 65, 77, 78, 79, -1, + -1, 71, -1, 11, -1, -1, -1, 77, 78, 79, + -1, -1, -1, 94, 95, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 94, 95, -1, 108, -1, -1, + 100, 50, 113, 52, 53, 54, 106, 107, 108, 47, + -1, 111, 50, 113, 52, 53, 54, 55, 56, -1, + 58, -1, -1, 61, -1, -1, -1, 65, 77, 78, + 79, -1, -1, 71, -1, 11, -1, -1, -1, 77, + 78, 79, -1, -1, -1, 94, 95, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 94, 95, -1, 108, + -1, -1, 100, -1, 113, -1, -1, -1, 106, 107, + 108, 47, -1, 111, 50, 113, 52, 53, 54, 55, + -1, -1, 58, -1, -1, 61, -1, -1, -1, 65, + -1, -1, -1, -1, -1, 71, -1, 11, -1, -1, + -1, 77, 78, 79, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 92, 11, 94, 95, + -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, + 106, 107, 108, 47, -1, 111, 50, 113, 52, 53, + 54, 55, -1, -1, 58, -1, -1, 61, -1, -1, + -1, 65, -1, -1, -1, -1, 50, 71, 52, 53, + 54, 55, -1, 77, 78, 79, -1, 61, -1, -1, + -1, 65, -1, -1, -1, -1, -1, 71, -1, -1, + 94, 95, -1, 77, 78, 79, 100, -1, -1, -1, + -1, -1, 106, 107, 108, -1, -1, 111, -1, 113, + 94, 95, 48, 49, -1, -1, 100, -1, -1, -1, + -1, 57, 106, 107, 108, -1, -1, 111, 64, 113, + 66, 67, 68, 69, -1, -1, 72, -1, -1, -1, + 76, -1, -1, -1, 80, 81, 82, 83, 84, -1, + -1, -1, -1, 89, 90, 91, 92, -1, -1, -1, + -1, 97, 98, -1, -1, 101, -1, -1, -1, 105, + -1, -1, -1, 109, 110, -1, 112, 48, 49, -1, + -1, -1, -1, -1, 120, -1, 57, -1, -1, -1, + -1, -1, -1, 64, -1, 66, 67, 68, 69, -1, + -1, 72, -1, 139, -1, 76, -1, -1, -1, 80, + 81, 82, 83, 84, -1, -1, -1, -1, 89, 90, + 91, 92, -1, -1, -1, -1, 97, 98, -1, -1, + 101, -1, -1, -1, 105, -1, -1, -1, 109, 110, + -1, 112, 48, 49, -1, -1, -1, -1, -1, 120, + -1, 57, -1, -1, -1, -1, -1, -1, 64, -1, + 66, 67, 68, 69, -1, -1, 72, -1, 139, -1, + 76, -1, -1, -1, 80, 81, 82, 83, 84, -1, + -1, -1, -1, 89, 90, 91, 92, -1, -1, -1, + -1, 97, 98, -1, -1, 101, -1, -1, -1, 105, + -1, -1, -1, 109, 110, -1, 112, 48, 49, -1, + -1, -1, -1, -1, 120, -1, 57, -1, -1, -1, + -1, -1, -1, 64, -1, 66, 67, 68, 69, -1, + -1, 72, -1, 139, -1, 76, -1, -1, -1, 80, + 81, 82, 83, 84, -1, -1, -1, -1, 89, 90, + 91, 92, -1, -1, -1, -1, 97, 98, -1, -1, + 101, -1, -1, -1, 105, -1, -1, -1, 109, 110, + -1, 112, 48, 49, -1, -1, -1, -1, -1, 120, + -1, 57, -1, -1, -1, -1, -1, -1, 64, -1, + 66, 67, 68, 69, -1, -1, 72, -1, 139, -1, + 76, -1, -1, -1, 80, 81, 82, 83, 84, -1, + -1, -1, -1, 89, 90, 91, 92, -1, -1, -1, + -1, 97, 98, -1, -1, 101, -1, -1, -1, 105, + -1, -1, -1, 109, 110, -1, 112, 48, 49, -1, + -1, -1, -1, -1, 120, -1, 57, -1, -1, -1, + -1, -1, -1, 64, -1, 66, 67, 68, 69, -1, + -1, 72, -1, 139, -1, 76, -1, -1, -1, 80, + 81, 82, 83, 84, -1, -1, -1, -1, 89, 90, + 91, 92, -1, -1, -1, -1, 97, 98, -1, 50, + 101, 52, 53, 54, 105, -1, -1, -1, 109, 110, + 61, 112, -1, -1, -1, -1, -1, -1, -1, 120, + 71, -1, -1, -1, -1, -1, 77, 78, 79, -1, + -1, 48, 49, -1, -1, -1, -1, -1, 139, -1, + 57, -1, -1, 94, 95, -1, -1, 64, -1, 66, + 67, 68, 69, -1, -1, 72, -1, 108, -1, 76, + -1, -1, 113, 80, 81, 82, 83, 84, -1, -1, + -1, -1, 89, 90, 91, 92, -1, -1, -1, -1, + 97, 98, -1, -1, 101, 136, -1, 50, 105, 52, + 53, 54, 109, 110, 49, 112, -1, -1, 61, -1, + -1, -1, 57, -1, -1, -1, -1, -1, 71, -1, + -1, 66, 67, 68, 77, 78, 79, 49, -1, -1, + -1, 76, -1, -1, -1, 57, -1, -1, 83, -1, + -1, 94, 95, -1, 66, 67, 68, 92, -1, -1, + -1, -1, 97, -1, 76, 108, 101, -1, -1, -1, + 113, 83, -1, -1, -1, 110, -1, 112, -1, -1, + 92, -1, -1, -1, -1, 97, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 110, -1, + 112 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 114, 115, 116, 142, 143, 235, 3, 4, 5, + 0, 115, 116, 117, 143, 144, 236, 3, 4, 5, 6, 8, 9, 10, 11, 46, 50, 52, 53, 54, - 61, 62, 70, 71, 77, 78, 84, 86, 93, 94, - 95, 98, 102, 107, 112, 125, 129, 130, 133, 135, - 139, 228, 229, 234, 11, 47, 50, 52, 53, 54, - 55, 56, 58, 61, 65, 71, 77, 78, 79, 93, - 94, 99, 105, 106, 107, 110, 112, 193, 197, 198, - 200, 205, 206, 210, 211, 216, 217, 218, 219, 0, + 61, 62, 70, 71, 77, 78, 85, 87, 94, 95, + 96, 99, 103, 108, 113, 126, 130, 131, 134, 136, + 140, 229, 230, 235, 11, 47, 50, 52, 53, 54, + 55, 56, 58, 61, 65, 71, 77, 78, 79, 94, + 95, 100, 106, 107, 108, 111, 113, 194, 198, 199, + 201, 206, 207, 211, 212, 217, 218, 219, 220, 0, 48, 49, 57, 64, 66, 67, 68, 69, 72, 76, - 80, 81, 82, 83, 88, 89, 90, 91, 96, 97, - 100, 104, 108, 109, 111, 119, 146, 148, 149, 151, - 152, 153, 174, 212, 215, 235, 135, 135, 135, 135, - 135, 135, 135, 126, 135, 135, 135, 11, 105, 195, - 210, 211, 216, 135, 135, 135, 126, 135, 135, 228, - 228, 228, 228, 11, 50, 52, 53, 54, 61, 71, - 77, 78, 93, 94, 107, 112, 197, 226, 228, 228, - 15, 16, 17, 18, 19, 20, 21, 22, 31, 122, + 80, 81, 82, 83, 84, 89, 90, 91, 92, 97, + 98, 101, 105, 109, 110, 112, 120, 147, 149, 150, + 152, 153, 154, 175, 213, 216, 236, 136, 136, 136, + 136, 136, 136, 136, 127, 136, 136, 136, 11, 106, + 196, 211, 212, 217, 136, 136, 136, 127, 136, 136, + 229, 229, 229, 229, 11, 50, 52, 53, 54, 61, + 71, 77, 78, 94, 95, 108, 113, 198, 227, 229, + 229, 15, 16, 17, 18, 19, 20, 21, 22, 31, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 134, 135, 136, 6, 8, 193, 135, 61, 71, 78, - 217, 78, 217, 217, 10, 11, 233, 217, 12, 16, - 56, 111, 125, 130, 135, 192, 235, 117, 120, 233, - 117, 233, 76, 151, 151, 151, 6, 151, 151, 120, - 150, 83, 151, 135, 135, 151, 117, 233, 120, 120, - 120, 151, 151, 135, 151, 152, 175, 151, 158, 83, - 233, 151, 151, 10, 11, 47, 56, 58, 87, 105, - 117, 133, 163, 194, 196, 198, 200, 205, 210, 211, - 216, 225, 226, 235, 197, 225, 225, 225, 225, 225, - 197, 225, 225, 225, 233, 135, 233, 233, 225, 225, - 197, 197, 225, 225, 137, 118, 137, 228, 228, 228, + 133, 135, 136, 137, 6, 8, 194, 136, 61, 71, + 78, 218, 78, 218, 218, 10, 11, 234, 218, 12, + 16, 56, 112, 126, 131, 136, 193, 236, 118, 121, + 234, 118, 234, 76, 152, 152, 152, 6, 152, 152, + 121, 151, 84, 152, 136, 136, 136, 152, 118, 234, + 121, 121, 121, 152, 152, 136, 152, 153, 176, 152, + 159, 84, 234, 152, 152, 10, 11, 47, 56, 58, + 88, 106, 118, 134, 164, 195, 197, 199, 201, 206, + 211, 212, 217, 226, 227, 236, 198, 226, 226, 226, + 226, 226, 198, 226, 226, 226, 234, 136, 234, 234, + 226, 226, 198, 198, 226, 226, 138, 119, 138, 229, + 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, + 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, + 138, 227, 229, 193, 229, 71, 131, 193, 193, 193, + 193, 193, 193, 137, 209, 210, 236, 11, 208, 218, + 121, 200, 202, 152, 149, 118, 234, 10, 10, 10, + 144, 118, 229, 127, 56, 164, 195, 197, 234, 136, + 136, 10, 11, 197, 136, 56, 194, 234, 148, 234, + 118, 120, 121, 122, 187, 120, 155, 234, 234, 138, + 138, 138, 138, 138, 138, 138, 128, 138, 138, 138, + 226, 138, 138, 138, 128, 138, 138, 229, 229, 121, + 138, 141, 138, 193, 138, 225, 229, 236, 234, 139, + 208, 144, 121, 203, 204, 236, 144, 118, 119, 119, + 119, 139, 214, 119, 138, 10, 11, 55, 56, 106, + 177, 178, 179, 180, 217, 236, 197, 187, 160, 165, + 12, 131, 166, 156, 229, 194, 10, 11, 12, 16, + 56, 112, 126, 131, 191, 236, 144, 136, 221, 222, + 145, 146, 234, 118, 229, 12, 16, 56, 88, 112, + 126, 131, 136, 157, 181, 234, 121, 136, 138, 136, + 229, 136, 141, 119, 122, 139, 89, 90, 91, 110, + 205, 118, 119, 139, 215, 10, 10, 10, 144, 235, + 234, 180, 234, 128, 119, 10, 11, 12, 16, 56, + 112, 126, 131, 136, 192, 236, 161, 162, 181, 3, + 4, 5, 9, 10, 14, 46, 56, 62, 70, 85, + 87, 92, 96, 99, 103, 126, 130, 134, 136, 140, + 183, 184, 190, 194, 231, 232, 235, 236, 131, 181, + 183, 158, 181, 138, 191, 131, 191, 191, 191, 191, + 191, 136, 137, 139, 167, 139, 223, 236, 118, 119, + 136, 118, 188, 189, 229, 236, 120, 131, 181, 181, + 6, 15, 16, 17, 18, 19, 20, 21, 22, 31, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 60, 85, 119, 122, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 136, 137, 140, + 173, 181, 181, 181, 181, 121, 122, 136, 137, 186, + 187, 236, 208, 227, 227, 183, 229, 106, 110, 212, + 233, 234, 110, 233, 110, 233, 89, 90, 91, 144, + 205, 144, 119, 138, 119, 119, 139, 138, 122, 192, + 122, 153, 174, 175, 179, 131, 192, 192, 192, 192, + 192, 192, 122, 137, 185, 236, 163, 181, 186, 187, + 136, 92, 194, 127, 196, 190, 136, 127, 229, 229, + 229, 198, 227, 229, 138, 14, 119, 192, 15, 16, + 17, 18, 19, 20, 21, 22, 31, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 135, 136, + 137, 181, 121, 138, 138, 186, 187, 136, 191, 170, + 225, 183, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 65, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 83, 84, 85, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 140, 141, + 224, 221, 146, 226, 188, 139, 119, 181, 10, 138, + 141, 138, 4, 229, 182, 225, 119, 138, 138, 138, + 119, 234, 233, 234, 233, 233, 233, 233, 233, 139, + 139, 10, 120, 10, 10, 198, 185, 198, 192, 138, + 46, 62, 96, 99, 126, 130, 131, 134, 136, 140, + 228, 230, 225, 186, 187, 119, 198, 194, 192, 198, + 136, 198, 198, 138, 138, 56, 172, 236, 14, 190, + 122, 186, 229, 229, 229, 229, 229, 229, 229, 229, + 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, + 229, 229, 229, 138, 227, 229, 138, 136, 172, 119, + 171, 183, 141, 138, 223, 139, 138, 139, 118, 229, + 183, 141, 157, 172, 138, 119, 138, 138, 136, 136, + 127, 136, 127, 228, 228, 228, 228, 198, 227, 228, + 15, 16, 17, 18, 19, 20, 21, 22, 31, 123, + 124, 125, 126, 129, 130, 131, 132, 133, 135, 136, + 137, 141, 119, 162, 138, 192, 186, 128, 226, 138, + 128, 229, 86, 102, 229, 121, 138, 141, 136, 168, + 158, 183, 138, 172, 139, 188, 138, 120, 10, 120, + 120, 183, 198, 198, 198, 198, 138, 138, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, - 228, 228, 228, 228, 228, 228, 228, 228, 137, 226, - 228, 192, 228, 71, 130, 192, 192, 192, 192, 192, - 192, 136, 208, 209, 235, 11, 207, 217, 120, 199, - 201, 151, 148, 117, 233, 10, 10, 143, 117, 228, - 126, 56, 163, 194, 196, 233, 135, 135, 10, 11, - 196, 135, 56, 193, 233, 147, 233, 117, 119, 120, - 121, 186, 119, 154, 233, 233, 137, 137, 137, 137, - 137, 137, 137, 127, 137, 137, 137, 225, 137, 137, - 137, 127, 137, 137, 228, 228, 120, 137, 140, 137, - 192, 137, 224, 228, 235, 233, 138, 207, 143, 120, - 202, 203, 235, 143, 117, 118, 118, 138, 213, 118, - 137, 10, 11, 55, 56, 105, 176, 177, 178, 179, - 216, 235, 196, 186, 159, 164, 12, 130, 165, 155, - 228, 193, 10, 11, 12, 16, 56, 111, 125, 130, - 190, 235, 143, 135, 220, 221, 144, 145, 233, 117, - 228, 12, 16, 56, 87, 111, 125, 130, 135, 156, - 180, 233, 120, 135, 137, 135, 228, 135, 140, 118, - 121, 138, 88, 89, 90, 109, 204, 117, 118, 138, - 214, 10, 10, 143, 234, 233, 179, 233, 127, 118, - 10, 11, 12, 16, 56, 111, 125, 130, 135, 191, - 235, 160, 161, 180, 3, 4, 5, 9, 10, 14, - 46, 56, 62, 70, 84, 86, 91, 95, 98, 102, - 125, 129, 133, 135, 139, 182, 183, 189, 193, 230, - 231, 234, 235, 130, 180, 182, 157, 180, 137, 190, - 130, 190, 190, 190, 190, 190, 135, 136, 138, 166, - 138, 222, 235, 117, 118, 135, 117, 187, 188, 228, - 235, 119, 130, 180, 180, 6, 15, 16, 17, 18, - 19, 20, 21, 22, 31, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 60, 84, 118, - 121, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 135, 136, 139, 172, 180, 180, 180, 180, - 120, 121, 135, 136, 185, 186, 235, 207, 226, 226, - 182, 228, 105, 109, 211, 232, 233, 109, 232, 109, - 232, 88, 89, 90, 143, 204, 143, 118, 137, 118, - 138, 137, 121, 191, 121, 152, 173, 174, 178, 130, - 191, 191, 191, 191, 191, 191, 121, 136, 184, 235, - 162, 180, 185, 186, 135, 91, 193, 126, 195, 189, - 135, 126, 228, 228, 228, 197, 226, 228, 137, 14, - 118, 191, 15, 16, 17, 18, 19, 20, 21, 22, - 31, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 134, 135, 136, 180, 120, 137, 137, 185, - 186, 135, 190, 169, 224, 182, 3, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 65, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 82, 83, 84, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 139, 140, 223, 220, 145, 225, 187, 138, - 118, 180, 10, 137, 140, 137, 4, 228, 181, 224, - 118, 137, 137, 137, 118, 233, 232, 233, 232, 232, - 232, 232, 232, 138, 138, 10, 119, 10, 197, 184, - 197, 191, 137, 46, 62, 95, 98, 125, 129, 130, - 133, 135, 139, 227, 229, 224, 185, 186, 118, 197, - 193, 191, 197, 135, 197, 197, 137, 137, 56, 171, - 235, 14, 189, 121, 185, 228, 228, 228, 228, 228, - 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, - 228, 228, 228, 228, 228, 228, 137, 226, 228, 137, - 135, 171, 118, 170, 182, 140, 137, 222, 138, 137, - 138, 117, 228, 182, 140, 156, 171, 137, 137, 135, - 135, 126, 135, 126, 227, 227, 227, 227, 197, 226, - 227, 15, 16, 17, 18, 19, 20, 21, 22, 31, - 122, 123, 124, 125, 128, 129, 130, 131, 132, 134, - 135, 136, 140, 118, 161, 137, 191, 185, 127, 225, - 137, 127, 228, 85, 101, 228, 120, 137, 140, 135, - 167, 157, 182, 137, 171, 138, 187, 137, 119, 119, - 182, 197, 197, 197, 197, 137, 137, 227, 227, 227, - 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, - 227, 227, 227, 227, 227, 227, 137, 226, 228, 162, - 185, 135, 137, 135, 135, 228, 168, 182, 137, 171, - 138, 171, 137, 137, 127, 137, 127, 227, 120, 137, - 140, 226, 226, 137, 233, 182, 137, 171, 171, 135, - 135, 227, 137, 137, 137, 137, 171, 226, 226, 171, - 137, 137 + 228, 228, 228, 228, 228, 228, 228, 138, 227, 229, + 163, 186, 136, 138, 136, 136, 229, 169, 183, 138, + 172, 139, 172, 119, 138, 138, 128, 138, 128, 228, + 121, 138, 141, 227, 227, 138, 234, 183, 138, 172, + 10, 172, 136, 136, 228, 138, 138, 138, 138, 172, + 138, 227, 227, 172, 120, 138, 138 }; #define yyerrok (yyerrstatus = 0) @@ -3610,7 +3656,7 @@ yyreduce: { case 3: /* Line 1792 of yacc.c */ -#line 407 "dtool/src/cppparser/cppBison.yxx" +#line 408 "dtool/src/cppparser/cppBison.yxx" { current_expr = (yyvsp[(2) - (2)].u.expr); } @@ -3618,7 +3664,7 @@ yyreduce: case 4: /* Line 1792 of yacc.c */ -#line 411 "dtool/src/cppparser/cppBison.yxx" +#line 412 "dtool/src/cppparser/cppBison.yxx" { current_type = (yyvsp[(2) - (2)].u.type); } @@ -3626,7 +3672,7 @@ yyreduce: case 10: /* Line 1792 of yacc.c */ -#line 429 "dtool/src/cppparser/cppBison.yxx" +#line 430 "dtool/src/cppparser/cppBison.yxx" { delete (yyvsp[(3) - (4)].u.expr); } @@ -3634,7 +3680,7 @@ yyreduce: case 11: /* Line 1792 of yacc.c */ -#line 441 "dtool/src/cppparser/cppBison.yxx" +#line 442 "dtool/src/cppparser/cppBison.yxx" { push_storage_class((current_storage_class & ~CPPInstance::SC_c_binding) | ((yyvsp[(1) - (2)].u.integer) & CPPInstance::SC_c_binding)); @@ -3643,7 +3689,7 @@ yyreduce: case 12: /* Line 1792 of yacc.c */ -#line 446 "dtool/src/cppparser/cppBison.yxx" +#line 447 "dtool/src/cppparser/cppBison.yxx" { pop_storage_class(); } @@ -3651,7 +3697,7 @@ yyreduce: case 20: /* Line 1792 of yacc.c */ -#line 460 "dtool/src/cppparser/cppBison.yxx" +#line 461 "dtool/src/cppparser/cppBison.yxx" { if (publish_nest_level != 0) { yyerror("Unclosed __begin_publish", publish_loc); @@ -3668,7 +3714,7 @@ yyreduce: case 21: /* Line 1792 of yacc.c */ -#line 473 "dtool/src/cppparser/cppBison.yxx" +#line 474 "dtool/src/cppparser/cppBison.yxx" { if (publish_nest_level != 1) { yyerror("Unmatched __end_publish", (yylsp[(1) - (1)])); @@ -3681,7 +3727,7 @@ yyreduce: case 22: /* Line 1792 of yacc.c */ -#line 482 "dtool/src/cppparser/cppBison.yxx" +#line 483 "dtool/src/cppparser/cppBison.yxx" { current_scope->set_current_vis(V_published); } @@ -3689,7 +3735,7 @@ yyreduce: case 23: /* Line 1792 of yacc.c */ -#line 486 "dtool/src/cppparser/cppBison.yxx" +#line 487 "dtool/src/cppparser/cppBison.yxx" { if (publish_nest_level > 0) { current_scope->set_current_vis(V_published); @@ -3701,7 +3747,7 @@ yyreduce: case 24: /* Line 1792 of yacc.c */ -#line 494 "dtool/src/cppparser/cppBison.yxx" +#line 495 "dtool/src/cppparser/cppBison.yxx" { current_scope->set_current_vis(V_protected); } @@ -3709,7 +3755,7 @@ yyreduce: case 25: /* Line 1792 of yacc.c */ -#line 498 "dtool/src/cppparser/cppBison.yxx" +#line 499 "dtool/src/cppparser/cppBison.yxx" { current_scope->set_current_vis(V_private); } @@ -3717,7 +3763,7 @@ yyreduce: case 26: /* Line 1792 of yacc.c */ -#line 502 "dtool/src/cppparser/cppBison.yxx" +#line 503 "dtool/src/cppparser/cppBison.yxx" { CPPDeclaration *getter = (yyvsp[(5) - (7)].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); @@ -3732,7 +3778,7 @@ yyreduce: case 27: /* Line 1792 of yacc.c */ -#line 513 "dtool/src/cppparser/cppBison.yxx" +#line 514 "dtool/src/cppparser/cppBison.yxx" { CPPDeclaration *getter = (yyvsp[(5) - (9)].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (getter == (CPPDeclaration *)NULL || getter->get_subtype() != CPPDeclaration::ST_function_group) { @@ -3757,7 +3803,70 @@ yyreduce: case 28: /* Line 1792 of yacc.c */ -#line 534 "dtool/src/cppparser/cppBison.yxx" +#line 535 "dtool/src/cppparser/cppBison.yxx" + { + CPPDeclaration *hasser = (yyvsp[(5) - (9)].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); + if (hasser == (CPPDeclaration *)NULL || hasser->get_subtype() != CPPDeclaration::ST_function_group) { + yyerror("Reference to non-existent or invalid has-function: " + (yyvsp[(5) - (9)].u.identifier)->get_fully_scoped_name(), (yylsp[(5) - (9)])); + } + + CPPDeclaration *getter = (yyvsp[(7) - (9)].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); + if (getter == (CPPDeclaration *)NULL || getter->get_subtype() != CPPDeclaration::ST_function_group) { + yyerror("Reference to non-existent or invalid getter: " + (yyvsp[(7) - (9)].u.identifier)->get_fully_scoped_name(), (yylsp[(7) - (9)])); + } + + if (hasser && getter) { + CPPMakeProperty *make_property; + make_property = new CPPMakeProperty((yyvsp[(3) - (9)].u.identifier), + hasser->as_function_group(), + getter->as_function_group(), + NULL, NULL, + current_scope, (yylsp[(1) - (9)]).file); + current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[(1) - (9)])); + } +} + break; + + case 29: +/* Line 1792 of yacc.c */ +#line 557 "dtool/src/cppparser/cppBison.yxx" + { + CPPDeclaration *hasser = (yyvsp[(5) - (13)].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); + if (hasser == (CPPDeclaration *)NULL || hasser->get_subtype() != CPPDeclaration::ST_function_group) { + yyerror("Reference to non-existent or invalid has-function: " + (yyvsp[(5) - (13)].u.identifier)->get_fully_scoped_name(), (yylsp[(5) - (13)])); + } + + CPPDeclaration *getter = (yyvsp[(7) - (13)].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); + if (getter == (CPPDeclaration *)NULL || getter->get_subtype() != CPPDeclaration::ST_function_group) { + yyerror("Reference to non-existent or invalid getter: " + (yyvsp[(7) - (13)].u.identifier)->get_fully_scoped_name(), (yylsp[(7) - (13)])); + } + + CPPDeclaration *setter = (yyvsp[(9) - (13)].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); + if (setter == (CPPDeclaration *)NULL || setter->get_subtype() != CPPDeclaration::ST_function_group) { + yyerror("Reference to non-existent or invalid setter: " + (yyvsp[(9) - (13)].u.identifier)->get_fully_scoped_name(), (yylsp[(9) - (13)])); + } + + CPPDeclaration *clearer = (yyvsp[(11) - (13)].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); + if (clearer == (CPPDeclaration *)NULL || clearer->get_subtype() != CPPDeclaration::ST_function_group) { + yyerror("Reference to non-existent or invalid clear-function: " + (yyvsp[(11) - (13)].u.identifier)->get_fully_scoped_name(), (yylsp[(11) - (13)])); + } + + if (hasser && getter && setter && clearer) { + CPPMakeProperty *make_property; + make_property = new CPPMakeProperty((yyvsp[(3) - (13)].u.identifier), + hasser->as_function_group(), + getter->as_function_group(), + setter->as_function_group(), + clearer->as_function_group(), + current_scope, (yylsp[(1) - (13)]).file); + current_scope->add_declaration(make_property, global_scope, current_lexer, (yylsp[(1) - (13)])); + } +} + break; + + case 30: +/* Line 1792 of yacc.c */ +#line 590 "dtool/src/cppparser/cppBison.yxx" { CPPDeclaration *length_getter = (yyvsp[(5) - (9)].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (length_getter == (CPPDeclaration *)NULL || length_getter->get_subtype() != CPPDeclaration::ST_function_group) { @@ -3781,9 +3890,9 @@ yyreduce: } break; - case 29: + case 31: /* Line 1792 of yacc.c */ -#line 556 "dtool/src/cppparser/cppBison.yxx" +#line 612 "dtool/src/cppparser/cppBison.yxx" { CPPExpression::Result result = (yyvsp[(3) - (6)].u.expr)->evaluate(); if (result._type == CPPExpression::RT_error) { @@ -3796,9 +3905,9 @@ yyreduce: } break; - case 30: + case 32: /* Line 1792 of yacc.c */ -#line 567 "dtool/src/cppparser/cppBison.yxx" +#line 623 "dtool/src/cppparser/cppBison.yxx" { // This alternative version of static_assert was introduced in C++17. CPPExpression::Result result = (yyvsp[(3) - (4)].u.expr)->evaluate(); @@ -3810,9 +3919,9 @@ yyreduce: } break; - case 31: + case 33: /* Line 1792 of yacc.c */ -#line 580 "dtool/src/cppparser/cppBison.yxx" +#line 636 "dtool/src/cppparser/cppBison.yxx" { CPPScope *new_scope = new CPPScope(current_scope, CPPNameComponent("temp"), V_public); @@ -3820,34 +3929,34 @@ yyreduce: } break; - case 32: + case 34: /* Line 1792 of yacc.c */ -#line 586 "dtool/src/cppparser/cppBison.yxx" +#line 642 "dtool/src/cppparser/cppBison.yxx" { delete current_scope; pop_scope(); } break; - case 33: + case 35: /* Line 1792 of yacc.c */ -#line 595 "dtool/src/cppparser/cppBison.yxx" +#line 651 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = 0; } break; - case 34: + case 36: /* Line 1792 of yacc.c */ -#line 599 "dtool/src/cppparser/cppBison.yxx" +#line 655 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[(2) - (2)].u.integer) | (int)CPPInstance::SC_extern; } break; - case 35: + case 37: /* Line 1792 of yacc.c */ -#line 603 "dtool/src/cppparser/cppBison.yxx" +#line 659 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[(3) - (3)].u.integer) | (int)CPPInstance::SC_extern; if ((yyvsp[(2) - (3)].str) == "C") { @@ -3860,97 +3969,97 @@ yyreduce: } break; - case 36: + case 38: /* Line 1792 of yacc.c */ -#line 614 "dtool/src/cppparser/cppBison.yxx" +#line 670 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[(2) - (2)].u.integer) | (int)CPPInstance::SC_static; } break; - case 37: + case 39: /* Line 1792 of yacc.c */ -#line 618 "dtool/src/cppparser/cppBison.yxx" +#line 674 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[(2) - (2)].u.integer) | (int)CPPInstance::SC_inline; } break; - case 38: + case 40: /* Line 1792 of yacc.c */ -#line 622 "dtool/src/cppparser/cppBison.yxx" +#line 678 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[(2) - (2)].u.integer) | (int)CPPInstance::SC_virtual; } break; - case 39: + case 41: /* Line 1792 of yacc.c */ -#line 626 "dtool/src/cppparser/cppBison.yxx" +#line 682 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[(2) - (2)].u.integer) | (int)CPPInstance::SC_explicit; } break; - case 40: + case 42: /* Line 1792 of yacc.c */ -#line 630 "dtool/src/cppparser/cppBison.yxx" +#line 686 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[(2) - (2)].u.integer) | (int)CPPInstance::SC_register; } break; - case 41: + case 43: /* Line 1792 of yacc.c */ -#line 634 "dtool/src/cppparser/cppBison.yxx" +#line 690 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[(2) - (2)].u.integer) | (int)CPPInstance::SC_volatile; } break; - case 42: + case 44: /* Line 1792 of yacc.c */ -#line 638 "dtool/src/cppparser/cppBison.yxx" +#line 694 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[(2) - (2)].u.integer) | (int)CPPInstance::SC_mutable; } break; - case 43: + case 45: /* Line 1792 of yacc.c */ -#line 642 "dtool/src/cppparser/cppBison.yxx" +#line 698 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[(2) - (2)].u.integer) | (int)CPPInstance::SC_constexpr; } break; - case 44: + case 46: /* Line 1792 of yacc.c */ -#line 646 "dtool/src/cppparser/cppBison.yxx" +#line 702 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[(2) - (2)].u.integer) | (int)CPPInstance::SC_blocking; } break; - case 45: + case 47: /* Line 1792 of yacc.c */ -#line 650 "dtool/src/cppparser/cppBison.yxx" +#line 706 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[(2) - (2)].u.integer) | (int)CPPInstance::SC_extension; } break; - case 46: + case 48: /* Line 1792 of yacc.c */ -#line 657 "dtool/src/cppparser/cppBison.yxx" +#line 713 "dtool/src/cppparser/cppBison.yxx" { /* multiple_var_declaration adds itself to the scope. */ } break; - case 47: + case 49: /* Line 1792 of yacc.c */ -#line 661 "dtool/src/cppparser/cppBison.yxx" +#line 717 "dtool/src/cppparser/cppBison.yxx" { // We don't really care about the storage class here. In fact, it's // not actually legal to define a class or struct using a particular @@ -3961,9 +4070,9 @@ yyreduce: } break; - case 48: + case 50: /* Line 1792 of yacc.c */ -#line 670 "dtool/src/cppparser/cppBison.yxx" +#line 726 "dtool/src/cppparser/cppBison.yxx" { if ((yyvsp[(2) - (3)].u.instance) != (CPPInstance *)NULL) { (yyvsp[(2) - (3)].u.instance)->_storage_class |= (current_storage_class | (yyvsp[(1) - (3)].u.integer)); @@ -3973,9 +4082,9 @@ yyreduce: } break; - case 49: + case 51: /* Line 1792 of yacc.c */ -#line 681 "dtool/src/cppparser/cppBison.yxx" +#line 737 "dtool/src/cppparser/cppBison.yxx" { // We don't need to push/pop type, because we can't nest // multiple_var_declarations. @@ -3988,17 +4097,17 @@ yyreduce: } break; - case 50: + case 52: /* Line 1792 of yacc.c */ -#line 692 "dtool/src/cppparser/cppBison.yxx" +#line 748 "dtool/src/cppparser/cppBison.yxx" { pop_storage_class(); } break; - case 51: + case 53: /* Line 1792 of yacc.c */ -#line 696 "dtool/src/cppparser/cppBison.yxx" +#line 752 "dtool/src/cppparser/cppBison.yxx" { // We don't need to push/pop type, because we can't nest // multiple_var_declarations. @@ -4011,43 +4120,18 @@ yyreduce: } break; - case 52: + case 54: /* Line 1792 of yacc.c */ -#line 707 "dtool/src/cppparser/cppBison.yxx" +#line 763 "dtool/src/cppparser/cppBison.yxx" { pop_storage_class(); } break; - case 53: -/* Line 1792 of yacc.c */ -#line 718 "dtool/src/cppparser/cppBison.yxx" - { - CPPInstance *inst = new CPPInstance(current_type, (yyvsp[(1) - (2)].u.inst_ident), - current_storage_class, - (yylsp[(1) - (2)]).file); - inst->set_initializer((yyvsp[(2) - (2)].u.expr)); - current_scope->add_declaration(inst, global_scope, current_lexer, (yylsp[(1) - (2)])); -} - break; - - case 54: -/* Line 1792 of yacc.c */ -#line 726 "dtool/src/cppparser/cppBison.yxx" - { - CPPInstance *inst = new CPPInstance(current_type, (yyvsp[(1) - (4)].u.inst_ident), - current_storage_class, - (yylsp[(1) - (4)]).file); - inst->set_initializer((yyvsp[(2) - (4)].u.expr)); - current_scope->add_declaration(inst, global_scope, current_lexer, (yylsp[(1) - (4)])); -} - break; - case 55: /* Line 1792 of yacc.c */ -#line 737 "dtool/src/cppparser/cppBison.yxx" +#line 774 "dtool/src/cppparser/cppBison.yxx" { - (yyvsp[(1) - (2)].u.inst_ident)->add_modifier(IIT_const); CPPInstance *inst = new CPPInstance(current_type, (yyvsp[(1) - (2)].u.inst_ident), current_storage_class, (yylsp[(1) - (2)]).file); @@ -4058,9 +4142,8 @@ yyreduce: case 56: /* Line 1792 of yacc.c */ -#line 746 "dtool/src/cppparser/cppBison.yxx" +#line 782 "dtool/src/cppparser/cppBison.yxx" { - (yyvsp[(1) - (4)].u.inst_ident)->add_modifier(IIT_const); CPPInstance *inst = new CPPInstance(current_type, (yyvsp[(1) - (4)].u.inst_ident), current_storage_class, (yylsp[(1) - (4)]).file); @@ -4071,7 +4154,33 @@ yyreduce: case 57: /* Line 1792 of yacc.c */ -#line 759 "dtool/src/cppparser/cppBison.yxx" +#line 793 "dtool/src/cppparser/cppBison.yxx" + { + (yyvsp[(1) - (2)].u.inst_ident)->add_modifier(IIT_const); + CPPInstance *inst = new CPPInstance(current_type, (yyvsp[(1) - (2)].u.inst_ident), + current_storage_class, + (yylsp[(1) - (2)]).file); + inst->set_initializer((yyvsp[(2) - (2)].u.expr)); + current_scope->add_declaration(inst, global_scope, current_lexer, (yylsp[(1) - (2)])); +} + break; + + case 58: +/* Line 1792 of yacc.c */ +#line 802 "dtool/src/cppparser/cppBison.yxx" + { + (yyvsp[(1) - (4)].u.inst_ident)->add_modifier(IIT_const); + CPPInstance *inst = new CPPInstance(current_type, (yyvsp[(1) - (4)].u.inst_ident), + current_storage_class, + (yylsp[(1) - (4)]).file); + inst->set_initializer((yyvsp[(2) - (4)].u.expr)); + current_scope->add_declaration(inst, global_scope, current_lexer, (yylsp[(1) - (4)])); +} + break; + + case 59: +/* Line 1792 of yacc.c */ +#line 815 "dtool/src/cppparser/cppBison.yxx" { // We don't need to push/pop type, because we can't nest // multiple_var_declarations. @@ -4084,17 +4193,17 @@ yyreduce: } break; - case 58: + case 60: /* Line 1792 of yacc.c */ -#line 770 "dtool/src/cppparser/cppBison.yxx" +#line 826 "dtool/src/cppparser/cppBison.yxx" { pop_storage_class(); } break; - case 59: + case 61: /* Line 1792 of yacc.c */ -#line 774 "dtool/src/cppparser/cppBison.yxx" +#line 830 "dtool/src/cppparser/cppBison.yxx" { // We don't need to push/pop type, because we can't nest // multiple_var_declarations. @@ -4107,17 +4216,17 @@ yyreduce: } break; - case 60: + case 62: /* Line 1792 of yacc.c */ -#line 785 "dtool/src/cppparser/cppBison.yxx" +#line 841 "dtool/src/cppparser/cppBison.yxx" { pop_storage_class(); } break; - case 61: + case 63: /* Line 1792 of yacc.c */ -#line 789 "dtool/src/cppparser/cppBison.yxx" +#line 845 "dtool/src/cppparser/cppBison.yxx" { if ((yyvsp[(2) - (3)].u.instance) != (CPPDeclaration *)NULL) { CPPInstance *inst = (yyvsp[(2) - (3)].u.instance)->as_instance(); @@ -4131,31 +4240,10 @@ yyreduce: } break; - case 62: -/* Line 1792 of yacc.c */ -#line 804 "dtool/src/cppparser/cppBison.yxx" - { - CPPType *target_type = current_type; - CPPTypedefType *typedef_type = new CPPTypedefType(target_type, (yyvsp[(1) - (2)].u.inst_ident), current_scope, (yylsp[(1) - (2)]).file); - current_scope->add_declaration(CPPType::new_type(typedef_type), global_scope, current_lexer, (yylsp[(1) - (2)])); -} - break; - - case 63: -/* Line 1792 of yacc.c */ -#line 810 "dtool/src/cppparser/cppBison.yxx" - { - CPPType *target_type = current_type; - CPPTypedefType *typedef_type = new CPPTypedefType(target_type, (yyvsp[(1) - (4)].u.inst_ident), current_scope, (yylsp[(1) - (4)]).file); - current_scope->add_declaration(CPPType::new_type(typedef_type), global_scope, current_lexer, (yylsp[(1) - (4)])); -} - break; - case 64: /* Line 1792 of yacc.c */ -#line 819 "dtool/src/cppparser/cppBison.yxx" +#line 860 "dtool/src/cppparser/cppBison.yxx" { - (yyvsp[(1) - (2)].u.inst_ident)->add_modifier(IIT_const); CPPType *target_type = current_type; CPPTypedefType *typedef_type = new CPPTypedefType(target_type, (yyvsp[(1) - (2)].u.inst_ident), current_scope, (yylsp[(1) - (2)]).file); current_scope->add_declaration(CPPType::new_type(typedef_type), global_scope, current_lexer, (yylsp[(1) - (2)])); @@ -4164,9 +4252,8 @@ yyreduce: case 65: /* Line 1792 of yacc.c */ -#line 826 "dtool/src/cppparser/cppBison.yxx" +#line 866 "dtool/src/cppparser/cppBison.yxx" { - (yyvsp[(1) - (4)].u.inst_ident)->add_modifier(IIT_const); CPPType *target_type = current_type; CPPTypedefType *typedef_type = new CPPTypedefType(target_type, (yyvsp[(1) - (4)].u.inst_ident), current_scope, (yylsp[(1) - (4)]).file); current_scope->add_declaration(CPPType::new_type(typedef_type), global_scope, current_lexer, (yylsp[(1) - (4)])); @@ -4175,15 +4262,37 @@ yyreduce: case 66: /* Line 1792 of yacc.c */ -#line 838 "dtool/src/cppparser/cppBison.yxx" +#line 875 "dtool/src/cppparser/cppBison.yxx" { - push_scope((yyvsp[(1) - (2)].u.identifier)->get_scope(current_scope, global_scope)); + (yyvsp[(1) - (2)].u.inst_ident)->add_modifier(IIT_const); + CPPType *target_type = current_type; + CPPTypedefType *typedef_type = new CPPTypedefType(target_type, (yyvsp[(1) - (2)].u.inst_ident), current_scope, (yylsp[(1) - (2)]).file); + current_scope->add_declaration(CPPType::new_type(typedef_type), global_scope, current_lexer, (yylsp[(1) - (2)])); } break; case 67: /* Line 1792 of yacc.c */ -#line 842 "dtool/src/cppparser/cppBison.yxx" +#line 882 "dtool/src/cppparser/cppBison.yxx" + { + (yyvsp[(1) - (4)].u.inst_ident)->add_modifier(IIT_const); + CPPType *target_type = current_type; + CPPTypedefType *typedef_type = new CPPTypedefType(target_type, (yyvsp[(1) - (4)].u.inst_ident), current_scope, (yylsp[(1) - (4)]).file); + current_scope->add_declaration(CPPType::new_type(typedef_type), global_scope, current_lexer, (yylsp[(1) - (4)])); +} + break; + + case 68: +/* Line 1792 of yacc.c */ +#line 894 "dtool/src/cppparser/cppBison.yxx" + { + push_scope((yyvsp[(1) - (2)].u.identifier)->get_scope(current_scope, global_scope)); +} + break; + + case 69: +/* Line 1792 of yacc.c */ +#line 898 "dtool/src/cppparser/cppBison.yxx" { CPPType *type; if ((yyvsp[(1) - (6)].u.identifier)->get_simple_name() == current_scope->get_simple_name() || @@ -4205,17 +4314,17 @@ yyreduce: } break; - case 68: + case 70: /* Line 1792 of yacc.c */ -#line 862 "dtool/src/cppparser/cppBison.yxx" +#line 918 "dtool/src/cppparser/cppBison.yxx" { push_scope((yyvsp[(1) - (2)].u.identifier)->get_scope(current_scope, global_scope)); } break; - case 69: + case 71: /* Line 1792 of yacc.c */ -#line 866 "dtool/src/cppparser/cppBison.yxx" +#line 922 "dtool/src/cppparser/cppBison.yxx" { pop_scope(); CPPType *type; @@ -4235,17 +4344,17 @@ yyreduce: } break; - case 70: + case 72: /* Line 1792 of yacc.c */ -#line 886 "dtool/src/cppparser/cppBison.yxx" +#line 942 "dtool/src/cppparser/cppBison.yxx" { push_scope((yyvsp[(2) - (3)].u.identifier)->get_scope(current_scope, global_scope)); } break; - case 71: + case 73: /* Line 1792 of yacc.c */ -#line 890 "dtool/src/cppparser/cppBison.yxx" +#line 946 "dtool/src/cppparser/cppBison.yxx" { pop_scope(); if ((yyvsp[(2) - (7)].u.identifier)->is_scoped()) { @@ -4266,17 +4375,17 @@ yyreduce: } break; - case 72: + case 74: /* Line 1792 of yacc.c */ -#line 916 "dtool/src/cppparser/cppBison.yxx" +#line 972 "dtool/src/cppparser/cppBison.yxx" { push_scope((yyvsp[(4) - (6)].u.inst_ident)->get_scope(current_scope, global_scope)); } break; - case 73: + case 75: /* Line 1792 of yacc.c */ -#line 920 "dtool/src/cppparser/cppBison.yxx" +#line 976 "dtool/src/cppparser/cppBison.yxx" { pop_scope(); CPPType *type = (yyvsp[(1) - (10)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); @@ -4292,17 +4401,17 @@ yyreduce: } break; - case 74: + case 76: /* Line 1792 of yacc.c */ -#line 934 "dtool/src/cppparser/cppBison.yxx" +#line 990 "dtool/src/cppparser/cppBison.yxx" { push_scope((yyvsp[(5) - (7)].u.inst_ident)->get_scope(current_scope, global_scope)); } break; - case 75: + case 77: /* Line 1792 of yacc.c */ -#line 938 "dtool/src/cppparser/cppBison.yxx" +#line 994 "dtool/src/cppparser/cppBison.yxx" { pop_scope(); CPPType *type = (yyvsp[(1) - (11)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); @@ -4318,9 +4427,9 @@ yyreduce: } break; - case 76: + case 78: /* Line 1792 of yacc.c */ -#line 954 "dtool/src/cppparser/cppBison.yxx" +#line 1010 "dtool/src/cppparser/cppBison.yxx" { if ((yyvsp[(1) - (4)].u.identifier) != NULL) { push_scope((yyvsp[(1) - (4)].u.identifier)->get_scope(current_scope, global_scope)); @@ -4328,9 +4437,9 @@ yyreduce: } break; - case 77: + case 79: /* Line 1792 of yacc.c */ -#line 960 "dtool/src/cppparser/cppBison.yxx" +#line 1016 "dtool/src/cppparser/cppBison.yxx" { if ((yyvsp[(1) - (8)].u.identifier) != NULL) { pop_scope(); @@ -4357,9 +4466,9 @@ yyreduce: } break; - case 78: + case 80: /* Line 1792 of yacc.c */ -#line 985 "dtool/src/cppparser/cppBison.yxx" +#line 1041 "dtool/src/cppparser/cppBison.yxx" { if ((yyvsp[(1) - (5)].u.identifier) != NULL) { push_scope((yyvsp[(1) - (5)].u.identifier)->get_scope(current_scope, global_scope)); @@ -4367,9 +4476,9 @@ yyreduce: } break; - case 79: + case 81: /* Line 1792 of yacc.c */ -#line 991 "dtool/src/cppparser/cppBison.yxx" +#line 1047 "dtool/src/cppparser/cppBison.yxx" { if ((yyvsp[(1) - (9)].u.identifier) != NULL) { pop_scope(); @@ -4387,9 +4496,9 @@ yyreduce: } break; - case 80: + case 82: /* Line 1792 of yacc.c */ -#line 1011 "dtool/src/cppparser/cppBison.yxx" +#line 1067 "dtool/src/cppparser/cppBison.yxx" { CPPDeclaration *decl = (yyvsp[(1) - (1)].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); @@ -4401,377 +4510,377 @@ yyreduce: } break; - case 81: + case 83: /* Line 1792 of yacc.c */ -#line 1024 "dtool/src/cppparser/cppBison.yxx" +#line 1080 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = 0; } break; - case 82: + case 84: /* Line 1792 of yacc.c */ -#line 1028 "dtool/src/cppparser/cppBison.yxx" +#line 1084 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (int)CPPFunctionType::F_const_method; } break; - case 83: + case 85: /* Line 1792 of yacc.c */ -#line 1032 "dtool/src/cppparser/cppBison.yxx" +#line 1088 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (int)CPPFunctionType::F_noexcept; } break; - case 84: + case 86: /* Line 1792 of yacc.c */ -#line 1036 "dtool/src/cppparser/cppBison.yxx" +#line 1092 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[(1) - (4)].u.integer); } break; - case 85: + case 87: /* Line 1792 of yacc.c */ -#line 1040 "dtool/src/cppparser/cppBison.yxx" +#line 1096 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[(1) - (5)].u.integer); } break; - case 86: + case 88: /* Line 1792 of yacc.c */ -#line 1047 "dtool/src/cppparser/cppBison.yxx" +#line 1103 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "!"; } break; - case 87: + case 89: /* Line 1792 of yacc.c */ -#line 1051 "dtool/src/cppparser/cppBison.yxx" +#line 1107 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "~"; } break; - case 88: + case 90: /* Line 1792 of yacc.c */ -#line 1055 "dtool/src/cppparser/cppBison.yxx" +#line 1111 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "*"; } break; - case 89: + case 91: /* Line 1792 of yacc.c */ -#line 1059 "dtool/src/cppparser/cppBison.yxx" +#line 1115 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "/"; } break; - case 90: + case 92: /* Line 1792 of yacc.c */ -#line 1063 "dtool/src/cppparser/cppBison.yxx" +#line 1119 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "%"; } break; - case 91: + case 93: /* Line 1792 of yacc.c */ -#line 1067 "dtool/src/cppparser/cppBison.yxx" +#line 1123 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "+"; } break; - case 92: + case 94: /* Line 1792 of yacc.c */ -#line 1071 "dtool/src/cppparser/cppBison.yxx" +#line 1127 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "-"; } break; - case 93: + case 95: /* Line 1792 of yacc.c */ -#line 1075 "dtool/src/cppparser/cppBison.yxx" +#line 1131 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "|"; } break; - case 94: + case 96: /* Line 1792 of yacc.c */ -#line 1079 "dtool/src/cppparser/cppBison.yxx" +#line 1135 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "&"; } break; - case 95: + case 97: /* Line 1792 of yacc.c */ -#line 1083 "dtool/src/cppparser/cppBison.yxx" +#line 1139 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "^"; } break; - case 96: + case 98: /* Line 1792 of yacc.c */ -#line 1087 "dtool/src/cppparser/cppBison.yxx" +#line 1143 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "||"; } break; - case 97: + case 99: /* Line 1792 of yacc.c */ -#line 1091 "dtool/src/cppparser/cppBison.yxx" +#line 1147 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "&&"; } break; - case 98: + case 100: /* Line 1792 of yacc.c */ -#line 1095 "dtool/src/cppparser/cppBison.yxx" +#line 1151 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "=="; } break; - case 99: + case 101: /* Line 1792 of yacc.c */ -#line 1099 "dtool/src/cppparser/cppBison.yxx" +#line 1155 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "!="; } break; - case 100: + case 102: /* Line 1792 of yacc.c */ -#line 1103 "dtool/src/cppparser/cppBison.yxx" +#line 1159 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "<="; } break; - case 101: + case 103: /* Line 1792 of yacc.c */ -#line 1107 "dtool/src/cppparser/cppBison.yxx" +#line 1163 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = ">="; } break; - case 102: + case 104: /* Line 1792 of yacc.c */ -#line 1111 "dtool/src/cppparser/cppBison.yxx" +#line 1167 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "<"; } break; - case 103: + case 105: /* Line 1792 of yacc.c */ -#line 1115 "dtool/src/cppparser/cppBison.yxx" +#line 1171 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = ">"; } break; - case 104: + case 106: /* Line 1792 of yacc.c */ -#line 1119 "dtool/src/cppparser/cppBison.yxx" +#line 1175 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "<<"; } break; - case 105: + case 107: /* Line 1792 of yacc.c */ -#line 1123 "dtool/src/cppparser/cppBison.yxx" +#line 1179 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = ">>"; } break; - case 106: + case 108: /* Line 1792 of yacc.c */ -#line 1127 "dtool/src/cppparser/cppBison.yxx" +#line 1183 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "="; } break; - case 107: + case 109: /* Line 1792 of yacc.c */ -#line 1131 "dtool/src/cppparser/cppBison.yxx" +#line 1187 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = ","; } break; - case 108: + case 110: /* Line 1792 of yacc.c */ -#line 1135 "dtool/src/cppparser/cppBison.yxx" +#line 1191 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "++"; } break; - case 109: + case 111: /* Line 1792 of yacc.c */ -#line 1139 "dtool/src/cppparser/cppBison.yxx" +#line 1195 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "--"; } break; - case 110: + case 112: /* Line 1792 of yacc.c */ -#line 1143 "dtool/src/cppparser/cppBison.yxx" +#line 1199 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "*="; } break; - case 111: + case 113: /* Line 1792 of yacc.c */ -#line 1147 "dtool/src/cppparser/cppBison.yxx" +#line 1203 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "/="; } break; - case 112: + case 114: /* Line 1792 of yacc.c */ -#line 1151 "dtool/src/cppparser/cppBison.yxx" +#line 1207 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "%="; } break; - case 113: + case 115: /* Line 1792 of yacc.c */ -#line 1155 "dtool/src/cppparser/cppBison.yxx" +#line 1211 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "+="; } break; - case 114: + case 116: /* Line 1792 of yacc.c */ -#line 1159 "dtool/src/cppparser/cppBison.yxx" +#line 1215 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "-="; } break; - case 115: + case 117: /* Line 1792 of yacc.c */ -#line 1163 "dtool/src/cppparser/cppBison.yxx" +#line 1219 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "|="; } break; - case 116: + case 118: /* Line 1792 of yacc.c */ -#line 1167 "dtool/src/cppparser/cppBison.yxx" +#line 1223 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "&="; } break; - case 117: + case 119: /* Line 1792 of yacc.c */ -#line 1171 "dtool/src/cppparser/cppBison.yxx" +#line 1227 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "^="; } break; - case 118: + case 120: /* Line 1792 of yacc.c */ -#line 1175 "dtool/src/cppparser/cppBison.yxx" +#line 1231 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "<<="; } break; - case 119: + case 121: /* Line 1792 of yacc.c */ -#line 1179 "dtool/src/cppparser/cppBison.yxx" +#line 1235 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = ">>="; } break; - case 120: + case 122: /* Line 1792 of yacc.c */ -#line 1183 "dtool/src/cppparser/cppBison.yxx" +#line 1239 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "->"; } break; - case 121: + case 123: /* Line 1792 of yacc.c */ -#line 1187 "dtool/src/cppparser/cppBison.yxx" +#line 1243 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "[]"; } break; - case 122: + case 124: /* Line 1792 of yacc.c */ -#line 1191 "dtool/src/cppparser/cppBison.yxx" +#line 1247 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "()"; } break; - case 123: + case 125: /* Line 1792 of yacc.c */ -#line 1195 "dtool/src/cppparser/cppBison.yxx" +#line 1251 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "new"; } break; - case 124: + case 126: /* Line 1792 of yacc.c */ -#line 1199 "dtool/src/cppparser/cppBison.yxx" +#line 1255 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "delete"; } break; - case 127: + case 129: /* Line 1792 of yacc.c */ -#line 1211 "dtool/src/cppparser/cppBison.yxx" +#line 1267 "dtool/src/cppparser/cppBison.yxx" { push_scope(new CPPTemplateScope(current_scope)); } break; - case 128: + case 130: /* Line 1792 of yacc.c */ -#line 1215 "dtool/src/cppparser/cppBison.yxx" +#line 1271 "dtool/src/cppparser/cppBison.yxx" { pop_scope(); } break; - case 132: + case 134: /* Line 1792 of yacc.c */ -#line 1228 "dtool/src/cppparser/cppBison.yxx" +#line 1284 "dtool/src/cppparser/cppBison.yxx" { CPPTemplateScope *ts = current_scope->as_template_scope(); assert(ts != NULL); @@ -4779,9 +4888,9 @@ yyreduce: } break; - case 133: + case 135: /* Line 1792 of yacc.c */ -#line 1234 "dtool/src/cppparser/cppBison.yxx" +#line 1290 "dtool/src/cppparser/cppBison.yxx" { CPPTemplateScope *ts = current_scope->as_template_scope(); assert(ts != NULL); @@ -4789,25 +4898,9 @@ yyreduce: } break; - case 134: -/* Line 1792 of yacc.c */ -#line 1243 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[(2) - (2)].u.identifier))); -} - break; - - case 135: -/* Line 1792 of yacc.c */ -#line 1247 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[(2) - (4)].u.identifier), (yyvsp[(4) - (4)].u.type))); -} - break; - case 136: /* Line 1792 of yacc.c */ -#line 1251 "dtool/src/cppparser/cppBison.yxx" +#line 1299 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[(2) - (2)].u.identifier))); } @@ -4815,7 +4908,7 @@ yyreduce: case 137: /* Line 1792 of yacc.c */ -#line 1255 "dtool/src/cppparser/cppBison.yxx" +#line 1303 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[(2) - (4)].u.identifier), (yyvsp[(4) - (4)].u.type))); } @@ -4823,7 +4916,23 @@ yyreduce: case 138: /* Line 1792 of yacc.c */ -#line 1259 "dtool/src/cppparser/cppBison.yxx" +#line 1307 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[(2) - (2)].u.identifier))); +} + break; + + case 139: +/* Line 1792 of yacc.c */ +#line 1311 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[(2) - (4)].u.identifier), (yyvsp[(4) - (4)].u.type))); +} + break; + + case 140: +/* Line 1792 of yacc.c */ +#line 1315 "dtool/src/cppparser/cppBison.yxx" { CPPInstance *inst = new CPPInstance((yyvsp[(1) - (3)].u.type), (yyvsp[(2) - (3)].u.inst_ident), 0, (yylsp[(2) - (3)]).file); inst->set_initializer((yyvsp[(3) - (3)].u.expr)); @@ -4831,9 +4940,9 @@ yyreduce: } break; - case 139: + case 141: /* Line 1792 of yacc.c */ -#line 1265 "dtool/src/cppparser/cppBison.yxx" +#line 1321 "dtool/src/cppparser/cppBison.yxx" { (yyvsp[(3) - (4)].u.inst_ident)->add_modifier(IIT_const); CPPInstance *inst = new CPPInstance((yyvsp[(2) - (4)].u.type), (yyvsp[(3) - (4)].u.inst_ident), 0, (yylsp[(3) - (4)]).file); @@ -4842,26 +4951,26 @@ yyreduce: } break; - case 140: + case 142: /* Line 1792 of yacc.c */ -#line 1275 "dtool/src/cppparser/cppBison.yxx" +#line 1331 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type((yyvsp[(1) - (1)].u.simple_type)); } break; - case 141: + case 143: /* Line 1792 of yacc.c */ -#line 1279 "dtool/src/cppparser/cppBison.yxx" +#line 1335 "dtool/src/cppparser/cppBison.yxx" { yywarning("Not a type: " + (yyvsp[(1) - (1)].u.identifier)->get_fully_scoped_name(), (yylsp[(1) - (1)])); (yyval.u.type) = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_unknown)); } break; - case 142: + case 144: /* Line 1792 of yacc.c */ -#line 1284 "dtool/src/cppparser/cppBison.yxx" +#line 1340 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = (yyvsp[(1) - (1)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if ((yyval.u.type) == NULL) { @@ -4871,17 +4980,17 @@ yyreduce: } break; - case 143: + case 145: /* Line 1792 of yacc.c */ -#line 1296 "dtool/src/cppparser/cppBison.yxx" +#line 1352 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[(1) - (1)].u.identifier)); } break; - case 144: + case 146: /* Line 1792 of yacc.c */ -#line 1300 "dtool/src/cppparser/cppBison.yxx" +#line 1356 "dtool/src/cppparser/cppBison.yxx" { // For an operator function. We implement this simply by building a // ficticious name for the function; in other respects it's just @@ -4897,9 +5006,9 @@ yyreduce: } break; - case 145: + case 147: /* Line 1792 of yacc.c */ -#line 1314 "dtool/src/cppparser/cppBison.yxx" +#line 1370 "dtool/src/cppparser/cppBison.yxx" { // A C++11 literal operator. if (!(yyvsp[(2) - (3)].str).empty()) { @@ -4916,98 +5025,98 @@ yyreduce: } break; - case 146: + case 148: /* Line 1792 of yacc.c */ -#line 1329 "dtool/src/cppparser/cppBison.yxx" +#line 1385 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_const); } break; - case 147: + case 149: /* Line 1792 of yacc.c */ -#line 1334 "dtool/src/cppparser/cppBison.yxx" +#line 1390 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_volatile); } break; - case 148: + case 150: /* Line 1792 of yacc.c */ -#line 1339 "dtool/src/cppparser/cppBison.yxx" +#line 1395 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_pointer); } break; - case 149: + case 151: /* Line 1792 of yacc.c */ -#line 1344 "dtool/src/cppparser/cppBison.yxx" +#line 1400 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_reference); } break; - case 150: + case 152: /* Line 1792 of yacc.c */ -#line 1349 "dtool/src/cppparser/cppBison.yxx" +#line 1405 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); } break; - case 151: + case 153: /* Line 1792 of yacc.c */ -#line 1354 "dtool/src/cppparser/cppBison.yxx" +#line 1410 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[(3) - (3)].u.inst_ident); (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[(1) - (3)].u.identifier)); } break; - case 152: + case 154: /* Line 1792 of yacc.c */ -#line 1359 "dtool/src/cppparser/cppBison.yxx" +#line 1415 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[(1) - (4)].u.inst_ident); (yyval.u.inst_ident)->add_array_modifier((yyvsp[(3) - (4)].u.expr)); } break; - case 153: + case 155: /* Line 1792 of yacc.c */ -#line 1364 "dtool/src/cppparser/cppBison.yxx" +#line 1420 "dtool/src/cppparser/cppBison.yxx" { // bitfield definition. We ignore the bitfield for now. (yyval.u.inst_ident) = (yyvsp[(1) - (3)].u.inst_ident); } break; - case 154: + case 156: /* Line 1792 of yacc.c */ -#line 1369 "dtool/src/cppparser/cppBison.yxx" +#line 1425 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[(2) - (3)].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_paren); } break; - case 155: + case 157: /* Line 1792 of yacc.c */ -#line 1374 "dtool/src/cppparser/cppBison.yxx" +#line 1430 "dtool/src/cppparser/cppBison.yxx" { push_scope((yyvsp[(1) - (2)].u.inst_ident)->get_scope(current_scope, global_scope)); } break; - case 156: + case 158: /* Line 1792 of yacc.c */ -#line 1378 "dtool/src/cppparser/cppBison.yxx" +#line 1434 "dtool/src/cppparser/cppBison.yxx" { pop_scope(); (yyval.u.inst_ident) = (yyvsp[(1) - (6)].u.inst_ident); @@ -5023,86 +5132,70 @@ yyreduce: } break; - case 157: -/* Line 1792 of yacc.c */ -#line 1396 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.param_list) = new CPPParameterList; -} - break; - - case 158: -/* Line 1792 of yacc.c */ -#line 1400 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.param_list) = new CPPParameterList; - (yyval.u.param_list)->_includes_ellipsis = true; -} - break; - case 159: /* Line 1792 of yacc.c */ -#line 1405 "dtool/src/cppparser/cppBison.yxx" +#line 1452 "dtool/src/cppparser/cppBison.yxx" { - (yyval.u.param_list) = (yyvsp[(1) - (1)].u.param_list); + (yyval.u.param_list) = new CPPParameterList; } break; case 160: /* Line 1792 of yacc.c */ -#line 1409 "dtool/src/cppparser/cppBison.yxx" +#line 1456 "dtool/src/cppparser/cppBison.yxx" { - (yyval.u.param_list) = (yyvsp[(1) - (3)].u.param_list); + (yyval.u.param_list) = new CPPParameterList; (yyval.u.param_list)->_includes_ellipsis = true; } break; case 161: /* Line 1792 of yacc.c */ -#line 1414 "dtool/src/cppparser/cppBison.yxx" +#line 1461 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.param_list) = (yyvsp[(1) - (1)].u.param_list); +} + break; + + case 162: +/* Line 1792 of yacc.c */ +#line 1465 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.param_list) = (yyvsp[(1) - (3)].u.param_list); + (yyval.u.param_list)->_includes_ellipsis = true; +} + break; + + case 163: +/* Line 1792 of yacc.c */ +#line 1470 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.param_list) = (yyvsp[(1) - (2)].u.param_list); (yyval.u.param_list)->_includes_ellipsis = true; } break; - case 162: + case 164: /* Line 1792 of yacc.c */ -#line 1422 "dtool/src/cppparser/cppBison.yxx" +#line 1478 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.param_list) = new CPPParameterList; (yyval.u.param_list)->_parameters.push_back((yyvsp[(1) - (1)].u.instance)); } break; - case 163: + case 165: /* Line 1792 of yacc.c */ -#line 1427 "dtool/src/cppparser/cppBison.yxx" +#line 1483 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.param_list) = (yyvsp[(1) - (3)].u.param_list); (yyval.u.param_list)->_parameters.push_back((yyvsp[(3) - (3)].u.instance)); } break; - case 164: -/* Line 1792 of yacc.c */ -#line 1435 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (CPPExpression *)NULL; -} - break; - - case 165: -/* Line 1792 of yacc.c */ -#line 1439 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (yyvsp[(2) - (2)].u.expr); -} - break; - case 166: /* Line 1792 of yacc.c */ -#line 1446 "dtool/src/cppparser/cppBison.yxx" +#line 1491 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (CPPExpression *)NULL; } @@ -5110,7 +5203,7 @@ yyreduce: case 167: /* Line 1792 of yacc.c */ -#line 1450 "dtool/src/cppparser/cppBison.yxx" +#line 1495 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (yyvsp[(2) - (2)].u.expr); } @@ -5118,7 +5211,7 @@ yyreduce: case 168: /* Line 1792 of yacc.c */ -#line 1457 "dtool/src/cppparser/cppBison.yxx" +#line 1502 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (CPPExpression *)NULL; } @@ -5126,15 +5219,15 @@ yyreduce: case 169: /* Line 1792 of yacc.c */ -#line 1461 "dtool/src/cppparser/cppBison.yxx" +#line 1506 "dtool/src/cppparser/cppBison.yxx" { - (yyval.u.expr) = (CPPExpression *)NULL; + (yyval.u.expr) = (yyvsp[(2) - (2)].u.expr); } break; case 170: /* Line 1792 of yacc.c */ -#line 1465 "dtool/src/cppparser/cppBison.yxx" +#line 1513 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (CPPExpression *)NULL; } @@ -5142,39 +5235,55 @@ yyreduce: case 171: /* Line 1792 of yacc.c */ -#line 1469 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (yyvsp[(2) - (3)].u.expr); -} - break; - - case 172: -/* Line 1792 of yacc.c */ -#line 1473 "dtool/src/cppparser/cppBison.yxx" +#line 1517 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (CPPExpression *)NULL; } break; - case 176: + case 172: /* Line 1792 of yacc.c */ -#line 1486 "dtool/src/cppparser/cppBison.yxx" +#line 1521 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = (CPPExpression *)NULL; +} + break; + + case 173: +/* Line 1792 of yacc.c */ +#line 1525 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = (yyvsp[(2) - (3)].u.expr); +} + break; + + case 174: +/* Line 1792 of yacc.c */ +#line 1529 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = (CPPExpression *)NULL; +} + break; + + case 178: +/* Line 1792 of yacc.c */ +#line 1542 "dtool/src/cppparser/cppBison.yxx" { } break; - case 180: + case 182: /* Line 1792 of yacc.c */ -#line 1495 "dtool/src/cppparser/cppBison.yxx" +#line 1551 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.instance) = new CPPInstance((yyvsp[(1) - (3)].u.type), (yyvsp[(2) - (3)].u.inst_ident), 0, (yylsp[(2) - (3)]).file); (yyval.u.instance)->set_initializer((yyvsp[(3) - (3)].u.expr)); } break; - case 181: + case 183: /* Line 1792 of yacc.c */ -#line 1500 "dtool/src/cppparser/cppBison.yxx" +#line 1556 "dtool/src/cppparser/cppBison.yxx" { (yyvsp[(3) - (4)].u.inst_ident)->add_modifier(IIT_const); (yyval.u.instance) = new CPPInstance((yyvsp[(2) - (4)].u.type), (yyvsp[(3) - (4)].u.inst_ident), 0, (yylsp[(3) - (4)]).file); @@ -5182,9 +5291,9 @@ yyreduce: } break; - case 182: + case 184: /* Line 1792 of yacc.c */ -#line 1506 "dtool/src/cppparser/cppBison.yxx" +#line 1562 "dtool/src/cppparser/cppBison.yxx" { (yyvsp[(4) - (5)].u.inst_ident)->add_modifier(IIT_const); (yyval.u.instance) = new CPPInstance((yyvsp[(3) - (5)].u.type), (yyvsp[(4) - (5)].u.inst_ident), 0, (yylsp[(3) - (5)]).file); @@ -5192,17 +5301,17 @@ yyreduce: } break; - case 183: + case 185: /* Line 1792 of yacc.c */ -#line 1512 "dtool/src/cppparser/cppBison.yxx" +#line 1568 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.instance) = (yyvsp[(2) - (2)].u.instance); } break; - case 184: + case 186: /* Line 1792 of yacc.c */ -#line 1516 "dtool/src/cppparser/cppBison.yxx" +#line 1572 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_parameter)); @@ -5211,183 +5320,183 @@ yyreduce: } break; - case 185: -/* Line 1792 of yacc.c */ -#line 1526 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = new CPPInstanceIdentifier((CPPIdentifier *)NULL); -} - break; - - case 186: -/* Line 1792 of yacc.c */ -#line 1530 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[(1) - (1)].u.identifier)); -} - break; - case 187: /* Line 1792 of yacc.c */ -#line 1534 "dtool/src/cppparser/cppBison.yxx" +#line 1582 "dtool/src/cppparser/cppBison.yxx" { - (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[(1) - (1)].u.identifier)); + (yyval.u.inst_ident) = new CPPInstanceIdentifier((CPPIdentifier *)NULL); } break; case 188: /* Line 1792 of yacc.c */ -#line 1538 "dtool/src/cppparser/cppBison.yxx" +#line 1586 "dtool/src/cppparser/cppBison.yxx" { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_const); + (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[(1) - (1)].u.identifier)); } break; case 189: /* Line 1792 of yacc.c */ -#line 1543 "dtool/src/cppparser/cppBison.yxx" +#line 1590 "dtool/src/cppparser/cppBison.yxx" { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_volatile); + (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[(1) - (1)].u.identifier)); } break; case 190: /* Line 1792 of yacc.c */ -#line 1548 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_pointer); -} - break; - - case 191: -/* Line 1792 of yacc.c */ -#line 1553 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_reference); -} - break; - - case 192: -/* Line 1792 of yacc.c */ -#line 1558 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); - (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); -} - break; - - case 193: -/* Line 1792 of yacc.c */ -#line 1563 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = (yyvsp[(3) - (3)].u.inst_ident); - (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[(1) - (3)].u.identifier)); -} - break; - - case 194: -/* Line 1792 of yacc.c */ -#line 1568 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = (yyvsp[(1) - (4)].u.inst_ident); - (yyval.u.inst_ident)->add_array_modifier((yyvsp[(3) - (4)].u.expr)); -} - break; - - case 195: -/* Line 1792 of yacc.c */ -#line 1576 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = new CPPInstanceIdentifier((CPPIdentifier *)NULL); -} - break; - - case 196: -/* Line 1792 of yacc.c */ -#line 1580 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[(1) - (1)].u.identifier)); -} - break; - - case 197: -/* Line 1792 of yacc.c */ -#line 1584 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[(1) - (1)].u.identifier)); -} - break; - - case 198: -/* Line 1792 of yacc.c */ -#line 1588 "dtool/src/cppparser/cppBison.yxx" +#line 1594 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_const); } break; - case 199: + case 191: /* Line 1792 of yacc.c */ -#line 1593 "dtool/src/cppparser/cppBison.yxx" +#line 1599 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_volatile); } break; - case 200: + case 192: /* Line 1792 of yacc.c */ -#line 1598 "dtool/src/cppparser/cppBison.yxx" +#line 1604 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_pointer); } break; - case 201: + case 193: /* Line 1792 of yacc.c */ -#line 1603 "dtool/src/cppparser/cppBison.yxx" +#line 1609 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_reference); } break; - case 202: + case 194: /* Line 1792 of yacc.c */ -#line 1608 "dtool/src/cppparser/cppBison.yxx" +#line 1614 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); } break; - case 203: + case 195: /* Line 1792 of yacc.c */ -#line 1613 "dtool/src/cppparser/cppBison.yxx" +#line 1619 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[(3) - (3)].u.inst_ident); (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[(1) - (3)].u.identifier)); } break; - case 204: + case 196: /* Line 1792 of yacc.c */ -#line 1618 "dtool/src/cppparser/cppBison.yxx" +#line 1624 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[(1) - (4)].u.inst_ident); (yyval.u.inst_ident)->add_array_modifier((yyvsp[(3) - (4)].u.expr)); } break; + case 197: +/* Line 1792 of yacc.c */ +#line 1632 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.inst_ident) = new CPPInstanceIdentifier((CPPIdentifier *)NULL); +} + break; + + case 198: +/* Line 1792 of yacc.c */ +#line 1636 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[(1) - (1)].u.identifier)); +} + break; + + case 199: +/* Line 1792 of yacc.c */ +#line 1640 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[(1) - (1)].u.identifier)); +} + break; + + case 200: +/* Line 1792 of yacc.c */ +#line 1644 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_const); +} + break; + + case 201: +/* Line 1792 of yacc.c */ +#line 1649 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_volatile); +} + break; + + case 202: +/* Line 1792 of yacc.c */ +#line 1654 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_pointer); +} + break; + + case 203: +/* Line 1792 of yacc.c */ +#line 1659 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_reference); +} + break; + + case 204: +/* Line 1792 of yacc.c */ +#line 1664 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); +} + break; + case 205: /* Line 1792 of yacc.c */ -#line 1623 "dtool/src/cppparser/cppBison.yxx" +#line 1669 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.inst_ident) = (yyvsp[(3) - (3)].u.inst_ident); + (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[(1) - (3)].u.identifier)); +} + break; + + case 206: +/* Line 1792 of yacc.c */ +#line 1674 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.inst_ident) = (yyvsp[(1) - (4)].u.inst_ident); + (yyval.u.inst_ident)->add_array_modifier((yyvsp[(3) - (4)].u.expr)); +} + break; + + case 207: +/* Line 1792 of yacc.c */ +#line 1679 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[(2) - (7)].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_paren); @@ -5395,89 +5504,89 @@ yyreduce: } break; - case 206: + case 208: /* Line 1792 of yacc.c */ -#line 1629 "dtool/src/cppparser/cppBison.yxx" +#line 1685 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[(2) - (3)].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_paren); } break; - case 207: + case 209: /* Line 1792 of yacc.c */ -#line 1637 "dtool/src/cppparser/cppBison.yxx" +#line 1693 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = new CPPInstanceIdentifier((CPPIdentifier *)NULL); } break; - case 208: + case 210: /* Line 1792 of yacc.c */ -#line 1641 "dtool/src/cppparser/cppBison.yxx" +#line 1697 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_const); } break; - case 209: + case 211: /* Line 1792 of yacc.c */ -#line 1646 "dtool/src/cppparser/cppBison.yxx" +#line 1702 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_volatile); } break; - case 210: + case 212: /* Line 1792 of yacc.c */ -#line 1651 "dtool/src/cppparser/cppBison.yxx" +#line 1707 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_pointer); } break; - case 211: + case 213: /* Line 1792 of yacc.c */ -#line 1656 "dtool/src/cppparser/cppBison.yxx" +#line 1712 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_reference); } break; - case 212: + case 214: /* Line 1792 of yacc.c */ -#line 1661 "dtool/src/cppparser/cppBison.yxx" +#line 1717 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); } break; - case 213: + case 215: /* Line 1792 of yacc.c */ -#line 1666 "dtool/src/cppparser/cppBison.yxx" +#line 1722 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[(3) - (3)].u.inst_ident); (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[(1) - (3)].u.identifier)); } break; - case 214: + case 216: /* Line 1792 of yacc.c */ -#line 1671 "dtool/src/cppparser/cppBison.yxx" +#line 1727 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[(1) - (4)].u.inst_ident); (yyval.u.inst_ident)->add_array_modifier((yyvsp[(3) - (4)].u.expr)); } break; - case 215: + case 217: /* Line 1792 of yacc.c */ -#line 1676 "dtool/src/cppparser/cppBison.yxx" +#line 1732 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[(2) - (7)].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_paren); @@ -5485,17 +5594,17 @@ yyreduce: } break; - case 216: + case 218: /* Line 1792 of yacc.c */ -#line 1685 "dtool/src/cppparser/cppBison.yxx" +#line 1741 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type((yyvsp[(1) - (1)].u.simple_type)); } break; - case 217: + case 219: /* Line 1792 of yacc.c */ -#line 1689 "dtool/src/cppparser/cppBison.yxx" +#line 1745 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = (yyvsp[(1) - (1)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if ((yyval.u.type) == NULL) { @@ -5505,41 +5614,41 @@ yyreduce: } break; - case 218: + case 220: /* Line 1792 of yacc.c */ -#line 1697 "dtool/src/cppparser/cppBison.yxx" +#line 1753 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[(2) - (2)].u.identifier))); } break; - case 219: -/* Line 1792 of yacc.c */ -#line 1701 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.type) = CPPType::new_type((yyvsp[(1) - (1)].u.struct_type)); -} - break; - - case 220: -/* Line 1792 of yacc.c */ -#line 1705 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.type) = CPPType::new_type((yyvsp[(1) - (1)].u.struct_type)); -} - break; - case 221: /* Line 1792 of yacc.c */ -#line 1709 "dtool/src/cppparser/cppBison.yxx" +#line 1757 "dtool/src/cppparser/cppBison.yxx" { - (yyval.u.type) = CPPType::new_type((yyvsp[(1) - (1)].u.enum_type)); + (yyval.u.type) = CPPType::new_type((yyvsp[(1) - (1)].u.struct_type)); } break; case 222: /* Line 1792 of yacc.c */ -#line 1713 "dtool/src/cppparser/cppBison.yxx" +#line 1761 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.type) = CPPType::new_type((yyvsp[(1) - (1)].u.struct_type)); +} + break; + + case 223: +/* Line 1792 of yacc.c */ +#line 1765 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.type) = CPPType::new_type((yyvsp[(1) - (1)].u.enum_type)); +} + break; + + case 224: +/* Line 1792 of yacc.c */ +#line 1769 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = (yyvsp[(2) - (2)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != NULL) { @@ -5557,9 +5666,9 @@ yyreduce: } break; - case 223: + case 225: /* Line 1792 of yacc.c */ -#line 1729 "dtool/src/cppparser/cppBison.yxx" +#line 1785 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = (yyvsp[(2) - (4)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != NULL) { @@ -5577,9 +5686,9 @@ yyreduce: } break; - case 224: + case 226: /* Line 1792 of yacc.c */ -#line 1745 "dtool/src/cppparser/cppBison.yxx" +#line 1801 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = (yyvsp[(3) - (4)].u.expr)->determine_type(); if ((yyval.u.type) == (CPPType *)NULL) { @@ -5590,25 +5699,25 @@ yyreduce: } break; - case 225: + case 227: /* Line 1792 of yacc.c */ -#line 1754 "dtool/src/cppparser/cppBison.yxx" +#line 1810 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = new CPPSimpleType(CPPSimpleType::T_auto); } break; - case 226: + case 228: /* Line 1792 of yacc.c */ -#line 1761 "dtool/src/cppparser/cppBison.yxx" +#line 1817 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = CPPType::new_type((yyvsp[(1) - (1)].u.simple_type)); } break; - case 227: + case 229: /* Line 1792 of yacc.c */ -#line 1765 "dtool/src/cppparser/cppBison.yxx" +#line 1821 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = (yyvsp[(1) - (1)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if ((yyval.u.decl) == NULL) { @@ -5618,41 +5727,41 @@ yyreduce: } break; - case 228: + case 230: /* Line 1792 of yacc.c */ -#line 1773 "dtool/src/cppparser/cppBison.yxx" +#line 1829 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = CPPType::new_type(new CPPTBDType((yyvsp[(2) - (2)].u.identifier))); } break; - case 229: + case 231: /* Line 1792 of yacc.c */ -#line 1777 "dtool/src/cppparser/cppBison.yxx" +#line 1833 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = CPPType::new_type((yyvsp[(1) - (1)].u.struct_type)); } break; - case 230: + case 232: /* Line 1792 of yacc.c */ -#line 1781 "dtool/src/cppparser/cppBison.yxx" +#line 1837 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = new CPPTypeDeclaration(CPPType::new_type((yyvsp[(1) - (1)].u.struct_type))); } break; - case 231: + case 233: /* Line 1792 of yacc.c */ -#line 1785 "dtool/src/cppparser/cppBison.yxx" +#line 1841 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = new CPPTypeDeclaration(CPPType::new_type((yyvsp[(1) - (1)].u.enum_type))); } break; - case 232: + case 234: /* Line 1792 of yacc.c */ -#line 1789 "dtool/src/cppparser/cppBison.yxx" +#line 1845 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = (yyvsp[(2) - (2)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != NULL) { @@ -5670,9 +5779,9 @@ yyreduce: } break; - case 233: + case 235: /* Line 1792 of yacc.c */ -#line 1805 "dtool/src/cppparser/cppBison.yxx" +#line 1861 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = (yyvsp[(2) - (4)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != NULL) { @@ -5690,9 +5799,9 @@ yyreduce: } break; - case 234: + case 236: /* Line 1792 of yacc.c */ -#line 1821 "dtool/src/cppparser/cppBison.yxx" +#line 1877 "dtool/src/cppparser/cppBison.yxx" { yywarning(string("C++ does not permit forward declaration of untyped enum ") + (yyvsp[(2) - (2)].u.identifier)->get_fully_scoped_name(), (yylsp[(1) - (2)])); @@ -5712,9 +5821,9 @@ yyreduce: } break; - case 235: + case 237: /* Line 1792 of yacc.c */ -#line 1839 "dtool/src/cppparser/cppBison.yxx" +#line 1895 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = (yyvsp[(3) - (4)].u.expr)->determine_type(); if ((yyval.u.decl) == (CPPType *)NULL) { @@ -5725,25 +5834,25 @@ yyreduce: } break; - case 236: + case 238: /* Line 1792 of yacc.c */ -#line 1848 "dtool/src/cppparser/cppBison.yxx" +#line 1904 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = new CPPSimpleType(CPPSimpleType::T_auto); } break; - case 237: + case 239: /* Line 1792 of yacc.c */ -#line 1855 "dtool/src/cppparser/cppBison.yxx" +#line 1911 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type((yyvsp[(1) - (1)].u.simple_type)); } break; - case 238: + case 240: /* Line 1792 of yacc.c */ -#line 1859 "dtool/src/cppparser/cppBison.yxx" +#line 1915 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = (yyvsp[(1) - (1)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if ((yyval.u.type) == NULL) { @@ -5753,65 +5862,65 @@ yyreduce: } break; - case 239: + case 241: /* Line 1792 of yacc.c */ -#line 1867 "dtool/src/cppparser/cppBison.yxx" +#line 1923 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[(2) - (2)].u.identifier))); } break; - case 240: -/* Line 1792 of yacc.c */ -#line 1871 "dtool/src/cppparser/cppBison.yxx" - { - CPPType *type = (yyvsp[(2) - (2)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); - if (type != NULL) { - (yyval.u.type) = type; - } else { - CPPExtensionType *et = - CPPType::new_type(new CPPExtensionType((yyvsp[(1) - (2)].u.extension_enum), (yyvsp[(2) - (2)].u.identifier), current_scope, (yylsp[(1) - (2)]).file)) - ->as_extension_type(); - CPPScope *scope = (yyvsp[(2) - (2)].u.identifier)->get_scope(current_scope, global_scope); - if (scope != NULL) { - scope->define_extension_type(et); - } - (yyval.u.type) = et; - } -} - break; - - case 241: -/* Line 1792 of yacc.c */ -#line 1887 "dtool/src/cppparser/cppBison.yxx" - { - CPPType *type = (yyvsp[(2) - (2)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); - if (type != NULL) { - (yyval.u.type) = type; - } else { - CPPExtensionType *et = - CPPType::new_type(new CPPExtensionType((yyvsp[(1) - (2)].u.extension_enum), (yyvsp[(2) - (2)].u.identifier), current_scope, (yylsp[(1) - (2)]).file)) - ->as_extension_type(); - CPPScope *scope = (yyvsp[(2) - (2)].u.identifier)->get_scope(current_scope, global_scope); - if (scope != NULL) { - scope->define_extension_type(et); - } - (yyval.u.type) = et; - } -} - break; - case 242: /* Line 1792 of yacc.c */ -#line 1906 "dtool/src/cppparser/cppBison.yxx" +#line 1927 "dtool/src/cppparser/cppBison.yxx" { - (yyval.u.decl) = (yyvsp[(1) - (1)].u.decl); + CPPType *type = (yyvsp[(2) - (2)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); + if (type != NULL) { + (yyval.u.type) = type; + } else { + CPPExtensionType *et = + CPPType::new_type(new CPPExtensionType((yyvsp[(1) - (2)].u.extension_enum), (yyvsp[(2) - (2)].u.identifier), current_scope, (yylsp[(1) - (2)]).file)) + ->as_extension_type(); + CPPScope *scope = (yyvsp[(2) - (2)].u.identifier)->get_scope(current_scope, global_scope); + if (scope != NULL) { + scope->define_extension_type(et); + } + (yyval.u.type) = et; + } } break; case 243: /* Line 1792 of yacc.c */ -#line 1910 "dtool/src/cppparser/cppBison.yxx" +#line 1943 "dtool/src/cppparser/cppBison.yxx" + { + CPPType *type = (yyvsp[(2) - (2)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); + if (type != NULL) { + (yyval.u.type) = type; + } else { + CPPExtensionType *et = + CPPType::new_type(new CPPExtensionType((yyvsp[(1) - (2)].u.extension_enum), (yyvsp[(2) - (2)].u.identifier), current_scope, (yylsp[(1) - (2)]).file)) + ->as_extension_type(); + CPPScope *scope = (yyvsp[(2) - (2)].u.identifier)->get_scope(current_scope, global_scope); + if (scope != NULL) { + scope->define_extension_type(et); + } + (yyval.u.type) = et; + } +} + break; + + case 244: +/* Line 1792 of yacc.c */ +#line 1962 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.decl) = (yyvsp[(1) - (1)].u.decl); +} + break; + + case 245: +/* Line 1792 of yacc.c */ +#line 1966 "dtool/src/cppparser/cppBison.yxx" { yyerror(string("unknown type '") + (yyvsp[(1) - (1)].u.identifier)->get_fully_scoped_name() + "'", (yylsp[(1) - (1)])); @@ -5819,9 +5928,9 @@ yyreduce: } break; - case 244: + case 246: /* Line 1792 of yacc.c */ -#line 1918 "dtool/src/cppparser/cppBison.yxx" +#line 1974 "dtool/src/cppparser/cppBison.yxx" { CPPInstance *inst = new CPPInstance((yyvsp[(1) - (2)].u.type), (yyvsp[(2) - (2)].u.inst_ident), 0, (yylsp[(1) - (2)]).file); (yyval.u.type) = inst->_type; @@ -5829,9 +5938,9 @@ yyreduce: } break; - case 245: + case 247: /* Line 1792 of yacc.c */ -#line 1924 "dtool/src/cppparser/cppBison.yxx" +#line 1980 "dtool/src/cppparser/cppBison.yxx" { (yyvsp[(3) - (3)].u.inst_ident)->add_modifier(IIT_const); CPPInstance *inst = new CPPInstance((yyvsp[(2) - (3)].u.type), (yyvsp[(3) - (3)].u.inst_ident), 0, (yylsp[(1) - (3)]).file); @@ -5840,9 +5949,9 @@ yyreduce: } break; - case 246: + case 248: /* Line 1792 of yacc.c */ -#line 1934 "dtool/src/cppparser/cppBison.yxx" +#line 1990 "dtool/src/cppparser/cppBison.yxx" { CPPVisibility starting_vis = ((yyvsp[(1) - (2)].u.extension_enum) == CPPExtensionType::T_class) ? V_private : V_public; @@ -5858,9 +5967,9 @@ yyreduce: } break; - case 247: + case 249: /* Line 1792 of yacc.c */ -#line 1948 "dtool/src/cppparser/cppBison.yxx" +#line 2004 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.struct_type) = current_struct; current_struct->_incomplete = false; @@ -5869,9 +5978,9 @@ yyreduce: } break; - case 248: + case 250: /* Line 1792 of yacc.c */ -#line 1958 "dtool/src/cppparser/cppBison.yxx" +#line 2014 "dtool/src/cppparser/cppBison.yxx" { CPPVisibility starting_vis = ((yyvsp[(1) - (2)].u.extension_enum) == CPPExtensionType::T_class) ? V_private : V_public; @@ -5893,9 +6002,9 @@ yyreduce: } break; - case 249: + case 251: /* Line 1792 of yacc.c */ -#line 1978 "dtool/src/cppparser/cppBison.yxx" +#line 2034 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.struct_type) = current_struct; current_struct->_incomplete = false; @@ -5904,138 +6013,138 @@ yyreduce: } break; - case 254: + case 256: /* Line 1792 of yacc.c */ -#line 1998 "dtool/src/cppparser/cppBison.yxx" +#line 2054 "dtool/src/cppparser/cppBison.yxx" { current_struct->append_derivation((yyvsp[(2) - (2)].u.type), V_public, false); } break; - case 255: + case 257: /* Line 1792 of yacc.c */ -#line 2002 "dtool/src/cppparser/cppBison.yxx" +#line 2058 "dtool/src/cppparser/cppBison.yxx" { current_struct->append_derivation((yyvsp[(2) - (2)].u.type), V_protected, false); } break; - case 256: + case 258: /* Line 1792 of yacc.c */ -#line 2006 "dtool/src/cppparser/cppBison.yxx" +#line 2062 "dtool/src/cppparser/cppBison.yxx" { current_struct->append_derivation((yyvsp[(2) - (2)].u.type), V_private, false); } break; - case 257: -/* Line 1792 of yacc.c */ -#line 2010 "dtool/src/cppparser/cppBison.yxx" - { - current_struct->append_derivation((yyvsp[(3) - (3)].u.type), V_public, true); -} - break; - - case 258: -/* Line 1792 of yacc.c */ -#line 2014 "dtool/src/cppparser/cppBison.yxx" - { - current_struct->append_derivation((yyvsp[(3) - (3)].u.type), V_protected, true); -} - break; - case 259: /* Line 1792 of yacc.c */ -#line 2018 "dtool/src/cppparser/cppBison.yxx" +#line 2066 "dtool/src/cppparser/cppBison.yxx" { - current_struct->append_derivation((yyvsp[(3) - (3)].u.type), V_private, true); + current_struct->append_derivation((yyvsp[(3) - (3)].u.type), V_public, true); } break; case 260: /* Line 1792 of yacc.c */ -#line 2022 "dtool/src/cppparser/cppBison.yxx" - { - current_struct->append_derivation((yyvsp[(3) - (3)].u.type), V_public, true); -} - break; - - case 261: -/* Line 1792 of yacc.c */ -#line 2026 "dtool/src/cppparser/cppBison.yxx" +#line 2070 "dtool/src/cppparser/cppBison.yxx" { current_struct->append_derivation((yyvsp[(3) - (3)].u.type), V_protected, true); } break; - case 262: + case 261: /* Line 1792 of yacc.c */ -#line 2030 "dtool/src/cppparser/cppBison.yxx" +#line 2074 "dtool/src/cppparser/cppBison.yxx" { current_struct->append_derivation((yyvsp[(3) - (3)].u.type), V_private, true); } break; + case 262: +/* Line 1792 of yacc.c */ +#line 2078 "dtool/src/cppparser/cppBison.yxx" + { + current_struct->append_derivation((yyvsp[(3) - (3)].u.type), V_public, true); +} + break; + case 263: /* Line 1792 of yacc.c */ -#line 2037 "dtool/src/cppparser/cppBison.yxx" +#line 2082 "dtool/src/cppparser/cppBison.yxx" + { + current_struct->append_derivation((yyvsp[(3) - (3)].u.type), V_protected, true); +} + break; + + case 264: +/* Line 1792 of yacc.c */ +#line 2086 "dtool/src/cppparser/cppBison.yxx" + { + current_struct->append_derivation((yyvsp[(3) - (3)].u.type), V_private, true); +} + break; + + case 265: +/* Line 1792 of yacc.c */ +#line 2093 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.enum_type) = current_enum; current_enum = NULL; } break; - case 264: + case 266: /* Line 1792 of yacc.c */ -#line 2045 "dtool/src/cppparser/cppBison.yxx" +#line 2101 "dtool/src/cppparser/cppBison.yxx" { current_enum = new CPPEnumType((yyvsp[(2) - (4)].u.identifier), (yyvsp[(4) - (4)].u.type), current_scope, (yylsp[(1) - (4)]).file); } break; - case 265: + case 267: /* Line 1792 of yacc.c */ -#line 2049 "dtool/src/cppparser/cppBison.yxx" +#line 2105 "dtool/src/cppparser/cppBison.yxx" { current_enum = new CPPEnumType((yyvsp[(2) - (2)].u.identifier), current_scope, (yylsp[(1) - (2)]).file); } break; - case 266: + case 268: /* Line 1792 of yacc.c */ -#line 2053 "dtool/src/cppparser/cppBison.yxx" +#line 2109 "dtool/src/cppparser/cppBison.yxx" { current_enum = new CPPEnumType(NULL, (yyvsp[(3) - (3)].u.type), current_scope, (yylsp[(1) - (3)]).file); } break; - case 267: + case 269: /* Line 1792 of yacc.c */ -#line 2057 "dtool/src/cppparser/cppBison.yxx" +#line 2113 "dtool/src/cppparser/cppBison.yxx" { current_enum = new CPPEnumType(NULL, current_scope, (yylsp[(1) - (1)]).file); } break; - case 268: + case 270: /* Line 1792 of yacc.c */ -#line 2064 "dtool/src/cppparser/cppBison.yxx" +#line 2120 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type((yyvsp[(1) - (1)].u.simple_type)); } break; - case 269: + case 271: /* Line 1792 of yacc.c */ -#line 2068 "dtool/src/cppparser/cppBison.yxx" +#line 2124 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = (yyvsp[(1) - (1)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); } break; - case 271: + case 273: /* Line 1792 of yacc.c */ -#line 2076 "dtool/src/cppparser/cppBison.yxx" +#line 2132 "dtool/src/cppparser/cppBison.yxx" { assert(current_enum != NULL); CPPInstance *inst = current_enum->add_element((yyvsp[(2) - (3)].u.identifier)->get_simple_name()); @@ -6043,9 +6152,9 @@ yyreduce: } break; - case 272: + case 274: /* Line 1792 of yacc.c */ -#line 2082 "dtool/src/cppparser/cppBison.yxx" +#line 2138 "dtool/src/cppparser/cppBison.yxx" { assert(current_enum != NULL); CPPInstance *inst = current_enum->add_element((yyvsp[(2) - (5)].u.identifier)->get_simple_name(), (yyvsp[(4) - (5)].u.expr)); @@ -6053,9 +6162,9 @@ yyreduce: } break; - case 274: + case 276: /* Line 1792 of yacc.c */ -#line 2091 "dtool/src/cppparser/cppBison.yxx" +#line 2147 "dtool/src/cppparser/cppBison.yxx" { assert(current_enum != NULL); CPPInstance *inst = current_enum->add_element((yyvsp[(2) - (2)].u.identifier)->get_simple_name()); @@ -6063,9 +6172,9 @@ yyreduce: } break; - case 275: + case 277: /* Line 1792 of yacc.c */ -#line 2097 "dtool/src/cppparser/cppBison.yxx" +#line 2153 "dtool/src/cppparser/cppBison.yxx" { assert(current_enum != NULL); CPPInstance *inst = current_enum->add_element((yyvsp[(2) - (4)].u.identifier)->get_simple_name(), (yyvsp[(4) - (4)].u.expr)); @@ -6073,41 +6182,41 @@ yyreduce: } break; - case 276: + case 278: /* Line 1792 of yacc.c */ -#line 2106 "dtool/src/cppparser/cppBison.yxx" +#line 2162 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.extension_enum) = CPPExtensionType::T_enum; } break; - case 277: + case 279: /* Line 1792 of yacc.c */ -#line 2113 "dtool/src/cppparser/cppBison.yxx" +#line 2169 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.extension_enum) = CPPExtensionType::T_class; } break; - case 278: + case 280: /* Line 1792 of yacc.c */ -#line 2117 "dtool/src/cppparser/cppBison.yxx" +#line 2173 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.extension_enum) = CPPExtensionType::T_struct; } break; - case 279: + case 281: /* Line 1792 of yacc.c */ -#line 2121 "dtool/src/cppparser/cppBison.yxx" +#line 2177 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.extension_enum) = CPPExtensionType::T_union; } break; - case 280: + case 282: /* Line 1792 of yacc.c */ -#line 2128 "dtool/src/cppparser/cppBison.yxx" +#line 2184 "dtool/src/cppparser/cppBison.yxx" { CPPScope *scope = (yyvsp[(2) - (3)].u.identifier)->find_scope(current_scope, global_scope, current_lexer); if (scope == NULL) { @@ -6127,17 +6236,17 @@ yyreduce: } break; - case 281: + case 283: /* Line 1792 of yacc.c */ -#line 2146 "dtool/src/cppparser/cppBison.yxx" +#line 2202 "dtool/src/cppparser/cppBison.yxx" { pop_scope(); } break; - case 282: + case 284: /* Line 1792 of yacc.c */ -#line 2150 "dtool/src/cppparser/cppBison.yxx" +#line 2206 "dtool/src/cppparser/cppBison.yxx" { CPPScope *scope = (yyvsp[(3) - (4)].u.identifier)->find_scope(current_scope, global_scope, current_lexer); if (scope == NULL) { @@ -6158,17 +6267,17 @@ yyreduce: } break; - case 283: + case 285: /* Line 1792 of yacc.c */ -#line 2169 "dtool/src/cppparser/cppBison.yxx" +#line 2225 "dtool/src/cppparser/cppBison.yxx" { pop_scope(); } break; - case 286: + case 288: /* Line 1792 of yacc.c */ -#line 2178 "dtool/src/cppparser/cppBison.yxx" +#line 2234 "dtool/src/cppparser/cppBison.yxx" { CPPUsing *using_decl = new CPPUsing((yyvsp[(2) - (2)].u.identifier), false, (yylsp[(1) - (2)]).file); current_scope->add_declaration(using_decl, global_scope, current_lexer, (yylsp[(1) - (2)])); @@ -6176,9 +6285,9 @@ yyreduce: } break; - case 287: + case 289: /* Line 1792 of yacc.c */ -#line 2184 "dtool/src/cppparser/cppBison.yxx" +#line 2240 "dtool/src/cppparser/cppBison.yxx" { CPPUsing *using_decl = new CPPUsing((yyvsp[(3) - (3)].u.identifier), true, (yylsp[(1) - (3)]).file); current_scope->add_declaration(using_decl, global_scope, current_lexer, (yylsp[(1) - (3)])); @@ -6186,111 +6295,111 @@ yyreduce: } break; - case 291: + case 293: /* Line 1792 of yacc.c */ -#line 2199 "dtool/src/cppparser/cppBison.yxx" +#line 2255 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_bool); } break; - case 292: + case 294: /* Line 1792 of yacc.c */ -#line 2203 "dtool/src/cppparser/cppBison.yxx" +#line 2259 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_char); } break; - case 293: + case 295: /* Line 1792 of yacc.c */ -#line 2207 "dtool/src/cppparser/cppBison.yxx" +#line 2263 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_wchar_t); } break; - case 294: + case 296: /* Line 1792 of yacc.c */ -#line 2211 "dtool/src/cppparser/cppBison.yxx" +#line 2267 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_char16_t); } break; - case 295: + case 297: /* Line 1792 of yacc.c */ -#line 2215 "dtool/src/cppparser/cppBison.yxx" +#line 2271 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_char32_t); } break; - case 296: + case 298: /* Line 1792 of yacc.c */ -#line 2219 "dtool/src/cppparser/cppBison.yxx" +#line 2275 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_short); } break; - case 297: + case 299: /* Line 1792 of yacc.c */ -#line 2224 "dtool/src/cppparser/cppBison.yxx" +#line 2280 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_long); } break; - case 298: + case 300: /* Line 1792 of yacc.c */ -#line 2229 "dtool/src/cppparser/cppBison.yxx" +#line 2285 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_longlong); } break; - case 299: + case 301: /* Line 1792 of yacc.c */ -#line 2234 "dtool/src/cppparser/cppBison.yxx" +#line 2290 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_unsigned); } break; - case 300: + case 302: /* Line 1792 of yacc.c */ -#line 2239 "dtool/src/cppparser/cppBison.yxx" +#line 2295 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_signed); } break; - case 301: + case 303: /* Line 1792 of yacc.c */ -#line 2244 "dtool/src/cppparser/cppBison.yxx" +#line 2300 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int); } break; - case 302: + case 304: /* Line 1792 of yacc.c */ -#line 2248 "dtool/src/cppparser/cppBison.yxx" +#line 2304 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = (yyvsp[(2) - (2)].u.simple_type); (yyval.u.simple_type)->_flags |= CPPSimpleType::F_short; } break; - case 303: + case 305: /* Line 1792 of yacc.c */ -#line 2253 "dtool/src/cppparser/cppBison.yxx" +#line 2309 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = (yyvsp[(2) - (2)].u.simple_type); if ((yyval.u.simple_type)->_flags & CPPSimpleType::F_long) { @@ -6301,117 +6410,101 @@ yyreduce: } break; - case 304: + case 306: /* Line 1792 of yacc.c */ -#line 2262 "dtool/src/cppparser/cppBison.yxx" +#line 2318 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = (yyvsp[(2) - (2)].u.simple_type); (yyval.u.simple_type)->_flags |= CPPSimpleType::F_unsigned; } break; - case 305: + case 307: /* Line 1792 of yacc.c */ -#line 2267 "dtool/src/cppparser/cppBison.yxx" +#line 2323 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = (yyvsp[(2) - (2)].u.simple_type); (yyval.u.simple_type)->_flags |= CPPSimpleType::F_signed; } break; - case 306: + case 308: /* Line 1792 of yacc.c */ -#line 2275 "dtool/src/cppparser/cppBison.yxx" +#line 2331 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_float); } break; - case 307: + case 309: /* Line 1792 of yacc.c */ -#line 2279 "dtool/src/cppparser/cppBison.yxx" +#line 2335 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_float, CPPSimpleType::F_long); } break; - case 308: + case 310: /* Line 1792 of yacc.c */ -#line 2284 "dtool/src/cppparser/cppBison.yxx" +#line 2340 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_double); } break; - case 309: + case 311: /* Line 1792 of yacc.c */ -#line 2288 "dtool/src/cppparser/cppBison.yxx" +#line 2344 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_float, CPPSimpleType::F_longlong); } break; - case 310: + case 312: /* Line 1792 of yacc.c */ -#line 2293 "dtool/src/cppparser/cppBison.yxx" +#line 2349 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_double, CPPSimpleType::F_long); } break; - case 311: + case 313: /* Line 1792 of yacc.c */ -#line 2301 "dtool/src/cppparser/cppBison.yxx" +#line 2357 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_void); } break; - case 312: + case 314: /* Line 1792 of yacc.c */ -#line 2310 "dtool/src/cppparser/cppBison.yxx" +#line 2366 "dtool/src/cppparser/cppBison.yxx" { current_lexer->_resolve_identifiers = false; } break; - case 313: + case 315: /* Line 1792 of yacc.c */ -#line 2314 "dtool/src/cppparser/cppBison.yxx" +#line 2370 "dtool/src/cppparser/cppBison.yxx" { current_lexer->_resolve_identifiers = true; } break; - case 410: + case 412: /* Line 1792 of yacc.c */ -#line 2354 "dtool/src/cppparser/cppBison.yxx" +#line 2410 "dtool/src/cppparser/cppBison.yxx" { } break; - case 434: -/* Line 1792 of yacc.c */ -#line 2363 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (CPPExpression *)NULL; -} - break; - - case 435: -/* Line 1792 of yacc.c */ -#line 2367 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); -} - break; - case 436: /* Line 1792 of yacc.c */ -#line 2374 "dtool/src/cppparser/cppBison.yxx" +#line 2419 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (CPPExpression *)NULL; } @@ -6419,7 +6512,7 @@ yyreduce: case 437: /* Line 1792 of yacc.c */ -#line 2378 "dtool/src/cppparser/cppBison.yxx" +#line 2423 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); } @@ -6427,23 +6520,23 @@ yyreduce: case 438: /* Line 1792 of yacc.c */ -#line 2385 "dtool/src/cppparser/cppBison.yxx" +#line 2430 "dtool/src/cppparser/cppBison.yxx" { - (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); + (yyval.u.expr) = (CPPExpression *)NULL; } break; case 439: /* Line 1792 of yacc.c */ -#line 2389 "dtool/src/cppparser/cppBison.yxx" +#line 2434 "dtool/src/cppparser/cppBison.yxx" { - (yyval.u.expr) = new CPPExpression(',', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); + (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); } break; case 440: /* Line 1792 of yacc.c */ -#line 2396 "dtool/src/cppparser/cppBison.yxx" +#line 2441 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); } @@ -6451,303 +6544,319 @@ yyreduce: case 441: /* Line 1792 of yacc.c */ -#line 2400 "dtool/src/cppparser/cppBison.yxx" +#line 2445 "dtool/src/cppparser/cppBison.yxx" { - (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(2) - (4)].u.type), (yyvsp[(4) - (4)].u.expr))); + (yyval.u.expr) = new CPPExpression(',', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; case 442: /* Line 1792 of yacc.c */ -#line 2404 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(3) - (7)].u.type), (yyvsp[(6) - (7)].u.expr))); -} - break; - - case 443: -/* Line 1792 of yacc.c */ -#line 2408 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(3) - (7)].u.type), (yyvsp[(6) - (7)].u.expr))); -} - break; - - case 444: -/* Line 1792 of yacc.c */ -#line 2412 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[(3) - (4)].u.type))); -} - break; - - case 445: -/* Line 1792 of yacc.c */ -#line 2416 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(CPPExpression::alignof_func((yyvsp[(3) - (4)].u.type))); -} - break; - - case 446: -/* Line 1792 of yacc.c */ -#line 2420 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[(2) - (2)].u.expr)); -} - break; - - case 447: -/* Line 1792 of yacc.c */ -#line 2424 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[(2) - (2)].u.expr)); -} - break; - - case 448: -/* Line 1792 of yacc.c */ -#line 2428 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[(2) - (2)].u.expr)); -} - break; - - case 449: -/* Line 1792 of yacc.c */ -#line 2432 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(UNARY_STAR, (yyvsp[(2) - (2)].u.expr)); -} - break; - - case 450: -/* Line 1792 of yacc.c */ -#line 2436 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[(2) - (2)].u.expr)); -} - break; - - case 451: -/* Line 1792 of yacc.c */ -#line 2440 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('*', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 452: -/* Line 1792 of yacc.c */ -#line 2444 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('/', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 453: -/* Line 1792 of yacc.c */ -#line 2448 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('%', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 454: -/* Line 1792 of yacc.c */ #line 2452 "dtool/src/cppparser/cppBison.yxx" { - (yyval.u.expr) = new CPPExpression('+', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 455: -/* Line 1792 of yacc.c */ -#line 2456 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('-', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 456: -/* Line 1792 of yacc.c */ -#line 2460 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('|', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 457: -/* Line 1792 of yacc.c */ -#line 2464 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('^', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 458: -/* Line 1792 of yacc.c */ -#line 2468 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('&', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 459: -/* Line 1792 of yacc.c */ -#line 2472 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 460: -/* Line 1792 of yacc.c */ -#line 2476 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 461: -/* Line 1792 of yacc.c */ -#line 2480 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 462: -/* Line 1792 of yacc.c */ -#line 2484 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 463: -/* Line 1792 of yacc.c */ -#line 2488 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 464: -/* Line 1792 of yacc.c */ -#line 2492 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 465: -/* Line 1792 of yacc.c */ -#line 2496 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 466: -/* Line 1792 of yacc.c */ -#line 2500 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 467: -/* Line 1792 of yacc.c */ -#line 2504 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('?', (yyvsp[(1) - (5)].u.expr), (yyvsp[(3) - (5)].u.expr), (yyvsp[(5) - (5)].u.expr)); -} - break; - - case 468: -/* Line 1792 of yacc.c */ -#line 2508 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('[', (yyvsp[(1) - (4)].u.expr), (yyvsp[(3) - (4)].u.expr)); -} - break; - - case 469: -/* Line 1792 of yacc.c */ -#line 2512 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('f', (yyvsp[(1) - (4)].u.expr), (yyvsp[(3) - (4)].u.expr)); -} - break; - - case 470: -/* Line 1792 of yacc.c */ -#line 2516 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('f', (yyvsp[(1) - (3)].u.expr)); -} - break; - - case 471: -/* Line 1792 of yacc.c */ -#line 2520 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('.', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 472: -/* Line 1792 of yacc.c */ -#line 2524 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 473: -/* Line 1792 of yacc.c */ -#line 2528 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (yyvsp[(2) - (3)].u.expr); -} - break; - - case 474: -/* Line 1792 of yacc.c */ -#line 2536 "dtool/src/cppparser/cppBison.yxx" - { (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); } break; - case 475: + case 443: /* Line 1792 of yacc.c */ -#line 2540 "dtool/src/cppparser/cppBison.yxx" +#line 2456 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(2) - (4)].u.type), (yyvsp[(4) - (4)].u.expr))); } break; - case 476: + case 444: +/* Line 1792 of yacc.c */ +#line 2460 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(3) - (7)].u.type), (yyvsp[(6) - (7)].u.expr))); +} + break; + + case 445: +/* Line 1792 of yacc.c */ +#line 2464 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(3) - (7)].u.type), (yyvsp[(6) - (7)].u.expr))); +} + break; + + case 446: +/* Line 1792 of yacc.c */ +#line 2468 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[(3) - (4)].u.type))); +} + break; + + case 447: +/* Line 1792 of yacc.c */ +#line 2472 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(CPPExpression::alignof_func((yyvsp[(3) - (4)].u.type))); +} + break; + + case 448: +/* Line 1792 of yacc.c */ +#line 2476 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[(2) - (2)].u.expr)); +} + break; + + case 449: +/* Line 1792 of yacc.c */ +#line 2480 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[(2) - (2)].u.expr)); +} + break; + + case 450: +/* Line 1792 of yacc.c */ +#line 2484 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[(2) - (2)].u.expr)); +} + break; + + case 451: +/* Line 1792 of yacc.c */ +#line 2488 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(UNARY_STAR, (yyvsp[(2) - (2)].u.expr)); +} + break; + + case 452: +/* Line 1792 of yacc.c */ +#line 2492 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[(2) - (2)].u.expr)); +} + break; + + case 453: +/* Line 1792 of yacc.c */ +#line 2496 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('*', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 454: +/* Line 1792 of yacc.c */ +#line 2500 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('/', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 455: +/* Line 1792 of yacc.c */ +#line 2504 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('%', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 456: +/* Line 1792 of yacc.c */ +#line 2508 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('+', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 457: +/* Line 1792 of yacc.c */ +#line 2512 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('-', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 458: +/* Line 1792 of yacc.c */ +#line 2516 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('|', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 459: +/* Line 1792 of yacc.c */ +#line 2520 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('^', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 460: +/* Line 1792 of yacc.c */ +#line 2524 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('&', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 461: +/* Line 1792 of yacc.c */ +#line 2528 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 462: +/* Line 1792 of yacc.c */ +#line 2532 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 463: +/* Line 1792 of yacc.c */ +#line 2536 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 464: +/* Line 1792 of yacc.c */ +#line 2540 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 465: /* Line 1792 of yacc.c */ #line 2544 "dtool/src/cppparser/cppBison.yxx" { - (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(3) - (7)].u.type), (yyvsp[(6) - (7)].u.expr))); + (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 466: +/* Line 1792 of yacc.c */ +#line 2548 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 467: +/* Line 1792 of yacc.c */ +#line 2552 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 468: +/* Line 1792 of yacc.c */ +#line 2556 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 469: +/* Line 1792 of yacc.c */ +#line 2560 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('?', (yyvsp[(1) - (5)].u.expr), (yyvsp[(3) - (5)].u.expr), (yyvsp[(5) - (5)].u.expr)); +} + break; + + case 470: +/* Line 1792 of yacc.c */ +#line 2564 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('[', (yyvsp[(1) - (4)].u.expr), (yyvsp[(3) - (4)].u.expr)); +} + break; + + case 471: +/* Line 1792 of yacc.c */ +#line 2568 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('f', (yyvsp[(1) - (4)].u.expr), (yyvsp[(3) - (4)].u.expr)); +} + break; + + case 472: +/* Line 1792 of yacc.c */ +#line 2572 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('f', (yyvsp[(1) - (3)].u.expr)); +} + break; + + case 473: +/* Line 1792 of yacc.c */ +#line 2576 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('.', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 474: +/* Line 1792 of yacc.c */ +#line 2580 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 475: +/* Line 1792 of yacc.c */ +#line 2584 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = (yyvsp[(2) - (3)].u.expr); +} + break; + + case 476: +/* Line 1792 of yacc.c */ +#line 2592 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); } break; case 477: /* Line 1792 of yacc.c */ -#line 2548 "dtool/src/cppparser/cppBison.yxx" +#line 2596 "dtool/src/cppparser/cppBison.yxx" { - (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(3) - (7)].u.type), (yyvsp[(6) - (7)].u.expr))); + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(2) - (4)].u.type), (yyvsp[(4) - (4)].u.expr))); } break; case 478: /* Line 1792 of yacc.c */ -#line 2552 "dtool/src/cppparser/cppBison.yxx" +#line 2600 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(3) - (7)].u.type), (yyvsp[(6) - (7)].u.expr))); +} + break; + + case 479: +/* Line 1792 of yacc.c */ +#line 2604 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(3) - (7)].u.type), (yyvsp[(6) - (7)].u.expr))); +} + break; + + case 480: +/* Line 1792 of yacc.c */ +#line 2608 "dtool/src/cppparser/cppBison.yxx" { // A constructor call. CPPType *type = (yyvsp[(1) - (4)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); @@ -6759,9 +6868,9 @@ yyreduce: } break; - case 479: + case 481: /* Line 1792 of yacc.c */ -#line 2562 "dtool/src/cppparser/cppBison.yxx" +#line 2618 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_int)); @@ -6769,9 +6878,9 @@ yyreduce: } break; - case 480: + case 482: /* Line 1792 of yacc.c */ -#line 2568 "dtool/src/cppparser/cppBison.yxx" +#line 2624 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_char)); @@ -6779,9 +6888,9 @@ yyreduce: } break; - case 481: + case 483: /* Line 1792 of yacc.c */ -#line 2574 "dtool/src/cppparser/cppBison.yxx" +#line 2630 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_wchar_t)); @@ -6789,9 +6898,9 @@ yyreduce: } break; - case 482: + case 484: /* Line 1792 of yacc.c */ -#line 2580 "dtool/src/cppparser/cppBison.yxx" +#line 2636 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_char16_t)); @@ -6799,9 +6908,9 @@ yyreduce: } break; - case 483: + case 485: /* Line 1792 of yacc.c */ -#line 2586 "dtool/src/cppparser/cppBison.yxx" +#line 2642 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_char32_t)); @@ -6809,9 +6918,9 @@ yyreduce: } break; - case 484: + case 486: /* Line 1792 of yacc.c */ -#line 2592 "dtool/src/cppparser/cppBison.yxx" +#line 2648 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_bool)); @@ -6819,9 +6928,9 @@ yyreduce: } break; - case 485: + case 487: /* Line 1792 of yacc.c */ -#line 2598 "dtool/src/cppparser/cppBison.yxx" +#line 2654 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_int, @@ -6830,9 +6939,9 @@ yyreduce: } break; - case 486: + case 488: /* Line 1792 of yacc.c */ -#line 2605 "dtool/src/cppparser/cppBison.yxx" +#line 2661 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_int, @@ -6841,9 +6950,9 @@ yyreduce: } break; - case 487: + case 489: /* Line 1792 of yacc.c */ -#line 2612 "dtool/src/cppparser/cppBison.yxx" +#line 2668 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_int, @@ -6852,9 +6961,9 @@ yyreduce: } break; - case 488: + case 490: /* Line 1792 of yacc.c */ -#line 2619 "dtool/src/cppparser/cppBison.yxx" +#line 2675 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_int, @@ -6863,9 +6972,9 @@ yyreduce: } break; - case 489: + case 491: /* Line 1792 of yacc.c */ -#line 2626 "dtool/src/cppparser/cppBison.yxx" +#line 2682 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_float)); @@ -6873,9 +6982,9 @@ yyreduce: } break; - case 490: + case 492: /* Line 1792 of yacc.c */ -#line 2632 "dtool/src/cppparser/cppBison.yxx" +#line 2688 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_double)); @@ -6883,721 +6992,721 @@ yyreduce: } break; - case 491: -/* Line 1792 of yacc.c */ -#line 2638 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[(3) - (4)].u.type))); -} - break; - - case 492: -/* Line 1792 of yacc.c */ -#line 2642 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(CPPExpression::alignof_func((yyvsp[(3) - (4)].u.type))); -} - break; - case 493: /* Line 1792 of yacc.c */ -#line 2646 "dtool/src/cppparser/cppBison.yxx" +#line 2694 "dtool/src/cppparser/cppBison.yxx" { - (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[(2) - (2)].u.type))); + (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[(3) - (4)].u.type))); } break; case 494: /* Line 1792 of yacc.c */ -#line 2650 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[(2) - (5)].u.type), (yyvsp[(4) - (5)].u.expr))); -} - break; - - case 495: -/* Line 1792 of yacc.c */ -#line 2654 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[(2) - (2)].u.expr)); -} - break; - - case 496: -/* Line 1792 of yacc.c */ -#line 2658 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[(2) - (2)].u.expr)); -} - break; - - case 497: -/* Line 1792 of yacc.c */ -#line 2662 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[(2) - (2)].u.expr)); -} - break; - - case 498: -/* Line 1792 of yacc.c */ -#line 2666 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(UNARY_STAR, (yyvsp[(2) - (2)].u.expr)); -} - break; - - case 499: -/* Line 1792 of yacc.c */ -#line 2670 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[(2) - (2)].u.expr)); -} - break; - - case 500: -/* Line 1792 of yacc.c */ -#line 2674 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('*', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 501: -/* Line 1792 of yacc.c */ -#line 2678 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('/', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 502: -/* Line 1792 of yacc.c */ -#line 2682 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('%', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 503: -/* Line 1792 of yacc.c */ -#line 2686 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('+', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 504: -/* Line 1792 of yacc.c */ -#line 2690 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('-', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 505: -/* Line 1792 of yacc.c */ -#line 2694 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('|', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 506: -/* Line 1792 of yacc.c */ #line 2698 "dtool/src/cppparser/cppBison.yxx" { - (yyval.u.expr) = new CPPExpression('^', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 507: -/* Line 1792 of yacc.c */ -#line 2702 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('&', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 508: -/* Line 1792 of yacc.c */ -#line 2706 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 509: -/* Line 1792 of yacc.c */ -#line 2710 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 510: -/* Line 1792 of yacc.c */ -#line 2714 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 511: -/* Line 1792 of yacc.c */ -#line 2718 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 512: -/* Line 1792 of yacc.c */ -#line 2722 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 513: -/* Line 1792 of yacc.c */ -#line 2726 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 514: -/* Line 1792 of yacc.c */ -#line 2730 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('<', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 515: -/* Line 1792 of yacc.c */ -#line 2734 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('>', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 516: -/* Line 1792 of yacc.c */ -#line 2738 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 517: -/* Line 1792 of yacc.c */ -#line 2742 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 518: -/* Line 1792 of yacc.c */ -#line 2746 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('?', (yyvsp[(1) - (5)].u.expr), (yyvsp[(3) - (5)].u.expr), (yyvsp[(5) - (5)].u.expr)); -} - break; - - case 519: -/* Line 1792 of yacc.c */ -#line 2750 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('[', (yyvsp[(1) - (4)].u.expr), (yyvsp[(3) - (4)].u.expr)); -} - break; - - case 520: -/* Line 1792 of yacc.c */ -#line 2754 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('f', (yyvsp[(1) - (4)].u.expr), (yyvsp[(3) - (4)].u.expr)); -} - break; - - case 521: -/* Line 1792 of yacc.c */ -#line 2758 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('f', (yyvsp[(1) - (3)].u.expr)); -} - break; - - case 522: -/* Line 1792 of yacc.c */ -#line 2762 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('.', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 523: -/* Line 1792 of yacc.c */ -#line 2766 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 524: -/* Line 1792 of yacc.c */ -#line 2770 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (yyvsp[(2) - (3)].u.expr); -} - break; - - case 525: -/* Line 1792 of yacc.c */ -#line 2777 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.integer)); -} - break; - - case 526: -/* Line 1792 of yacc.c */ -#line 2781 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(true); -} - break; - - case 527: -/* Line 1792 of yacc.c */ -#line 2785 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(false); -} - break; - - case 528: -/* Line 1792 of yacc.c */ -#line 2789 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.integer)); -} - break; - - case 529: -/* Line 1792 of yacc.c */ -#line 2793 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.real)); -} - break; - - case 530: -/* Line 1792 of yacc.c */ -#line 2797 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); -} - break; - - case 531: -/* Line 1792 of yacc.c */ -#line 2801 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); -} - break; - - case 532: -/* Line 1792 of yacc.c */ -#line 2805 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.identifier), current_scope, global_scope, current_lexer); -} - break; - - case 533: -/* Line 1792 of yacc.c */ -#line 2809 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(CPPExpression::get_nullptr()); -} - break; - - case 534: -/* Line 1792 of yacc.c */ -#line 2823 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); -} - break; - - case 535: -/* Line 1792 of yacc.c */ -#line 2827 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(2) - (4)].u.type), (yyvsp[(4) - (4)].u.expr))); -} - break; - - case 536: -/* Line 1792 of yacc.c */ -#line 2831 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(3) - (7)].u.type), (yyvsp[(6) - (7)].u.expr))); -} - break; - - case 537: -/* Line 1792 of yacc.c */ -#line 2835 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(3) - (7)].u.type), (yyvsp[(6) - (7)].u.expr))); -} - break; - - case 538: -/* Line 1792 of yacc.c */ -#line 2839 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[(3) - (4)].u.type))); -} - break; - - case 539: -/* Line 1792 of yacc.c */ -#line 2843 "dtool/src/cppparser/cppBison.yxx" - { (yyval.u.expr) = new CPPExpression(CPPExpression::alignof_func((yyvsp[(3) - (4)].u.type))); } break; - case 540: + case 495: /* Line 1792 of yacc.c */ -#line 2847 "dtool/src/cppparser/cppBison.yxx" +#line 2702 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[(2) - (2)].u.type))); } break; - case 541: + case 496: /* Line 1792 of yacc.c */ -#line 2851 "dtool/src/cppparser/cppBison.yxx" +#line 2706 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[(2) - (5)].u.type), (yyvsp[(4) - (5)].u.expr))); } break; - case 542: + case 497: /* Line 1792 of yacc.c */ -#line 2855 "dtool/src/cppparser/cppBison.yxx" +#line 2710 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[(2) - (2)].u.expr)); } break; - case 543: + case 498: /* Line 1792 of yacc.c */ -#line 2859 "dtool/src/cppparser/cppBison.yxx" +#line 2714 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[(2) - (2)].u.expr)); } break; - case 544: + case 499: /* Line 1792 of yacc.c */ -#line 2863 "dtool/src/cppparser/cppBison.yxx" +#line 2718 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[(2) - (2)].u.expr)); } break; - case 545: + case 500: /* Line 1792 of yacc.c */ -#line 2867 "dtool/src/cppparser/cppBison.yxx" +#line 2722 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(UNARY_STAR, (yyvsp[(2) - (2)].u.expr)); +} + break; + + case 501: +/* Line 1792 of yacc.c */ +#line 2726 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[(2) - (2)].u.expr)); } break; - case 546: + case 502: /* Line 1792 of yacc.c */ -#line 2871 "dtool/src/cppparser/cppBison.yxx" +#line 2730 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('*', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 547: + case 503: /* Line 1792 of yacc.c */ -#line 2875 "dtool/src/cppparser/cppBison.yxx" +#line 2734 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('/', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 548: + case 504: /* Line 1792 of yacc.c */ -#line 2879 "dtool/src/cppparser/cppBison.yxx" +#line 2738 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('%', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 549: + case 505: /* Line 1792 of yacc.c */ -#line 2883 "dtool/src/cppparser/cppBison.yxx" +#line 2742 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('+', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 550: + case 506: /* Line 1792 of yacc.c */ -#line 2887 "dtool/src/cppparser/cppBison.yxx" +#line 2746 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('-', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 551: + case 507: /* Line 1792 of yacc.c */ -#line 2891 "dtool/src/cppparser/cppBison.yxx" +#line 2750 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('|', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 552: + case 508: /* Line 1792 of yacc.c */ -#line 2895 "dtool/src/cppparser/cppBison.yxx" +#line 2754 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('^', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 553: + case 509: /* Line 1792 of yacc.c */ -#line 2899 "dtool/src/cppparser/cppBison.yxx" +#line 2758 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('&', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 554: + case 510: /* Line 1792 of yacc.c */ -#line 2903 "dtool/src/cppparser/cppBison.yxx" +#line 2762 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 555: + case 511: /* Line 1792 of yacc.c */ -#line 2907 "dtool/src/cppparser/cppBison.yxx" +#line 2766 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 556: + case 512: /* Line 1792 of yacc.c */ -#line 2911 "dtool/src/cppparser/cppBison.yxx" +#line 2770 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 557: + case 513: /* Line 1792 of yacc.c */ -#line 2915 "dtool/src/cppparser/cppBison.yxx" +#line 2774 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 558: + case 514: /* Line 1792 of yacc.c */ -#line 2919 "dtool/src/cppparser/cppBison.yxx" +#line 2778 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 559: + case 515: /* Line 1792 of yacc.c */ -#line 2923 "dtool/src/cppparser/cppBison.yxx" +#line 2782 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 560: + case 516: /* Line 1792 of yacc.c */ -#line 2927 "dtool/src/cppparser/cppBison.yxx" +#line 2786 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('<', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 561: + case 517: /* Line 1792 of yacc.c */ -#line 2931 "dtool/src/cppparser/cppBison.yxx" +#line 2790 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('>', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 562: + case 518: /* Line 1792 of yacc.c */ -#line 2935 "dtool/src/cppparser/cppBison.yxx" +#line 2794 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 563: + case 519: /* Line 1792 of yacc.c */ -#line 2939 "dtool/src/cppparser/cppBison.yxx" +#line 2798 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 564: + case 520: /* Line 1792 of yacc.c */ -#line 2943 "dtool/src/cppparser/cppBison.yxx" +#line 2802 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('?', (yyvsp[(1) - (5)].u.expr), (yyvsp[(3) - (5)].u.expr), (yyvsp[(5) - (5)].u.expr)); } break; - case 565: + case 521: /* Line 1792 of yacc.c */ -#line 2947 "dtool/src/cppparser/cppBison.yxx" +#line 2806 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('[', (yyvsp[(1) - (4)].u.expr), (yyvsp[(3) - (4)].u.expr)); } break; - case 566: + case 522: /* Line 1792 of yacc.c */ -#line 2951 "dtool/src/cppparser/cppBison.yxx" +#line 2810 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('f', (yyvsp[(1) - (4)].u.expr), (yyvsp[(3) - (4)].u.expr)); } break; - case 567: + case 523: /* Line 1792 of yacc.c */ -#line 2955 "dtool/src/cppparser/cppBison.yxx" +#line 2814 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('f', (yyvsp[(1) - (3)].u.expr)); } break; - case 568: + case 524: /* Line 1792 of yacc.c */ -#line 2959 "dtool/src/cppparser/cppBison.yxx" +#line 2818 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('.', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 569: + case 525: /* Line 1792 of yacc.c */ -#line 2963 "dtool/src/cppparser/cppBison.yxx" +#line 2822 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 570: + case 526: /* Line 1792 of yacc.c */ -#line 2967 "dtool/src/cppparser/cppBison.yxx" +#line 2826 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (yyvsp[(2) - (3)].u.expr); } break; - case 571: + case 527: /* Line 1792 of yacc.c */ -#line 2974 "dtool/src/cppparser/cppBison.yxx" +#line 2833 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.integer)); } break; - case 572: + case 528: /* Line 1792 of yacc.c */ -#line 2978 "dtool/src/cppparser/cppBison.yxx" +#line 2837 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(true); } break; - case 573: + case 529: /* Line 1792 of yacc.c */ -#line 2982 "dtool/src/cppparser/cppBison.yxx" +#line 2841 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(false); } break; - case 574: + case 530: /* Line 1792 of yacc.c */ -#line 2986 "dtool/src/cppparser/cppBison.yxx" +#line 2845 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.integer)); } break; - case 575: + case 531: /* Line 1792 of yacc.c */ -#line 2990 "dtool/src/cppparser/cppBison.yxx" +#line 2849 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.real)); } break; - case 576: + case 532: /* Line 1792 of yacc.c */ -#line 2994 "dtool/src/cppparser/cppBison.yxx" +#line 2853 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); } break; - case 577: + case 533: /* Line 1792 of yacc.c */ -#line 2998 "dtool/src/cppparser/cppBison.yxx" +#line 2857 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); } break; - case 578: + case 534: /* Line 1792 of yacc.c */ -#line 3002 "dtool/src/cppparser/cppBison.yxx" +#line 2861 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.identifier), current_scope, global_scope, current_lexer); } break; - case 579: + case 535: /* Line 1792 of yacc.c */ -#line 3006 "dtool/src/cppparser/cppBison.yxx" +#line 2865 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::get_nullptr()); } break; + case 536: +/* Line 1792 of yacc.c */ +#line 2879 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); +} + break; + + case 537: +/* Line 1792 of yacc.c */ +#line 2883 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(2) - (4)].u.type), (yyvsp[(4) - (4)].u.expr))); +} + break; + + case 538: +/* Line 1792 of yacc.c */ +#line 2887 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(3) - (7)].u.type), (yyvsp[(6) - (7)].u.expr))); +} + break; + + case 539: +/* Line 1792 of yacc.c */ +#line 2891 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(3) - (7)].u.type), (yyvsp[(6) - (7)].u.expr))); +} + break; + + case 540: +/* Line 1792 of yacc.c */ +#line 2895 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[(3) - (4)].u.type))); +} + break; + + case 541: +/* Line 1792 of yacc.c */ +#line 2899 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(CPPExpression::alignof_func((yyvsp[(3) - (4)].u.type))); +} + break; + + case 542: +/* Line 1792 of yacc.c */ +#line 2903 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[(2) - (2)].u.type))); +} + break; + + case 543: +/* Line 1792 of yacc.c */ +#line 2907 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[(2) - (5)].u.type), (yyvsp[(4) - (5)].u.expr))); +} + break; + + case 544: +/* Line 1792 of yacc.c */ +#line 2911 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[(2) - (2)].u.expr)); +} + break; + + case 545: +/* Line 1792 of yacc.c */ +#line 2915 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[(2) - (2)].u.expr)); +} + break; + + case 546: +/* Line 1792 of yacc.c */ +#line 2919 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[(2) - (2)].u.expr)); +} + break; + + case 547: +/* Line 1792 of yacc.c */ +#line 2923 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[(2) - (2)].u.expr)); +} + break; + + case 548: +/* Line 1792 of yacc.c */ +#line 2927 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('*', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 549: +/* Line 1792 of yacc.c */ +#line 2931 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('/', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 550: +/* Line 1792 of yacc.c */ +#line 2935 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('%', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 551: +/* Line 1792 of yacc.c */ +#line 2939 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('+', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 552: +/* Line 1792 of yacc.c */ +#line 2943 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('-', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 553: +/* Line 1792 of yacc.c */ +#line 2947 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('|', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 554: +/* Line 1792 of yacc.c */ +#line 2951 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('^', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 555: +/* Line 1792 of yacc.c */ +#line 2955 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('&', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 556: +/* Line 1792 of yacc.c */ +#line 2959 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 557: +/* Line 1792 of yacc.c */ +#line 2963 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 558: +/* Line 1792 of yacc.c */ +#line 2967 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 559: +/* Line 1792 of yacc.c */ +#line 2971 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 560: +/* Line 1792 of yacc.c */ +#line 2975 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 561: +/* Line 1792 of yacc.c */ +#line 2979 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 562: +/* Line 1792 of yacc.c */ +#line 2983 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('<', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 563: +/* Line 1792 of yacc.c */ +#line 2987 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('>', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 564: +/* Line 1792 of yacc.c */ +#line 2991 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 565: +/* Line 1792 of yacc.c */ +#line 2995 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 566: +/* Line 1792 of yacc.c */ +#line 2999 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('?', (yyvsp[(1) - (5)].u.expr), (yyvsp[(3) - (5)].u.expr), (yyvsp[(5) - (5)].u.expr)); +} + break; + + case 567: +/* Line 1792 of yacc.c */ +#line 3003 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('[', (yyvsp[(1) - (4)].u.expr), (yyvsp[(3) - (4)].u.expr)); +} + break; + + case 568: +/* Line 1792 of yacc.c */ +#line 3007 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('f', (yyvsp[(1) - (4)].u.expr), (yyvsp[(3) - (4)].u.expr)); +} + break; + + case 569: +/* Line 1792 of yacc.c */ +#line 3011 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('f', (yyvsp[(1) - (3)].u.expr)); +} + break; + + case 570: +/* Line 1792 of yacc.c */ +#line 3015 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('.', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 571: +/* Line 1792 of yacc.c */ +#line 3019 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 572: +/* Line 1792 of yacc.c */ +#line 3023 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = (yyvsp[(2) - (3)].u.expr); +} + break; + + case 573: +/* Line 1792 of yacc.c */ +#line 3030 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.integer)); +} + break; + + case 574: +/* Line 1792 of yacc.c */ +#line 3034 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(true); +} + break; + + case 575: +/* Line 1792 of yacc.c */ +#line 3038 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(false); +} + break; + + case 576: +/* Line 1792 of yacc.c */ +#line 3042 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.integer)); +} + break; + + case 577: +/* Line 1792 of yacc.c */ +#line 3046 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.real)); +} + break; + + case 578: +/* Line 1792 of yacc.c */ +#line 3050 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); +} + break; + + case 579: +/* Line 1792 of yacc.c */ +#line 3054 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); +} + break; + case 580: /* Line 1792 of yacc.c */ -#line 3013 "dtool/src/cppparser/cppBison.yxx" +#line 3058 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.identifier), current_scope, global_scope, current_lexer); +} + break; + + case 581: +/* Line 1792 of yacc.c */ +#line 3062 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(CPPExpression::get_nullptr()); +} + break; + + case 582: +/* Line 1792 of yacc.c */ +#line 3069 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = (yyvsp[(1) - (1)].u.identifier)->find_type(current_scope, global_scope, true); if (type == NULL) { @@ -7607,9 +7716,9 @@ yyreduce: } break; - case 581: + case 583: /* Line 1792 of yacc.c */ -#line 3021 "dtool/src/cppparser/cppBison.yxx" +#line 3077 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = (yyvsp[(2) - (2)].u.identifier)->find_type(current_scope, global_scope, true, current_lexer); if (type == NULL) { @@ -7619,49 +7728,49 @@ yyreduce: } break; - case 582: + case 584: /* Line 1792 of yacc.c */ -#line 3029 "dtool/src/cppparser/cppBison.yxx" +#line 3085 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[(2) - (2)].u.identifier))); } break; - case 583: -/* Line 1792 of yacc.c */ -#line 3055 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.identifier) = (yyvsp[(1) - (1)].u.identifier); -} - break; - - case 584: -/* Line 1792 of yacc.c */ -#line 3059 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.identifier) = (yyvsp[(1) - (1)].u.identifier); -} - break; - case 585: /* Line 1792 of yacc.c */ -#line 3066 "dtool/src/cppparser/cppBison.yxx" +#line 3111 "dtool/src/cppparser/cppBison.yxx" { - (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].str)); + (yyval.u.identifier) = (yyvsp[(1) - (1)].u.identifier); } break; case 586: /* Line 1792 of yacc.c */ -#line 3070 "dtool/src/cppparser/cppBison.yxx" +#line 3115 "dtool/src/cppparser/cppBison.yxx" { - (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); + (yyval.u.identifier) = (yyvsp[(1) - (1)].u.identifier); } break; case 587: /* Line 1792 of yacc.c */ -#line 3074 "dtool/src/cppparser/cppBison.yxx" +#line 3122 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].str)); +} + break; + + case 588: +/* Line 1792 of yacc.c */ +#line 3126 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); +} + break; + + case 589: +/* Line 1792 of yacc.c */ +#line 3130 "dtool/src/cppparser/cppBison.yxx" { // The right string takes on the literal type of the left. (yyval.u.expr) = (yyvsp[(1) - (2)].u.expr); @@ -7669,9 +7778,9 @@ yyreduce: } break; - case 588: + case 590: /* Line 1792 of yacc.c */ -#line 3080 "dtool/src/cppparser/cppBison.yxx" +#line 3136 "dtool/src/cppparser/cppBison.yxx" { // We have to check that the two literal types match up. (yyval.u.expr) = (yyvsp[(1) - (2)].u.expr); @@ -7684,7 +7793,7 @@ yyreduce: /* Line 1792 of yacc.c */ -#line 7688 "built/tmp/cppBison.yxx.c" +#line 7797 "built/tmp/cppBison.yxx.c" default: break; } /* User semantic actions sometimes alter yychar, and that requires diff --git a/dtool/src/cppparser/cppBison.h.prebuilt b/dtool/src/cppparser/cppBison.h.prebuilt index 2799f4873f..efb95b06a1 100644 --- a/dtool/src/cppparser/cppBison.h.prebuilt +++ b/dtool/src/cppparser/cppBison.h.prebuilt @@ -124,42 +124,43 @@ extern int cppyydebug; KW_LONG = 333, KW_LONGLONG = 334, KW_MAKE_PROPERTY = 335, - KW_MAKE_SEQ = 336, - KW_MUTABLE = 337, - KW_NAMESPACE = 338, - KW_NEW = 339, - KW_NOEXCEPT = 340, - KW_NULLPTR = 341, - KW_OPERATOR = 342, - KW_PRIVATE = 343, - KW_PROTECTED = 344, - KW_PUBLIC = 345, - KW_REGISTER = 346, - KW_RETURN = 347, - KW_SHORT = 348, - KW_SIGNED = 349, - KW_SIZEOF = 350, - KW_STATIC = 351, - KW_STATIC_ASSERT = 352, - KW_STATIC_CAST = 353, - KW_STRUCT = 354, - KW_TEMPLATE = 355, - KW_THROW = 356, - KW_TRUE = 357, - KW_TRY = 358, - KW_TYPEDEF = 359, - KW_TYPENAME = 360, - KW_UNION = 361, - KW_UNSIGNED = 362, - KW_USING = 363, - KW_VIRTUAL = 364, - KW_VOID = 365, - KW_VOLATILE = 366, - KW_WCHAR_T = 367, - KW_WHILE = 368, - START_CPP = 369, - START_CONST_EXPR = 370, - START_TYPE = 371 + KW_MAKE_PROPERTY2 = 336, + KW_MAKE_SEQ = 337, + KW_MUTABLE = 338, + KW_NAMESPACE = 339, + KW_NEW = 340, + KW_NOEXCEPT = 341, + KW_NULLPTR = 342, + KW_OPERATOR = 343, + KW_PRIVATE = 344, + KW_PROTECTED = 345, + KW_PUBLIC = 346, + KW_REGISTER = 347, + KW_RETURN = 348, + KW_SHORT = 349, + KW_SIGNED = 350, + KW_SIZEOF = 351, + KW_STATIC = 352, + KW_STATIC_ASSERT = 353, + KW_STATIC_CAST = 354, + KW_STRUCT = 355, + KW_TEMPLATE = 356, + KW_THROW = 357, + KW_TRUE = 358, + KW_TRY = 359, + KW_TYPEDEF = 360, + KW_TYPENAME = 361, + KW_UNION = 362, + KW_UNSIGNED = 363, + KW_USING = 364, + KW_VIRTUAL = 365, + KW_VOID = 366, + KW_VOLATILE = 367, + KW_WCHAR_T = 368, + KW_WHILE = 369, + START_CPP = 370, + START_CONST_EXPR = 371, + START_TYPE = 372 }; #endif /* Tokens. */ @@ -241,42 +242,43 @@ extern int cppyydebug; #define KW_LONG 333 #define KW_LONGLONG 334 #define KW_MAKE_PROPERTY 335 -#define KW_MAKE_SEQ 336 -#define KW_MUTABLE 337 -#define KW_NAMESPACE 338 -#define KW_NEW 339 -#define KW_NOEXCEPT 340 -#define KW_NULLPTR 341 -#define KW_OPERATOR 342 -#define KW_PRIVATE 343 -#define KW_PROTECTED 344 -#define KW_PUBLIC 345 -#define KW_REGISTER 346 -#define KW_RETURN 347 -#define KW_SHORT 348 -#define KW_SIGNED 349 -#define KW_SIZEOF 350 -#define KW_STATIC 351 -#define KW_STATIC_ASSERT 352 -#define KW_STATIC_CAST 353 -#define KW_STRUCT 354 -#define KW_TEMPLATE 355 -#define KW_THROW 356 -#define KW_TRUE 357 -#define KW_TRY 358 -#define KW_TYPEDEF 359 -#define KW_TYPENAME 360 -#define KW_UNION 361 -#define KW_UNSIGNED 362 -#define KW_USING 363 -#define KW_VIRTUAL 364 -#define KW_VOID 365 -#define KW_VOLATILE 366 -#define KW_WCHAR_T 367 -#define KW_WHILE 368 -#define START_CPP 369 -#define START_CONST_EXPR 370 -#define START_TYPE 371 +#define KW_MAKE_PROPERTY2 336 +#define KW_MAKE_SEQ 337 +#define KW_MUTABLE 338 +#define KW_NAMESPACE 339 +#define KW_NEW 340 +#define KW_NOEXCEPT 341 +#define KW_NULLPTR 342 +#define KW_OPERATOR 343 +#define KW_PRIVATE 344 +#define KW_PROTECTED 345 +#define KW_PUBLIC 346 +#define KW_REGISTER 347 +#define KW_RETURN 348 +#define KW_SHORT 349 +#define KW_SIGNED 350 +#define KW_SIZEOF 351 +#define KW_STATIC 352 +#define KW_STATIC_ASSERT 353 +#define KW_STATIC_CAST 354 +#define KW_STRUCT 355 +#define KW_TEMPLATE 356 +#define KW_THROW 357 +#define KW_TRUE 358 +#define KW_TRY 359 +#define KW_TYPEDEF 360 +#define KW_TYPENAME 361 +#define KW_UNION 362 +#define KW_UNSIGNED 363 +#define KW_USING 364 +#define KW_VIRTUAL 365 +#define KW_VOID 366 +#define KW_VOLATILE 367 +#define KW_WCHAR_T 368 +#define KW_WHILE 369 +#define START_CPP 370 +#define START_CONST_EXPR 371 +#define START_TYPE 372 diff --git a/dtool/src/cppparser/cppBison.yxx b/dtool/src/cppparser/cppBison.yxx index 02fca34aac..4978edb0f2 100644 --- a/dtool/src/cppparser/cppBison.yxx +++ b/dtool/src/cppparser/cppBison.yxx @@ -282,6 +282,7 @@ pop_struct() { %token KW_LONG %token KW_LONGLONG %token KW_MAKE_PROPERTY +%token KW_MAKE_PROPERTY2 %token KW_MAKE_SEQ %token KW_MUTABLE %token KW_NAMESPACE @@ -529,6 +530,61 @@ declaration: setter_func, current_scope, @1.file); current_scope->add_declaration(make_property, global_scope, current_lexer, @1); } +} + | KW_MAKE_PROPERTY2 '(' IDENTIFIER ',' IDENTIFIER ',' IDENTIFIER ')' ';' +{ + CPPDeclaration *hasser = $5->find_symbol(current_scope, global_scope, current_lexer); + if (hasser == (CPPDeclaration *)NULL || hasser->get_subtype() != CPPDeclaration::ST_function_group) { + yyerror("Reference to non-existent or invalid has-function: " + $5->get_fully_scoped_name(), @5); + } + + CPPDeclaration *getter = $7->find_symbol(current_scope, global_scope, current_lexer); + if (getter == (CPPDeclaration *)NULL || getter->get_subtype() != CPPDeclaration::ST_function_group) { + yyerror("Reference to non-existent or invalid getter: " + $7->get_fully_scoped_name(), @7); + } + + if (hasser && getter) { + CPPMakeProperty *make_property; + make_property = new CPPMakeProperty($3, + hasser->as_function_group(), + getter->as_function_group(), + NULL, NULL, + current_scope, @1.file); + current_scope->add_declaration(make_property, global_scope, current_lexer, @1); + } +} + | KW_MAKE_PROPERTY2 '(' IDENTIFIER ',' IDENTIFIER ',' IDENTIFIER ',' IDENTIFIER ',' IDENTIFIER ')' ';' +{ + CPPDeclaration *hasser = $5->find_symbol(current_scope, global_scope, current_lexer); + if (hasser == (CPPDeclaration *)NULL || hasser->get_subtype() != CPPDeclaration::ST_function_group) { + yyerror("Reference to non-existent or invalid has-function: " + $5->get_fully_scoped_name(), @5); + } + + CPPDeclaration *getter = $7->find_symbol(current_scope, global_scope, current_lexer); + if (getter == (CPPDeclaration *)NULL || getter->get_subtype() != CPPDeclaration::ST_function_group) { + yyerror("Reference to non-existent or invalid getter: " + $7->get_fully_scoped_name(), @7); + } + + CPPDeclaration *setter = $9->find_symbol(current_scope, global_scope, current_lexer); + if (setter == (CPPDeclaration *)NULL || setter->get_subtype() != CPPDeclaration::ST_function_group) { + yyerror("Reference to non-existent or invalid setter: " + $9->get_fully_scoped_name(), @9); + } + + CPPDeclaration *clearer = $11->find_symbol(current_scope, global_scope, current_lexer); + if (clearer == (CPPDeclaration *)NULL || clearer->get_subtype() != CPPDeclaration::ST_function_group) { + yyerror("Reference to non-existent or invalid clear-function: " + $11->get_fully_scoped_name(), @11); + } + + if (hasser && getter && setter && clearer) { + CPPMakeProperty *make_property; + make_property = new CPPMakeProperty($3, + hasser->as_function_group(), + getter->as_function_group(), + setter->as_function_group(), + clearer->as_function_group(), + current_scope, @1.file); + current_scope->add_declaration(make_property, global_scope, current_lexer, @1); + } } | KW_MAKE_SEQ '(' IDENTIFIER ',' IDENTIFIER ',' IDENTIFIER ')' ';' { diff --git a/dtool/src/cppparser/cppMakeProperty.cxx b/dtool/src/cppparser/cppMakeProperty.cxx index d7d4fa9e67..93b2b440b8 100644 --- a/dtool/src/cppparser/cppMakeProperty.cxx +++ b/dtool/src/cppparser/cppMakeProperty.cxx @@ -26,8 +26,30 @@ CPPMakeProperty(CPPIdentifier *ident, CPPScope *current_scope, const CPPFile &file) : CPPDeclaration(file), _ident(ident), - _getter(getter), - _setter(setter) + _has_function(NULL), + _get_function(getter), + _set_function(setter), + _clear_function(NULL) +{ + _ident->_native_scope = current_scope; +} + +//////////////////////////////////////////////////////////////////// +// Function: CPPMakeProperty::Constructor +// Access: Public +// Description: +//////////////////////////////////////////////////////////////////// +CPPMakeProperty:: +CPPMakeProperty(CPPIdentifier *ident, + CPPFunctionGroup *hasser, CPPFunctionGroup *getter, + CPPFunctionGroup *setter, CPPFunctionGroup *clearer, + CPPScope *current_scope, const CPPFile &file) : + CPPDeclaration(file), + _ident(ident), + _has_function(hasser), + _get_function(getter), + _set_function(setter), + _clear_function(clearer) { _ident->_native_scope = current_scope; } @@ -69,12 +91,28 @@ get_fully_scoped_name() const { //////////////////////////////////////////////////////////////////// void CPPMakeProperty:: output(ostream &out, int indent_level, CPPScope *scope, bool complete) const { - out << "__make_property(" << _ident->get_local_name(scope) - << ", " << _getter->_name; + out << "__make_property"; - if (_setter != NULL) { - out << ", " << _setter->_name; + if (_has_function != NULL) { + out.put('2'); } + + out << "(" << _ident->get_local_name(scope); + + if (_has_function != NULL) { + out << ", " << _has_function->_name; + } + + out << ", " << _get_function->_name; + + if (_set_function != NULL) { + out << ", " << _set_function->_name; + } + + if (_clear_function != NULL) { + out << ", " << _clear_function->_name; + } + out << ");"; } diff --git a/dtool/src/cppparser/cppMakeProperty.h b/dtool/src/cppparser/cppMakeProperty.h index 8fecfc071c..7c627749a4 100644 --- a/dtool/src/cppparser/cppMakeProperty.h +++ b/dtool/src/cppparser/cppMakeProperty.h @@ -34,6 +34,11 @@ public: CPPFunctionGroup *getter, CPPFunctionGroup *setter, CPPScope *current_scope, const CPPFile &file); + CPPMakeProperty(CPPIdentifier *ident, + CPPFunctionGroup *hasser, CPPFunctionGroup *getter, + CPPFunctionGroup *setter, CPPFunctionGroup *clearer, + CPPScope *current_scope, const CPPFile &file); + virtual string get_simple_name() const; virtual string get_local_name(CPPScope *scope = NULL) const; virtual string get_fully_scoped_name() const; @@ -45,8 +50,10 @@ public: virtual CPPMakeProperty *as_make_property(); CPPIdentifier *_ident; - CPPFunctionGroup *_getter; - CPPFunctionGroup *_setter; + CPPFunctionGroup *_has_function; + CPPFunctionGroup *_get_function; + CPPFunctionGroup *_set_function; + CPPFunctionGroup *_clear_function; }; #endif diff --git a/dtool/src/cppparser/cppPreprocessor.cxx b/dtool/src/cppparser/cppPreprocessor.cxx index c0db505861..ad25d817e0 100644 --- a/dtool/src/cppparser/cppPreprocessor.cxx +++ b/dtool/src/cppparser/cppPreprocessor.cxx @@ -2535,6 +2535,7 @@ check_keyword(const string &name) { if (name == "int") return KW_INT; if (name == "long") return KW_LONG; if (name == "__make_property") return KW_MAKE_PROPERTY; + if (name == "__make_property2") return KW_MAKE_PROPERTY2; if (name == "__make_seq") return KW_MAKE_SEQ; if (name == "mutable") return KW_MUTABLE; if (name == "namespace") return KW_NAMESPACE; diff --git a/dtool/src/dtoolbase/dtoolbase.h b/dtool/src/dtoolbase/dtoolbase.h index 7af39a2e28..5d1b61014a 100644 --- a/dtool/src/dtoolbase/dtoolbase.h +++ b/dtool/src/dtoolbase/dtoolbase.h @@ -416,6 +416,7 @@ typedef struct _object PyObject; #define END_PUBLISH __end_publish #define BLOCKING __blocking #define MAKE_PROPERTY(property_name, ...) __make_property(property_name, __VA_ARGS__) +#define MAKE_PROPERTY2(property_name, ...) __make_property2(property_name, __VA_ARGS__) #define MAKE_SEQ(seq_name, num_name, element_name) __make_seq(seq_name, num_name, element_name) #undef USE_STL_ALLOCATOR /* Don't try to parse these template classes in interrogate. */ #define EXTENSION(x) __extension x @@ -425,6 +426,7 @@ typedef struct _object PyObject; #define END_PUBLISH #define BLOCKING #define MAKE_PROPERTY(property_name, ...) +#define MAKE_PROPERTY2(property_name, ...) #define MAKE_SEQ(seq_name, num_name, element_name) #define EXTENSION(x) #define EXTEND diff --git a/dtool/src/interrogate/interfaceMaker.cxx b/dtool/src/interrogate/interfaceMaker.cxx index 5800a68198..e9975786c9 100644 --- a/dtool/src/interrogate/interfaceMaker.cxx +++ b/dtool/src/interrogate/interfaceMaker.cxx @@ -96,7 +96,9 @@ InterfaceMaker::Property:: Property(const InterrogateElement &ielement) : _ielement(ielement), _getter(NULL), - _setter(NULL) + _setter(NULL), + _has_function(NULL), + _clear_function(NULL) { } diff --git a/dtool/src/interrogate/interfaceMaker.h b/dtool/src/interrogate/interfaceMaker.h index 61a18786c0..3e36ddde88 100644 --- a/dtool/src/interrogate/interfaceMaker.h +++ b/dtool/src/interrogate/interfaceMaker.h @@ -133,6 +133,8 @@ public: const InterrogateElement &_ielement; Function *_getter; Function *_setter; + Function *_has_function; + Function *_clear_function; }; typedef vector Properties; diff --git a/dtool/src/interrogate/interfaceMakerPythonNative.cxx b/dtool/src/interrogate/interfaceMakerPythonNative.cxx index 8d976de789..3f28d17ae3 100644 --- a/dtool/src/interrogate/interfaceMakerPythonNative.cxx +++ b/dtool/src/interrogate/interfaceMakerPythonNative.cxx @@ -1045,22 +1045,8 @@ write_class_details(ostream &out, Object *obj) { Properties::const_iterator pit; for (pit = obj->_properties.begin(); pit != obj->_properties.end(); ++pit) { Property *property = (*pit); - const InterrogateElement &ielem = property->_ielement; - string expected_params; - if (property->_getter != NULL) { - std::string fname = "PyObject *Dtool_" + ClassName + "_" + ielem.get_name() + "_Getter(PyObject *self, void *)"; - write_function_for_name(out, obj, property->_getter->_remaps, - fname, expected_params, true, - AT_no_args, RF_pyobject | RF_err_null); - } - - if (property->_setter != NULL) { - std::string fname = "int Dtool_" + ClassName + "_" + ielem.get_name() + "_Setter(PyObject *self, PyObject *arg, void *)"; - write_function_for_name(out, obj, property->_setter->_remaps, - fname, expected_params, true, - AT_single_arg, RF_int); - } + write_getset(out, obj, property); } // Write the constructors. @@ -6443,6 +6429,86 @@ write_make_seq(ostream &out, Object *obj, const std::string &ClassName, "\n"; } +//////////////////////////////////////////////////////////////////// +// Function: InterfaceMakerPythonName::write_getset +// Access: Public +// Description: Generates the synthetic method described by the +// MAKE_PROPERTY() macro. +//////////////////////////////////////////////////////////////////// +void InterfaceMakerPythonNative:: +write_getset(ostream &out, Object *obj, Property *property) { + + string ClassName = make_safe_name(obj->_itype.get_scoped_name()); + std::string cClassName = obj->_itype.get_true_name(); + + const InterrogateElement &ielem = property->_ielement; + + if (property->_getter != NULL) { + FunctionRemap *remap = property->_getter->_remaps.front(); + + out << "PyObject *Dtool_" + ClassName + "_" + ielem.get_name() + "_Getter(PyObject *self, void *) {\n"; + if (remap->_const_method) { + out << " const " << cClassName << " *local_this = NULL;\n"; + out << " if (!Dtool_Call_ExtractThisPointer(self, Dtool_" << ClassName << ", (void **)&local_this)) {\n"; + } else { + out << " " << cClassName << " *local_this = NULL;\n"; + out << " if (!Dtool_Call_ExtractThisPointer_NonConst(self, Dtool_" << ClassName << ", (void **)&local_this, \"" + << classNameFromCppName(cClassName, false) << "." << ielem.get_name() << "\")) {\n"; + } + out << " return NULL;\n"; + out << " }\n\n"; + + if (property->_has_function != NULL) { + out << " if (!local_this->" << property->_has_function->_ifunc.get_name() << "()) {\n" + << " Py_INCREF(Py_None);\n" + << " return Py_None;\n" + << " }\n"; + } + + std::set remaps; + remaps.insert(remap); + + string expected_params; + write_function_forset(out, remaps, 0, 0, + expected_params, 2, false, true, AT_no_args, + RF_pyobject | RF_err_null, false, false); + out << "}\n\n"; + } + + if (property->_setter != NULL) { + out << "int Dtool_" + ClassName + "_" + ielem.get_name() + "_Setter(PyObject *self, PyObject *arg, void *) {\n"; + out << " " << cClassName << " *local_this = NULL;\n"; + out << " if (!Dtool_Call_ExtractThisPointer_NonConst(self, Dtool_" << ClassName << ", (void **)&local_this, \"" + << classNameFromCppName(cClassName, false) << "." << ielem.get_name() << "\")) {\n"; + out << " return -1;\n"; + out << " }\n\n"; + + if (property->_clear_function != NULL) { + out << " if (arg == Py_None) {\n" + << " local_this->" << property->_clear_function->_ifunc.get_name() << "();\n" + << " return 0;\n" + << " }\n"; + } + + std::set remaps; + remaps.insert(property->_setter->_remaps.begin(), + property->_setter->_remaps.end()); + + string expected_params; + write_function_forset(out, remaps, 1, 1, + expected_params, 2, true, true, AT_single_arg, + RF_int, false, false); + + out << " if (!_PyErr_OCCURRED()) {\n"; + out << " Dtool_Raise_BadArgumentsError(\n"; + output_quoted(out, 6, expected_params); + out << ");\n"; + out << " }\n"; + out << " return -1;\n"; + out << "}\n\n"; + } +} + //////////////////////////////////////////////////////////////////// // Function: InterfaceMakerPythonNative::record_object // Access: Protected @@ -6551,6 +6617,22 @@ record_object(TypeIndex type_index) { } } + if (ielement.has_has_function()) { + FunctionIndex func_index = ielement.get_has_function(); + Function *has_function = record_function(itype, func_index); + if (is_function_legal(has_function)) { + property->_has_function = has_function; + } + } + + if (ielement.has_clear_function()) { + FunctionIndex func_index = ielement.get_clear_function(); + Function *clear_function = record_function(itype, func_index); + if (is_function_legal(clear_function)) { + property->_clear_function = clear_function; + } + } + if (property->_getter != NULL) { object->_properties.push_back(property); } else { diff --git a/dtool/src/interrogate/interfaceMakerPythonNative.h b/dtool/src/interrogate/interfaceMakerPythonNative.h index ae62cfc72b..42b5a58759 100644 --- a/dtool/src/interrogate/interfaceMakerPythonNative.h +++ b/dtool/src/interrogate/interfaceMakerPythonNative.h @@ -170,6 +170,7 @@ private: void write_make_seq(ostream &out, Object *obj, const std::string &ClassName, const std::string &cClassName, MakeSeq *make_seq); + void write_getset(ostream &out, Object *obj, Property *property); void write_class_prototypes(ostream &out) ; void write_class_declarations(ostream &out, ostream *out_h, Object *obj); diff --git a/dtool/src/interrogate/interrogateBuilder.cxx b/dtool/src/interrogate/interrogateBuilder.cxx index 47f662b7f5..f1e8578c9b 100644 --- a/dtool/src/interrogate/interrogateBuilder.cxx +++ b/dtool/src/interrogate/interrogateBuilder.cxx @@ -1927,7 +1927,7 @@ get_make_property(CPPMakeProperty *make_property, CPPStructType *struct_type, CP CPPInstance *getter = NULL; CPPType *return_type = NULL; - CPPFunctionGroup *fgroup = make_property->_getter; + CPPFunctionGroup *fgroup = make_property->_get_function; if (fgroup != NULL) { CPPFunctionGroup::Instances::const_iterator fi; for (fi = fgroup->_instances.begin(); fi != fgroup->_instances.end(); ++fi) { @@ -1953,6 +1953,29 @@ get_make_property(CPPMakeProperty *make_property, CPPStructType *struct_type, CP } } + // Find the "hasser". + CPPInstance *hasser = NULL; + + fgroup = make_property->_has_function; + if (fgroup != NULL) { + CPPFunctionGroup::Instances::const_iterator fi; + for (fi = fgroup->_instances.begin(); fi != fgroup->_instances.end(); ++fi) { + CPPInstance *function = (*fi); + CPPFunctionType *ftype = + function->_type->as_function_type(); + if (ftype != NULL && TypeManager::is_bool(ftype->_return_type)) { + hasser = function; + break; + } + } + + if (hasser == NULL || return_type == NULL) { + cerr << "No instance of has-function '" + << fgroup->_name << "' is suitable!\n"; + return 0; + } + } + InterrogateDatabase *idb = InterrogateDatabase::get_ptr(); // It isn't here, so we'll have to define it. ElementIndex index = idb->get_next_index(); @@ -1975,6 +1998,18 @@ get_make_property(CPPMakeProperty *make_property, CPPStructType *struct_type, CP iproperty._flags |= InterrogateElement::F_has_getter; iproperty._getter = get_function(getter, "", struct_type, struct_type->get_scope(), 0); + if (iproperty._getter == 0) { + cerr << "failed " << *getter << "\n"; + } + } + + if (hasser != NULL) { + iproperty._flags |= InterrogateElement::F_has_has_function; + iproperty._has_function = get_function(hasser, "", struct_type, + struct_type->get_scope(), 0); + if (iproperty._has_function == 0) { + cerr << "failed " << *hasser << "\n"; + } } // See if there happens to be a comment before the MAKE_PROPERTY macro. @@ -1983,7 +2018,7 @@ get_make_property(CPPMakeProperty *make_property, CPPStructType *struct_type, CP } // Now look for setters. - fgroup = make_property->_setter; + fgroup = make_property->_set_function; if (fgroup != NULL) { CPPFunctionGroup::Instances::const_iterator fi; for (fi = fgroup->_instances.begin(); fi != fgroup->_instances.end(); ++fi) { @@ -1991,6 +2026,25 @@ get_make_property(CPPMakeProperty *make_property, CPPStructType *struct_type, CP iproperty._flags |= InterrogateElement::F_has_setter; iproperty._setter = get_function(function, "", struct_type, struct_type->get_scope(), 0); + if (iproperty._setter == 0) { + cerr << "failed " << *function << "\n"; + } + break; + } + } + + fgroup = make_property->_clear_function; + if (fgroup != NULL) { + CPPFunctionGroup::Instances::const_iterator fi; + for (fi = fgroup->_instances.begin(); fi != fgroup->_instances.end(); ++fi) { + CPPInstance *function = (*fi); + iproperty._flags |= InterrogateElement::F_has_clear_function; + iproperty._clear_function = get_function(function, "", struct_type, + struct_type->get_scope(), 0); + if (iproperty._clear_function == 0) { + cerr << "failed " << *function << "\n"; + } + break; } } diff --git a/dtool/src/interrogatedb/interrogateDatabase.cxx b/dtool/src/interrogatedb/interrogateDatabase.cxx index 77d14d30ac..8d2133212f 100644 --- a/dtool/src/interrogatedb/interrogateDatabase.cxx +++ b/dtool/src/interrogatedb/interrogateDatabase.cxx @@ -21,7 +21,7 @@ InterrogateDatabase *InterrogateDatabase::_global_ptr = NULL; int InterrogateDatabase::_file_major_version = 0; int InterrogateDatabase::_file_minor_version = 0; int InterrogateDatabase::_current_major_version = 3; -int InterrogateDatabase::_current_minor_version = 0; +int InterrogateDatabase::_current_minor_version = 1; //////////////////////////////////////////////////////////////////// // Function: InterrogateDatabase::Constructor diff --git a/dtool/src/interrogatedb/interrogateElement.I b/dtool/src/interrogatedb/interrogateElement.I index 5f9cca0b52..14e7dcaac8 100644 --- a/dtool/src/interrogatedb/interrogateElement.I +++ b/dtool/src/interrogatedb/interrogateElement.I @@ -26,6 +26,8 @@ InterrogateElement(InterrogateModuleDef *def) : _type = 0; _getter = 0; _setter = 0; + _has_function = 0; + _clear_function = 0; } //////////////////////////////////////////////////////////////////// @@ -52,6 +54,8 @@ operator = (const InterrogateElement ©) { _type = copy._type; _getter = copy._getter; _setter = copy._setter; + _has_function = copy._has_function; + _clear_function = copy._clear_function; } //////////////////////////////////////////////////////////////////// @@ -156,6 +160,46 @@ get_setter() const { return _setter; } +//////////////////////////////////////////////////////////////////// +// Element: InterrogateElement::has_has_function +// Access: Public +// Description: +//////////////////////////////////////////////////////////////////// +INLINE bool InterrogateElement:: +has_has_function() const { + return (_flags & F_has_has_function) != 0; +} + +//////////////////////////////////////////////////////////////////// +// Element: InterrogateElement::get_has_function +// Access: Public +// Description: +//////////////////////////////////////////////////////////////////// +INLINE FunctionIndex InterrogateElement:: +get_has_function() const { + return _has_function; +} + +//////////////////////////////////////////////////////////////////// +// Element: InterrogateElement::has_clear_function +// Access: Public +// Description: +//////////////////////////////////////////////////////////////////// +INLINE bool InterrogateElement:: +has_clear_function() const { + return (_flags & F_has_clear_function) != 0; +} + +//////////////////////////////////////////////////////////////////// +// Element: InterrogateElement::get_clear_function +// Access: Public +// Description: +//////////////////////////////////////////////////////////////////// +INLINE FunctionIndex InterrogateElement:: +get_clear_function() const { + return _clear_function; +} + INLINE ostream & operator << (ostream &out, const InterrogateElement &element) { diff --git a/dtool/src/interrogatedb/interrogateElement.cxx b/dtool/src/interrogatedb/interrogateElement.cxx index 81530cfae6..7895d0a70e 100644 --- a/dtool/src/interrogatedb/interrogateElement.cxx +++ b/dtool/src/interrogatedb/interrogateElement.cxx @@ -29,7 +29,9 @@ output(ostream &out) const { out << _flags << " " << _type << " " << _getter << " " - << _setter << " "; + << _setter << " " + << _has_function << " " + << _clear_function << " "; idf_output_string(out, _scoped_name); idf_output_string(out, _comment, '\n'); } @@ -44,6 +46,9 @@ void InterrogateElement:: input(istream &in) { InterrogateComponent::input(in); in >> _flags >> _type >> _getter >> _setter; + if (InterrogateDatabase::get_file_minor_version() >= 1) { + in >> _has_function >> _clear_function; + } idf_input_string(in, _scoped_name); idf_input_string(in, _comment); } diff --git a/dtool/src/interrogatedb/interrogateElement.h b/dtool/src/interrogatedb/interrogateElement.h index 52d4f25b28..75b6fc58ba 100644 --- a/dtool/src/interrogatedb/interrogateElement.h +++ b/dtool/src/interrogatedb/interrogateElement.h @@ -45,6 +45,10 @@ public: INLINE FunctionIndex get_getter() const; INLINE bool has_setter() const; INLINE FunctionIndex get_setter() const; + INLINE bool has_has_function() const; + INLINE FunctionIndex get_has_function() const; + INLINE bool has_clear_function() const; + INLINE FunctionIndex get_clear_function() const; void output(ostream &out) const; void input(istream &in); @@ -55,7 +59,9 @@ private: enum Flags { F_global = 0x0001, F_has_getter = 0x0002, - F_has_setter = 0x0004 + F_has_setter = 0x0004, + F_has_has_function= 0x0008, + F_has_clear_function= 0x0010, }; int _flags; @@ -64,6 +70,8 @@ private: TypeIndex _type; FunctionIndex _getter; FunctionIndex _setter; + FunctionIndex _has_function; + FunctionIndex _clear_function; friend class InterrogateBuilder; }; diff --git a/panda/src/display/graphicsStateGuardian.cxx b/panda/src/display/graphicsStateGuardian.cxx index ccf1d3b5e8..c005a3a861 100644 --- a/panda/src/display/graphicsStateGuardian.cxx +++ b/panda/src/display/graphicsStateGuardian.cxx @@ -434,7 +434,7 @@ set_gamma(PN_stdfloat gamma) { // Description: Get the current gamma setting. //////////////////////////////////////////////////////////////////// PN_stdfloat GraphicsStateGuardian:: -get_gamma(PN_stdfloat gamma) { +get_gamma() const { return _gamma; } diff --git a/panda/src/display/graphicsStateGuardian.h b/panda/src/display/graphicsStateGuardian.h index 53fb346609..79ba8d1c7d 100644 --- a/panda/src/display/graphicsStateGuardian.h +++ b/panda/src/display/graphicsStateGuardian.h @@ -245,7 +245,7 @@ PUBLISHED: MAKE_PROPERTY(prepared_objects, get_prepared_objects); virtual bool set_gamma(PN_stdfloat gamma); - PN_stdfloat get_gamma(PN_stdfloat gamma); + PN_stdfloat get_gamma() const; virtual void restore_gamma(); MAKE_PROPERTY(gamma, get_gamma, set_gamma); diff --git a/panda/src/display/windowProperties.h b/panda/src/display/windowProperties.h index 28968e458e..16dd0d1dcd 100644 --- a/panda/src/display/windowProperties.h +++ b/panda/src/display/windowProperties.h @@ -68,6 +68,7 @@ PUBLISHED: INLINE int get_y_origin() const; INLINE bool has_origin() const; INLINE void clear_origin(); + MAKE_PROPERTY2(origin, has_origin, get_origin, set_origin, clear_origin); INLINE void set_size(const LVector2i &size); INLINE void set_size(int x_size, int y_size); @@ -76,41 +77,55 @@ PUBLISHED: INLINE int get_y_size() const; INLINE bool has_size() const; INLINE void clear_size(); + MAKE_PROPERTY2(size, has_size, get_size, set_size, clear_size); INLINE bool has_mouse_mode() const; INLINE void set_mouse_mode(MouseMode mode); INLINE MouseMode get_mouse_mode() const; INLINE void clear_mouse_mode(); + MAKE_PROPERTY2(mouse_mode, has_mouse_mode, get_mouse_mode, + set_mouse_mode, clear_mouse_mode); INLINE void set_title(const string &title); INLINE const string &get_title() const; INLINE bool has_title() const; INLINE void clear_title(); + MAKE_PROPERTY2(title, has_title, get_title, set_title, clear_title); INLINE void set_undecorated(bool undecorated); INLINE bool get_undecorated() const; INLINE bool has_undecorated() const; INLINE void clear_undecorated(); + MAKE_PROPERTY2(undecorated, has_undecorated, get_undecorated, + set_undecorated, clear_undecorated); INLINE void set_fixed_size(bool fixed_size); INLINE bool get_fixed_size() const; INLINE bool has_fixed_size() const; INLINE void clear_fixed_size(); + MAKE_PROPERTY2(fixed_size, has_fixed_size, get_fixed_size, + set_fixed_size, clear_fixed_size); INLINE void set_fullscreen(bool fullscreen); INLINE bool get_fullscreen() const; INLINE bool has_fullscreen() const; INLINE void clear_fullscreen(); + MAKE_PROPERTY2(fullscreen, has_fullscreen, get_fullscreen, + set_fullscreen, clear_fullscreen); INLINE void set_foreground(bool foreground); INLINE bool get_foreground() const; INLINE bool has_foreground() const; INLINE void clear_foreground(); + MAKE_PROPERTY2(foreground, has_foreground, get_foreground, + set_foreground, clear_foreground); INLINE void set_minimized(bool minimized); INLINE bool get_minimized() const; INLINE bool has_minimized() const; INLINE void clear_minimized(); + MAKE_PROPERTY2(minimized, has_minimized, get_minimized, + set_minimized, clear_minimized); INLINE void set_raw_mice(bool raw_mice); INLINE bool get_raw_mice() const; @@ -121,32 +136,42 @@ PUBLISHED: INLINE bool get_open() const; INLINE bool has_open() const; INLINE void clear_open(); + MAKE_PROPERTY2(open, has_open, get_open, set_open, clear_open); INLINE void set_cursor_hidden(bool cursor_hidden); INLINE bool get_cursor_hidden() const; INLINE bool has_cursor_hidden() const; INLINE void clear_cursor_hidden(); + MAKE_PROPERTY2(cursor_hidden, has_cursor_hidden, get_cursor_hidden, + set_cursor_hidden, clear_cursor_hidden); INLINE void set_icon_filename(const Filename &icon_filename); INLINE const Filename &get_icon_filename() const; INLINE bool has_icon_filename() const; INLINE void clear_icon_filename(); + MAKE_PROPERTY2(icon_filename, has_icon_filename, get_icon_filename, + set_icon_filename, clear_icon_filename); INLINE void set_cursor_filename(const Filename &cursor_filename); INLINE const Filename &get_cursor_filename() const; INLINE bool has_cursor_filename() const; INLINE void clear_cursor_filename(); + MAKE_PROPERTY2(cursor_filename, has_cursor_filename, get_cursor_filename, + set_cursor_filename, clear_cursor_filename); INLINE void set_z_order(ZOrder z_order); INLINE ZOrder get_z_order() const; INLINE bool has_z_order() const; INLINE void clear_z_order(); + MAKE_PROPERTY2(z_order, has_z_order, get_z_order, set_z_order, clear_z_order); void set_parent_window(size_t parent); INLINE void set_parent_window(WindowHandle *parent_window = NULL); INLINE WindowHandle *get_parent_window() const; INLINE bool has_parent_window() const; INLINE void clear_parent_window(); + MAKE_PROPERTY2(parent_window, has_parent_window, get_parent_window, + set_parent_window, clear_parent_window); void add_properties(const WindowProperties &other); diff --git a/panda/src/express/patchfile.h b/panda/src/express/patchfile.h index 5821b24016..fc42b0a6c4 100644 --- a/panda/src/express/patchfile.h +++ b/panda/src/express/patchfile.h @@ -57,17 +57,22 @@ PUBLISHED: const Filename &target_file); INLINE PN_stdfloat get_progress() const; + MAKE_PROPERTY(progress, get_progress); INLINE void set_allow_multifile(bool allow_multifile); INLINE bool get_allow_multifile(); + MAKE_PROPERTY(allow_multifile, get_allow_multifile, set_allow_multifile); INLINE void set_footprint_length(int length); INLINE int get_footprint_length(); INLINE void reset_footprint_length(); + MAKE_PROPERTY(footprint_length, get_footprint_length, set_footprint_length); INLINE bool has_source_hash() const; INLINE const HashVal &get_source_hash() const; INLINE const HashVal &get_result_hash() const; + MAKE_PROPERTY2(source_hash, has_source_hash, get_source_hash); + MAKE_PROPERTY(result_hash, get_result_hash); private: int internal_read_header(const Filename &patch_file);