From e327c7e9788bc99f3d9bb4f1aa8d8a048585d323 Mon Sep 17 00:00:00 2001 From: rdb Date: Sat, 10 Oct 2015 15:15:22 +0200 Subject: [PATCH] Vastly improve quality of Interrogate error messages, also fix erroneous location indications This change also causes Interrogate to safely ignore "register" keywords in function parameters --- dtool/src/cppparser/cppBison.cxx.prebuilt | 4766 +++++++++++---------- dtool/src/cppparser/cppBison.yxx | 33 +- dtool/src/cppparser/cppIdentifier.cxx | 42 +- dtool/src/cppparser/cppIdentifier.h | 5 +- dtool/src/cppparser/cppInstance.h | 1 - dtool/src/cppparser/cppNameComponent.h | 1 + dtool/src/cppparser/cppPreprocessor.cxx | 876 ++-- dtool/src/cppparser/cppPreprocessor.h | 42 +- dtool/src/cppparser/cppScope.cxx | 28 +- dtool/src/cppparser/cppToken.cxx | 12 + dtool/src/cppparser/cppToken.h | 3 + dtool/src/interrogate/typeManager.cxx | 1 + 12 files changed, 3113 insertions(+), 2697 deletions(-) diff --git a/dtool/src/cppparser/cppBison.cxx.prebuilt b/dtool/src/cppparser/cppBison.cxx.prebuilt index 714d121a40..e82963410c 100644 --- a/dtool/src/cppparser/cppBison.cxx.prebuilt +++ b/dtool/src/cppparser/cppBison.cxx.prebuilt @@ -50,7 +50,7 @@ #define YYSKELETON_NAME "yacc.c" /* Pure parsers. */ -#define YYPURE 1 +#define YYPURE 2 /* Push parsers. */ #define YYPUSH 0 @@ -129,14 +129,19 @@ yyerror(const string &msg) { current_lexer->error(msg); } +static void +yyerror(YYLTYPE *loc, const string &msg) { + current_lexer->error(msg, *loc); +} + static void yyerror(const string &msg, YYLTYPE &loc) { - current_lexer->error(msg, loc.first_line, loc.first_column); + current_lexer->error(msg, loc); } static void yywarning(const string &msg, YYLTYPE &loc) { - current_lexer->warning(msg, loc.first_line, loc.first_column); + current_lexer->warning(msg, loc); } static int @@ -261,7 +266,7 @@ pop_struct() { /* Line 371 of yacc.c */ -#line 265 "built/tmp/cppBison.yxx.c" +#line 270 "built/tmp/cppBison.yxx.c" # ifndef YY_NULL # if defined __cplusplus && 201103L <= __cplusplus @@ -550,7 +555,7 @@ int cppyyparse (); /* Copy the second part of user declarations. */ /* Line 390 of yacc.c */ -#line 554 "built/tmp/cppBison.yxx.c" +#line 559 "built/tmp/cppBison.yxx.c" #ifdef short # undef short @@ -772,16 +777,16 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 73 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 3698 +#define YYLAST 3857 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 131 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 93 /* YYNRULES -- Number of rules. */ -#define YYNRULES 553 +#define YYNRULES 555 /* YYNRULES -- Number of states. */ -#define YYNSTATES 1002 +#define YYNSTATES 1008 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -855,44 +860,44 @@ static const yytype_uint16 yyprhs[] = 470, 474, 475, 482, 484, 486, 488, 492, 495, 497, 501, 503, 506, 508, 511, 513, 517, 523, 527, 532, 534, 536, 539, 541, 545, 549, 555, 559, 563, 568, - 570, 572, 574, 576, 579, 582, 585, 588, 591, 595, - 600, 602, 604, 606, 609, 612, 615, 618, 621, 625, - 630, 638, 642, 644, 647, 650, 653, 656, 659, 663, - 668, 676, 678, 680, 683, 685, 687, 689, 692, 697, - 699, 701, 704, 706, 708, 710, 713, 718, 721, 723, - 725, 728, 731, 734, 737, 741, 742, 748, 749, 757, - 759, 761, 764, 768, 771, 774, 777, 781, 785, 789, - 793, 797, 801, 806, 811, 814, 818, 820, 822, 824, - 826, 830, 836, 838, 841, 846, 848, 850, 852, 854, - 855, 862, 867, 870, 874, 876, 878, 880, 882, 884, - 886, 888, 890, 892, 894, 896, 898, 900, 902, 905, - 908, 911, 914, 916, 919, 921, 925, 928, 930, 931, - 934, 936, 939, 941, 943, 945, 947, 949, 951, 953, - 955, 957, 959, 961, 963, 965, 967, 969, 971, 973, - 975, 977, 979, 981, 983, 985, 987, 989, 991, 993, - 995, 997, 999, 1001, 1003, 1005, 1007, 1009, 1011, 1013, - 1015, 1017, 1019, 1021, 1023, 1025, 1027, 1029, 1031, 1033, - 1035, 1037, 1039, 1041, 1043, 1045, 1047, 1049, 1051, 1053, - 1055, 1057, 1059, 1061, 1063, 1065, 1067, 1069, 1071, 1073, - 1075, 1077, 1079, 1081, 1083, 1085, 1087, 1089, 1091, 1093, - 1095, 1097, 1099, 1101, 1103, 1105, 1107, 1109, 1111, 1113, - 1115, 1117, 1119, 1121, 1123, 1125, 1127, 1129, 1131, 1133, - 1135, 1137, 1139, 1141, 1143, 1145, 1147, 1149, 1153, 1155, - 1157, 1159, 1161, 1163, 1167, 1169, 1174, 1182, 1190, 1195, - 1198, 1201, 1204, 1207, 1210, 1214, 1218, 1222, 1226, 1230, - 1234, 1238, 1242, 1246, 1250, 1254, 1258, 1262, 1266, 1270, - 1274, 1280, 1285, 1290, 1294, 1298, 1302, 1306, 1308, 1313, - 1321, 1329, 1334, 1339, 1344, 1349, 1354, 1359, 1364, 1369, - 1374, 1379, 1384, 1389, 1394, 1399, 1402, 1408, 1411, 1414, - 1417, 1420, 1423, 1427, 1431, 1435, 1439, 1443, 1447, 1451, - 1455, 1459, 1463, 1467, 1471, 1475, 1479, 1483, 1487, 1491, - 1495, 1501, 1506, 1511, 1515, 1519, 1523, 1527, 1529, 1531, - 1533, 1535, 1537, 1539, 1541, 1543, 1548, 1556, 1564, 1569, - 1572, 1578, 1581, 1584, 1587, 1590, 1594, 1598, 1602, 1606, - 1610, 1614, 1618, 1622, 1626, 1630, 1634, 1638, 1642, 1646, - 1650, 1654, 1658, 1662, 1668, 1673, 1678, 1682, 1686, 1690, - 1694, 1696, 1698, 1700, 1702, 1704, 1706, 1708, 1711, 1714, - 1716, 1718, 1720, 1723 + 574, 577, 579, 581, 583, 585, 588, 591, 594, 597, + 600, 604, 609, 611, 613, 615, 618, 621, 624, 627, + 630, 634, 639, 647, 651, 653, 656, 659, 662, 665, + 668, 672, 677, 685, 687, 689, 692, 694, 696, 698, + 701, 706, 708, 710, 713, 715, 717, 719, 722, 727, + 730, 732, 734, 737, 740, 743, 746, 750, 751, 757, + 758, 766, 768, 770, 773, 777, 780, 783, 786, 790, + 794, 798, 802, 806, 810, 815, 820, 823, 827, 829, + 831, 833, 835, 839, 845, 847, 850, 855, 857, 859, + 861, 863, 864, 871, 876, 879, 883, 885, 887, 889, + 891, 893, 895, 897, 899, 901, 903, 905, 907, 909, + 911, 914, 917, 920, 923, 925, 928, 930, 934, 937, + 939, 940, 943, 945, 948, 950, 952, 954, 956, 958, + 960, 962, 964, 966, 968, 970, 972, 974, 976, 978, + 980, 982, 984, 986, 988, 990, 992, 994, 996, 998, + 1000, 1002, 1004, 1006, 1008, 1010, 1012, 1014, 1016, 1018, + 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, 1084, 1086, 1088, 1090, 1092, 1094, 1096, 1098, + 1100, 1102, 1104, 1106, 1108, 1110, 1112, 1114, 1116, 1118, + 1120, 1122, 1124, 1126, 1128, 1130, 1132, 1134, 1136, 1138, + 1140, 1142, 1144, 1146, 1148, 1150, 1152, 1154, 1156, 1158, + 1162, 1164, 1166, 1168, 1170, 1172, 1176, 1178, 1183, 1191, + 1199, 1204, 1207, 1210, 1213, 1216, 1219, 1223, 1227, 1231, + 1235, 1239, 1243, 1247, 1251, 1255, 1259, 1263, 1267, 1271, + 1275, 1279, 1283, 1289, 1294, 1299, 1303, 1307, 1311, 1315, + 1317, 1322, 1330, 1338, 1343, 1348, 1353, 1358, 1363, 1368, + 1373, 1378, 1383, 1388, 1393, 1398, 1403, 1408, 1411, 1417, + 1420, 1423, 1426, 1429, 1432, 1436, 1440, 1444, 1448, 1452, + 1456, 1460, 1464, 1468, 1472, 1476, 1480, 1484, 1488, 1492, + 1496, 1500, 1504, 1510, 1515, 1520, 1524, 1528, 1532, 1536, + 1538, 1540, 1542, 1544, 1546, 1548, 1550, 1552, 1557, 1565, + 1573, 1578, 1581, 1587, 1590, 1593, 1596, 1599, 1603, 1607, + 1611, 1615, 1619, 1623, 1627, 1631, 1635, 1639, 1643, 1647, + 1651, 1655, 1659, 1663, 1667, 1671, 1677, 1682, 1687, 1691, + 1695, 1699, 1703, 1705, 1707, 1709, 1711, 1713, 1715, 1717, + 1720, 1723, 1725, 1727, 1729, 1732 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ @@ -954,184 +959,185 @@ static const yytype_int16 yyrhs[] = 128, -1, 223, -1, 178, -1, 178, 108, -1, 216, -1, 107, 177, 128, -1, 178, 108, 216, -1, 178, 108, 107, 177, 128, -1, 183, 181, 175, -1, 8, - 181, 175, -1, 51, 183, 181, 175, -1, 218, -1, - 223, -1, 8, -1, 9, -1, 51, 180, -1, 101, - 180, -1, 120, 180, -1, 115, 180, -1, 14, 180, - -1, 10, 120, 180, -1, 180, 126, 212, 130, -1, - 223, -1, 8, -1, 9, -1, 51, 181, -1, 101, - 181, -1, 120, 181, -1, 115, 181, -1, 14, 181, - -1, 10, 120, 181, -1, 181, 126, 212, 130, -1, - 125, 181, 127, 125, 172, 127, 161, -1, 125, 181, - 127, -1, 223, -1, 51, 182, -1, 101, 182, -1, - 120, 182, -1, 115, 182, -1, 14, 182, -1, 10, - 120, 182, -1, 182, 126, 212, 130, -1, 125, 182, - 127, 125, 172, 127, 161, -1, 204, -1, 9, -1, + 181, 175, -1, 51, 183, 181, 175, -1, 51, 82, + 183, 181, 175, -1, 82, 179, -1, 218, -1, 223, + -1, 8, -1, 9, -1, 51, 180, -1, 101, 180, + -1, 120, 180, -1, 115, 180, -1, 14, 180, -1, + 10, 120, 180, -1, 180, 126, 212, 130, -1, 223, + -1, 8, -1, 9, -1, 51, 181, -1, 101, 181, + -1, 120, 181, -1, 115, 181, -1, 14, 181, -1, + 10, 120, 181, -1, 181, 126, 212, 130, -1, 125, + 181, 127, 125, 172, 127, 161, -1, 125, 181, 127, + -1, 223, -1, 51, 182, -1, 101, 182, -1, 120, + 182, -1, 115, 182, -1, 14, 182, -1, 10, 120, + 182, -1, 182, 126, 212, 130, -1, 125, 182, 127, + 125, 172, 127, 161, -1, 204, -1, 9, -1, 95, + 221, -1, 187, -1, 189, -1, 194, -1, 200, 221, + -1, 199, 221, 110, 196, -1, 204, -1, 9, -1, 95, 221, -1, 187, -1, 189, -1, 194, -1, 200, - 221, -1, 199, 221, 110, 196, -1, 204, -1, 9, - -1, 95, 221, -1, 187, -1, 189, -1, 194, -1, - 200, 221, -1, 199, 221, 110, 196, -1, 199, 221, - -1, 204, -1, 9, -1, 95, 221, -1, 200, 221, - -1, 199, 221, -1, 183, 182, -1, 51, 183, 182, - -1, -1, 200, 107, 188, 133, 128, -1, -1, 200, - 221, 190, 191, 107, 133, 128, -1, 223, -1, 192, - -1, 110, 193, -1, 192, 108, 193, -1, 81, 220, - -1, 80, 220, -1, 79, 220, -1, 99, 81, 220, - -1, 99, 80, 220, -1, 99, 79, 220, -1, 81, - 99, 220, -1, 80, 99, 220, -1, 79, 99, 220, - -1, 195, 107, 198, 128, -1, 199, 221, 110, 196, - -1, 199, 221, -1, 199, 110, 196, -1, 199, -1, - 205, -1, 9, -1, 223, -1, 197, 221, 108, -1, - 197, 221, 111, 216, 108, -1, 197, -1, 197, 221, - -1, 197, 221, 111, 216, -1, 57, -1, 50, -1, - 89, -1, 96, -1, -1, 75, 221, 107, 202, 133, - 128, -1, 75, 107, 133, 128, -1, 98, 221, -1, - 98, 75, 221, -1, 205, -1, 206, -1, 207, -1, - 45, -1, 47, -1, 102, -1, 48, -1, 49, -1, - 84, -1, 70, -1, 71, -1, 97, -1, 85, -1, - 69, -1, 84, 205, -1, 70, 205, -1, 97, 205, - -1, 85, 205, -1, 63, -1, 70, 63, -1, 53, - -1, 70, 70, 63, -1, 70, 53, -1, 100, -1, - -1, 209, 210, -1, 223, -1, 210, 211, -1, 3, - -1, 4, -1, 6, -1, 5, -1, 8, -1, 9, - -1, 10, -1, 7, -1, 12, -1, 13, -1, 14, - -1, 15, -1, 16, -1, 17, -1, 18, -1, 19, - -1, 20, -1, 21, -1, 22, -1, 29, -1, 30, - -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, 45, -1, 46, -1, 47, - -1, 48, -1, 49, -1, 102, -1, 50, -1, 51, - -1, 52, -1, 53, -1, 54, -1, 55, -1, 57, - -1, 59, -1, 60, -1, 62, -1, 63, -1, 64, - -1, 65, -1, 66, -1, 67, -1, 68, -1, 69, - -1, 70, -1, 74, -1, 76, -1, 79, -1, 80, - -1, 81, -1, 61, -1, 82, -1, 83, -1, 84, - -1, 85, -1, 86, -1, 87, -1, 88, -1, 89, - -1, 91, -1, 92, -1, 93, -1, 94, -1, 95, - -1, 96, -1, 97, -1, 99, -1, 100, -1, 101, - -1, 103, -1, 78, -1, 118, -1, 119, -1, 120, - -1, 121, -1, 115, -1, 113, -1, 114, -1, 129, - -1, 123, -1, 111, -1, 122, -1, 116, -1, 117, - -1, 125, -1, 127, -1, 124, -1, 108, -1, 109, - -1, 110, -1, 126, -1, 130, -1, 112, -1, 107, - 210, 128, -1, 223, -1, 216, -1, 223, -1, 214, - -1, 216, -1, 214, 108, 216, -1, 217, -1, 125, - 186, 127, 215, -1, 88, 116, 186, 117, 125, 214, - 127, -1, 54, 116, 186, 117, 125, 214, 127, -1, - 86, 125, 186, 127, -1, 129, 215, -1, 123, 215, - -1, 119, 215, -1, 120, 215, -1, 115, 215, -1, - 215, 120, 215, -1, 215, 121, 215, -1, 215, 122, - 215, -1, 215, 118, 215, -1, 215, 119, 215, -1, - 215, 113, 215, -1, 215, 114, 215, -1, 215, 115, - 215, -1, 215, 13, 215, -1, 215, 14, 215, -1, - 215, 15, 215, -1, 215, 16, 215, -1, 215, 17, - 215, -1, 215, 18, 215, -1, 215, 19, 215, -1, - 215, 20, 215, -1, 215, 112, 215, 110, 215, -1, - 215, 126, 216, 130, -1, 215, 125, 214, 127, -1, - 215, 125, 127, -1, 215, 124, 215, -1, 215, 29, - 215, -1, 125, 214, 127, -1, 217, -1, 125, 186, - 127, 216, -1, 88, 116, 186, 117, 125, 214, 127, - -1, 54, 116, 186, 117, 125, 214, 127, -1, 9, - 125, 213, 127, -1, 69, 125, 213, 127, -1, 47, - 125, 213, 127, -1, 102, 125, 213, 127, -1, 48, - 125, 213, 127, -1, 49, 125, 213, 127, -1, 45, - 125, 213, 127, -1, 84, 125, 213, 127, -1, 70, - 125, 213, 127, -1, 97, 125, 213, 127, -1, 85, - 125, 213, 127, -1, 63, 125, 213, 127, -1, 53, - 125, 213, 127, -1, 86, 125, 186, 127, -1, 76, - 185, -1, 76, 185, 125, 213, 127, -1, 129, 216, - -1, 123, 216, -1, 119, 216, -1, 120, 216, -1, - 115, 216, -1, 216, 120, 216, -1, 216, 121, 216, - -1, 216, 122, 216, -1, 216, 118, 216, -1, 216, - 119, 216, -1, 216, 113, 216, -1, 216, 114, 216, - -1, 216, 115, 216, -1, 216, 13, 216, -1, 216, - 14, 216, -1, 216, 15, 216, -1, 216, 16, 216, - -1, 216, 17, 216, -1, 216, 18, 216, -1, 216, - 116, 216, -1, 216, 117, 216, -1, 216, 19, 216, - -1, 216, 20, 216, -1, 216, 112, 216, 110, 216, - -1, 216, 126, 216, 130, -1, 216, 125, 214, 127, - -1, 216, 125, 127, -1, 216, 124, 216, -1, 216, - 29, 216, -1, 125, 214, 127, -1, 4, -1, 92, - -1, 62, -1, 5, -1, 3, -1, 222, -1, 8, - -1, 219, -1, 125, 186, 127, 216, -1, 88, 116, - 186, 117, 125, 214, 127, -1, 54, 116, 186, 117, - 125, 214, 127, -1, 86, 125, 186, 127, -1, 76, - 185, -1, 76, 185, 125, 213, 127, -1, 129, 216, - -1, 123, 216, -1, 119, 216, -1, 115, 216, -1, - 218, 120, 216, -1, 218, 121, 216, -1, 218, 122, - 216, -1, 218, 118, 216, -1, 218, 119, 216, -1, - 218, 113, 216, -1, 218, 114, 216, -1, 218, 115, - 216, -1, 218, 13, 216, -1, 218, 14, 216, -1, - 218, 15, 216, -1, 218, 16, 216, -1, 218, 17, - 216, -1, 218, 18, 216, -1, 218, 116, 216, -1, - 218, 117, 216, -1, 218, 19, 216, -1, 218, 20, - 216, -1, 218, 112, 216, 110, 216, -1, 218, 126, - 216, 130, -1, 218, 125, 214, 127, -1, 218, 125, - 127, -1, 218, 124, 216, -1, 218, 29, 216, -1, - 125, 214, 127, -1, 4, -1, 92, -1, 62, -1, - 5, -1, 3, -1, 222, -1, 221, -1, 200, 221, - -1, 95, 221, -1, 8, -1, 9, -1, 6, -1, - 222, 6, -1, -1 + 221, -1, 199, 221, 110, 196, -1, 199, 221, -1, + 204, -1, 9, -1, 95, 221, -1, 200, 221, -1, + 199, 221, -1, 183, 182, -1, 51, 183, 182, -1, + -1, 200, 107, 188, 133, 128, -1, -1, 200, 221, + 190, 191, 107, 133, 128, -1, 223, -1, 192, -1, + 110, 193, -1, 192, 108, 193, -1, 81, 220, -1, + 80, 220, -1, 79, 220, -1, 99, 81, 220, -1, + 99, 80, 220, -1, 99, 79, 220, -1, 81, 99, + 220, -1, 80, 99, 220, -1, 79, 99, 220, -1, + 195, 107, 198, 128, -1, 199, 221, 110, 196, -1, + 199, 221, -1, 199, 110, 196, -1, 199, -1, 205, + -1, 9, -1, 223, -1, 197, 221, 108, -1, 197, + 221, 111, 216, 108, -1, 197, -1, 197, 221, -1, + 197, 221, 111, 216, -1, 57, -1, 50, -1, 89, + -1, 96, -1, -1, 75, 221, 107, 202, 133, 128, + -1, 75, 107, 133, 128, -1, 98, 221, -1, 98, + 75, 221, -1, 205, -1, 206, -1, 207, -1, 45, + -1, 47, -1, 102, -1, 48, -1, 49, -1, 84, + -1, 70, -1, 71, -1, 97, -1, 85, -1, 69, + -1, 84, 205, -1, 70, 205, -1, 97, 205, -1, + 85, 205, -1, 63, -1, 70, 63, -1, 53, -1, + 70, 70, 63, -1, 70, 53, -1, 100, -1, -1, + 209, 210, -1, 223, -1, 210, 211, -1, 3, -1, + 4, -1, 6, -1, 5, -1, 8, -1, 9, -1, + 10, -1, 7, -1, 12, -1, 13, -1, 14, -1, + 15, -1, 16, -1, 17, -1, 18, -1, 19, -1, + 20, -1, 21, -1, 22, -1, 29, -1, 30, -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, 45, -1, 46, -1, 47, -1, + 48, -1, 49, -1, 102, -1, 50, -1, 51, -1, + 52, -1, 53, -1, 54, -1, 55, -1, 57, -1, + 59, -1, 60, -1, 62, -1, 63, -1, 64, -1, + 65, -1, 66, -1, 67, -1, 68, -1, 69, -1, + 70, -1, 74, -1, 76, -1, 79, -1, 80, -1, + 81, -1, 61, -1, 82, -1, 83, -1, 84, -1, + 85, -1, 86, -1, 87, -1, 88, -1, 89, -1, + 91, -1, 92, -1, 93, -1, 94, -1, 95, -1, + 96, -1, 97, -1, 99, -1, 100, -1, 101, -1, + 103, -1, 78, -1, 118, -1, 119, -1, 120, -1, + 121, -1, 115, -1, 113, -1, 114, -1, 129, -1, + 123, -1, 111, -1, 122, -1, 116, -1, 117, -1, + 125, -1, 127, -1, 124, -1, 108, -1, 109, -1, + 110, -1, 126, -1, 130, -1, 112, -1, 107, 210, + 128, -1, 223, -1, 216, -1, 223, -1, 214, -1, + 216, -1, 214, 108, 216, -1, 217, -1, 125, 186, + 127, 215, -1, 88, 116, 186, 117, 125, 214, 127, + -1, 54, 116, 186, 117, 125, 214, 127, -1, 86, + 125, 186, 127, -1, 129, 215, -1, 123, 215, -1, + 119, 215, -1, 120, 215, -1, 115, 215, -1, 215, + 120, 215, -1, 215, 121, 215, -1, 215, 122, 215, + -1, 215, 118, 215, -1, 215, 119, 215, -1, 215, + 113, 215, -1, 215, 114, 215, -1, 215, 115, 215, + -1, 215, 13, 215, -1, 215, 14, 215, -1, 215, + 15, 215, -1, 215, 16, 215, -1, 215, 17, 215, + -1, 215, 18, 215, -1, 215, 19, 215, -1, 215, + 20, 215, -1, 215, 112, 215, 110, 215, -1, 215, + 126, 216, 130, -1, 215, 125, 214, 127, -1, 215, + 125, 127, -1, 215, 124, 215, -1, 215, 29, 215, + -1, 125, 214, 127, -1, 217, -1, 125, 186, 127, + 216, -1, 88, 116, 186, 117, 125, 214, 127, -1, + 54, 116, 186, 117, 125, 214, 127, -1, 9, 125, + 213, 127, -1, 69, 125, 213, 127, -1, 47, 125, + 213, 127, -1, 102, 125, 213, 127, -1, 48, 125, + 213, 127, -1, 49, 125, 213, 127, -1, 45, 125, + 213, 127, -1, 84, 125, 213, 127, -1, 70, 125, + 213, 127, -1, 97, 125, 213, 127, -1, 85, 125, + 213, 127, -1, 63, 125, 213, 127, -1, 53, 125, + 213, 127, -1, 86, 125, 186, 127, -1, 76, 185, + -1, 76, 185, 125, 213, 127, -1, 129, 216, -1, + 123, 216, -1, 119, 216, -1, 120, 216, -1, 115, + 216, -1, 216, 120, 216, -1, 216, 121, 216, -1, + 216, 122, 216, -1, 216, 118, 216, -1, 216, 119, + 216, -1, 216, 113, 216, -1, 216, 114, 216, -1, + 216, 115, 216, -1, 216, 13, 216, -1, 216, 14, + 216, -1, 216, 15, 216, -1, 216, 16, 216, -1, + 216, 17, 216, -1, 216, 18, 216, -1, 216, 116, + 216, -1, 216, 117, 216, -1, 216, 19, 216, -1, + 216, 20, 216, -1, 216, 112, 216, 110, 216, -1, + 216, 126, 216, 130, -1, 216, 125, 214, 127, -1, + 216, 125, 127, -1, 216, 124, 216, -1, 216, 29, + 216, -1, 125, 214, 127, -1, 4, -1, 92, -1, + 62, -1, 5, -1, 3, -1, 222, -1, 8, -1, + 219, -1, 125, 186, 127, 216, -1, 88, 116, 186, + 117, 125, 214, 127, -1, 54, 116, 186, 117, 125, + 214, 127, -1, 86, 125, 186, 127, -1, 76, 185, + -1, 76, 185, 125, 213, 127, -1, 129, 216, -1, + 123, 216, -1, 119, 216, -1, 115, 216, -1, 218, + 120, 216, -1, 218, 121, 216, -1, 218, 122, 216, + -1, 218, 118, 216, -1, 218, 119, 216, -1, 218, + 113, 216, -1, 218, 114, 216, -1, 218, 115, 216, + -1, 218, 13, 216, -1, 218, 14, 216, -1, 218, + 15, 216, -1, 218, 16, 216, -1, 218, 17, 216, + -1, 218, 18, 216, -1, 218, 116, 216, -1, 218, + 117, 216, -1, 218, 19, 216, -1, 218, 20, 216, + -1, 218, 112, 216, 110, 216, -1, 218, 126, 216, + 130, -1, 218, 125, 214, 127, -1, 218, 125, 127, + -1, 218, 124, 216, -1, 218, 29, 216, -1, 125, + 214, 127, -1, 4, -1, 92, -1, 62, -1, 5, + -1, 3, -1, 222, -1, 221, -1, 200, 221, -1, + 95, 221, -1, 8, -1, 9, -1, 6, -1, 222, + 6, -1, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 386, 386, 387, 391, 398, 399, 400, 404, 405, - 409, 422, 421, 433, 434, 435, 436, 437, 438, 439, - 440, 453, 462, 466, 474, 478, 482, 493, 514, 523, - 522, 537, 541, 545, 556, 560, 564, 568, 572, 576, - 580, 584, 588, 595, 599, 608, 620, 619, 635, 634, - 652, 660, 671, 680, 694, 693, 709, 708, 719, 734, - 740, 749, 756, 769, 768, 791, 790, 815, 814, 845, - 844, 860, 859, 877, 876, 908, 907, 933, 946, 950, - 954, 958, 962, 969, 973, 977, 981, 985, 989, 993, - 997, 1001, 1005, 1009, 1013, 1017, 1021, 1025, 1029, 1033, - 1037, 1041, 1045, 1049, 1053, 1057, 1061, 1065, 1069, 1073, - 1077, 1081, 1085, 1089, 1093, 1097, 1101, 1105, 1109, 1113, - 1117, 1121, 1128, 1129, 1134, 1133, 1141, 1145, 1146, 1150, - 1156, 1165, 1169, 1173, 1177, 1181, 1187, 1197, 1201, 1206, - 1215, 1219, 1233, 1238, 1243, 1248, 1253, 1258, 1263, 1268, - 1273, 1279, 1278, 1300, 1304, 1309, 1313, 1318, 1326, 1331, - 1339, 1343, 1350, 1354, 1361, 1365, 1369, 1373, 1377, 1384, - 1385, 1386, 1390, 1393, 1394, 1395, 1399, 1404, 1412, 1418, - 1428, 1432, 1436, 1440, 1445, 1450, 1455, 1460, 1465, 1470, - 1478, 1482, 1486, 1490, 1495, 1500, 1505, 1510, 1515, 1520, - 1525, 1531, 1539, 1543, 1548, 1553, 1558, 1563, 1568, 1573, - 1578, 1587, 1591, 1596, 1600, 1604, 1608, 1612, 1628, 1647, - 1651, 1656, 1660, 1664, 1668, 1672, 1688, 1704, 1725, 1729, - 1734, 1738, 1754, 1773, 1779, 1790, 1789, 1814, 1813, 1843, - 1844, 1848, 1849, 1853, 1857, 1861, 1865, 1869, 1873, 1877, - 1881, 1885, 1892, 1900, 1904, 1908, 1912, 1919, 1923, 1930, - 1931, 1937, 1945, 1946, 1952, 1961, 1968, 1972, 1976, 1984, - 1983, 2005, 2009, 2015, 2024, 2025, 2026, 2030, 2034, 2038, - 2042, 2046, 2050, 2055, 2060, 2065, 2070, 2075, 2079, 2084, - 2093, 2098, 2106, 2110, 2115, 2119, 2124, 2132, 2142, 2142, - 2152, 2153, 2157, 2160, 2163, 2166, 2169, 2172, 2175, 2178, - 2181, 2181, 2181, 2182, 2182, 2182, 2182, 2183, 2183, 2183, - 2183, 2183, 2184, 2184, 2184, 2185, 2185, 2185, 2185, 2185, - 2186, 2186, 2186, 2186, 2186, 2187, 2187, 2187, 2187, 2187, - 2188, 2188, 2188, 2189, 2189, 2189, 2189, 2189, 2190, 2190, - 2190, 2191, 2191, 2191, 2191, 2192, 2192, 2192, 2193, 2193, - 2193, 2193, 2193, 2194, 2194, 2194, 2194, 2195, 2195, 2195, - 2195, 2195, 2196, 2196, 2196, 2196, 2196, 2196, 2197, 2197, - 2197, 2197, 2197, 2198, 2199, 2202, 2202, 2202, 2202, 2202, - 2202, 2202, 2202, 2202, 2202, 2202, 2203, 2203, 2203, 2203, - 2203, 2203, 2203, 2203, 2203, 2203, 2204, 2204, 2208, 2212, - 2219, 2223, 2230, 2234, 2241, 2245, 2249, 2253, 2257, 2261, - 2265, 2269, 2281, 2285, 2289, 2293, 2297, 2301, 2305, 2309, - 2313, 2317, 2321, 2325, 2329, 2333, 2337, 2341, 2345, 2349, - 2353, 2357, 2361, 2365, 2369, 2373, 2377, 2385, 2389, 2393, - 2397, 2401, 2408, 2414, 2420, 2426, 2432, 2438, 2444, 2451, - 2458, 2465, 2472, 2478, 2484, 2488, 2492, 2496, 2500, 2504, - 2516, 2520, 2524, 2528, 2532, 2536, 2540, 2544, 2548, 2552, - 2556, 2560, 2564, 2568, 2572, 2576, 2580, 2584, 2588, 2592, - 2596, 2600, 2604, 2608, 2612, 2616, 2620, 2627, 2631, 2635, - 2639, 2643, 2647, 2651, 2665, 2669, 2673, 2677, 2681, 2685, - 2689, 2693, 2697, 2701, 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, - 2820, 2824, 2828, 2832, 2836, 2840, 2847, 2855, 2863, 2886, - 2890, 2897, 2901, 2907 + 0, 397, 397, 398, 402, 409, 410, 411, 415, 416, + 420, 433, 432, 444, 445, 446, 447, 448, 449, 450, + 451, 464, 473, 477, 485, 489, 493, 504, 525, 534, + 533, 548, 552, 556, 567, 571, 575, 579, 583, 587, + 591, 595, 599, 606, 610, 619, 631, 630, 646, 645, + 663, 671, 682, 691, 705, 704, 720, 719, 730, 745, + 751, 760, 767, 780, 779, 802, 801, 826, 825, 856, + 855, 871, 870, 888, 887, 919, 918, 944, 957, 961, + 965, 969, 973, 980, 984, 988, 992, 996, 1000, 1004, + 1008, 1012, 1016, 1020, 1024, 1028, 1032, 1036, 1040, 1044, + 1048, 1052, 1056, 1060, 1064, 1068, 1072, 1076, 1080, 1084, + 1088, 1092, 1096, 1100, 1104, 1108, 1112, 1116, 1120, 1124, + 1128, 1132, 1139, 1140, 1145, 1144, 1152, 1156, 1157, 1161, + 1167, 1176, 1180, 1184, 1188, 1192, 1198, 1208, 1212, 1217, + 1226, 1230, 1244, 1249, 1254, 1259, 1264, 1269, 1274, 1279, + 1284, 1290, 1289, 1311, 1315, 1320, 1324, 1329, 1337, 1342, + 1350, 1354, 1361, 1365, 1372, 1376, 1380, 1384, 1388, 1395, + 1396, 1397, 1401, 1404, 1405, 1406, 1410, 1415, 1423, 1429, + 1435, 1439, 1449, 1453, 1457, 1461, 1466, 1471, 1476, 1481, + 1486, 1491, 1499, 1503, 1507, 1511, 1516, 1521, 1526, 1531, + 1536, 1541, 1546, 1552, 1560, 1564, 1569, 1574, 1579, 1584, + 1589, 1594, 1599, 1608, 1612, 1617, 1621, 1625, 1629, 1633, + 1649, 1668, 1672, 1677, 1681, 1685, 1689, 1693, 1709, 1725, + 1746, 1750, 1755, 1759, 1775, 1794, 1800, 1811, 1810, 1835, + 1834, 1864, 1865, 1869, 1870, 1874, 1878, 1882, 1886, 1890, + 1894, 1898, 1902, 1906, 1913, 1921, 1925, 1929, 1933, 1940, + 1944, 1951, 1952, 1958, 1966, 1967, 1973, 1982, 1989, 1993, + 1997, 2005, 2004, 2026, 2030, 2036, 2045, 2046, 2047, 2051, + 2055, 2059, 2063, 2067, 2071, 2076, 2081, 2086, 2091, 2096, + 2100, 2105, 2114, 2119, 2127, 2131, 2136, 2140, 2145, 2153, + 2163, 2163, 2173, 2174, 2178, 2181, 2184, 2187, 2190, 2193, + 2196, 2199, 2202, 2202, 2202, 2203, 2203, 2203, 2203, 2204, + 2204, 2204, 2204, 2204, 2205, 2205, 2205, 2206, 2206, 2206, + 2206, 2206, 2207, 2207, 2207, 2207, 2207, 2208, 2208, 2208, + 2208, 2208, 2209, 2209, 2209, 2210, 2210, 2210, 2210, 2210, + 2211, 2211, 2211, 2212, 2212, 2212, 2212, 2213, 2213, 2213, + 2214, 2214, 2214, 2214, 2214, 2215, 2215, 2215, 2215, 2216, + 2216, 2216, 2216, 2216, 2217, 2217, 2217, 2217, 2217, 2217, + 2218, 2218, 2218, 2218, 2218, 2219, 2220, 2223, 2223, 2223, + 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2224, 2224, + 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2224, 2225, 2225, + 2229, 2233, 2240, 2244, 2251, 2255, 2262, 2266, 2270, 2274, + 2278, 2282, 2286, 2290, 2302, 2306, 2310, 2314, 2318, 2322, + 2326, 2330, 2334, 2338, 2342, 2346, 2350, 2354, 2358, 2362, + 2366, 2370, 2374, 2378, 2382, 2386, 2390, 2394, 2398, 2406, + 2410, 2414, 2418, 2422, 2429, 2435, 2441, 2447, 2453, 2459, + 2465, 2472, 2479, 2486, 2493, 2499, 2505, 2509, 2513, 2517, + 2521, 2525, 2537, 2541, 2545, 2549, 2553, 2557, 2561, 2565, + 2569, 2573, 2577, 2581, 2585, 2589, 2593, 2597, 2601, 2605, + 2609, 2613, 2617, 2621, 2625, 2629, 2633, 2637, 2641, 2648, + 2652, 2656, 2660, 2664, 2668, 2672, 2686, 2690, 2694, 2698, + 2702, 2706, 2710, 2714, 2718, 2722, 2734, 2738, 2742, 2746, + 2750, 2754, 2758, 2762, 2766, 2770, 2774, 2778, 2782, 2786, + 2790, 2794, 2798, 2802, 2806, 2810, 2814, 2818, 2822, 2826, + 2830, 2834, 2841, 2845, 2849, 2853, 2857, 2861, 2868, 2876, + 2884, 2907, 2911, 2918, 2922, 2928 }; #endif @@ -1237,19 +1243,19 @@ static const yytype_uint8 yyr1[] = 170, 171, 170, 172, 172, 172, 172, 172, 173, 173, 174, 174, 175, 175, 176, 176, 176, 176, 176, 177, 177, 177, 178, 178, 178, 178, 179, 179, 179, 179, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, - 181, 181, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 183, 183, 183, 183, 183, 183, 183, 183, 184, - 184, 184, 184, 184, 184, 184, 184, 184, 185, 185, - 185, 185, 185, 186, 186, 188, 187, 190, 189, 191, - 191, 192, 192, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 194, 195, 195, 195, 195, 196, 196, 197, - 197, 197, 198, 198, 198, 199, 200, 200, 200, 202, - 201, 201, 203, 203, 204, 204, 204, 205, 205, 205, + 179, 179, 180, 180, 180, 180, 180, 180, 180, 180, + 180, 180, 181, 181, 181, 181, 181, 181, 181, 181, + 181, 181, 181, 181, 182, 182, 182, 182, 182, 182, + 182, 182, 182, 183, 183, 183, 183, 183, 183, 183, + 183, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 185, 185, 185, 185, 185, 186, 186, 188, 187, 190, + 189, 191, 191, 192, 192, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 194, 195, 195, 195, 195, 196, + 196, 197, 197, 197, 198, 198, 198, 199, 200, 200, + 200, 202, 201, 201, 203, 203, 204, 204, 204, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, - 205, 205, 206, 206, 206, 206, 206, 207, 209, 208, - 210, 210, 211, 211, 211, 211, 211, 211, 211, 211, + 205, 205, 205, 205, 206, 206, 206, 206, 206, 207, + 209, 208, 210, 210, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, @@ -1259,22 +1265,22 @@ static const yytype_uint8 yyr1[] = 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, - 211, 211, 211, 211, 211, 211, 211, 211, 212, 212, - 213, 213, 214, 214, 215, 215, 215, 215, 215, 215, + 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, + 212, 212, 213, 213, 214, 214, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, - 215, 215, 215, 215, 215, 215, 215, 216, 216, 216, + 215, 215, 215, 215, 215, 215, 215, 215, 215, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 217, 217, 217, - 217, 217, 217, 217, 218, 218, 218, 218, 218, 218, + 216, 216, 216, 216, 216, 216, 216, 216, 216, 217, + 217, 217, 217, 217, 217, 217, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, - 219, 219, 219, 219, 219, 219, 220, 220, 220, 221, - 221, 222, 222, 223 + 218, 218, 219, 219, 219, 219, 219, 219, 220, 220, + 220, 221, 221, 222, 222, 223 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -1297,20 +1303,20 @@ static const yytype_uint8 yyr2[] = 1, 2, 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, 3, 4, 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, 1, - 1, 2, 1, 1, 1, 2, 4, 2, 1, 1, - 2, 2, 2, 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, 4, 2, 3, 1, 1, 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, + 1, 2, 1, 3, 3, 5, 3, 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, 1, 1, 2, 1, 1, 1, 2, 4, 2, + 1, 1, 2, 2, 2, 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, 4, 2, 3, 1, 1, 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, 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, @@ -1320,22 +1326,22 @@ 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, 1, 1, 1, 1, 3, 1, 1, - 1, 1, 1, 3, 1, 4, 7, 7, 4, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, + 1, 1, 1, 1, 1, 3, 1, 4, 7, 7, + 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, 4, 2, 5, 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, 4, 2, 5, 2, 2, 2, - 2, 2, 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, 4, 7, 7, + 4, 2, 5, 2, 2, 2, 2, 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, 4, 7, 7, 4, 2, - 5, 2, 2, 2, 2, 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, 2, 2, 1, - 1, 1, 2, 0 + 3, 3, 3, 3, 3, 5, 4, 4, 3, 3, + 3, 3, 1, 1, 1, 1, 1, 1, 1, 2, + 2, 1, 1, 1, 2, 0 }; /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. @@ -1343,751 +1349,780 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint16 yydefact[] = { - 0, 553, 0, 0, 0, 553, 5, 501, 497, 500, - 551, 503, 0, 0, 0, 0, 0, 0, 0, 499, - 0, 0, 0, 0, 0, 0, 0, 0, 498, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 447, 502, - 212, 277, 278, 280, 281, 266, 0, 294, 265, 292, - 287, 283, 284, 282, 286, 267, 0, 268, 285, 297, - 279, 553, 4, 214, 215, 216, 0, 256, 0, 211, - 274, 275, 276, 1, 20, 21, 0, 29, 0, 0, - 0, 0, 0, 0, 553, 553, 0, 6, 15, 7, - 18, 0, 13, 43, 14, 16, 17, 31, 553, 553, - 553, 553, 553, 553, 0, 553, 553, 553, 229, 0, - 465, 0, 0, 228, 553, 553, 0, 0, 553, 553, - 471, 469, 470, 468, 212, 277, 278, 280, 281, 294, - 292, 287, 283, 282, 286, 285, 279, 0, 0, 412, - 467, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 555, 0, 0, 0, 555, 5, 503, 499, 502, + 553, 505, 0, 0, 0, 0, 0, 0, 0, 501, + 0, 0, 0, 0, 0, 0, 0, 0, 500, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 449, 504, + 214, 279, 280, 282, 283, 268, 0, 296, 267, 294, + 289, 285, 286, 284, 288, 269, 0, 270, 287, 299, + 281, 555, 4, 216, 217, 218, 0, 258, 0, 213, + 276, 277, 278, 1, 20, 21, 0, 29, 0, 0, + 0, 0, 0, 0, 555, 555, 0, 6, 15, 7, + 18, 0, 13, 43, 14, 16, 17, 31, 555, 555, + 555, 555, 555, 555, 0, 555, 555, 555, 231, 0, + 467, 0, 0, 230, 555, 555, 0, 0, 555, 555, + 473, 471, 472, 470, 214, 279, 280, 282, 283, 296, + 294, 289, 285, 284, 288, 287, 281, 0, 0, 414, + 469, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 552, 553, 296, 293, 283, 289, - 283, 288, 291, 549, 550, 213, 290, 0, 553, 553, - 553, 553, 553, 553, 233, 202, 553, 0, 254, 235, - 217, 22, 553, 0, 0, 553, 0, 25, 24, 23, - 0, 126, 0, 0, 19, 0, 272, 77, 220, 41, + 0, 0, 0, 0, 554, 555, 298, 295, 285, 291, + 285, 290, 293, 551, 552, 215, 292, 0, 555, 555, + 555, 555, 555, 555, 235, 204, 555, 0, 256, 237, + 219, 22, 555, 0, 0, 555, 0, 25, 24, 23, + 0, 126, 0, 0, 19, 0, 274, 77, 222, 41, 0, 42, 32, 37, 35, 39, 0, 40, 34, 0, - 36, 38, 11, 0, 0, 46, 222, 223, 224, 256, - 0, 219, 0, 411, 410, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 230, 553, 232, 231, 0, 0, - 0, 0, 0, 0, 0, 0, 496, 480, 481, 482, - 483, 484, 485, 488, 489, 495, 0, 477, 478, 479, - 486, 487, 475, 476, 472, 473, 474, 494, 493, 0, - 0, 234, 295, 553, 207, 203, 204, 206, 205, 0, - 553, 262, 0, 259, 258, 255, 257, 0, 553, 553, - 30, 0, 0, 553, 269, 553, 0, 0, 54, 273, - 63, 65, 48, 33, 0, 553, 221, 553, 0, 298, - 164, 0, 0, 45, 44, 0, 227, 225, 451, 457, - 453, 455, 456, 463, 0, 462, 452, 459, 0, 458, - 461, 464, 0, 460, 454, 448, 413, 0, 492, 491, - 208, 0, 0, 409, 408, 263, 252, 218, 553, 0, - 0, 240, 239, 0, 0, 271, 553, 138, 139, 0, - 0, 0, 0, 128, 129, 553, 137, 127, 56, 58, - 0, 553, 0, 0, 553, 0, 553, 181, 182, 0, - 553, 553, 553, 553, 553, 0, 180, 553, 67, 0, - 553, 0, 8, 0, 553, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 47, 553, 140, 0, 0, 466, - 0, 490, 553, 209, 260, 0, 236, 0, 0, 0, - 0, 241, 553, 0, 0, 0, 553, 131, 553, 133, - 553, 0, 191, 192, 0, 553, 553, 553, 553, 553, - 553, 553, 190, 0, 55, 553, 544, 540, 543, 553, - 154, 0, 0, 542, 0, 0, 0, 541, 0, 0, - 0, 0, 0, 0, 155, 158, 553, 179, 504, 545, - 153, 0, 0, 0, 49, 553, 0, 553, 187, 183, - 184, 186, 185, 73, 553, 12, 553, 165, 299, 300, - 298, 0, 553, 553, 0, 170, 172, 169, 167, 0, - 146, 142, 93, 94, 95, 96, 97, 98, 101, 102, - 117, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 121, 120, 104, 103, 90, 92, 91, - 99, 100, 88, 89, 85, 86, 87, 84, 0, 0, - 83, 141, 143, 145, 144, 0, 0, 0, 151, 553, - 0, 50, 162, 226, 0, 0, 0, 264, 0, 0, - 0, 245, 546, 0, 244, 0, 243, 0, 0, 0, - 553, 242, 0, 0, 0, 270, 0, 553, 0, 122, - 125, 123, 130, 553, 197, 193, 194, 196, 195, 0, - 0, 553, 135, 160, 57, 553, 0, 59, 553, 553, - 0, 509, 0, 0, 514, 513, 512, 0, 0, 511, - 553, 157, 0, 553, 0, 0, 0, 0, 0, 0, + 36, 38, 11, 0, 0, 46, 224, 225, 226, 258, + 0, 221, 0, 413, 412, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 232, 555, 234, 233, 0, 0, + 0, 0, 0, 0, 0, 0, 498, 482, 483, 484, + 485, 486, 487, 490, 491, 497, 0, 479, 480, 481, + 488, 489, 477, 478, 474, 475, 476, 496, 495, 0, + 0, 236, 297, 555, 209, 205, 206, 208, 207, 0, + 555, 264, 0, 261, 260, 257, 259, 0, 555, 555, + 30, 0, 0, 555, 271, 555, 0, 0, 54, 275, + 63, 65, 48, 33, 0, 555, 223, 555, 0, 300, + 164, 0, 0, 45, 44, 0, 229, 227, 453, 459, + 455, 457, 458, 465, 0, 464, 454, 461, 0, 460, + 463, 466, 0, 462, 456, 450, 415, 0, 494, 493, + 210, 0, 0, 411, 410, 265, 254, 220, 555, 0, + 0, 242, 241, 0, 0, 273, 555, 138, 139, 0, + 0, 0, 0, 128, 129, 555, 137, 127, 56, 58, + 0, 555, 0, 0, 555, 0, 555, 183, 184, 0, + 555, 555, 555, 555, 555, 0, 182, 555, 67, 0, + 555, 0, 8, 0, 555, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 47, 555, 140, 0, 0, 468, + 0, 492, 555, 211, 262, 0, 238, 0, 0, 0, + 0, 243, 555, 0, 0, 0, 555, 131, 555, 133, + 555, 0, 193, 194, 0, 555, 555, 555, 555, 555, + 555, 555, 192, 0, 55, 555, 546, 542, 545, 555, + 154, 0, 0, 544, 0, 0, 0, 0, 543, 0, + 0, 0, 0, 0, 0, 155, 158, 555, 181, 506, + 547, 153, 0, 0, 0, 49, 555, 0, 555, 189, + 185, 186, 188, 187, 73, 555, 12, 555, 165, 301, + 302, 300, 0, 555, 555, 0, 170, 172, 169, 167, + 0, 146, 142, 93, 94, 95, 96, 97, 98, 101, + 102, 117, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 121, 120, 104, 103, 90, 92, + 91, 99, 100, 88, 89, 85, 86, 87, 84, 0, + 0, 83, 141, 143, 145, 144, 0, 0, 0, 151, + 555, 0, 50, 162, 228, 0, 0, 0, 266, 0, + 0, 0, 247, 548, 0, 246, 0, 245, 0, 0, + 0, 555, 244, 0, 0, 0, 272, 0, 555, 0, + 122, 125, 123, 130, 555, 199, 195, 196, 198, 197, + 0, 0, 555, 135, 160, 57, 555, 0, 59, 555, + 0, 555, 0, 511, 180, 0, 0, 516, 515, 514, + 0, 0, 513, 555, 157, 0, 555, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 553, 0, 52, 75, 188, 553, 0, 0, 302, 303, - 305, 304, 309, 306, 307, 308, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, - 334, 335, 336, 337, 338, 339, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 364, 350, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, 384, 361, 362, - 363, 365, 366, 367, 368, 369, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, 381, 382, 340, - 383, 553, 401, 402, 403, 394, 406, 390, 391, 389, - 396, 397, 385, 386, 387, 388, 395, 393, 400, 398, - 404, 399, 392, 405, 301, 0, 9, 0, 0, 168, - 171, 147, 119, 118, 150, 149, 163, 553, 0, 0, - 450, 449, 553, 261, 548, 251, 547, 250, 249, 248, - 247, 246, 238, 0, 26, 0, 132, 136, 134, 198, - 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 161, 414, 0, 0, 61, 0, 0, 177, 553, 0, - 553, 0, 0, 0, 539, 79, 64, 78, 156, 159, - 176, 523, 524, 525, 526, 527, 528, 531, 532, 538, - 0, 520, 521, 522, 529, 530, 518, 519, 515, 516, - 517, 537, 536, 0, 0, 0, 69, 66, 0, 553, - 0, 189, 553, 0, 166, 10, 173, 553, 174, 0, - 148, 51, 210, 0, 0, 553, 0, 0, 0, 423, - 421, 422, 420, 0, 0, 419, 0, 0, 0, 0, + 0, 0, 0, 555, 0, 52, 75, 190, 555, 0, + 0, 304, 305, 307, 306, 311, 308, 309, 310, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 366, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 386, 363, 364, 365, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 342, 385, 555, 403, 404, 405, 396, 408, + 392, 393, 391, 398, 399, 387, 388, 389, 390, 397, + 395, 402, 400, 406, 401, 394, 407, 303, 0, 9, + 0, 0, 168, 171, 147, 119, 118, 150, 149, 163, + 555, 0, 0, 452, 451, 555, 263, 550, 253, 549, + 252, 251, 250, 249, 248, 240, 0, 26, 0, 132, + 136, 134, 200, 203, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 161, 416, 0, 0, 61, 0, 0, + 177, 555, 555, 0, 555, 0, 0, 0, 541, 79, + 64, 78, 156, 159, 176, 525, 526, 527, 528, 529, + 530, 533, 534, 540, 0, 522, 523, 524, 531, 532, + 520, 521, 517, 518, 519, 539, 538, 0, 0, 0, + 69, 66, 0, 555, 0, 191, 555, 0, 166, 10, + 173, 555, 174, 0, 148, 51, 212, 0, 0, 555, + 0, 0, 0, 425, 423, 424, 422, 0, 0, 421, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 199, 0, 60, - 163, 178, 0, 0, 508, 0, 505, 80, 0, 0, - 535, 534, 71, 553, 53, 0, 553, 68, 407, 0, - 553, 27, 28, 0, 0, 0, 0, 0, 446, 432, - 433, 434, 435, 436, 437, 438, 439, 445, 0, 429, - 430, 431, 427, 428, 424, 425, 426, 444, 443, 0, - 0, 62, 0, 510, 0, 0, 533, 553, 0, 553, - 74, 175, 152, 553, 0, 418, 0, 415, 0, 442, - 441, 0, 0, 81, 0, 0, 553, 76, 200, 0, - 0, 440, 507, 506, 82, 553, 70, 0, 0, 72, - 417, 416 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 201, 0, 60, 163, 555, 178, 0, 0, 510, + 0, 507, 80, 0, 0, 537, 536, 71, 555, 53, + 0, 555, 68, 409, 0, 555, 27, 28, 0, 0, + 0, 0, 0, 448, 434, 435, 436, 437, 438, 439, + 440, 441, 447, 0, 431, 432, 433, 429, 430, 426, + 427, 428, 446, 445, 0, 0, 62, 179, 0, 512, + 0, 0, 535, 555, 0, 555, 74, 175, 152, 555, + 0, 420, 0, 417, 0, 444, 443, 0, 0, 81, + 0, 0, 555, 76, 202, 0, 0, 442, 509, 508, + 82, 555, 70, 0, 0, 72, 419, 418 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { -1, 4, 5, 401, 402, 88, 317, 89, 90, 192, - 91, 92, 93, 325, 385, 414, 484, 204, 380, 453, - 454, 604, 224, 381, 384, 496, 923, 967, 655, 859, - 826, 551, 590, 94, 202, 372, 373, 374, 375, 415, - 777, 473, 474, 602, 560, 323, 504, 505, 475, 395, + 91, 92, 93, 325, 385, 414, 485, 204, 380, 453, + 454, 605, 224, 381, 384, 497, 928, 973, 658, 863, + 830, 552, 591, 94, 202, 372, 373, 374, 375, 415, + 780, 474, 475, 603, 561, 323, 505, 506, 476, 395, 451, 184, 61, 225, 110, 62, 63, 298, 64, 299, 360, 361, 431, 65, 66, 295, 291, 292, 67, 68, - 95, 366, 96, 69, 70, 71, 72, 399, 400, 498, - 764, 352, 232, 233, 810, 139, 38, 477, 478, 571, + 95, 366, 96, 69, 70, 71, 72, 399, 400, 499, + 767, 352, 232, 233, 813, 139, 38, 478, 479, 572, 416, 39, 234 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -570 +#define YYPACT_NINF -646 static const yytype_int16 yypact[] = { - 367, -570, 2114, 3257, 18, 3147, -570, -570, -570, -570, - -570, -570, -95, -89, -84, -68, -55, -17, -4, -570, - -2, 8, 40, 3369, 59, 105, 109, 41, -570, 135, - 138, 2114, 2114, 2114, 2114, 1274, 2114, 2756, -570, 182, - -570, -570, -570, -570, -570, -570, 3425, -570, -570, -570, - -570, 1725, -570, 1245, 1245, -570, 159, -570, 1245, -570, - -570, 449, -570, -570, -570, -570, 166, 24, 42, -570, - -570, -570, -570, -570, -570, -570, 171, -570, 168, 178, - 47, 181, 200, 203, 199, -570, 45, -570, -570, -570, - -570, 2451, -570, -570, -570, -570, -570, -570, 2114, 2114, - 2114, 2114, 2114, 2114, 3257, 2114, 2114, 2114, -570, 159, - 211, 159, 159, -570, 2114, 2114, 3257, 3257, 2114, 2114, - 6, 6, 6, 6, -95, -89, -84, -68, -55, -17, - -2, 8, 2085, 2378, 3067, 3246, 138, 157, -64, 2756, - 6, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, - 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, - 2114, 2114, 1574, 2114, -570, 449, -570, -570, 1815, -570, - 1245, -570, -570, -570, -570, -570, -570, 221, 449, 449, - 449, 449, 449, 449, 216, -570, -570, 3075, 234, -570, - -12, -570, 3597, 341, 159, -570, 243, -570, -570, -570, - 2518, -570, 247, 2585, -570, 159, -570, 239, 244, -570, - 3425, -570, 364, -570, -570, -570, 3313, -570, -570, 159, - -570, -570, -570, 159, 346, 264, -570, -570, -570, 24, - 42, -570, 248, 269, -570, 254, 267, 270, 274, 275, - 288, 279, 286, 291, -570, 2114, -570, -570, 293, 295, - 296, 311, 302, 306, 2114, 2114, -570, 1291, 2176, 792, - 792, 1527, 1527, 644, 644, -570, 2608, 2918, 2933, 2982, - 1527, 1527, 154, 154, 6, 6, 6, -570, -570, -50, - 2206, 216, -570, 449, 216, 216, 216, 216, 216, 116, - 2114, 159, 256, -570, -570, -570, -570, 3075, -570, 326, - -570, 330, 332, 3462, -570, 3201, 3425, 346, -570, -570, - -570, -9, -570, 182, 3425, 623, -570, -570, 317, -570, - -570, 159, 1664, -570, -570, 416, -7, -12, -570, -570, - -570, -570, -570, -570, 318, -570, -570, -570, 335, -570, - -570, -570, 343, -570, -570, 6, 2756, 2114, -570, -570, - 216, 349, 347, 2756, -570, 17, -570, 373, 3489, 0, - 374, 377, -570, 480, 159, -570, -570, -570, -570, 159, - 2369, 159, 382, 383, -570, 456, -570, -570, -570, -570, - 416, 1374, 370, 416, 1374, 416, 623, -570, -570, 381, - 623, 623, 623, 623, 623, 125, -570, 3516, -570, 378, - -570, 180, -570, 384, 1754, 2675, 388, 416, 416, 2368, - 416, 416, 416, 416, -570, 122, -570, 3075, 2114, -570, - 2114, 2756, 1374, -570, -570, 2114, -570, 257, 259, 506, - -33, -570, -570, 0, -23, 403, 3543, 402, 456, 407, - 429, 3201, -570, -570, 401, 456, 456, 456, 456, 456, - 456, -29, -570, 416, -570, 122, -570, -570, -570, 456, - -570, 3425, 408, -570, 3369, 398, 412, -570, 2114, 2114, - 2114, 1274, 2114, 405, 16, -570, 456, 2789, -570, 182, - -570, 416, 235, 410, -570, 122, 174, 623, 404, 404, - 404, 404, 404, -570, 2114, -570, 1374, -570, 1146, -570, - -570, 159, 2114, 1754, 406, 427, 2756, -570, -570, 416, - 213, 213, -570, -570, -570, -570, -570, -570, -570, -570, - -570, -570, -570, -570, -570, -570, -570, -570, -570, -570, - -570, -570, -570, -570, -570, -570, -570, -570, -570, -570, - -570, -570, -570, -570, -570, -570, -570, -570, 411, 409, - -570, -570, 213, 213, 213, 261, 188, 1664, -570, 2114, - 432, -570, -570, 373, -22, 21, 415, 2722, 159, 470, - 159, -570, -570, 470, -570, 470, -570, 470, 470, 470, - 3570, -570, 535, 435, 159, -570, 3257, -29, 3257, -570, - -570, -570, -570, 456, 420, 420, 420, 420, 420, 179, - 705, 2114, -570, -570, -570, 122, 441, -570, -24, 456, - 3257, 430, 3257, 3257, 6, 6, 6, 425, 32, 6, - 503, -570, 1474, -24, 2114, 2114, 2114, 2114, 2114, 2114, - 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, - 2114, 2114, 2114, 2114, 2114, 1844, 2114, 285, 557, 438, - 503, 459, -570, -570, 404, 1374, 440, 445, -570, -570, - -570, -570, -570, -570, -570, -570, -570, -570, -570, -570, - -570, -570, -570, -570, -570, -570, -570, -570, -570, -570, - -570, -570, -570, -570, -570, -570, -570, -570, -570, -570, - -570, -570, -570, -570, -570, -570, -570, -570, -570, -570, - -570, -570, -570, -570, -570, -570, -570, -570, -570, -570, - -570, -570, -570, -570, -570, -570, -570, -570, -570, -570, - -570, -570, -570, -570, -570, -570, -570, -570, -570, -570, - -570, -570, -570, -570, -570, -570, -570, -570, -570, -570, - -570, -570, -570, -570, -570, -570, -570, -570, -570, -570, - -570, -570, -570, -570, -570, -570, -570, -570, -570, -570, - -570, -570, -570, -570, -570, 447, -570, 446, 452, -570, - 1934, 213, -570, -570, -570, -570, 2675, 1374, 453, 416, - -570, -570, 503, -570, -570, -570, -570, -570, -570, -570, - -570, -570, -570, 450, -570, 457, -570, -570, -570, 420, - 443, 469, 463, 482, 705, 705, 705, 705, 1274, 705, - 2903, -570, 466, 491, -570, 416, 2114, -570, -24, 486, - 2114, 479, 492, 2114, -570, -570, 79, -570, -570, -570, - -570, 1291, 2176, 792, 792, 1527, 1527, 644, 644, -570, - 2739, 2918, 2933, 2982, 1527, 1527, 154, 154, 6, 6, - 6, -570, -570, 35, 2231, 485, -570, 79, 416, 1374, - 493, -570, 503, 1018, -570, -570, -570, 1754, 2756, 494, - -570, -570, 79, 504, 515, 1374, 3257, 3257, 3257, 49, - 49, 49, 49, 499, 63, 49, 705, 705, 705, 705, - 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, - 705, 705, 705, 705, 705, 2024, 2114, -570, 416, -570, - 2756, -570, 487, 500, -570, 509, 6, -570, 510, 2114, - -570, -570, -570, 1374, -570, 501, 503, 79, -570, 508, - 503, -570, -570, 502, 522, 513, 526, 705, -570, 1491, - 2948, 3114, 3114, 1566, 1566, 830, 830, -570, 2870, 3060, - 3076, 877, 594, 594, 49, 49, 49, -570, -570, 68, - 2250, -570, 2114, -570, 2114, 14, 2756, 1374, 518, 503, - 79, -570, 79, 503, 525, -570, 527, 49, 705, -570, - -570, 117, 118, -570, 524, 529, 503, 79, 79, 2114, - 2114, 2903, -570, -570, -570, 503, 79, 144, 156, 79, - -570, -570 + 21, -646, 2272, 3337, 36, 3218, -646, -646, -646, -646, + -646, -646, -96, -63, -33, -9, 16, 18, -71, -646, + 24, 33, 40, 3505, 42, 47, 65, 79, -646, 80, + 82, 2272, 2272, 2272, 2272, 1532, 2272, 2813, -646, 99, + -646, -646, -646, -646, -646, -646, 3561, -646, -646, -646, + -646, 1793, -646, 1503, 1503, -646, 234, -646, 1503, -646, + -646, 318, -646, -646, -646, -646, 106, 29, 77, -646, + -646, -646, -646, -646, -646, -646, 44, -646, 100, 110, + 86, 140, 156, 178, 169, -646, 49, -646, -646, -646, + -646, 2508, -646, -646, -646, -646, -646, -646, 2272, 2272, + 2272, 2272, 2272, 2272, 3337, 2272, 2272, 2272, -646, 234, + 171, 234, 234, -646, 2272, 2272, 3337, 3337, 2272, 2272, + 122, 122, 122, 122, -96, -63, -33, -9, 16, 18, + 24, 33, 2243, 3438, 3550, 3727, 82, 182, -62, 2813, + 122, 2272, 2272, 2272, 2272, 2272, 2272, 2272, 2272, 2272, + 2272, 2272, 2272, 2272, 2272, 2272, 2272, 2272, 2272, 2272, + 2272, 2272, 1732, 2272, -646, 318, -646, -646, 1883, -646, + 1503, -646, -646, -646, -646, -646, -646, 193, 318, 318, + 318, 318, 318, 318, 191, -646, -646, 2341, 210, -646, + 126, -646, 3759, 316, 234, -646, 222, -646, -646, -646, + 2575, -646, 223, 2642, -646, 234, -646, 219, 221, -646, + 3561, -646, 343, -646, -646, -646, 3393, -646, -646, 234, + -646, -646, -646, 234, 196, 255, -646, -646, -646, 29, + 77, -646, 240, 270, -646, 248, 259, 261, 274, 275, + 280, 277, 279, 285, -646, 2272, -646, -646, 288, 290, + 291, 312, 305, 309, 2272, 2272, -646, 1549, 2991, 715, + 715, 668, 668, 347, 347, -646, 2665, 837, 3006, 3039, + 668, 668, 201, 201, 122, 122, 122, -646, -646, -49, + 1107, 191, -646, 318, 191, 191, 191, 191, 191, 131, + 2272, 234, 313, -646, -646, -646, -646, 2341, -646, 297, + -646, 332, 334, 3132, -646, 3272, 3561, 196, -646, -646, + -646, 11, -646, 99, 3561, 218, -646, -646, 326, -646, + -646, 234, 1822, -646, -646, 230, 177, 126, -646, -646, + -646, -646, -646, -646, 330, -646, -646, -646, 336, -646, + -646, -646, 345, -646, -646, 122, 2813, 2272, -646, -646, + 191, 356, 359, 2813, -646, 166, -646, 350, 3598, 38, + 379, 382, -646, 483, 234, -646, -646, -646, -646, 234, + 3328, 234, 375, 387, -646, 136, -646, -646, -646, -646, + 230, 984, 378, 230, 984, 230, 218, -646, -646, 380, + 218, 218, 218, 218, 218, 175, -646, 3625, -646, 369, + -646, 253, -646, 374, 1912, 2732, 381, 230, 230, 2415, + 230, 230, 230, 230, -646, 438, -646, 2341, 2272, -646, + 2272, 2813, 984, -646, -646, 2272, -646, 327, 466, 642, + 272, -646, -646, 38, -40, 394, 3652, 395, 136, 400, + 415, 3272, -646, -646, 393, 136, 136, 136, 136, 136, + 136, -50, -646, 230, -646, 438, -646, -646, -646, 136, + -646, 3449, 399, -646, 3505, 1632, 392, 423, -646, 2272, + 2272, 2272, 1532, 2272, 414, 1, -646, 136, 2846, -646, + 99, -646, 230, 153, 424, -646, 438, 216, 218, 426, + 426, 426, 426, 426, -646, 2272, -646, 984, -646, 1404, + -646, -646, 234, 2272, 1912, 422, 446, 2813, -646, -646, + 230, 245, 245, -646, -646, -646, -646, -646, -646, -646, + -646, -646, -646, -646, -646, -646, -646, -646, -646, -646, + -646, -646, -646, -646, -646, -646, -646, -646, -646, -646, + -646, -646, -646, -646, -646, -646, -646, -646, -646, 429, + 427, -646, -646, 245, 245, 245, 185, 267, 1822, -646, + 2272, 450, -646, -646, 350, -31, -26, 433, 2779, 234, + 871, 234, -646, -646, 871, -646, 871, -646, 871, 871, + 871, 3679, -646, 558, 459, 234, -646, 3337, -50, 3337, + -646, -646, -646, -646, 136, 447, 447, 447, 447, 447, + 268, 586, 2272, -646, -646, -646, 438, 467, -646, -36, + 3561, 136, 3337, 452, -646, 3337, 3337, 122, 122, 122, + 451, -19, 122, 530, -646, 1084, -36, 2272, 2272, 2272, + 2272, 2272, 2272, 2272, 2272, 2272, 2272, 2272, 2272, 2272, + 2272, 2272, 2272, 2272, 2272, 2272, 2272, 2272, 2002, 2272, + 383, 579, 460, 530, 478, -646, -646, 426, 984, 458, + 468, -646, -646, -646, -646, -646, -646, -646, -646, -646, + -646, -646, -646, -646, -646, -646, -646, -646, -646, -646, + -646, -646, -646, -646, -646, -646, -646, -646, -646, -646, + -646, -646, -646, -646, -646, -646, -646, -646, -646, -646, + -646, -646, -646, -646, -646, -646, -646, -646, -646, -646, + -646, -646, -646, -646, -646, -646, -646, -646, -646, -646, + -646, -646, -646, -646, -646, -646, -646, -646, -646, -646, + -646, -646, -646, -646, -646, -646, -646, -646, -646, -646, + -646, -646, -646, -646, -646, -646, -646, -646, -646, -646, + -646, -646, -646, -646, -646, -646, -646, -646, -646, -646, + -646, -646, -646, -646, -646, -646, -646, -646, 469, -646, + 473, 476, -646, 2092, 245, -646, -646, -646, -646, 2732, + 984, 477, 230, -646, -646, 530, -646, -646, -646, -646, + -646, -646, -646, -646, -646, -646, 479, -646, 482, -646, + -646, -646, 447, 471, 496, 488, 498, 586, 586, 586, + 586, 1532, 586, 2960, -646, 485, 508, -646, 230, 2272, + -646, 136, -36, 501, 2272, 492, 503, 2272, -646, -646, + 2, -646, -646, -646, -646, 1549, 2991, 715, 715, 668, + 668, 347, 347, -646, 2796, 837, 3006, 3039, 668, 668, + 201, 201, 122, 122, 122, -646, -646, -6, 2364, 499, + -646, 2, 230, 984, 494, -646, 530, 1276, -646, -646, + -646, 1912, 2813, 500, -646, -646, 2, 514, 520, 984, + 3337, 3337, 3337, 167, 167, 167, 167, 506, 20, 167, + 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, + 586, 586, 586, 586, 586, 586, 586, 586, 586, 2182, + 2272, -646, 230, -646, 2813, -36, -646, 505, 507, -646, + 519, 122, -646, 521, 2272, -646, -646, -646, 984, -646, + 522, 530, 2, -646, 525, 530, -646, -646, 527, 509, + 528, 539, 586, -646, 2976, 798, 1145, 1145, 1120, 1120, + 517, 517, -646, 2927, 3118, 3133, 3151, 358, 358, 167, + 167, 167, -646, -646, 93, 2389, -646, -646, 2272, -646, + 2272, 26, 2813, 984, 531, 530, 2, -646, 2, 530, + 534, -646, 535, 167, 586, -646, -646, 133, 137, -646, + 536, 537, 530, 2, 2, 2272, 2272, 2960, -646, -646, + -646, 530, 2, 141, 145, 2, -646, -646 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -570, -570, -179, -570, 152, -570, -570, 465, -570, -570, - -58, -74, -570, -570, -570, -119, -197, -570, -570, -570, - -153, -245, 464, -570, -570, -570, -570, -570, -570, -570, - -554, -570, -570, 232, -570, -570, -570, 236, 305, -346, - -570, -370, -570, 89, -384, -262, -500, -570, 56, -318, - -332, 76, -44, 476, 238, 5, -53, -570, -48, -570, - -570, -570, 272, -42, -570, -278, -570, -570, 19, 69, - -570, -570, -570, 46, 536, -570, -570, 207, -570, -19, - -570, -465, -94, -20, -51, 57, -569, -570, -570, -283, - 436, -195, -1 + -646, -646, -162, -646, 160, -646, -646, 455, -646, -646, + -82, -77, -646, -646, -646, -116, -187, -646, -646, -646, + -142, -235, 480, -646, -646, -646, -646, -646, -646, -646, + -645, -646, -646, 239, -646, -646, -646, 241, 310, -251, + -646, -375, -646, 96, -438, -252, -503, -646, -459, -279, + -396, -109, -41, 487, 232, -13, -80, -646, -27, -646, + -646, -646, 265, 19, -646, -287, -646, -646, -3, 115, + -646, -646, -646, -11, -35, -646, -646, 202, -646, -58, + -646, -454, -75, -20, 0, 377, -139, -646, -646, -362, + 143, -198, -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 -255 +#define YYTABLE_NINF -257 static const yytype_int16 yytable[] = { - 6, 382, 165, 768, 97, 235, 236, 237, 238, 239, - 201, 241, 242, 243, 483, 138, 303, 313, 73, 357, - 248, 249, 173, 174, 252, 253, 200, 203, 621, 656, - 98, 811, 173, 174, 455, 149, 99, 482, 226, 485, - 137, 100, 111, 227, 255, 379, 577, 578, 579, 228, - 173, 174, 566, 173, 174, 173, 174, 101, 255, 37, - 185, 510, 511, 256, 552, 553, 554, 555, 486, 113, - 102, 606, 488, 489, 490, 491, 492, 348, 894, 427, - 428, 429, 600, 97, 97, 582, 255, 816, 120, 121, - 122, 123, 112, 140, 778, -237, 857, 601, -237, 430, - -254, 651, 601, 417, 583, 780, 587, 605, 103, 240, - 229, 383, 104, 594, 595, 596, 597, 598, 599, 358, - 205, 250, 251, 105, 622, 424, 657, 608, 425, 255, - 161, 162, 163, 106, 187, 647, 812, 231, 397, 563, - 255, 983, 279, 255, 623, 574, 576, 226, 781, 189, - 226, 338, 227, 561, 195, 227, 917, 117, 228, 824, - 230, 228, 920, 771, 185, 107, 312, 173, 174, 654, - 918, 255, 315, 904, 905, 906, 255, 185, 185, 185, - 185, 185, 185, 149, 114, 293, 479, 436, 164, 479, - 938, 97, 775, 607, 6, 979, 173, 174, 257, 258, + 6, 771, 200, 203, 97, 165, 614, 201, 861, 484, + 357, 226, 113, 624, 313, 138, 169, 607, 171, 172, + 111, 382, 137, 176, 235, 236, 237, 238, 239, 98, + 241, 242, 243, 303, 173, 174, 73, 173, 174, 248, + 249, 659, 588, 252, 253, 104, 255, 567, 654, 595, + 596, 597, 598, 599, 600, 379, 281, 173, 174, 255, + 185, 601, 99, 609, 227, 256, 575, 577, 583, 284, + 285, 286, 287, 288, 289, 819, 602, 255, 348, 922, + 231, 626, 255, 97, 97, 173, 174, 584, 229, 255, + 602, 240, 100, 923, 173, 174, 783, 169, 171, 172, + 176, 784, 255, 250, 251, 164, 781, 487, 828, 625, + 228, 489, 490, 491, 492, 493, 101, 427, 428, 429, + 226, 925, 660, 226, 205, 1, 2, 3, 255, 455, + 564, 383, 483, 169, 486, 169, 358, 430, 112, 187, + 876, 102, 279, 103, 442, 443, 444, 943, 815, 105, + 445, 149, 296, 989, 191, 397, 511, 512, 106, 553, + 554, 555, 556, 562, 185, 107, 833, 114, 816, 312, + 338, 820, 115, 227, 350, 315, 227, 185, 185, 185, + 185, 185, 185, 480, 189, 293, 480, 446, 834, 231, + 116, 97, 231, 195, 6, 117, 898, 229, 802, 175, + 229, 255, 606, 608, 436, 118, 230, 119, 788, 657, + 188, 190, 790, 186, 791, 822, 792, 793, 794, 228, + 985, 932, 228, 196, 480, 193, 387, 388, 389, 206, + 149, 650, 390, -239, 655, 194, -239, 447, 173, 174, + 406, 255, 173, 174, 407, 255, 161, 162, 163, 255, + 197, 448, 244, 255, 246, 247, 449, 290, 351, 774, + 998, 450, 296, 651, 999, 378, 198, 480, 1006, 391, + 581, 778, 1007, 386, 424, 173, 174, 425, 559, 560, + 652, 408, 185, 864, -256, -124, 976, 417, 199, 354, + 978, 908, 909, 910, 376, 651, 245, 6, 362, 480, + 494, 495, 97, 319, 377, 320, 321, 322, 409, 254, + 559, 560, 777, 283, 396, 230, 6, 290, 230, 392, + 297, 158, 159, 160, 301, 161, 162, 163, 177, 304, + 993, 410, 178, 393, 994, 173, 174, 302, 394, 305, + 477, 656, 495, 477, 310, 411, 311, 1002, 309, 10, + 412, 578, 579, 580, 817, 413, 1005, 97, 200, 376, + 501, 502, 316, 590, 324, 6, 318, 328, 934, 179, + 559, 560, 326, 327, 452, 329, 149, 45, 255, 37, + 481, 477, 296, 481, 916, 396, 330, 898, 331, 396, + 396, 396, 396, 396, 602, 803, 97, 334, 565, 500, + 566, 332, 333, 508, 335, 873, 336, 359, 120, 121, + 122, 123, 337, 140, 563, 339, 55, 340, 341, 180, + 611, 481, 569, 57, 477, 915, 570, 480, 770, 342, + 376, 6, 343, 181, 355, 97, 344, 452, 182, 97, + 363, 356, 364, 183, 452, 452, 452, 452, 452, 452, + 604, 398, 621, 113, 563, 418, 477, -255, 452, 620, + 480, 111, 814, 419, 403, 156, 157, 158, 159, 160, + 420, 161, 162, 163, 173, 174, 452, 967, 905, 906, + 907, 422, 908, 909, 910, 563, 432, 396, 930, 423, + 433, 434, 440, 651, 354, 441, 481, 498, 482, 503, + 488, 510, 585, 508, 938, 84, 587, 435, 559, 560, + 859, 589, 437, 594, 439, 612, 45, 615, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 229, - 280, 813, 229, 652, 817, 255, 255, 479, 872, 319, - 115, 320, 556, 557, 116, 811, 811, 811, 811, 830, - 811, 281, 290, 351, 992, 993, 231, 558, 559, 231, - 493, 494, 255, 580, 284, 285, 286, 287, 288, 289, - 118, 799, 378, 119, 255, 173, 174, 173, 174, 230, - 386, 1000, 230, 186, 158, 159, 160, 818, 161, 162, - 163, 191, 185, 1001, 254, 860, 785, 500, 501, 354, - 787, 197, 788, 193, 789, 790, 791, 6, 362, 653, - 494, 479, 97, 194, 377, 601, 800, 45, 927, 45, - 198, 345, 346, 199, 396, -124, 6, 811, 811, 811, - 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, - 811, 811, 811, 811, 811, 811, 245, 476, 558, 559, - 476, 283, 290, 814, 297, 648, 55, 353, 55, 301, - 304, 376, 568, 57, 568, 57, 569, 97, 573, 350, - 558, 559, 649, 305, 310, 6, 589, 929, 811, 311, - 10, 648, 970, 324, 452, 328, 972, 255, 476, 405, - 480, 329, 200, 480, 356, 396, 558, 559, 774, 396, - 396, 396, 396, 396, 330, 648, 97, 331, 564, 499, - 565, 332, 333, 507, 421, 334, 335, 869, 767, 811, - 558, 559, 855, 336, 562, 987, 376, 609, 337, 988, - 339, 480, 340, 341, 173, 174, 406, 479, 342, 343, - 407, 6, 996, 344, 911, 97, 359, 452, 363, 97, - 364, 999, 398, 418, 452, 452, 452, 452, 452, 452, - 603, 618, 476, 319, 562, 320, 321, 322, 452, 177, - 479, 506, 419, 178, 442, 443, 444, 408, 420, 455, - 445, 1, 2, 3, 422, 452, 617, 423, 173, 174, - -253, 432, 567, 111, 562, 433, 396, 376, 434, 925, - 481, 441, 175, 354, 409, 480, 570, 570, 570, 440, - 179, 487, 507, 188, 190, 933, 497, 446, 509, 502, - 113, 584, 485, 586, 173, 174, 196, 410, 588, 84, - 45, 593, 206, 612, 610, 614, 615, 616, 613, 619, - 494, 411, 620, 112, 769, 770, 412, 650, 772, 773, - 779, 413, 782, 793, 794, 244, 601, 246, 247, 815, - 180, 353, 823, 968, 825, 820, 45, 447, 354, 55, - 506, 775, 605, 856, 181, 568, 57, 858, 875, 182, - 861, 448, 862, 865, 183, 864, 449, 873, 476, 97, - 866, 450, 479, 870, 874, 876, 603, 169, 877, 171, - 172, 796, 452, 798, 176, 55, 907, 985, 878, 908, - 354, 568, 57, 912, 562, 575, 914, 562, 452, 915, - 922, 476, 962, 931, 776, 819, 353, 821, 822, 827, - 926, 930, 562, 894, 932, 853, 937, 963, 969, 973, - 302, 387, 388, 389, 964, 965, 971, 390, 570, 974, - 975, 309, 570, 976, 570, 986, 570, 570, 570, 827, - 989, 994, 990, 766, 480, 316, 995, 300, 353, 318, - 871, 924, 909, 961, 479, 326, 327, 307, 169, 171, - 172, 176, 591, 149, 391, 438, 797, 592, 829, 308, - 479, 831, 832, 833, 834, 835, 836, 837, 838, 839, - 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, - 850, 851, 611, 854, 169, 581, 169, 765, 7, 8, - 9, 10, 0, 11, 901, 902, 903, 0, 904, 905, - 906, 0, 863, 296, 392, 0, 913, 355, 479, 0, - 0, 0, 0, 476, 0, 0, 0, 0, 393, 0, - 499, 0, 0, 394, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 879, 880, 881, 882, 403, 885, 801, - 0, 0, 156, 157, 158, 159, 160, 19, 161, 162, - 163, 0, 479, 0, 0, 0, 480, 0, 0, 0, - 0, 827, 0, 0, 0, 0, 0, 0, 884, 0, - 0, 802, 0, 803, 0, 0, 0, 28, 0, 0, - 435, 0, 0, 0, 0, 437, 0, 439, 0, 145, - 146, 147, 148, 883, 0, 476, 0, 562, 0, 0, - 804, 149, 0, 0, 805, 806, 0, 868, 807, 0, - 808, 476, 0, 296, 809, 939, 940, 941, 942, 943, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 616, + 280, 623, 571, 571, 571, 319, 898, 320, 557, 558, + 772, 653, 495, 974, 773, 55, 775, 776, 782, 354, + 785, 569, 57, 559, 560, 574, 796, 455, 797, 821, + 573, 573, 573, 602, 799, 818, 801, 824, 827, 112, + 97, 829, 480, 778, 477, 860, 862, 604, 865, 7, + 8, 9, 10, 452, 11, 866, 879, 868, 991, 823, + 869, 354, 825, 826, 870, 563, 877, 874, 563, 878, + 452, 486, 880, 881, 882, 911, 912, 477, 917, 919, + 920, 931, 831, 936, 927, 563, 980, 935, 857, 937, + 968, 345, 346, 942, 969, 903, 904, 905, 906, 907, + 804, 908, 909, 910, 970, 403, 971, 300, 19, 975, + 173, 174, 831, 977, 979, 981, 982, 481, 992, 995, + 996, 606, 769, 1000, 1001, 480, 875, 353, 814, 814, + 814, 814, 805, 814, 806, 929, 913, 966, 28, 592, + 438, 480, 593, 307, 800, 571, 867, 147, 148, 571, + 308, 571, 45, 571, 571, 571, 613, 149, 582, 405, + 403, 807, 0, 768, 0, 808, 809, 0, 0, 810, + 0, 811, 787, 573, 789, 812, 0, 573, 0, 573, + 0, 573, 573, 573, 421, 0, 0, 0, 798, 0, + 480, 55, 145, 146, 147, 148, 0, 569, 57, 477, + 0, 576, 0, 500, 149, 0, 0, 0, 0, 918, + 0, 814, 814, 814, 814, 814, 814, 814, 814, 814, + 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, + 0, 0, 0, 0, 0, 480, 0, 0, 0, 481, + 0, 507, 0, 0, 831, 0, 156, 157, 158, 159, + 160, 888, 161, 162, 163, 0, 0, 0, 887, 0, + 0, 0, 568, 814, 0, 0, 0, 883, 884, 885, + 886, 0, 889, 892, 893, 894, 895, 896, 897, 0, + 452, 563, 477, 0, 0, 0, 0, 898, 0, 0, + 0, 154, 155, 156, 157, 158, 159, 160, 477, 161, + 162, 163, 0, 0, 0, 814, 617, 618, 619, 0, + 622, 0, 143, 144, 145, 146, 147, 148, 0, 0, + 0, 0, 481, 0, 0, 831, 149, 939, 940, 941, + 508, 0, 353, 0, 0, 0, 0, 0, 481, 173, + 174, 507, 0, 0, 0, 0, 0, 477, 0, 964, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, - 954, 955, 956, 957, 0, 0, 0, 0, 480, 894, - 0, 827, 0, 572, 572, 572, 507, 0, 0, 0, - 0, 0, 0, 910, 480, 0, 0, 0, 0, 476, - 916, 934, 935, 936, 0, 959, 977, 0, 0, 0, - 0, 0, 888, 889, 890, 891, 892, 893, 0, 0, - 0, 0, 0, 0, 0, 0, 894, 0, 154, 155, - 156, 157, 158, 159, 160, 0, 161, 162, 163, 0, - 0, 0, 480, 476, 506, 827, 0, 991, 0, 827, - 0, 0, 0, 0, 0, 0, 0, 403, 0, 0, - 0, 0, 981, 0, 982, 0, 0, 0, 899, 900, - 901, 902, 903, 296, 904, 905, 906, 0, 0, 0, - 0, 0, 0, 960, 0, 0, 480, 0, 827, 997, - 998, 0, 827, 0, 0, 0, 966, 0, 0, 0, - 0, 0, 0, 0, 0, 827, 0, 0, 0, 0, - 0, 0, 403, 0, 827, 899, 900, 901, 902, 903, - 0, 904, 905, 906, 784, 572, 786, 0, 0, 572, - 0, 572, 0, 572, 572, 572, 0, 0, 0, 0, - 795, 658, 659, 660, 661, 662, 663, 664, 665, 0, - 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, - 676, 0, 0, 0, 0, 0, 0, 677, 678, 679, - 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, - 690, 0, 0, 691, 692, 693, 694, 695, 696, 697, - 698, 699, 700, 701, 0, 702, 0, 703, 704, 705, - 706, 707, 708, 709, 710, 711, 712, 713, 714, 0, - 0, 0, 715, 0, 716, 0, 717, 718, 719, 720, - 721, 722, 723, 724, 725, 726, 727, 728, 0, 729, - 730, 731, 732, 733, 734, 735, 0, 736, 737, 738, - 739, 740, 0, 0, 0, 741, 742, 743, 744, 745, - 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, - 756, 757, 758, 759, 760, 761, 928, 762, 763, 658, - 659, 660, 661, 662, 663, 664, 665, 0, 666, 667, - 668, 669, 670, 671, 672, 673, 674, 675, 676, 0, - 0, 0, 0, 0, 0, 677, 678, 679, 680, 681, - 682, 683, 684, 685, 686, 687, 688, 689, 690, 0, - 0, 691, 692, 693, 694, 695, 696, 697, 698, 699, - 700, 701, 0, 702, 0, 703, 704, 705, 706, 707, - 708, 709, 710, 711, 712, 713, 714, 0, 0, 0, - 715, 0, 716, 0, 717, 718, 719, 720, 721, 722, - 723, 724, 725, 726, 727, 728, 0, 729, 730, 731, - 732, 733, 734, 735, 0, 736, 737, 738, 739, 740, - 0, 0, 0, 741, 742, 743, 744, 745, 746, 747, - 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, - 758, 759, 760, 761, 0, 762, 763, 7, 8, 9, - 10, 0, 11, 124, 0, 0, 0, 0, 0, 0, - 41, 0, 42, 43, 44, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 142, 143, 144, 145, 146, - 147, 148, 0, 0, 50, 170, 52, 0, 0, 125, - 149, 126, 127, 128, 45, 46, 0, 129, 18, 53, - 54, 48, 0, 0, 0, 0, 19, 130, 0, 0, - 0, 0, 58, 131, 132, 52, 0, 60, 0, 0, - 23, 0, 0, 0, 0, 0, 0, 0, 133, 134, - 26, 0, 27, 55, 0, 0, 28, 0, 0, 56, - 57, 135, 0, 0, 59, 0, 136, 456, 457, 458, - 10, 0, 459, 40, 0, 0, 460, 0, 0, 31, - 0, 0, 0, 32, 33, 0, 0, 34, 0, 35, - 0, 984, 0, 36, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 0, 161, 162, 163, 0, 41, + 954, 955, 956, 957, 958, 959, 960, 961, 962, 0, + 0, 900, 901, 902, 563, 0, 903, 904, 905, 906, + 907, 45, 908, 909, 910, 0, 0, 481, 0, 0, + 831, 0, 477, 0, 831, 779, 0, 353, 0, 0, + 0, 0, 983, 0, 0, 0, 0, 0, 987, 0, + 988, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 55, 161, 162, 163, 0, 0, 569, 57, 0, 0, + 0, 0, 481, 0, 831, 1003, 1004, 0, 831, 353, + 0, 0, 0, 0, 997, 0, 0, 456, 457, 458, + 10, 831, 459, 40, 0, 0, 460, 0, 0, 0, + 831, 0, 0, 0, 835, 836, 837, 838, 839, 840, + 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, + 851, 852, 853, 854, 855, 0, 858, 0, 0, 41, 0, 42, 43, 44, 45, 461, 0, 47, 462, 0, 0, 48, 0, 0, 0, 0, 463, 49, 0, 0, 0, 0, 0, 50, 51, 52, 0, 0, 0, 0, - 464, 0, 0, 0, 0, 0, 0, 0, 53, 54, - 465, 0, 466, 55, 0, 0, 467, 0, 0, 56, + 464, 0, 0, 0, 0, 0, 465, 0, 53, 54, + 466, 0, 467, 55, 0, 0, 468, 0, 0, 56, 57, 58, 0, 0, 59, 0, 60, 456, 457, 458, - 10, 0, 459, 40, 0, 0, 828, 0, 0, 468, - 0, 0, 0, 469, 0, 0, 0, 470, 0, 471, - 0, 0, 0, 472, 0, 887, 888, 889, 890, 891, - 892, 893, 0, 0, 0, 0, 0, 0, 0, 41, - 894, 42, 43, 44, 45, 461, 0, 47, 462, 0, - 0, 48, 0, 0, 0, 0, 463, 49, 0, 0, - 0, 0, 0, 50, 51, 52, 147, 148, 0, 0, - 464, 0, 0, 0, 0, 0, 149, 0, 53, 54, - 465, 0, 466, 55, 0, 0, 467, 0, 0, 56, - 57, 58, 0, 0, 59, 0, 60, 7, 8, 9, - 10, 0, 11, 12, 0, 892, 893, 0, 0, 468, - 0, 0, 0, 469, 0, 894, 0, 470, 0, 471, - 0, 0, 0, 472, 896, 897, 898, 0, 0, 899, - 900, 901, 902, 903, 0, 904, 905, 906, 0, 13, - 0, 14, 15, 16, 0, 0, 0, 17, 18, 0, - 0, 0, 0, 0, 0, 0, 19, 20, 0, 0, - 0, 0, 0, 21, 22, 156, 157, 158, 159, 160, - 23, 161, 162, 163, 0, 0, 0, 0, 24, 25, - 26, 0, 27, 0, 0, 0, 28, 7, 8, 9, - 10, 29, 11, 12, 0, 0, 30, 0, 0, 0, - 0, 0, 0, 0, 899, 900, 901, 902, 903, 31, - 904, 905, 906, 32, 33, 0, 0, 34, 0, 35, - 0, 278, 0, 36, 0, 0, 0, 0, 0, 13, - 0, 14, 15, 16, 0, 0, 0, 17, 18, 0, - 0, 0, 0, 0, 0, 0, 19, 20, 0, 0, - 0, 0, 0, 21, 22, 0, 0, 0, 0, 0, - 23, 0, 0, 0, 0, 0, 0, 0, 24, 25, - 26, 0, 27, 0, 0, 0, 28, 7, 8, 9, - 10, 29, 11, 12, 0, 0, 30, 0, 0, 0, - 41, 404, 42, 43, 44, 0, 0, 0, 166, 31, - 0, 0, 0, 32, 33, 0, 0, 34, 167, 35, - 0, 0, 0, 36, 50, 168, 52, 0, 0, 13, - 0, 14, 15, 16, 0, 0, 0, 17, 18, 53, - 54, 0, 0, 0, 0, 0, 19, 20, 0, 0, - 0, 0, 58, 21, 22, 0, 0, 60, 0, 0, - 23, 0, 0, 0, 0, 0, 0, 0, 24, 25, - 26, 0, 27, 0, 0, 0, 28, 7, 8, 9, - 10, 29, 11, 12, 0, 0, 30, 0, 0, 0, - 41, 503, 42, 43, 44, 0, 0, 0, 0, 31, - 0, 0, 0, 32, 33, 0, 0, 34, 282, 35, - 0, 0, 0, 36, 50, 170, 52, 0, 0, 13, - 0, 14, 15, 16, 0, 0, 0, 17, 18, 53, - 54, 0, 0, 0, 0, 0, 19, 20, 0, 0, - 0, 0, 58, 21, 22, 0, 0, 60, 0, 0, - 23, 0, 0, 0, 0, 0, 0, 0, 24, 25, - 26, 0, 27, 0, 0, 0, 28, 7, 8, 9, - 10, 29, 11, 12, 0, 0, 30, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, - 0, 0, 0, 32, 33, 0, 0, 34, 0, 35, - 0, 852, 0, 36, 0, 0, 0, 0, 0, 13, - 0, 14, 15, 16, 0, 0, 0, 17, 18, 0, - 0, 0, 0, 0, 0, 0, 19, 20, 0, 0, - 0, 0, 0, 21, 22, 0, 0, 0, 0, 0, - 23, 0, 0, 0, 0, 0, 0, 0, 24, 25, - 26, 0, 27, 0, 0, 0, 28, 7, 8, 9, - 10, 29, 11, 12, 0, 0, 30, 0, 0, 0, - 0, 867, 0, 0, 0, 0, 0, 0, 0, 31, - 0, 0, 0, 32, 33, 0, 0, 34, 0, 35, - 0, 0, 0, 36, 0, 0, 0, 0, 0, 13, - 0, 14, 15, 16, 0, 0, 0, 17, 18, 0, - 0, 0, 0, 0, 0, 0, 19, 20, 0, 0, - 0, 0, 0, 21, 22, 0, 0, 0, 0, 0, - 23, 0, 0, 0, 0, 0, 0, 0, 24, 25, - 26, 0, 27, 0, 0, 0, 28, 7, 8, 9, - 10, 29, 11, 12, 0, 0, 30, 0, 0, 0, - 41, 0, 42, 43, 44, 0, 0, 0, 166, 31, - 0, 0, 0, 32, 33, 0, 0, 34, 167, 35, - 0, 958, 0, 36, 50, 168, 52, 0, 0, 13, - 0, 14, 15, 16, 0, 0, 0, 17, 18, 53, - 54, 0, 0, 0, 0, 0, 19, 20, 0, 0, - 0, 0, 58, 21, 22, 0, 0, 60, 0, 0, - 23, 143, 144, 145, 146, 147, 148, 0, 24, 25, - 26, 0, 27, 0, 0, 149, 28, 0, 0, 0, - 107, 29, 0, 0, 0, 0, 30, 0, 0, 141, - 142, 143, 144, 145, 146, 147, 148, 0, 0, 31, - 0, 0, 0, 32, 33, 149, 0, 34, 0, 35, - 0, 0, 0, 36, 141, 142, 143, 144, 145, 146, - 147, 148, 0, 0, 0, 0, 0, 0, 0, 0, - 149, 0, 0, 141, 142, 143, 144, 145, 146, 147, - 148, 0, 0, 0, 0, 0, 0, 0, 0, 149, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 0, - 161, 162, 163, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 0, - 161, 162, 163, 0, 0, 0, 349, 0, 0, 0, - 0, 0, 0, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 0, 161, 162, 163, 0, 0, - 0, 921, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 0, 161, 162, 163, 367, 368, 0, - 980, 512, 513, 514, 515, 516, 517, 518, 519, 0, - 0, 0, 0, 0, 0, 0, 0, 520, 0, 521, - 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, - 532, 0, 0, 0, 41, 0, 42, 43, 44, 0, - 533, 0, 47, 41, 0, 42, 43, 44, 0, 0, - 0, 0, 49, 0, 0, 0, 0, 0, 50, 51, - 52, 0, 0, 0, 534, 0, 0, 50, 170, 52, - 0, 0, 0, 53, 54, 0, 0, 0, 0, 207, - 208, 0, 53, 54, 0, 0, 58, 0, 0, 59, - 0, 60, 0, 0, 0, 58, 535, 0, 0, 536, - 60, 537, 538, 539, 540, 541, 542, 543, 544, 545, - 546, 547, 0, 548, 549, 209, 41, 550, 42, 43, - 44, 45, 210, 114, 47, 0, 0, 0, 48, 211, - 212, 213, 0, 0, 49, 0, 0, 0, 0, 214, - 50, 51, 52, 0, 0, 215, 207, 208, 0, 216, - 0, 0, 0, 217, 0, 53, 54, 0, 218, 0, - 55, 0, 0, 0, 0, 0, 219, 57, 58, 0, - 220, 59, 221, 60, 0, 0, 0, 0, 222, 0, + 10, 0, 459, 40, 0, 0, 832, 0, 0, 469, + 0, 0, 0, 470, 0, 0, 0, 471, 0, 472, + 0, 0, 0, 473, 990, 0, 0, 0, 0, 0, + 141, 142, 143, 144, 145, 146, 147, 148, 0, 41, + 0, 42, 43, 44, 45, 461, 149, 47, 462, 896, + 897, 48, 0, 0, 0, 0, 463, 49, 0, 898, + 872, 0, 0, 50, 51, 52, 0, 0, 0, 0, + 464, 0, 894, 895, 896, 897, 465, 0, 53, 54, + 466, 0, 467, 55, 898, 0, 468, 0, 0, 56, + 57, 58, 0, 0, 59, 0, 60, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 914, 0, 0, 469, + 0, 0, 0, 470, 921, 0, 0, 471, 0, 472, + 0, 0, 0, 473, 0, 0, 0, 0, 0, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 0, 161, 162, 163, 0, 0, 0, 349, 903, 904, + 905, 906, 907, 0, 908, 909, 910, 0, 507, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 903, 904, 905, 906, 907, 0, 908, + 909, 910, 0, 0, 0, 0, 0, 0, 0, 661, + 662, 663, 664, 665, 666, 667, 668, 965, 669, 670, + 671, 672, 673, 674, 675, 676, 677, 678, 679, 0, + 0, 972, 0, 0, 0, 680, 681, 682, 683, 684, + 685, 686, 687, 688, 689, 690, 691, 692, 693, 0, + 0, 694, 695, 696, 697, 698, 699, 700, 701, 702, + 703, 704, 0, 705, 0, 706, 707, 708, 709, 710, + 711, 712, 713, 714, 715, 716, 717, 0, 0, 0, + 718, 0, 719, 0, 720, 721, 722, 723, 724, 725, + 726, 727, 728, 729, 730, 731, 0, 732, 733, 734, + 735, 736, 737, 738, 0, 739, 740, 741, 742, 743, + 0, 0, 0, 744, 745, 746, 747, 748, 749, 750, + 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, + 761, 762, 763, 764, 933, 765, 766, 661, 662, 663, + 664, 665, 666, 667, 668, 0, 669, 670, 671, 672, + 673, 674, 675, 676, 677, 678, 679, 0, 0, 0, + 0, 0, 0, 680, 681, 682, 683, 684, 685, 686, + 687, 688, 689, 690, 691, 692, 693, 0, 0, 694, + 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 0, 705, 0, 706, 707, 708, 709, 710, 711, 712, + 713, 714, 715, 716, 717, 0, 0, 0, 718, 0, + 719, 0, 720, 721, 722, 723, 724, 725, 726, 727, + 728, 729, 730, 731, 0, 732, 733, 734, 735, 736, + 737, 738, 0, 739, 740, 741, 742, 743, 0, 0, + 0, 744, 745, 746, 747, 748, 749, 750, 751, 752, + 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, + 763, 764, 0, 765, 766, 7, 8, 9, 10, 0, + 11, 124, 0, 0, 0, 0, 0, 0, 41, 0, + 42, 43, 44, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 142, 143, 144, 145, 146, 147, 148, + 0, 0, 50, 170, 52, 0, 0, 125, 149, 126, + 127, 128, 45, 46, 0, 129, 18, 53, 54, 48, + 0, 0, 0, 0, 19, 130, 0, 0, 0, 0, + 58, 131, 132, 52, 0, 60, 0, 0, 23, 0, + 0, 0, 0, 0, 0, 0, 133, 134, 26, 0, + 27, 55, 0, 0, 28, 0, 0, 56, 57, 135, + 0, 0, 59, 0, 136, 456, 457, 458, 10, 0, + 459, 40, 0, 0, 0, 0, 0, 31, 0, 0, + 0, 32, 33, 0, 0, 34, 0, 35, 0, 0, + 0, 36, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 0, 161, 162, 163, 0, 41, 0, 42, + 43, 44, 45, 461, 0, 47, 462, 0, 0, 48, + 0, 0, 0, 0, 463, 49, 0, 0, 0, 0, + 0, 50, 51, 52, 0, 0, 0, 0, 464, 0, + 0, 0, 0, 0, 465, 0, 53, 54, 466, 0, + 467, 55, 0, 0, 468, 0, 0, 56, 57, 58, + 0, 0, 59, 0, 60, 7, 8, 9, 10, 0, + 11, 12, 0, 0, 0, 0, 0, 469, 0, 0, + 0, 470, 0, 0, 0, 471, 0, 472, 0, 0, + 0, 473, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 13, 0, 14, + 15, 16, 0, 0, 0, 17, 18, 0, 0, 0, + 0, 0, 0, 0, 19, 20, 0, 0, 0, 0, + 0, 21, 22, 0, 0, 0, 0, 0, 23, 0, + 0, 0, 0, 0, 0, 0, 24, 25, 26, 0, + 27, 0, 0, 0, 28, 7, 8, 9, 10, 29, + 11, 12, 0, 0, 30, 0, 0, 0, 41, 0, + 42, 43, 44, 0, 0, 0, 166, 31, 0, 0, + 0, 32, 33, 0, 0, 34, 167, 35, 0, 278, + 0, 36, 50, 168, 52, 0, 0, 13, 0, 14, + 15, 16, 0, 0, 0, 17, 18, 53, 54, 0, + 0, 0, 0, 0, 19, 20, 0, 0, 0, 0, + 58, 21, 22, 0, 0, 60, 0, 0, 23, 0, + 0, 0, 0, 0, 0, 0, 24, 25, 26, 0, + 27, 0, 0, 0, 28, 7, 8, 9, 10, 29, + 11, 12, 0, 0, 30, 0, 0, 0, 41, 404, + 42, 43, 44, 0, 0, 0, 0, 31, 0, 0, + 0, 32, 33, 0, 0, 34, 282, 35, 0, 0, + 0, 36, 50, 170, 52, 0, 0, 13, 0, 14, + 15, 16, 0, 0, 0, 17, 18, 53, 54, 0, + 0, 0, 0, 0, 19, 20, 0, 0, 0, 0, + 58, 21, 22, 0, 0, 60, 0, 0, 23, 0, + 0, 0, 0, 0, 0, 0, 24, 25, 26, 0, + 27, 0, 0, 0, 28, 7, 8, 9, 10, 29, + 11, 12, 0, 0, 30, 0, 0, 0, 0, 504, + 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, + 0, 32, 33, 0, 0, 34, 0, 35, 0, 0, + 0, 36, 0, 0, 0, 0, 0, 13, 0, 14, + 15, 16, 0, 0, 0, 17, 18, 0, 0, 0, + 0, 0, 0, 0, 19, 20, 0, 0, 0, 0, + 0, 21, 22, 0, 0, 0, 0, 0, 23, 0, + 0, 0, 0, 0, 0, 0, 24, 25, 26, 0, + 27, 0, 0, 0, 28, 7, 8, 9, 10, 29, + 11, 12, 0, 0, 30, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, + 0, 32, 33, 0, 0, 34, 0, 35, 0, 856, + 0, 36, 0, 0, 0, 0, 0, 13, 0, 14, + 15, 16, 0, 0, 0, 17, 18, 0, 0, 0, + 0, 0, 0, 0, 19, 20, 0, 0, 0, 0, + 0, 21, 22, 0, 0, 0, 0, 0, 23, 0, + 0, 0, 0, 0, 0, 0, 24, 25, 26, 0, + 27, 0, 0, 0, 28, 7, 8, 9, 10, 29, + 11, 12, 0, 0, 30, 0, 0, 0, 0, 871, + 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, + 0, 32, 33, 0, 0, 34, 0, 35, 0, 0, + 0, 36, 0, 0, 0, 0, 0, 13, 0, 14, + 15, 16, 0, 0, 0, 17, 18, 0, 0, 0, + 0, 0, 0, 0, 19, 20, 0, 0, 0, 0, + 0, 21, 22, 0, 0, 0, 0, 0, 23, 0, + 0, 0, 0, 0, 0, 0, 24, 25, 26, 0, + 27, 0, 0, 0, 28, 7, 8, 9, 10, 29, + 11, 12, 0, 0, 30, 0, 0, 0, 41, 0, + 42, 43, 44, 0, 0, 0, 166, 31, 0, 0, + 0, 32, 33, 0, 0, 34, 167, 35, 0, 963, + 0, 36, 50, 168, 52, 0, 0, 13, 0, 14, + 15, 16, 0, 0, 0, 17, 18, 53, 54, 0, + 0, 0, 0, 0, 19, 20, 0, 0, 0, 0, + 58, 21, 22, 0, 0, 60, 0, 0, 23, 0, + 294, 0, 0, 0, 0, 0, 24, 25, 26, 0, + 27, 0, 0, 0, 28, 0, 0, 0, 107, 29, + 0, 0, 0, 0, 30, 0, 0, 141, 142, 143, + 144, 145, 146, 147, 148, 0, 41, 31, 42, 43, + 44, 32, 33, 149, 0, 34, 0, 35, 0, 0, + 0, 36, 141, 142, 143, 144, 145, 146, 147, 148, + 50, 170, 52, 0, 0, 0, 0, 0, 149, 0, + 0, 0, 0, 0, 0, 53, 54, 0, 513, 514, + 515, 516, 517, 518, 519, 520, 0, 0, 58, 0, + 0, 0, 0, 60, 521, 0, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 534, 0, 0, + 0, 0, 0, 0, 0, 0, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 0, 161, 162, + 163, 535, 0, 0, 926, 0, 0, 0, 0, 0, + 0, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 0, 161, 162, 163, 207, 208, 0, 986, + 0, 0, 0, 536, 0, 0, 537, 0, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 0, + 549, 550, 0, 0, 551, 0, 0, 0, 0, 0, 0, 0, 209, 41, 0, 42, 43, 44, 45, 210, - 0, 47, 0, 0, 223, 48, 211, 212, 213, 0, + 0, 47, 0, 0, 0, 48, 211, 212, 213, 0, 0, 49, 0, 0, 0, 0, 214, 50, 51, 52, 0, 0, 215, 207, 208, 0, 216, 0, 0, 0, 217, 0, 53, 54, 0, 218, 0, 55, 0, 0, 0, 0, 0, 219, 57, 58, 0, 220, 59, 221, - 60, 141, 142, 143, 144, 145, 146, 147, 148, 209, - 41, 0, 42, 43, 44, 45, 306, 149, 47, 0, + 60, 0, 0, 0, 0, 222, 0, 0, 0, 209, + 41, 0, 42, 43, 44, 45, 210, 0, 47, 0, 0, 223, 48, 211, 212, 213, 0, 0, 49, 0, 0, 0, 0, 214, 50, 51, 52, 0, 0, 215, - 0, 0, 0, 216, 0, 0, 0, 217, 0, 53, + 207, 208, 0, 216, 0, 0, 0, 217, 0, 53, 54, 0, 218, 0, 55, 0, 0, 0, 0, 0, 219, 57, 58, 0, 220, 59, 221, 60, 141, 142, - 143, 144, 145, 146, 147, 148, 0, 0, 0, 0, - 0, 0, 0, 0, 149, 0, 0, 0, 223, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 347, 0, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 0, 161, 162, 163, 141, 142, 143, 144, 145, + 143, 144, 145, 146, 147, 148, 209, 41, 0, 42, + 43, 44, 45, 306, 149, 47, 0, 0, 223, 48, + 211, 212, 213, 0, 0, 49, 0, 0, 0, 0, + 214, 50, 51, 52, 0, 0, 215, 0, 0, 0, + 216, 0, 0, 0, 217, 0, 53, 54, 0, 218, + 0, 55, 0, 0, 0, 0, 0, 219, 57, 58, + 0, 220, 59, 221, 60, 141, 142, 143, 144, 145, 146, 147, 148, 0, 0, 0, 0, 0, 0, 0, - 0, 149, 141, 142, 143, 144, 145, 146, 147, 148, + 0, 149, 0, 0, 0, 223, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 347, 0, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 0, 161, + 162, 163, 141, 142, 143, 144, 145, 146, 147, 148, 0, 0, 0, 0, 0, 0, 0, 0, 149, 141, 142, 143, 144, 145, 146, 147, 148, 0, 0, 0, - 0, 0, 0, 0, 508, 149, 0, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 0, 161, - 162, 163, 624, 625, 626, 627, 628, 629, 630, 631, - 0, 0, 0, 0, 0, 0, 0, 0, 632, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 783, 0, 0, 0, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 0, 161, 162, 163, 919, - 0, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 0, 161, 162, 163, 0, 0, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 0, - 161, 162, 163, 886, 887, 888, 889, 890, 891, 892, - 893, 0, 0, 0, 0, 0, 0, 0, 0, 894, - 0, 633, 634, 635, 636, 637, 638, 639, 640, 641, - 642, 643, 0, 644, 645, 646, 886, 887, 888, 889, - 890, 891, 892, 893, 0, 0, 0, 0, 0, 0, - 0, 0, 894, 143, 144, 145, 146, 147, 148, 0, - 0, 0, 0, 0, 0, 0, 0, 149, 143, 144, + 0, 0, 0, 0, 0, 149, 141, 142, 143, 144, 145, 146, 147, 148, 0, 0, 0, 0, 0, 0, - 0, 0, 149, 888, 889, 890, 891, 892, 893, 0, - 0, 0, 0, 0, 0, 0, 0, 894, 0, 0, - 978, 0, 895, 896, 897, 898, 0, 0, 899, 900, - 901, 902, 903, 0, 904, 905, 906, 143, 144, 145, - 146, 147, 148, 0, 0, 0, 0, 0, 0, 0, - 0, 149, 0, 0, 0, 895, 896, 897, 898, 0, - 0, 899, 900, 901, 902, 903, 0, 904, 905, 906, - 0, 0, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 0, 161, 162, 163, 0, 0, 0, 153, 154, + 0, 509, 149, 0, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 0, 161, 162, 163, 627, + 628, 629, 630, 631, 632, 633, 634, 0, 0, 0, + 0, 0, 0, 0, 0, 635, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 786, 0, 0, + 0, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 0, 161, 162, 163, 924, 0, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 0, + 161, 162, 163, 0, 0, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 0, 161, 162, 163, - 0, 896, 897, 898, 0, 0, 899, 900, 901, 902, - 903, 0, 904, 905, 906, 888, 889, 890, 891, 892, - 893, 0, 0, 0, 294, 0, 0, 0, 0, 894, - 0, 888, 889, 890, 891, 892, 893, 0, 154, 155, - 156, 157, 158, 159, 160, 894, 161, 162, 163, 0, - 0, 0, 41, 0, 42, 43, 44, 0, 0, 0, - 41, 0, 42, 43, 44, 0, 0, 0, 0, 0, - 0, 890, 891, 892, 893, 0, 50, 170, 52, 0, - 0, 0, 0, 894, 50, 170, 52, -2, 0, 0, - 0, 53, 54, 0, 0, 0, 0, 0, 0, 53, - 54, 0, 0, 0, 58, 0, 0, 0, 0, 60, - 0, 0, 58, 0, 897, 898, 0, 60, 899, 900, - 901, 902, 903, 0, 904, 905, 906, 0, 0, 0, - 74, 898, 115, 0, 899, 900, 901, 902, 903, 0, - 904, 905, 906, 75, 0, 0, 0, 0, 76, 367, - 368, 77, 0, 0, 0, 0, 0, 0, 0, 78, - 79, 0, 80, 0, 0, 0, 81, 82, 83, 0, - 0, 0, 899, 900, 901, 902, 903, 84, 904, 905, - 906, 85, 0, 0, 0, 86, 41, 0, 42, 43, - 44, 369, 370, 0, 47, 0, 87, 0, 0, 0, - 0, 0, 0, 0, 49, 0, 40, 0, 0, 0, - 50, 51, 52, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 53, 54, 0, 0, 0, - 0, 41, 0, 42, 43, 44, 371, 0, 58, 0, - 0, 59, 41, 60, 42, 43, 44, 45, 46, 0, - 47, 0, 0, 0, 48, 50, 170, 52, 0, 0, + 890, 891, 892, 893, 894, 895, 896, 897, 0, 0, + 0, 0, 0, 0, 0, 0, 898, 0, 636, 637, + 638, 639, 640, 641, 642, 643, 644, 645, 646, 0, + 647, 648, 649, 890, 891, 892, 893, 894, 895, 896, + 897, 0, 0, 0, 0, 0, 0, 0, 0, 898, + 891, 892, 893, 894, 895, 896, 897, 0, 0, 0, + 0, 0, 0, 0, 0, 898, 143, 144, 145, 146, + 147, 148, 0, 0, 0, 0, 0, 0, 0, 0, + 149, 143, 144, 145, 146, 147, 148, 0, 0, 0, + 0, 0, 0, 0, 0, 149, 0, 984, 0, 899, + 900, 901, 902, 0, 0, 903, 904, 905, 906, 907, + 0, 908, 909, 910, 143, 144, 145, 146, 147, 148, + 0, 0, 0, 0, 0, 0, 0, 0, 149, 0, + 0, 0, 899, 900, 901, 902, 0, 0, 903, 904, + 905, 906, 907, 0, 908, 909, 910, 0, 0, 900, + 901, 902, 0, 0, 903, 904, 905, 906, 907, 0, + 908, 909, 910, 0, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 0, 161, 162, 163, 0, 0, + 0, 153, 154, 155, 156, 157, 158, 159, 160, 0, + 161, 162, 163, 892, 893, 894, 895, 896, 897, 0, + 0, 0, 0, 0, 0, 0, 0, 898, 892, 893, + 894, 895, 896, 897, 0, 154, 155, 156, 157, 158, + 159, 160, 898, 161, 162, 163, 892, 893, 894, 895, + 896, 897, 0, 0, 0, 74, 0, 0, 0, 0, + 898, 0, 0, 0, 0, 0, 0, 0, 75, 0, + 0, 0, 0, 76, 0, 0, 77, 0, 0, 0, + 0, 0, 0, 0, 78, 79, 0, 80, 0, 0, + 0, 81, 82, 83, 0, 0, 0, 0, -2, 0, + 0, 0, 84, 0, 0, 0, 85, 0, 0, 0, + 86, 0, 901, 902, 0, 0, 903, 904, 905, 906, + 907, 87, 908, 909, 910, 0, 0, 0, 902, 0, + 0, 903, 904, 905, 906, 907, 0, 908, 909, 910, + 365, 74, 0, 0, 0, 0, 0, 0, 0, 903, + 904, 905, 906, 907, 75, 908, 909, 910, 0, 76, + 367, 368, 77, 0, 0, 0, 0, 0, 0, 0, + 78, 79, 0, 80, 0, 0, 0, 81, 82, 83, + 0, 0, 0, 0, 0, 0, 0, 0, 84, 0, + 0, 0, 85, 0, 0, 0, 86, 41, 0, 42, + 43, 44, 369, 370, 0, 47, 0, 87, 0, 0, + 0, 0, 0, 0, 0, 49, 367, 368, 0, 0, + 0, 50, 51, 52, 0, 0, 40, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 53, 54, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 371, 0, 58, + 0, 0, 59, 41, 60, 42, 43, 44, 0, 0, + 0, 47, 41, 0, 42, 43, 44, 45, 46, 0, + 47, 49, 0, 0, 48, 0, 0, 50, 51, 52, 49, 0, 40, 0, 0, 0, 50, 51, 52, 0, - 53, 54, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 53, 54, 58, 0, 0, 55, 0, 60, 0, - 0, 0, 56, 57, 58, 0, 0, 59, 41, 60, + 0, 0, 53, 54, 0, 0, 0, 0, 0, 0, + 0, 53, 54, 0, 0, 58, 55, 0, 59, 0, + 60, 0, 56, 57, 58, 0, 0, 59, 41, 60, 42, 43, 44, 45, 314, 0, 47, 0, 0, 0, - 48, 118, 0, 0, 0, 0, 49, 0, 108, 0, + 48, 0, 0, 0, 0, 0, 49, 0, 40, 0, 0, 0, 50, 51, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 54, 0, - 0, 0, 55, 0, 0, 0, 0, 0, 56, 57, + 0, 0, 55, 41, 0, 42, 43, 44, 56, 57, 58, 0, 0, 59, 41, 60, 42, 43, 44, 45, - 0, 0, 47, 0, 0, 0, 48, 0, 0, 0, - 0, 0, 49, 0, 40, 0, 0, 0, 50, 51, - 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 53, 54, 0, 0, 0, 55, 0, - 0, 0, 0, 0, 109, 57, 58, 0, 0, 59, + 0, 0, 47, 0, 0, 0, 48, 50, 170, 52, + 0, 0, 49, 0, 108, 0, 0, 0, 50, 51, + 52, 0, 53, 54, 0, 0, 0, 0, 0, 0, + 0, 610, 0, 53, 54, 58, 0, 0, 55, 0, + 60, 0, 0, 0, 56, 57, 58, 0, 0, 59, 41, 60, 42, 43, 44, 45, 0, 0, 47, 0, - 0, 0, 48, 0, 0, 0, 0, 0, 49, 0, - 0, 0, 0, 0, 50, 51, 52, 0, 0, 0, - 0, 0, 0, 0, 0, 74, 0, 0, 0, 53, - 54, 0, 0, 0, 55, 0, 0, 0, 75, 0, - 56, 57, 58, 76, 0, 59, 77, 60, 0, 0, - 0, 0, 74, 0, 78, 79, 0, 80, 0, 0, - 0, 81, 82, 83, 0, 75, 0, 0, 0, 0, - 76, 0, 84, 77, 0, 0, 85, 0, 0, 74, - 86, 78, 79, 0, 80, 0, 0, 0, 81, 82, - 83, 87, 75, 0, 0, 0, 0, 76, 0, 84, - 77, 0, 0, 85, 0, 0, 74, 86, 78, 79, - 365, 80, 0, 0, 0, 81, 82, 83, 87, 75, - 0, 0, 0, 0, 76, 0, 84, 77, 0, 0, - 85, 0, 0, 74, 86, 78, 79, 426, 80, 0, - 0, 0, 81, 82, 83, 87, 75, 0, 0, 0, - 0, 76, 0, 84, 77, 0, 0, 85, 0, 0, - 74, 86, 78, 79, 495, 80, 0, 0, 0, 81, - 82, 83, 87, 75, 0, 0, 0, 0, 76, 0, - 84, 77, 0, 0, 85, 0, 0, 0, 86, 78, - 79, 585, 80, 0, 0, 0, 81, 82, 83, 87, - 0, 0, 0, 0, 0, 0, 0, 84, 0, 0, - 0, 85, 0, 0, 0, 86, 0, 0, 792 + 0, 0, 48, 114, 0, 0, 0, 0, 49, 0, + 40, 0, 0, 0, 50, 51, 52, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, + 54, 0, 0, 0, 55, 41, 0, 42, 43, 44, + 109, 57, 58, 0, 0, 59, 41, 60, 42, 43, + 44, 45, 0, 0, 47, 0, 0, 0, 48, 50, + 170, 52, 0, 0, 49, 0, 0, 0, 0, 0, + 50, 51, 52, 0, 53, 54, 0, 0, 0, 0, + 0, 74, 0, 0, 0, 53, 54, 58, 0, 0, + 55, 0, 60, 0, 75, 0, 56, 57, 58, 76, + 0, 59, 77, 60, 0, 0, 0, 0, 74, 0, + 78, 79, 0, 80, 0, 115, 0, 81, 82, 83, + 0, 75, 0, 0, 0, 0, 76, 0, 84, 77, + 0, 0, 85, 0, 0, 74, 86, 78, 79, 0, + 80, 0, 0, 0, 81, 82, 83, 87, 75, 0, + 0, 0, 0, 76, 0, 84, 77, 0, 0, 85, + 0, 0, 74, 86, 78, 79, 426, 80, 0, 0, + 0, 81, 82, 83, 87, 75, 0, 0, 0, 0, + 76, 0, 84, 77, 0, 0, 85, 0, 0, 0, + 86, 78, 79, 496, 80, 0, 0, 0, 81, 82, + 83, 87, 0, 0, 0, 0, 0, 0, 0, 84, + 0, 0, 41, 85, 42, 43, 44, 86, 0, 0, + 586, 0, 0, 0, 0, 0, 0, 0, 87, 0, + 0, 0, 0, 0, 0, 0, 50, 170, 52, 0, + 0, 0, 74, 0, 0, 0, 0, 795, 0, 0, + 0, 53, 54, 0, 0, 75, 0, 0, 0, 0, + 76, 0, 0, 77, 58, 0, 0, 0, 0, 60, + 0, 78, 79, 0, 80, 0, 0, 0, 81, 82, + 83, 0, 0, 0, 0, 0, 0, 0, 0, 84, + 0, 0, 118, 85, 0, 0, 0, 86 }; #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-570))) + (!!((Yystate) == (-646))) #define yytable_value_is_error(Yytable_value) \ YYID (0) static const yytype_int16 yycheck[] = { - 1, 10, 46, 503, 5, 99, 100, 101, 102, 103, - 84, 105, 106, 107, 384, 35, 195, 212, 0, 297, - 114, 115, 8, 9, 118, 119, 84, 85, 12, 494, - 125, 600, 8, 9, 380, 29, 125, 383, 91, 385, - 35, 125, 23, 91, 108, 307, 79, 80, 81, 91, - 8, 9, 422, 8, 9, 8, 9, 125, 108, 2, - 61, 407, 408, 127, 410, 411, 412, 413, 386, 23, - 125, 455, 390, 391, 392, 393, 394, 127, 29, 79, - 80, 81, 111, 84, 85, 108, 108, 111, 31, 32, - 33, 34, 23, 36, 559, 107, 650, 126, 110, 99, - 107, 485, 126, 110, 127, 127, 438, 453, 125, 104, - 91, 120, 116, 445, 446, 447, 448, 449, 450, 298, - 75, 116, 117, 125, 108, 108, 496, 459, 111, 108, - 124, 125, 126, 125, 110, 481, 601, 91, 317, 417, - 108, 127, 162, 108, 476, 428, 429, 200, 127, 107, - 203, 245, 200, 415, 107, 203, 77, 116, 200, 127, - 91, 203, 127, 509, 165, 125, 210, 8, 9, 487, - 91, 108, 216, 124, 125, 126, 108, 178, 179, 180, - 181, 182, 183, 29, 125, 186, 381, 366, 6, 384, - 127, 192, 4, 455, 195, 127, 8, 9, 141, 142, + 1, 504, 84, 85, 5, 46, 465, 84, 653, 384, + 297, 91, 23, 12, 212, 35, 51, 455, 53, 54, + 23, 10, 35, 58, 99, 100, 101, 102, 103, 125, + 105, 106, 107, 195, 8, 9, 0, 8, 9, 114, + 115, 495, 438, 118, 119, 116, 108, 422, 486, 445, + 446, 447, 448, 449, 450, 307, 165, 8, 9, 108, + 61, 111, 125, 459, 91, 127, 428, 429, 108, 178, + 179, 180, 181, 182, 183, 111, 126, 108, 127, 77, + 91, 477, 108, 84, 85, 8, 9, 127, 91, 108, + 126, 104, 125, 91, 8, 9, 127, 132, 133, 134, + 135, 127, 108, 116, 117, 6, 560, 386, 127, 108, + 91, 390, 391, 392, 393, 394, 125, 79, 80, 81, + 200, 127, 497, 203, 75, 104, 105, 106, 108, 380, + 417, 120, 383, 168, 385, 170, 298, 99, 23, 110, + 785, 125, 162, 125, 8, 9, 10, 127, 602, 125, + 14, 29, 187, 127, 110, 317, 407, 408, 125, 410, + 411, 412, 413, 415, 165, 125, 625, 125, 606, 210, + 245, 609, 125, 200, 283, 216, 203, 178, 179, 180, + 181, 182, 183, 381, 107, 186, 384, 51, 626, 200, + 125, 192, 203, 107, 195, 116, 29, 200, 594, 56, + 203, 108, 453, 455, 366, 125, 91, 125, 570, 488, + 67, 68, 574, 107, 576, 611, 578, 579, 580, 200, + 127, 866, 203, 80, 422, 125, 8, 9, 10, 86, + 29, 482, 14, 107, 486, 125, 110, 101, 8, 9, + 10, 108, 8, 9, 14, 108, 124, 125, 126, 108, + 110, 115, 109, 108, 111, 112, 120, 126, 127, 510, + 127, 125, 297, 110, 127, 306, 110, 465, 127, 51, + 432, 4, 127, 314, 108, 8, 9, 111, 125, 126, + 127, 51, 283, 658, 107, 116, 931, 110, 110, 290, + 935, 124, 125, 126, 305, 110, 125, 298, 299, 497, + 125, 126, 303, 107, 305, 109, 110, 111, 78, 127, + 125, 126, 127, 120, 315, 200, 317, 126, 203, 101, + 110, 120, 121, 122, 8, 124, 125, 126, 10, 107, + 975, 101, 14, 115, 979, 8, 9, 194, 120, 116, + 381, 125, 126, 384, 125, 115, 125, 992, 205, 6, + 120, 79, 80, 81, 606, 125, 1001, 358, 440, 370, + 107, 108, 219, 440, 109, 366, 223, 127, 871, 51, + 125, 126, 229, 230, 375, 127, 29, 50, 108, 2, + 381, 422, 417, 384, 822, 386, 127, 29, 127, 390, + 391, 392, 393, 394, 126, 127, 397, 117, 418, 400, + 420, 127, 127, 404, 127, 780, 127, 110, 31, 32, + 33, 34, 127, 36, 415, 127, 89, 127, 127, 101, + 461, 422, 95, 96, 465, 821, 99, 625, 503, 117, + 441, 432, 127, 115, 291, 436, 127, 438, 120, 440, + 108, 128, 108, 125, 445, 446, 447, 448, 449, 450, + 451, 125, 472, 464, 455, 125, 497, 107, 459, 472, + 658, 464, 601, 127, 321, 118, 119, 120, 121, 122, + 125, 124, 125, 126, 8, 9, 477, 915, 120, 121, + 122, 125, 124, 125, 126, 486, 107, 488, 863, 130, + 108, 8, 117, 110, 495, 108, 497, 128, 120, 125, + 120, 120, 108, 504, 879, 90, 111, 364, 125, 126, + 127, 111, 369, 120, 371, 116, 50, 125, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 200, - 163, 605, 203, 485, 608, 108, 108, 422, 782, 107, - 125, 109, 110, 111, 125, 804, 805, 806, 807, 623, - 809, 165, 126, 127, 127, 127, 200, 125, 126, 203, - 125, 126, 108, 432, 178, 179, 180, 181, 182, 183, - 125, 593, 306, 125, 108, 8, 9, 8, 9, 200, - 314, 127, 203, 107, 120, 121, 122, 609, 124, 125, - 126, 110, 283, 127, 127, 655, 569, 107, 108, 290, - 573, 110, 575, 125, 577, 578, 579, 298, 299, 125, - 126, 496, 303, 125, 305, 126, 127, 50, 862, 50, - 110, 254, 255, 110, 315, 116, 317, 886, 887, 888, - 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, - 899, 900, 901, 902, 903, 904, 125, 381, 125, 126, - 384, 120, 126, 605, 110, 110, 89, 290, 89, 8, - 107, 305, 95, 96, 95, 96, 99, 358, 99, 283, - 125, 126, 127, 116, 125, 366, 440, 867, 937, 125, - 6, 110, 926, 109, 375, 127, 930, 108, 422, 322, - 381, 127, 440, 384, 128, 386, 125, 126, 127, 390, - 391, 392, 393, 394, 127, 110, 397, 127, 418, 400, - 420, 127, 127, 404, 347, 117, 127, 777, 502, 978, - 125, 126, 127, 127, 415, 969, 370, 461, 127, 973, - 127, 422, 127, 127, 8, 9, 10, 622, 117, 127, - 14, 432, 986, 127, 818, 436, 110, 438, 108, 440, - 108, 995, 125, 125, 445, 446, 447, 448, 449, 450, - 451, 471, 496, 107, 455, 109, 110, 111, 459, 10, - 655, 404, 127, 14, 8, 9, 10, 51, 125, 815, - 14, 104, 105, 106, 125, 476, 471, 130, 8, 9, - 107, 107, 425, 464, 485, 108, 487, 441, 8, 859, - 120, 108, 56, 494, 78, 496, 427, 428, 429, 117, - 51, 120, 503, 67, 68, 875, 128, 51, 120, 125, - 464, 108, 858, 111, 8, 9, 80, 101, 111, 90, - 50, 120, 86, 125, 116, 468, 469, 470, 116, 472, - 126, 115, 127, 464, 128, 108, 120, 127, 127, 130, - 108, 125, 127, 8, 109, 109, 126, 111, 112, 108, - 101, 494, 127, 923, 51, 125, 50, 101, 559, 89, - 503, 4, 908, 125, 115, 95, 96, 108, 125, 120, - 130, 115, 127, 127, 125, 128, 120, 127, 622, 580, - 128, 125, 777, 130, 127, 116, 587, 51, 125, 53, - 54, 586, 593, 588, 58, 89, 130, 967, 116, 108, - 601, 95, 96, 117, 605, 99, 127, 608, 609, 117, - 125, 655, 125, 109, 557, 610, 559, 612, 613, 620, - 127, 127, 623, 29, 109, 645, 127, 127, 127, 127, - 194, 8, 9, 10, 125, 125, 128, 14, 569, 117, - 127, 205, 573, 117, 575, 127, 577, 578, 579, 650, - 125, 127, 125, 501, 655, 219, 127, 192, 601, 223, - 779, 858, 815, 908, 859, 229, 230, 203, 132, 133, - 134, 135, 440, 29, 51, 370, 587, 441, 622, 203, - 875, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 116, + 163, 127, 427, 428, 429, 107, 29, 109, 110, 111, + 128, 127, 126, 928, 108, 89, 127, 130, 108, 560, + 127, 95, 96, 125, 126, 99, 8, 818, 109, 610, + 427, 428, 429, 126, 587, 108, 589, 125, 127, 464, + 581, 51, 780, 4, 625, 125, 108, 588, 130, 3, + 4, 5, 6, 594, 8, 127, 125, 128, 973, 612, + 127, 602, 615, 616, 128, 606, 127, 130, 609, 127, + 611, 862, 116, 125, 116, 130, 108, 658, 117, 127, + 117, 127, 623, 109, 125, 626, 117, 127, 648, 109, + 125, 254, 255, 127, 127, 118, 119, 120, 121, 122, + 54, 124, 125, 126, 125, 502, 125, 192, 62, 127, + 8, 9, 653, 128, 127, 127, 117, 658, 127, 125, + 125, 912, 502, 127, 127, 863, 782, 290, 807, 808, + 809, 810, 86, 812, 88, 862, 818, 912, 92, 440, + 370, 879, 441, 203, 588, 570, 744, 19, 20, 574, + 203, 576, 50, 578, 579, 580, 464, 29, 433, 322, + 557, 115, -1, 501, -1, 119, 120, -1, -1, 123, + -1, 125, 569, 570, 571, 129, -1, 574, -1, 576, + -1, 578, 579, 580, 347, -1, -1, -1, 585, -1, + 928, 89, 17, 18, 19, 20, -1, 95, 96, 780, + -1, 99, -1, 744, 29, -1, -1, -1, -1, 824, + -1, 890, 891, 892, 893, 894, 895, 896, 897, 898, + 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, + -1, -1, -1, -1, -1, 973, -1, -1, -1, 780, + -1, 404, -1, -1, 785, -1, 118, 119, 120, 121, + 122, 811, 124, 125, 126, -1, -1, -1, 811, -1, + -1, -1, 425, 942, -1, -1, -1, 807, 808, 809, + 810, -1, 812, 15, 16, 17, 18, 19, 20, -1, + 821, 822, 863, -1, -1, -1, -1, 29, -1, -1, + -1, 116, 117, 118, 119, 120, 121, 122, 879, 124, + 125, 126, -1, -1, -1, 984, 469, 470, 471, -1, + 473, -1, 15, 16, 17, 18, 19, 20, -1, -1, + -1, -1, 863, -1, -1, 866, 29, 880, 881, 882, + 871, -1, 495, -1, -1, -1, -1, -1, 879, 8, + 9, 504, -1, -1, -1, -1, -1, 928, -1, 909, + 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, + 900, 901, 902, 903, 904, 905, 906, 907, 908, -1, + -1, 113, 114, 115, 915, -1, 118, 119, 120, 121, + 122, 50, 124, 125, 126, -1, -1, 928, -1, -1, + 931, -1, 973, -1, 935, 558, -1, 560, -1, -1, + -1, -1, 942, -1, -1, -1, -1, -1, 968, -1, + 970, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 89, 124, 125, 126, -1, -1, 95, 96, -1, -1, + -1, -1, 973, -1, 975, 995, 996, -1, 979, 602, + -1, -1, -1, -1, 984, -1, -1, 3, 4, 5, + 6, 992, 8, 9, -1, -1, 12, -1, -1, -1, + 1001, -1, -1, -1, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, - 643, 644, 464, 646, 168, 433, 170, 500, 3, 4, - 5, 6, -1, 8, 120, 121, 122, -1, 124, 125, - 126, -1, 741, 187, 101, -1, 820, 291, 923, -1, - -1, -1, -1, 777, -1, -1, -1, -1, 115, -1, - 741, -1, -1, 120, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 804, 805, 806, 807, 321, 809, 54, - -1, -1, 118, 119, 120, 121, 122, 62, 124, 125, - 126, -1, 967, -1, -1, -1, 777, -1, -1, -1, - -1, 782, -1, -1, -1, -1, -1, -1, 808, -1, - -1, 86, -1, 88, -1, -1, -1, 92, -1, -1, - 364, -1, -1, -1, -1, 369, -1, 371, -1, 17, - 18, 19, 20, 808, -1, 859, -1, 818, -1, -1, - 115, 29, -1, -1, 119, 120, -1, 770, 123, -1, - 125, 875, -1, 297, 129, 886, 887, 888, 889, 890, - 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, - 901, 902, 903, 904, -1, -1, -1, -1, 859, 29, - -1, 862, -1, 427, 428, 429, 867, -1, -1, -1, - -1, -1, -1, 816, 875, -1, -1, -1, -1, 923, - 823, 876, 877, 878, -1, 905, 937, -1, -1, -1, - -1, -1, 15, 16, 17, 18, 19, 20, -1, -1, - -1, -1, -1, -1, -1, -1, 29, -1, 116, 117, - 118, 119, 120, 121, 122, -1, 124, 125, 126, -1, - -1, -1, 923, 967, 867, 926, -1, 978, -1, 930, - -1, -1, -1, -1, -1, -1, -1, 501, -1, -1, - -1, -1, 962, -1, 964, -1, -1, -1, 118, 119, - 120, 121, 122, 417, 124, 125, 126, -1, -1, -1, - -1, -1, -1, 906, -1, -1, 967, -1, 969, 989, - 990, -1, 973, -1, -1, -1, 919, -1, -1, -1, - -1, -1, -1, -1, -1, 986, -1, -1, -1, -1, - -1, -1, 556, -1, 995, 118, 119, 120, 121, 122, - -1, 124, 125, 126, 568, 569, 570, -1, -1, 573, - -1, 575, -1, 577, 578, 579, -1, -1, -1, -1, - 584, 3, 4, 5, 6, 7, 8, 9, 10, -1, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, -1, -1, -1, -1, -1, -1, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, -1, -1, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, -1, 57, -1, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, -1, - -1, -1, 74, -1, 76, -1, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, - 92, 93, 94, 95, 96, 97, -1, 99, 100, 101, - 102, 103, -1, -1, -1, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 3, - 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, + 643, 644, 645, 646, 647, -1, 649, -1, -1, 45, + -1, 47, 48, 49, 50, 51, -1, 53, 54, -1, + -1, 57, -1, -1, -1, -1, 62, 63, -1, -1, + -1, -1, -1, 69, 70, 71, -1, -1, -1, -1, + 76, -1, -1, -1, -1, -1, 82, -1, 84, 85, + 86, -1, 88, 89, -1, -1, 92, -1, -1, 95, + 96, 97, -1, -1, 100, -1, 102, 3, 4, 5, + 6, -1, 8, 9, -1, -1, 12, -1, -1, 115, + -1, -1, -1, 119, -1, -1, -1, 123, -1, 125, + -1, -1, -1, 129, 971, -1, -1, -1, -1, -1, + 13, 14, 15, 16, 17, 18, 19, 20, -1, 45, + -1, 47, 48, 49, 50, 51, 29, 53, 54, 19, + 20, 57, -1, -1, -1, -1, 62, 63, -1, 29, + 773, -1, -1, 69, 70, 71, -1, -1, -1, -1, + 76, -1, 17, 18, 19, 20, 82, -1, 84, 85, + 86, -1, 88, 89, 29, -1, 92, -1, -1, 95, + 96, 97, -1, -1, 100, -1, 102, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 819, -1, -1, 115, + -1, -1, -1, 119, 827, -1, -1, 123, -1, 125, + -1, -1, -1, 129, -1, -1, -1, -1, -1, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + -1, 124, 125, 126, -1, -1, -1, 130, 118, 119, + 120, 121, 122, -1, 124, 125, 126, -1, 871, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 118, 119, 120, 121, 122, -1, 124, + 125, 126, -1, -1, -1, -1, -1, -1, -1, 3, + 4, 5, 6, 7, 8, 9, 10, 910, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, -1, - -1, -1, -1, -1, -1, 29, 30, 31, 32, 33, + -1, 924, -1, -1, -1, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, -1, -1, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, -1, 57, -1, 59, 60, 61, 62, 63, @@ -2097,249 +2132,252 @@ static const yytype_int16 yycheck[] = 94, 95, 96, 97, -1, 99, 100, 101, 102, 103, -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, -1, 129, 130, 3, 4, 5, - 6, -1, 8, 9, -1, -1, -1, -1, -1, -1, - 45, -1, 47, 48, 49, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, - 19, 20, -1, -1, 69, 70, 71, -1, -1, 45, - 29, 47, 48, 49, 50, 51, -1, 53, 54, 84, - 85, 57, -1, -1, -1, -1, 62, 63, -1, -1, - -1, -1, 97, 69, 70, 71, -1, 102, -1, -1, - 76, -1, -1, -1, -1, -1, -1, -1, 84, 85, - 86, -1, 88, 89, -1, -1, 92, -1, -1, 95, - 96, 97, -1, -1, 100, -1, 102, 3, 4, 5, - 6, -1, 8, 9, -1, -1, 12, -1, -1, 115, - -1, -1, -1, 119, 120, -1, -1, 123, -1, 125, - -1, 965, -1, 129, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, -1, 124, 125, 126, -1, 45, - -1, 47, 48, 49, 50, 51, -1, 53, 54, -1, - -1, 57, -1, -1, -1, -1, 62, 63, -1, -1, - -1, -1, -1, 69, 70, 71, -1, -1, -1, -1, - 76, -1, -1, -1, -1, -1, -1, -1, 84, 85, - 86, -1, 88, 89, -1, -1, 92, -1, -1, 95, - 96, 97, -1, -1, 100, -1, 102, 3, 4, 5, - 6, -1, 8, 9, -1, -1, 12, -1, -1, 115, - -1, -1, -1, 119, -1, -1, -1, 123, -1, 125, - -1, -1, -1, 129, -1, 14, 15, 16, 17, 18, - 19, 20, -1, -1, -1, -1, -1, -1, -1, 45, - 29, 47, 48, 49, 50, 51, -1, 53, 54, -1, - -1, 57, -1, -1, -1, -1, 62, 63, -1, -1, - -1, -1, -1, 69, 70, 71, 19, 20, -1, -1, - 76, -1, -1, -1, -1, -1, 29, -1, 84, 85, - 86, -1, 88, 89, -1, -1, 92, -1, -1, 95, - 96, 97, -1, -1, 100, -1, 102, 3, 4, 5, - 6, -1, 8, 9, -1, 19, 20, -1, -1, 115, - -1, -1, -1, 119, -1, 29, -1, 123, -1, 125, - -1, -1, -1, 129, 113, 114, 115, -1, -1, 118, - 119, 120, 121, 122, -1, 124, 125, 126, -1, 45, - -1, 47, 48, 49, -1, -1, -1, 53, 54, -1, - -1, -1, -1, -1, -1, -1, 62, 63, -1, -1, - -1, -1, -1, 69, 70, 118, 119, 120, 121, 122, - 76, 124, 125, 126, -1, -1, -1, -1, 84, 85, - 86, -1, 88, -1, -1, -1, 92, 3, 4, 5, - 6, 97, 8, 9, -1, -1, 102, -1, -1, -1, - -1, -1, -1, -1, 118, 119, 120, 121, 122, 115, - 124, 125, 126, 119, 120, -1, -1, 123, -1, 125, - -1, 127, -1, 129, -1, -1, -1, -1, -1, 45, - -1, 47, 48, 49, -1, -1, -1, 53, 54, -1, - -1, -1, -1, -1, -1, -1, 62, 63, -1, -1, - -1, -1, -1, 69, 70, -1, -1, -1, -1, -1, - 76, -1, -1, -1, -1, -1, -1, -1, 84, 85, - 86, -1, 88, -1, -1, -1, 92, 3, 4, 5, - 6, 97, 8, 9, -1, -1, 102, -1, -1, -1, - 45, 107, 47, 48, 49, -1, -1, -1, 53, 115, - -1, -1, -1, 119, 120, -1, -1, 123, 63, 125, - -1, -1, -1, 129, 69, 70, 71, -1, -1, 45, - -1, 47, 48, 49, -1, -1, -1, 53, 54, 84, - 85, -1, -1, -1, -1, -1, 62, 63, -1, -1, - -1, -1, 97, 69, 70, -1, -1, 102, -1, -1, - 76, -1, -1, -1, -1, -1, -1, -1, 84, 85, - 86, -1, 88, -1, -1, -1, 92, 3, 4, 5, - 6, 97, 8, 9, -1, -1, 102, -1, -1, -1, - 45, 107, 47, 48, 49, -1, -1, -1, -1, 115, - -1, -1, -1, 119, 120, -1, -1, 123, 63, 125, - -1, -1, -1, 129, 69, 70, 71, -1, -1, 45, - -1, 47, 48, 49, -1, -1, -1, 53, 54, 84, - 85, -1, -1, -1, -1, -1, 62, 63, -1, -1, - -1, -1, 97, 69, 70, -1, -1, 102, -1, -1, - 76, -1, -1, -1, -1, -1, -1, -1, 84, 85, - 86, -1, 88, -1, -1, -1, 92, 3, 4, 5, - 6, 97, 8, 9, -1, -1, 102, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 115, - -1, -1, -1, 119, 120, -1, -1, 123, -1, 125, - -1, 127, -1, 129, -1, -1, -1, -1, -1, 45, - -1, 47, 48, 49, -1, -1, -1, 53, 54, -1, - -1, -1, -1, -1, -1, -1, 62, 63, -1, -1, - -1, -1, -1, 69, 70, -1, -1, -1, -1, -1, - 76, -1, -1, -1, -1, -1, -1, -1, 84, 85, - 86, -1, 88, -1, -1, -1, 92, 3, 4, 5, - 6, 97, 8, 9, -1, -1, 102, -1, -1, -1, - -1, 107, -1, -1, -1, -1, -1, -1, -1, 115, - -1, -1, -1, 119, 120, -1, -1, 123, -1, 125, - -1, -1, -1, 129, -1, -1, -1, -1, -1, 45, - -1, 47, 48, 49, -1, -1, -1, 53, 54, -1, - -1, -1, -1, -1, -1, -1, 62, 63, -1, -1, - -1, -1, -1, 69, 70, -1, -1, -1, -1, -1, - 76, -1, -1, -1, -1, -1, -1, -1, 84, 85, - 86, -1, 88, -1, -1, -1, 92, 3, 4, 5, - 6, 97, 8, 9, -1, -1, 102, -1, -1, -1, - 45, -1, 47, 48, 49, -1, -1, -1, 53, 115, - -1, -1, -1, 119, 120, -1, -1, 123, 63, 125, - -1, 127, -1, 129, 69, 70, 71, -1, -1, 45, - -1, 47, 48, 49, -1, -1, -1, 53, 54, 84, - 85, -1, -1, -1, -1, -1, 62, 63, -1, -1, - -1, -1, 97, 69, 70, -1, -1, 102, -1, -1, - 76, 15, 16, 17, 18, 19, 20, -1, 84, 85, - 86, -1, 88, -1, -1, 29, 92, -1, -1, -1, - 125, 97, -1, -1, -1, -1, 102, -1, -1, 13, - 14, 15, 16, 17, 18, 19, 20, -1, -1, 115, - -1, -1, -1, 119, 120, 29, -1, 123, -1, 125, - -1, -1, -1, 129, 13, 14, 15, 16, 17, 18, - 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, - 29, -1, -1, 13, 14, 15, 16, 17, 18, 19, - 20, -1, -1, -1, -1, -1, -1, -1, -1, 29, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, -1, - 124, 125, 126, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, -1, - 124, 125, 126, -1, -1, -1, 130, -1, -1, -1, - -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, -1, 124, 125, 126, -1, -1, - -1, 130, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, -1, 124, 125, 126, 8, 9, -1, - 130, 13, 14, 15, 16, 17, 18, 19, 20, -1, - -1, -1, -1, -1, -1, -1, -1, 29, -1, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, -1, -1, -1, 45, -1, 47, 48, 49, -1, - 52, -1, 53, 45, -1, 47, 48, 49, -1, -1, - -1, -1, 63, -1, -1, -1, -1, -1, 69, 70, - 71, -1, -1, -1, 76, -1, -1, 69, 70, 71, - -1, -1, -1, 84, 85, -1, -1, -1, -1, 8, - 9, -1, 84, 85, -1, -1, 97, -1, -1, 100, - -1, 102, -1, -1, -1, 97, 108, -1, -1, 111, - 102, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, -1, 125, 126, 44, 45, 129, 47, 48, - 49, 50, 51, 125, 53, -1, -1, -1, 57, 58, - 59, 60, -1, -1, 63, -1, -1, -1, -1, 68, - 69, 70, 71, -1, -1, 74, 8, 9, -1, 78, - -1, -1, -1, 82, -1, 84, 85, -1, 87, -1, - 89, -1, -1, -1, -1, -1, 95, 96, 97, -1, - 99, 100, 101, 102, -1, -1, -1, -1, 107, -1, + 124, 125, 126, 127, 128, 129, 130, 3, 4, 5, + 6, 7, 8, 9, 10, -1, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, -1, -1, -1, + -1, -1, -1, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, -1, -1, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + -1, 57, -1, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, -1, -1, -1, 74, -1, + 76, -1, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, + 96, 97, -1, 99, 100, 101, 102, 103, -1, -1, + -1, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, -1, 129, 130, 3, 4, 5, 6, -1, + 8, 9, -1, -1, -1, -1, -1, -1, 45, -1, + 47, 48, 49, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, + -1, -1, 69, 70, 71, -1, -1, 45, 29, 47, + 48, 49, 50, 51, -1, 53, 54, 84, 85, 57, + -1, -1, -1, -1, 62, 63, -1, -1, -1, -1, + 97, 69, 70, 71, -1, 102, -1, -1, 76, -1, + -1, -1, -1, -1, -1, -1, 84, 85, 86, -1, + 88, 89, -1, -1, 92, -1, -1, 95, 96, 97, + -1, -1, 100, -1, 102, 3, 4, 5, 6, -1, + 8, 9, -1, -1, -1, -1, -1, 115, -1, -1, + -1, 119, 120, -1, -1, 123, -1, 125, -1, -1, + -1, 129, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, -1, 124, 125, 126, -1, 45, -1, 47, + 48, 49, 50, 51, -1, 53, 54, -1, -1, 57, + -1, -1, -1, -1, 62, 63, -1, -1, -1, -1, + -1, 69, 70, 71, -1, -1, -1, -1, 76, -1, + -1, -1, -1, -1, 82, -1, 84, 85, 86, -1, + 88, 89, -1, -1, 92, -1, -1, 95, 96, 97, + -1, -1, 100, -1, 102, 3, 4, 5, 6, -1, + 8, 9, -1, -1, -1, -1, -1, 115, -1, -1, + -1, 119, -1, -1, -1, 123, -1, 125, -1, -1, + -1, 129, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 45, -1, 47, + 48, 49, -1, -1, -1, 53, 54, -1, -1, -1, + -1, -1, -1, -1, 62, 63, -1, -1, -1, -1, + -1, 69, 70, -1, -1, -1, -1, -1, 76, -1, + -1, -1, -1, -1, -1, -1, 84, 85, 86, -1, + 88, -1, -1, -1, 92, 3, 4, 5, 6, 97, + 8, 9, -1, -1, 102, -1, -1, -1, 45, -1, + 47, 48, 49, -1, -1, -1, 53, 115, -1, -1, + -1, 119, 120, -1, -1, 123, 63, 125, -1, 127, + -1, 129, 69, 70, 71, -1, -1, 45, -1, 47, + 48, 49, -1, -1, -1, 53, 54, 84, 85, -1, + -1, -1, -1, -1, 62, 63, -1, -1, -1, -1, + 97, 69, 70, -1, -1, 102, -1, -1, 76, -1, + -1, -1, -1, -1, -1, -1, 84, 85, 86, -1, + 88, -1, -1, -1, 92, 3, 4, 5, 6, 97, + 8, 9, -1, -1, 102, -1, -1, -1, 45, 107, + 47, 48, 49, -1, -1, -1, -1, 115, -1, -1, + -1, 119, 120, -1, -1, 123, 63, 125, -1, -1, + -1, 129, 69, 70, 71, -1, -1, 45, -1, 47, + 48, 49, -1, -1, -1, 53, 54, 84, 85, -1, + -1, -1, -1, -1, 62, 63, -1, -1, -1, -1, + 97, 69, 70, -1, -1, 102, -1, -1, 76, -1, + -1, -1, -1, -1, -1, -1, 84, 85, 86, -1, + 88, -1, -1, -1, 92, 3, 4, 5, 6, 97, + 8, 9, -1, -1, 102, -1, -1, -1, -1, 107, + -1, -1, -1, -1, -1, -1, -1, 115, -1, -1, + -1, 119, 120, -1, -1, 123, -1, 125, -1, -1, + -1, 129, -1, -1, -1, -1, -1, 45, -1, 47, + 48, 49, -1, -1, -1, 53, 54, -1, -1, -1, + -1, -1, -1, -1, 62, 63, -1, -1, -1, -1, + -1, 69, 70, -1, -1, -1, -1, -1, 76, -1, + -1, -1, -1, -1, -1, -1, 84, 85, 86, -1, + 88, -1, -1, -1, 92, 3, 4, 5, 6, 97, + 8, 9, -1, -1, 102, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 115, -1, -1, + -1, 119, 120, -1, -1, 123, -1, 125, -1, 127, + -1, 129, -1, -1, -1, -1, -1, 45, -1, 47, + 48, 49, -1, -1, -1, 53, 54, -1, -1, -1, + -1, -1, -1, -1, 62, 63, -1, -1, -1, -1, + -1, 69, 70, -1, -1, -1, -1, -1, 76, -1, + -1, -1, -1, -1, -1, -1, 84, 85, 86, -1, + 88, -1, -1, -1, 92, 3, 4, 5, 6, 97, + 8, 9, -1, -1, 102, -1, -1, -1, -1, 107, + -1, -1, -1, -1, -1, -1, -1, 115, -1, -1, + -1, 119, 120, -1, -1, 123, -1, 125, -1, -1, + -1, 129, -1, -1, -1, -1, -1, 45, -1, 47, + 48, 49, -1, -1, -1, 53, 54, -1, -1, -1, + -1, -1, -1, -1, 62, 63, -1, -1, -1, -1, + -1, 69, 70, -1, -1, -1, -1, -1, 76, -1, + -1, -1, -1, -1, -1, -1, 84, 85, 86, -1, + 88, -1, -1, -1, 92, 3, 4, 5, 6, 97, + 8, 9, -1, -1, 102, -1, -1, -1, 45, -1, + 47, 48, 49, -1, -1, -1, 53, 115, -1, -1, + -1, 119, 120, -1, -1, 123, 63, 125, -1, 127, + -1, 129, 69, 70, 71, -1, -1, 45, -1, 47, + 48, 49, -1, -1, -1, 53, 54, 84, 85, -1, + -1, -1, -1, -1, 62, 63, -1, -1, -1, -1, + 97, 69, 70, -1, -1, 102, -1, -1, 76, -1, + 9, -1, -1, -1, -1, -1, 84, 85, 86, -1, + 88, -1, -1, -1, 92, -1, -1, -1, 125, 97, + -1, -1, -1, -1, 102, -1, -1, 13, 14, 15, + 16, 17, 18, 19, 20, -1, 45, 115, 47, 48, + 49, 119, 120, 29, -1, 123, -1, 125, -1, -1, + -1, 129, 13, 14, 15, 16, 17, 18, 19, 20, + 69, 70, 71, -1, -1, -1, -1, -1, 29, -1, + -1, -1, -1, -1, -1, 84, 85, -1, 13, 14, + 15, 16, 17, 18, 19, 20, -1, -1, 97, -1, + -1, -1, -1, 102, 29, -1, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 52, -1, -1, + -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, -1, 124, 125, + 126, 76, -1, -1, 130, -1, -1, -1, -1, -1, + -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, -1, 124, 125, 126, 8, 9, -1, 130, + -1, -1, -1, 108, -1, -1, 111, -1, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, -1, + 125, 126, -1, -1, 129, -1, -1, -1, -1, -1, -1, -1, 44, 45, -1, 47, 48, 49, 50, 51, - -1, 53, -1, -1, 123, 57, 58, 59, 60, -1, + -1, 53, -1, -1, -1, 57, 58, 59, 60, -1, -1, 63, -1, -1, -1, -1, 68, 69, 70, 71, -1, -1, 74, 8, 9, -1, 78, -1, -1, -1, 82, -1, 84, 85, -1, 87, -1, 89, -1, -1, -1, -1, -1, 95, 96, 97, -1, 99, 100, 101, - 102, 13, 14, 15, 16, 17, 18, 19, 20, 44, - 45, -1, 47, 48, 49, 50, 51, 29, 53, -1, + 102, -1, -1, -1, -1, 107, -1, -1, -1, 44, + 45, -1, 47, 48, 49, 50, 51, -1, 53, -1, -1, 123, 57, 58, 59, 60, -1, -1, 63, -1, -1, -1, -1, 68, 69, 70, 71, -1, -1, 74, - -1, -1, -1, 78, -1, -1, -1, 82, -1, 84, + 8, 9, -1, 78, -1, -1, -1, 82, -1, 84, 85, -1, 87, -1, 89, -1, -1, -1, -1, -1, 95, 96, 97, -1, 99, 100, 101, 102, 13, 14, - 15, 16, 17, 18, 19, 20, -1, -1, -1, -1, - -1, -1, -1, -1, 29, -1, -1, -1, 123, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 110, -1, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, -1, 124, 125, 126, 13, 14, 15, 16, 17, + 15, 16, 17, 18, 19, 20, 44, 45, -1, 47, + 48, 49, 50, 51, 29, 53, -1, -1, 123, 57, + 58, 59, 60, -1, -1, 63, -1, -1, -1, -1, + 68, 69, 70, 71, -1, -1, 74, -1, -1, -1, + 78, -1, -1, -1, 82, -1, 84, 85, -1, 87, + -1, 89, -1, -1, -1, -1, -1, 95, 96, 97, + -1, 99, 100, 101, 102, 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, -1, -1, -1, -1, - -1, 29, 13, 14, 15, 16, 17, 18, 19, 20, - -1, -1, -1, -1, -1, -1, -1, -1, 29, 13, - 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, - -1, -1, -1, -1, 109, 29, -1, 112, 113, 114, + -1, 29, -1, -1, -1, 123, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 110, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, 13, 14, 15, 16, 17, 18, 19, 20, - -1, -1, -1, -1, -1, -1, -1, -1, 29, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, -1, 124, 125, 126, 110, + -1, -1, -1, -1, -1, -1, -1, -1, 29, 13, + 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, + -1, -1, -1, -1, -1, 29, 13, 14, 15, 16, + 17, 18, 19, 20, -1, -1, -1, -1, -1, -1, + -1, 109, 29, -1, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, -1, 124, 125, 126, 13, + 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, + -1, -1, -1, -1, -1, 29, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, -1, 124, 125, 126, -1, -1, 112, 113, + 121, 122, -1, 124, 125, 126, 110, -1, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, -1, + 124, 125, 126, -1, -1, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, + 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, + -1, -1, -1, -1, -1, -1, 29, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, 29, - -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, -1, 124, 125, 126, 13, 14, 15, 16, - 17, 18, 19, 20, -1, -1, -1, -1, -1, -1, - -1, -1, 29, 15, 16, 17, 18, 19, 20, -1, + 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, + -1, -1, -1, -1, -1, 29, 15, 16, 17, 18, + 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, + 29, 15, 16, 17, 18, 19, 20, -1, -1, -1, + -1, -1, -1, -1, -1, 29, -1, 110, -1, 112, + 113, 114, 115, -1, -1, 118, 119, 120, 121, 122, + -1, 124, 125, 126, 15, 16, 17, 18, 19, 20, + -1, -1, -1, -1, -1, -1, -1, -1, 29, -1, + -1, -1, 112, 113, 114, 115, -1, -1, 118, 119, + 120, 121, 122, -1, 124, 125, 126, -1, -1, 113, + 114, 115, -1, -1, 118, 119, 120, 121, 122, -1, + 124, 125, 126, -1, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, -1, 124, 125, 126, -1, -1, + -1, 115, 116, 117, 118, 119, 120, 121, 122, -1, + 124, 125, 126, 15, 16, 17, 18, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, 29, 15, 16, - 17, 18, 19, 20, -1, -1, -1, -1, -1, -1, - -1, -1, 29, 15, 16, 17, 18, 19, 20, -1, - -1, -1, -1, -1, -1, -1, -1, 29, -1, -1, - 110, -1, 112, 113, 114, 115, -1, -1, 118, 119, - 120, 121, 122, -1, 124, 125, 126, 15, 16, 17, - 18, 19, 20, -1, -1, -1, -1, -1, -1, -1, - -1, 29, -1, -1, -1, 112, 113, 114, 115, -1, + 17, 18, 19, 20, -1, 116, 117, 118, 119, 120, + 121, 122, 29, 124, 125, 126, 15, 16, 17, 18, + 19, 20, -1, -1, -1, 43, -1, -1, -1, -1, + 29, -1, -1, -1, -1, -1, -1, -1, 56, -1, + -1, -1, -1, 61, -1, -1, 64, -1, -1, -1, + -1, -1, -1, -1, 72, 73, -1, 75, -1, -1, + -1, 79, 80, 81, -1, -1, -1, -1, 0, -1, + -1, -1, 90, -1, -1, -1, 94, -1, -1, -1, + 98, -1, 114, 115, -1, -1, 118, 119, 120, 121, + 122, 109, 124, 125, 126, -1, -1, -1, 115, -1, -1, 118, 119, 120, 121, 122, -1, 124, 125, 126, - -1, -1, 114, 115, 116, 117, 118, 119, 120, 121, - 122, -1, 124, 125, 126, -1, -1, -1, 115, 116, - 117, 118, 119, 120, 121, 122, -1, 124, 125, 126, - -1, 113, 114, 115, -1, -1, 118, 119, 120, 121, - 122, -1, 124, 125, 126, 15, 16, 17, 18, 19, - 20, -1, -1, -1, 9, -1, -1, -1, -1, 29, - -1, 15, 16, 17, 18, 19, 20, -1, 116, 117, - 118, 119, 120, 121, 122, 29, 124, 125, 126, -1, - -1, -1, 45, -1, 47, 48, 49, -1, -1, -1, - 45, -1, 47, 48, 49, -1, -1, -1, -1, -1, - -1, 17, 18, 19, 20, -1, 69, 70, 71, -1, - -1, -1, -1, 29, 69, 70, 71, 0, -1, -1, - -1, 84, 85, -1, -1, -1, -1, -1, -1, 84, - 85, -1, -1, -1, 97, -1, -1, -1, -1, 102, - -1, -1, 97, -1, 114, 115, -1, 102, 118, 119, - 120, 121, 122, -1, 124, 125, 126, -1, -1, -1, - 43, 115, 125, -1, 118, 119, 120, 121, 122, -1, - 124, 125, 126, 56, -1, -1, -1, -1, 61, 8, - 9, 64, -1, -1, -1, -1, -1, -1, -1, 72, - 73, -1, 75, -1, -1, -1, 79, 80, 81, -1, - -1, -1, 118, 119, 120, 121, 122, 90, 124, 125, - 126, 94, -1, -1, -1, 98, 45, -1, 47, 48, - 49, 50, 51, -1, 53, -1, 109, -1, -1, -1, - -1, -1, -1, -1, 63, -1, 9, -1, -1, -1, - 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 84, 85, -1, -1, -1, - -1, 45, -1, 47, 48, 49, 95, -1, 97, -1, - -1, 100, 45, 102, 47, 48, 49, 50, 51, -1, - 53, -1, -1, -1, 57, 69, 70, 71, -1, -1, + 128, 43, -1, -1, -1, -1, -1, -1, -1, 118, + 119, 120, 121, 122, 56, 124, 125, 126, -1, 61, + 8, 9, 64, -1, -1, -1, -1, -1, -1, -1, + 72, 73, -1, 75, -1, -1, -1, 79, 80, 81, + -1, -1, -1, -1, -1, -1, -1, -1, 90, -1, + -1, -1, 94, -1, -1, -1, 98, 45, -1, 47, + 48, 49, 50, 51, -1, 53, -1, 109, -1, -1, + -1, -1, -1, -1, -1, 63, 8, 9, -1, -1, + -1, 69, 70, 71, -1, -1, 9, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 95, -1, 97, + -1, -1, 100, 45, 102, 47, 48, 49, -1, -1, + -1, 53, 45, -1, 47, 48, 49, 50, 51, -1, + 53, 63, -1, -1, 57, -1, -1, 69, 70, 71, 63, -1, 9, -1, -1, -1, 69, 70, 71, -1, - 84, 85, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 84, 85, 97, -1, -1, 89, -1, 102, -1, - -1, -1, 95, 96, 97, -1, -1, 100, 45, 102, + -1, -1, 84, 85, -1, -1, -1, -1, -1, -1, + -1, 84, 85, -1, -1, 97, 89, -1, 100, -1, + 102, -1, 95, 96, 97, -1, -1, 100, 45, 102, 47, 48, 49, 50, 51, -1, 53, -1, -1, -1, - 57, 125, -1, -1, -1, -1, 63, -1, 9, -1, + 57, -1, -1, -1, -1, -1, 63, -1, 9, -1, -1, -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, -1, - -1, -1, 89, -1, -1, -1, -1, -1, 95, 96, + -1, -1, 89, 45, -1, 47, 48, 49, 95, 96, 97, -1, -1, 100, 45, 102, 47, 48, 49, 50, - -1, -1, 53, -1, -1, -1, 57, -1, -1, -1, + -1, -1, 53, -1, -1, -1, 57, 69, 70, 71, -1, -1, 63, -1, 9, -1, -1, -1, 69, 70, - 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 84, 85, -1, -1, -1, 89, -1, - -1, -1, -1, -1, 95, 96, 97, -1, -1, 100, + 71, -1, 84, 85, -1, -1, -1, -1, -1, -1, + -1, 82, -1, 84, 85, 97, -1, -1, 89, -1, + 102, -1, -1, -1, 95, 96, 97, -1, -1, 100, 45, 102, 47, 48, 49, 50, -1, -1, 53, -1, - -1, -1, 57, -1, -1, -1, -1, -1, 63, -1, - -1, -1, -1, -1, 69, 70, 71, -1, -1, -1, - -1, -1, -1, -1, -1, 43, -1, -1, -1, 84, - 85, -1, -1, -1, 89, -1, -1, -1, 56, -1, - 95, 96, 97, 61, -1, 100, 64, 102, -1, -1, - -1, -1, 43, -1, 72, 73, -1, 75, -1, -1, - -1, 79, 80, 81, -1, 56, -1, -1, -1, -1, - 61, -1, 90, 64, -1, -1, 94, -1, -1, 43, - 98, 72, 73, -1, 75, -1, -1, -1, 79, 80, - 81, 109, 56, -1, -1, -1, -1, 61, -1, 90, - 64, -1, -1, 94, -1, -1, 43, 98, 72, 73, - 128, 75, -1, -1, -1, 79, 80, 81, 109, 56, - -1, -1, -1, -1, 61, -1, 90, 64, -1, -1, - 94, -1, -1, 43, 98, 72, 73, 128, 75, -1, - -1, -1, 79, 80, 81, 109, 56, -1, -1, -1, - -1, 61, -1, 90, 64, -1, -1, 94, -1, -1, - 43, 98, 72, 73, 128, 75, -1, -1, -1, 79, - 80, 81, 109, 56, -1, -1, -1, -1, 61, -1, - 90, 64, -1, -1, 94, -1, -1, -1, 98, 72, - 73, 128, 75, -1, -1, -1, 79, 80, 81, 109, - -1, -1, -1, -1, -1, -1, -1, 90, -1, -1, - -1, 94, -1, -1, -1, 98, -1, -1, 128 + -1, -1, 57, 125, -1, -1, -1, -1, 63, -1, + 9, -1, -1, -1, 69, 70, 71, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, + 85, -1, -1, -1, 89, 45, -1, 47, 48, 49, + 95, 96, 97, -1, -1, 100, 45, 102, 47, 48, + 49, 50, -1, -1, 53, -1, -1, -1, 57, 69, + 70, 71, -1, -1, 63, -1, -1, -1, -1, -1, + 69, 70, 71, -1, 84, 85, -1, -1, -1, -1, + -1, 43, -1, -1, -1, 84, 85, 97, -1, -1, + 89, -1, 102, -1, 56, -1, 95, 96, 97, 61, + -1, 100, 64, 102, -1, -1, -1, -1, 43, -1, + 72, 73, -1, 75, -1, 125, -1, 79, 80, 81, + -1, 56, -1, -1, -1, -1, 61, -1, 90, 64, + -1, -1, 94, -1, -1, 43, 98, 72, 73, -1, + 75, -1, -1, -1, 79, 80, 81, 109, 56, -1, + -1, -1, -1, 61, -1, 90, 64, -1, -1, 94, + -1, -1, 43, 98, 72, 73, 128, 75, -1, -1, + -1, 79, 80, 81, 109, 56, -1, -1, -1, -1, + 61, -1, 90, 64, -1, -1, 94, -1, -1, -1, + 98, 72, 73, 128, 75, -1, -1, -1, 79, 80, + 81, 109, -1, -1, -1, -1, -1, -1, -1, 90, + -1, -1, 45, 94, 47, 48, 49, 98, -1, -1, + 128, -1, -1, -1, -1, -1, -1, -1, 109, -1, + -1, -1, -1, -1, -1, -1, 69, 70, 71, -1, + -1, -1, 43, -1, -1, -1, -1, 128, -1, -1, + -1, 84, 85, -1, -1, 56, -1, -1, -1, -1, + 61, -1, -1, 64, 97, -1, -1, -1, -1, 102, + -1, 72, 73, -1, 75, -1, -1, -1, 79, 80, + 81, -1, -1, -1, -1, -1, -1, -1, -1, 90, + -1, -1, 125, 94, -1, -1, -1, 98 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -2392,61 +2430,61 @@ static const yytype_uint8 yystos[] = 99, 193, 107, 108, 8, 221, 133, 221, 169, 221, 117, 108, 8, 9, 10, 14, 51, 101, 115, 120, 125, 181, 223, 150, 151, 170, 3, 4, 5, 8, - 12, 51, 54, 62, 76, 86, 88, 92, 115, 119, - 123, 125, 129, 172, 173, 179, 183, 218, 219, 222, - 223, 120, 170, 172, 147, 170, 180, 120, 180, 180, - 180, 180, 180, 125, 126, 128, 156, 128, 210, 223, - 107, 108, 125, 107, 177, 178, 216, 223, 109, 120, - 170, 170, 13, 14, 15, 16, 17, 18, 19, 20, - 29, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 52, 76, 108, 111, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 125, 126, - 129, 162, 170, 170, 170, 170, 110, 111, 125, 126, - 175, 176, 223, 196, 214, 214, 172, 216, 95, 99, - 200, 220, 221, 99, 220, 99, 220, 79, 80, 81, - 133, 193, 108, 127, 108, 128, 111, 181, 111, 142, - 163, 164, 168, 120, 181, 181, 181, 181, 181, 181, - 111, 126, 174, 223, 152, 170, 175, 176, 181, 183, - 116, 185, 125, 116, 216, 216, 216, 186, 214, 216, - 127, 12, 108, 181, 13, 14, 15, 16, 17, 18, - 19, 20, 29, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 124, 125, 126, 170, 110, 127, - 127, 175, 176, 125, 180, 159, 212, 172, 3, 4, - 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 57, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 74, 76, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 91, - 92, 93, 94, 95, 96, 97, 99, 100, 101, 102, - 103, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 129, 130, 211, 208, 135, 213, 177, 128, - 108, 170, 127, 130, 127, 4, 216, 171, 212, 108, - 127, 127, 127, 108, 221, 220, 221, 220, 220, 220, - 220, 220, 128, 8, 109, 221, 186, 174, 186, 181, - 127, 54, 86, 88, 115, 119, 120, 123, 125, 129, - 215, 217, 212, 175, 176, 108, 111, 175, 181, 186, - 125, 186, 186, 127, 127, 51, 161, 223, 12, 179, - 175, 216, 216, 216, 216, 216, 216, 216, 216, 216, + 12, 51, 54, 62, 76, 82, 86, 88, 92, 115, + 119, 123, 125, 129, 172, 173, 179, 183, 218, 219, + 222, 223, 120, 170, 172, 147, 170, 180, 120, 180, + 180, 180, 180, 180, 125, 126, 128, 156, 128, 210, + 223, 107, 108, 125, 107, 177, 178, 216, 223, 109, + 120, 170, 170, 13, 14, 15, 16, 17, 18, 19, + 20, 29, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 52, 76, 108, 111, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 125, + 126, 129, 162, 170, 170, 170, 170, 110, 111, 125, + 126, 175, 176, 223, 196, 214, 214, 172, 216, 95, + 99, 200, 220, 221, 99, 220, 99, 220, 79, 80, + 81, 133, 193, 108, 127, 108, 128, 111, 181, 111, + 142, 163, 164, 168, 120, 181, 181, 181, 181, 181, + 181, 111, 126, 174, 223, 152, 170, 175, 176, 181, + 82, 183, 116, 185, 179, 125, 116, 216, 216, 216, + 186, 214, 216, 127, 12, 108, 181, 13, 14, 15, + 16, 17, 18, 19, 20, 29, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 124, 125, 126, + 170, 110, 127, 127, 175, 176, 125, 180, 159, 212, + 172, 3, 4, 5, 6, 7, 8, 9, 10, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 57, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 74, 76, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 91, 92, 93, 94, 95, 96, 97, 99, + 100, 101, 102, 103, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 129, 130, 211, 208, 135, + 213, 177, 128, 108, 170, 127, 130, 127, 4, 216, + 171, 212, 108, 127, 127, 127, 108, 221, 220, 221, + 220, 220, 220, 220, 220, 128, 8, 109, 221, 186, + 174, 186, 181, 127, 54, 86, 88, 115, 119, 120, + 123, 125, 129, 215, 217, 212, 175, 176, 108, 111, + 175, 183, 181, 186, 125, 186, 186, 127, 127, 51, + 161, 223, 12, 179, 175, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 127, 214, 216, 127, 125, 161, 108, 160, - 172, 130, 127, 210, 128, 127, 128, 107, 216, 172, - 130, 146, 161, 127, 127, 125, 116, 125, 116, 215, - 215, 215, 215, 186, 214, 215, 13, 14, 15, 16, - 17, 18, 19, 20, 29, 112, 113, 114, 115, 118, - 119, 120, 121, 122, 124, 125, 126, 130, 108, 151, - 216, 175, 117, 213, 127, 117, 216, 77, 91, 110, - 127, 130, 125, 157, 147, 172, 127, 161, 128, 177, - 127, 109, 109, 172, 186, 186, 186, 127, 127, 215, + 216, 216, 216, 216, 216, 216, 127, 214, 216, 127, + 125, 161, 108, 160, 172, 130, 127, 210, 128, 127, + 128, 107, 216, 172, 130, 146, 161, 127, 127, 125, + 116, 125, 116, 215, 215, 215, 215, 186, 214, 215, + 13, 14, 15, 16, 17, 18, 19, 20, 29, 112, + 113, 114, 115, 118, 119, 120, 121, 122, 124, 125, + 126, 130, 108, 151, 216, 181, 175, 117, 213, 127, + 117, 216, 77, 91, 110, 127, 130, 125, 157, 147, + 172, 127, 161, 128, 177, 127, 109, 109, 172, 186, + 186, 186, 127, 127, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, - 215, 215, 215, 215, 215, 215, 215, 215, 127, 214, - 216, 152, 125, 127, 125, 125, 216, 158, 172, 127, - 161, 128, 161, 127, 117, 127, 117, 215, 110, 127, - 130, 214, 214, 127, 221, 172, 127, 161, 161, 125, - 125, 215, 127, 127, 127, 127, 161, 214, 214, 161, - 127, 127 + 215, 215, 215, 127, 214, 216, 152, 175, 125, 127, + 125, 125, 216, 158, 172, 127, 161, 128, 161, 127, + 117, 127, 117, 215, 110, 127, 130, 214, 214, 127, + 221, 172, 127, 161, 161, 125, 125, 215, 127, 127, + 127, 127, 161, 214, 214, 161, 127, 127 }; #define yyerrok (yyerrstatus = 0) @@ -2488,7 +2526,7 @@ do \ } \ else \ { \ - yyerror (YY_("syntax error: cannot back up")); \ + yyerror (&yylloc, YY_("syntax error: cannot back up")); \ YYERROR; \ } \ while (YYID (0)) @@ -3369,7 +3407,7 @@ yyreduce: { case 3: /* Line 1792 of yacc.c */ -#line 388 "dtool/src/cppparser/cppBison.yxx" +#line 399 "dtool/src/cppparser/cppBison.yxx" { current_expr = (yyvsp[(2) - (2)].u.expr); } @@ -3377,7 +3415,7 @@ yyreduce: case 4: /* Line 1792 of yacc.c */ -#line 392 "dtool/src/cppparser/cppBison.yxx" +#line 403 "dtool/src/cppparser/cppBison.yxx" { current_type = (yyvsp[(2) - (2)].u.type); } @@ -3385,7 +3423,7 @@ yyreduce: case 10: /* Line 1792 of yacc.c */ -#line 410 "dtool/src/cppparser/cppBison.yxx" +#line 421 "dtool/src/cppparser/cppBison.yxx" { delete (yyvsp[(3) - (4)].u.expr); } @@ -3393,7 +3431,7 @@ yyreduce: case 11: /* Line 1792 of yacc.c */ -#line 422 "dtool/src/cppparser/cppBison.yxx" +#line 433 "dtool/src/cppparser/cppBison.yxx" { push_storage_class((current_storage_class & ~CPPInstance::SC_c_binding) | ((yyvsp[(1) - (2)].u.integer) & CPPInstance::SC_c_binding)); @@ -3402,7 +3440,7 @@ yyreduce: case 12: /* Line 1792 of yacc.c */ -#line 427 "dtool/src/cppparser/cppBison.yxx" +#line 438 "dtool/src/cppparser/cppBison.yxx" { pop_storage_class(); } @@ -3410,7 +3448,7 @@ yyreduce: case 20: /* Line 1792 of yacc.c */ -#line 441 "dtool/src/cppparser/cppBison.yxx" +#line 452 "dtool/src/cppparser/cppBison.yxx" { if (publish_nest_level != 0) { yyerror("Unclosed __begin_publish", publish_loc); @@ -3427,7 +3465,7 @@ yyreduce: case 21: /* Line 1792 of yacc.c */ -#line 454 "dtool/src/cppparser/cppBison.yxx" +#line 465 "dtool/src/cppparser/cppBison.yxx" { if (publish_nest_level != 1) { yyerror("Unmatched __end_publish", (yylsp[(1) - (1)])); @@ -3440,7 +3478,7 @@ yyreduce: case 22: /* Line 1792 of yacc.c */ -#line 463 "dtool/src/cppparser/cppBison.yxx" +#line 474 "dtool/src/cppparser/cppBison.yxx" { current_scope->set_current_vis(V_published); } @@ -3448,7 +3486,7 @@ yyreduce: case 23: /* Line 1792 of yacc.c */ -#line 467 "dtool/src/cppparser/cppBison.yxx" +#line 478 "dtool/src/cppparser/cppBison.yxx" { if (publish_nest_level > 0) { current_scope->set_current_vis(V_published); @@ -3460,7 +3498,7 @@ yyreduce: case 24: /* Line 1792 of yacc.c */ -#line 475 "dtool/src/cppparser/cppBison.yxx" +#line 486 "dtool/src/cppparser/cppBison.yxx" { current_scope->set_current_vis(V_protected); } @@ -3468,7 +3506,7 @@ yyreduce: case 25: /* Line 1792 of yacc.c */ -#line 479 "dtool/src/cppparser/cppBison.yxx" +#line 490 "dtool/src/cppparser/cppBison.yxx" { current_scope->set_current_vis(V_private); } @@ -3476,7 +3514,7 @@ yyreduce: case 26: /* Line 1792 of yacc.c */ -#line 483 "dtool/src/cppparser/cppBison.yxx" +#line 494 "dtool/src/cppparser/cppBison.yxx" { CPPDeclaration *getter = (yyvsp[(5) - (7)].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); @@ -3491,7 +3529,7 @@ yyreduce: case 27: /* Line 1792 of yacc.c */ -#line 494 "dtool/src/cppparser/cppBison.yxx" +#line 505 "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) { @@ -3516,7 +3554,7 @@ yyreduce: case 28: /* Line 1792 of yacc.c */ -#line 515 "dtool/src/cppparser/cppBison.yxx" +#line 526 "dtool/src/cppparser/cppBison.yxx" { CPPMakeSeq *make_seq = new CPPMakeSeq((yyvsp[(3) - (9)].u.identifier)->get_simple_name(), (yyvsp[(5) - (9)].u.identifier)->get_simple_name(), (yyvsp[(7) - (9)].u.identifier)->get_simple_name(), (yylsp[(1) - (9)]).file); current_scope->add_declaration(make_seq, global_scope, current_lexer, (yylsp[(1) - (9)])); @@ -3525,7 +3563,7 @@ yyreduce: case 29: /* Line 1792 of yacc.c */ -#line 523 "dtool/src/cppparser/cppBison.yxx" +#line 534 "dtool/src/cppparser/cppBison.yxx" { CPPScope *new_scope = new CPPScope(current_scope, CPPNameComponent("temp"), V_public); @@ -3535,7 +3573,7 @@ yyreduce: case 30: /* Line 1792 of yacc.c */ -#line 529 "dtool/src/cppparser/cppBison.yxx" +#line 540 "dtool/src/cppparser/cppBison.yxx" { delete current_scope; pop_scope(); @@ -3544,7 +3582,7 @@ yyreduce: case 31: /* Line 1792 of yacc.c */ -#line 538 "dtool/src/cppparser/cppBison.yxx" +#line 549 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = 0; } @@ -3552,7 +3590,7 @@ yyreduce: case 32: /* Line 1792 of yacc.c */ -#line 542 "dtool/src/cppparser/cppBison.yxx" +#line 553 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[(1) - (2)].u.integer) | (int)CPPInstance::SC_extern; } @@ -3560,7 +3598,7 @@ yyreduce: case 33: /* Line 1792 of yacc.c */ -#line 546 "dtool/src/cppparser/cppBison.yxx" +#line 557 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[(1) - (3)].u.integer) | (int)CPPInstance::SC_extern; if ((yyvsp[(3) - (3)].str) == "C") { @@ -3575,7 +3613,7 @@ yyreduce: case 34: /* Line 1792 of yacc.c */ -#line 557 "dtool/src/cppparser/cppBison.yxx" +#line 568 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[(1) - (2)].u.integer) | (int)CPPInstance::SC_static; } @@ -3583,7 +3621,7 @@ yyreduce: case 35: /* Line 1792 of yacc.c */ -#line 561 "dtool/src/cppparser/cppBison.yxx" +#line 572 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[(1) - (2)].u.integer) | (int)CPPInstance::SC_inline; } @@ -3591,7 +3629,7 @@ yyreduce: case 36: /* Line 1792 of yacc.c */ -#line 565 "dtool/src/cppparser/cppBison.yxx" +#line 576 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[(1) - (2)].u.integer) | (int)CPPInstance::SC_virtual; } @@ -3599,7 +3637,7 @@ yyreduce: case 37: /* Line 1792 of yacc.c */ -#line 569 "dtool/src/cppparser/cppBison.yxx" +#line 580 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[(1) - (2)].u.integer) | (int)CPPInstance::SC_explicit; } @@ -3607,7 +3645,7 @@ yyreduce: case 38: /* Line 1792 of yacc.c */ -#line 573 "dtool/src/cppparser/cppBison.yxx" +#line 584 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[(1) - (2)].u.integer) | (int)CPPInstance::SC_volatile; } @@ -3615,7 +3653,7 @@ yyreduce: case 39: /* Line 1792 of yacc.c */ -#line 577 "dtool/src/cppparser/cppBison.yxx" +#line 588 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[(1) - (2)].u.integer) | (int)CPPInstance::SC_mutable; } @@ -3623,7 +3661,7 @@ yyreduce: case 40: /* Line 1792 of yacc.c */ -#line 581 "dtool/src/cppparser/cppBison.yxx" +#line 592 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[(1) - (2)].u.integer) | (int)CPPInstance::SC_register; } @@ -3631,7 +3669,7 @@ yyreduce: case 41: /* Line 1792 of yacc.c */ -#line 585 "dtool/src/cppparser/cppBison.yxx" +#line 596 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[(1) - (2)].u.integer) | (int)CPPInstance::SC_blocking; } @@ -3639,7 +3677,7 @@ yyreduce: case 42: /* Line 1792 of yacc.c */ -#line 589 "dtool/src/cppparser/cppBison.yxx" +#line 600 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[(1) - (2)].u.integer) | (int)CPPInstance::SC_extension; } @@ -3647,7 +3685,7 @@ yyreduce: case 43: /* Line 1792 of yacc.c */ -#line 596 "dtool/src/cppparser/cppBison.yxx" +#line 607 "dtool/src/cppparser/cppBison.yxx" { /* multiple_var_declaration adds itself to the scope. */ } @@ -3655,7 +3693,7 @@ yyreduce: case 44: /* Line 1792 of yacc.c */ -#line 600 "dtool/src/cppparser/cppBison.yxx" +#line 611 "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 @@ -3668,7 +3706,7 @@ yyreduce: case 45: /* Line 1792 of yacc.c */ -#line 609 "dtool/src/cppparser/cppBison.yxx" +#line 620 "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)); @@ -3680,7 +3718,7 @@ yyreduce: case 46: /* Line 1792 of yacc.c */ -#line 620 "dtool/src/cppparser/cppBison.yxx" +#line 631 "dtool/src/cppparser/cppBison.yxx" { // We don't need to push/pop type, because we can't nest // multiple_var_declarations. @@ -3695,7 +3733,7 @@ yyreduce: case 47: /* Line 1792 of yacc.c */ -#line 631 "dtool/src/cppparser/cppBison.yxx" +#line 642 "dtool/src/cppparser/cppBison.yxx" { pop_storage_class(); } @@ -3703,7 +3741,7 @@ yyreduce: case 48: /* Line 1792 of yacc.c */ -#line 635 "dtool/src/cppparser/cppBison.yxx" +#line 646 "dtool/src/cppparser/cppBison.yxx" { // We don't need to push/pop type, because we can't nest // multiple_var_declarations. @@ -3714,7 +3752,7 @@ yyreduce: case 49: /* Line 1792 of yacc.c */ -#line 642 "dtool/src/cppparser/cppBison.yxx" +#line 653 "dtool/src/cppparser/cppBison.yxx" { pop_storage_class(); } @@ -3722,7 +3760,7 @@ yyreduce: case 50: /* Line 1792 of yacc.c */ -#line 653 "dtool/src/cppparser/cppBison.yxx" +#line 664 "dtool/src/cppparser/cppBison.yxx" { CPPInstance *inst = new CPPInstance(current_type, (yyvsp[(1) - (2)].u.inst_ident), current_storage_class, @@ -3734,7 +3772,7 @@ yyreduce: case 51: /* Line 1792 of yacc.c */ -#line 661 "dtool/src/cppparser/cppBison.yxx" +#line 672 "dtool/src/cppparser/cppBison.yxx" { CPPInstance *inst = new CPPInstance(current_type, (yyvsp[(1) - (4)].u.inst_ident), current_storage_class, @@ -3746,7 +3784,7 @@ yyreduce: case 52: /* Line 1792 of yacc.c */ -#line 672 "dtool/src/cppparser/cppBison.yxx" +#line 683 "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), @@ -3759,7 +3797,7 @@ yyreduce: case 53: /* Line 1792 of yacc.c */ -#line 681 "dtool/src/cppparser/cppBison.yxx" +#line 692 "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), @@ -3772,7 +3810,7 @@ yyreduce: case 54: /* Line 1792 of yacc.c */ -#line 694 "dtool/src/cppparser/cppBison.yxx" +#line 705 "dtool/src/cppparser/cppBison.yxx" { // We don't need to push/pop type, because we can't nest // multiple_var_declarations. @@ -3787,7 +3825,7 @@ yyreduce: case 55: /* Line 1792 of yacc.c */ -#line 705 "dtool/src/cppparser/cppBison.yxx" +#line 716 "dtool/src/cppparser/cppBison.yxx" { pop_storage_class(); } @@ -3795,7 +3833,7 @@ yyreduce: case 56: /* Line 1792 of yacc.c */ -#line 709 "dtool/src/cppparser/cppBison.yxx" +#line 720 "dtool/src/cppparser/cppBison.yxx" { // We don't need to push/pop type, because we can't nest // multiple_var_declarations. @@ -3806,7 +3844,7 @@ yyreduce: case 57: /* Line 1792 of yacc.c */ -#line 716 "dtool/src/cppparser/cppBison.yxx" +#line 727 "dtool/src/cppparser/cppBison.yxx" { pop_storage_class(); } @@ -3814,7 +3852,7 @@ yyreduce: case 58: /* Line 1792 of yacc.c */ -#line 720 "dtool/src/cppparser/cppBison.yxx" +#line 731 "dtool/src/cppparser/cppBison.yxx" { if ((yyvsp[(2) - (3)].u.instance) != (CPPDeclaration *)NULL) { CPPInstance *inst = (yyvsp[(2) - (3)].u.instance)->as_instance(); @@ -3830,7 +3868,7 @@ yyreduce: case 59: /* Line 1792 of yacc.c */ -#line 735 "dtool/src/cppparser/cppBison.yxx" +#line 746 "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); @@ -3840,7 +3878,7 @@ yyreduce: case 60: /* Line 1792 of yacc.c */ -#line 741 "dtool/src/cppparser/cppBison.yxx" +#line 752 "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); @@ -3850,7 +3888,7 @@ yyreduce: case 61: /* Line 1792 of yacc.c */ -#line 750 "dtool/src/cppparser/cppBison.yxx" +#line 761 "dtool/src/cppparser/cppBison.yxx" { (yyvsp[(1) - (2)].u.inst_ident)->add_modifier(IIT_const); CPPType *target_type = current_type; @@ -3861,7 +3899,7 @@ yyreduce: case 62: /* Line 1792 of yacc.c */ -#line 757 "dtool/src/cppparser/cppBison.yxx" +#line 768 "dtool/src/cppparser/cppBison.yxx" { (yyvsp[(1) - (4)].u.inst_ident)->add_modifier(IIT_const); CPPType *target_type = current_type; @@ -3872,7 +3910,7 @@ yyreduce: case 63: /* Line 1792 of yacc.c */ -#line 769 "dtool/src/cppparser/cppBison.yxx" +#line 780 "dtool/src/cppparser/cppBison.yxx" { push_scope((yyvsp[(1) - (2)].u.identifier)->get_scope(current_scope, global_scope)); } @@ -3880,7 +3918,7 @@ yyreduce: case 64: /* Line 1792 of yacc.c */ -#line 773 "dtool/src/cppparser/cppBison.yxx" +#line 784 "dtool/src/cppparser/cppBison.yxx" { pop_scope(); CPPType *type; @@ -3902,7 +3940,7 @@ yyreduce: case 65: /* Line 1792 of yacc.c */ -#line 791 "dtool/src/cppparser/cppBison.yxx" +#line 802 "dtool/src/cppparser/cppBison.yxx" { push_scope((yyvsp[(1) - (2)].u.identifier)->get_scope(current_scope, global_scope)); } @@ -3910,7 +3948,7 @@ yyreduce: case 66: /* Line 1792 of yacc.c */ -#line 795 "dtool/src/cppparser/cppBison.yxx" +#line 806 "dtool/src/cppparser/cppBison.yxx" { pop_scope(); CPPType *type; @@ -3932,7 +3970,7 @@ yyreduce: case 67: /* Line 1792 of yacc.c */ -#line 815 "dtool/src/cppparser/cppBison.yxx" +#line 826 "dtool/src/cppparser/cppBison.yxx" { push_scope((yyvsp[(2) - (3)].u.identifier)->get_scope(current_scope, global_scope)); } @@ -3940,14 +3978,14 @@ yyreduce: case 68: /* Line 1792 of yacc.c */ -#line 819 "dtool/src/cppparser/cppBison.yxx" +#line 830 "dtool/src/cppparser/cppBison.yxx" { pop_scope(); if ((yyvsp[(2) - (7)].u.identifier)->is_scoped()) { yyerror("Invalid destructor name: ~" + (yyvsp[(2) - (7)].u.identifier)->get_fully_scoped_name(), (yylsp[(2) - (7)])); } else { CPPIdentifier *ident = - new CPPIdentifier("~" + (yyvsp[(2) - (7)].u.identifier)->get_simple_name(), (yylsp[(2) - (7)]).file); + new CPPIdentifier("~" + (yyvsp[(2) - (7)].u.identifier)->get_simple_name(), (yylsp[(2) - (7)])); delete (yyvsp[(2) - (7)].u.identifier); CPPType *type; @@ -3963,7 +4001,7 @@ yyreduce: case 69: /* Line 1792 of yacc.c */ -#line 845 "dtool/src/cppparser/cppBison.yxx" +#line 856 "dtool/src/cppparser/cppBison.yxx" { push_scope((yyvsp[(4) - (6)].u.inst_ident)->get_scope(current_scope, global_scope)); } @@ -3971,7 +4009,7 @@ yyreduce: case 70: /* Line 1792 of yacc.c */ -#line 849 "dtool/src/cppparser/cppBison.yxx" +#line 860 "dtool/src/cppparser/cppBison.yxx" { pop_scope(); CPPType *type = (yyvsp[(1) - (10)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); @@ -3986,7 +4024,7 @@ yyreduce: case 71: /* Line 1792 of yacc.c */ -#line 860 "dtool/src/cppparser/cppBison.yxx" +#line 871 "dtool/src/cppparser/cppBison.yxx" { push_scope((yyvsp[(5) - (7)].u.inst_ident)->get_scope(current_scope, global_scope)); } @@ -3994,7 +4032,7 @@ yyreduce: case 72: /* Line 1792 of yacc.c */ -#line 864 "dtool/src/cppparser/cppBison.yxx" +#line 875 "dtool/src/cppparser/cppBison.yxx" { pop_scope(); CPPType *type = (yyvsp[(1) - (11)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); @@ -4009,7 +4047,7 @@ yyreduce: case 73: /* Line 1792 of yacc.c */ -#line 877 "dtool/src/cppparser/cppBison.yxx" +#line 888 "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)); @@ -4019,7 +4057,7 @@ yyreduce: case 74: /* Line 1792 of yacc.c */ -#line 883 "dtool/src/cppparser/cppBison.yxx" +#line 894 "dtool/src/cppparser/cppBison.yxx" { if ((yyvsp[(1) - (8)].u.identifier) != NULL) { pop_scope(); @@ -4037,7 +4075,7 @@ yyreduce: string name = "operator typecast " + (yyvsp[(2) - (8)].u.type)->get_simple_name(); CPPIdentifier *ident = (yyvsp[(1) - (8)].u.identifier); if (ident == NULL) { - ident = new CPPIdentifier(name, (yylsp[(1) - (8)]).file); + ident = new CPPIdentifier(name, (yylsp[(2) - (8)])); } else { ident->add_name(name); } @@ -4048,7 +4086,7 @@ yyreduce: case 75: /* Line 1792 of yacc.c */ -#line 908 "dtool/src/cppparser/cppBison.yxx" +#line 919 "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)); @@ -4058,7 +4096,7 @@ yyreduce: case 76: /* Line 1792 of yacc.c */ -#line 914 "dtool/src/cppparser/cppBison.yxx" +#line 925 "dtool/src/cppparser/cppBison.yxx" { if ((yyvsp[(1) - (9)].u.identifier) != NULL) { pop_scope(); @@ -4066,7 +4104,7 @@ yyreduce: CPPIdentifier *ident = (yyvsp[(1) - (9)].u.identifier); if (ident == NULL) { - ident = new CPPIdentifier("operator typecast", (yylsp[(1) - (9)]).file); + ident = new CPPIdentifier("operator typecast", (yylsp[(4) - (9)])); } else { ident->add_name("operator typecast"); } @@ -4078,7 +4116,7 @@ yyreduce: case 77: /* Line 1792 of yacc.c */ -#line 934 "dtool/src/cppparser/cppBison.yxx" +#line 945 "dtool/src/cppparser/cppBison.yxx" { CPPDeclaration *decl = (yyvsp[(1) - (1)].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); @@ -4092,7 +4130,7 @@ yyreduce: case 78: /* Line 1792 of yacc.c */ -#line 947 "dtool/src/cppparser/cppBison.yxx" +#line 958 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = 0; } @@ -4100,7 +4138,7 @@ yyreduce: case 79: /* Line 1792 of yacc.c */ -#line 951 "dtool/src/cppparser/cppBison.yxx" +#line 962 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (int)CPPFunctionType::F_const_method; } @@ -4108,7 +4146,7 @@ yyreduce: case 80: /* Line 1792 of yacc.c */ -#line 955 "dtool/src/cppparser/cppBison.yxx" +#line 966 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (int)CPPFunctionType::F_noexcept; } @@ -4116,7 +4154,7 @@ yyreduce: case 81: /* Line 1792 of yacc.c */ -#line 959 "dtool/src/cppparser/cppBison.yxx" +#line 970 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[(1) - (4)].u.integer); } @@ -4124,7 +4162,7 @@ yyreduce: case 82: /* Line 1792 of yacc.c */ -#line 963 "dtool/src/cppparser/cppBison.yxx" +#line 974 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[(1) - (5)].u.integer); } @@ -4132,7 +4170,7 @@ yyreduce: case 83: /* Line 1792 of yacc.c */ -#line 970 "dtool/src/cppparser/cppBison.yxx" +#line 981 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "!"; } @@ -4140,7 +4178,7 @@ yyreduce: case 84: /* Line 1792 of yacc.c */ -#line 974 "dtool/src/cppparser/cppBison.yxx" +#line 985 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "~"; } @@ -4148,7 +4186,7 @@ yyreduce: case 85: /* Line 1792 of yacc.c */ -#line 978 "dtool/src/cppparser/cppBison.yxx" +#line 989 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "*"; } @@ -4156,7 +4194,7 @@ yyreduce: case 86: /* Line 1792 of yacc.c */ -#line 982 "dtool/src/cppparser/cppBison.yxx" +#line 993 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "/"; } @@ -4164,7 +4202,7 @@ yyreduce: case 87: /* Line 1792 of yacc.c */ -#line 986 "dtool/src/cppparser/cppBison.yxx" +#line 997 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "%"; } @@ -4172,7 +4210,7 @@ yyreduce: case 88: /* Line 1792 of yacc.c */ -#line 990 "dtool/src/cppparser/cppBison.yxx" +#line 1001 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "+"; } @@ -4180,7 +4218,7 @@ yyreduce: case 89: /* Line 1792 of yacc.c */ -#line 994 "dtool/src/cppparser/cppBison.yxx" +#line 1005 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "-"; } @@ -4188,7 +4226,7 @@ yyreduce: case 90: /* Line 1792 of yacc.c */ -#line 998 "dtool/src/cppparser/cppBison.yxx" +#line 1009 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "|"; } @@ -4196,7 +4234,7 @@ yyreduce: case 91: /* Line 1792 of yacc.c */ -#line 1002 "dtool/src/cppparser/cppBison.yxx" +#line 1013 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "&"; } @@ -4204,7 +4242,7 @@ yyreduce: case 92: /* Line 1792 of yacc.c */ -#line 1006 "dtool/src/cppparser/cppBison.yxx" +#line 1017 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "^"; } @@ -4212,7 +4250,7 @@ yyreduce: case 93: /* Line 1792 of yacc.c */ -#line 1010 "dtool/src/cppparser/cppBison.yxx" +#line 1021 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "||"; } @@ -4220,7 +4258,7 @@ yyreduce: case 94: /* Line 1792 of yacc.c */ -#line 1014 "dtool/src/cppparser/cppBison.yxx" +#line 1025 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "&&"; } @@ -4228,7 +4266,7 @@ yyreduce: case 95: /* Line 1792 of yacc.c */ -#line 1018 "dtool/src/cppparser/cppBison.yxx" +#line 1029 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "=="; } @@ -4236,7 +4274,7 @@ yyreduce: case 96: /* Line 1792 of yacc.c */ -#line 1022 "dtool/src/cppparser/cppBison.yxx" +#line 1033 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "!="; } @@ -4244,7 +4282,7 @@ yyreduce: case 97: /* Line 1792 of yacc.c */ -#line 1026 "dtool/src/cppparser/cppBison.yxx" +#line 1037 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "<="; } @@ -4252,7 +4290,7 @@ yyreduce: case 98: /* Line 1792 of yacc.c */ -#line 1030 "dtool/src/cppparser/cppBison.yxx" +#line 1041 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = ">="; } @@ -4260,7 +4298,7 @@ yyreduce: case 99: /* Line 1792 of yacc.c */ -#line 1034 "dtool/src/cppparser/cppBison.yxx" +#line 1045 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "<"; } @@ -4268,7 +4306,7 @@ yyreduce: case 100: /* Line 1792 of yacc.c */ -#line 1038 "dtool/src/cppparser/cppBison.yxx" +#line 1049 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = ">"; } @@ -4276,7 +4314,7 @@ yyreduce: case 101: /* Line 1792 of yacc.c */ -#line 1042 "dtool/src/cppparser/cppBison.yxx" +#line 1053 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "<<"; } @@ -4284,7 +4322,7 @@ yyreduce: case 102: /* Line 1792 of yacc.c */ -#line 1046 "dtool/src/cppparser/cppBison.yxx" +#line 1057 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = ">>"; } @@ -4292,7 +4330,7 @@ yyreduce: case 103: /* Line 1792 of yacc.c */ -#line 1050 "dtool/src/cppparser/cppBison.yxx" +#line 1061 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "="; } @@ -4300,7 +4338,7 @@ yyreduce: case 104: /* Line 1792 of yacc.c */ -#line 1054 "dtool/src/cppparser/cppBison.yxx" +#line 1065 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = ","; } @@ -4308,7 +4346,7 @@ yyreduce: case 105: /* Line 1792 of yacc.c */ -#line 1058 "dtool/src/cppparser/cppBison.yxx" +#line 1069 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "++"; } @@ -4316,7 +4354,7 @@ yyreduce: case 106: /* Line 1792 of yacc.c */ -#line 1062 "dtool/src/cppparser/cppBison.yxx" +#line 1073 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "--"; } @@ -4324,7 +4362,7 @@ yyreduce: case 107: /* Line 1792 of yacc.c */ -#line 1066 "dtool/src/cppparser/cppBison.yxx" +#line 1077 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "*="; } @@ -4332,7 +4370,7 @@ yyreduce: case 108: /* Line 1792 of yacc.c */ -#line 1070 "dtool/src/cppparser/cppBison.yxx" +#line 1081 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "/="; } @@ -4340,7 +4378,7 @@ yyreduce: case 109: /* Line 1792 of yacc.c */ -#line 1074 "dtool/src/cppparser/cppBison.yxx" +#line 1085 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "%="; } @@ -4348,7 +4386,7 @@ yyreduce: case 110: /* Line 1792 of yacc.c */ -#line 1078 "dtool/src/cppparser/cppBison.yxx" +#line 1089 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "+="; } @@ -4356,7 +4394,7 @@ yyreduce: case 111: /* Line 1792 of yacc.c */ -#line 1082 "dtool/src/cppparser/cppBison.yxx" +#line 1093 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "-="; } @@ -4364,7 +4402,7 @@ yyreduce: case 112: /* Line 1792 of yacc.c */ -#line 1086 "dtool/src/cppparser/cppBison.yxx" +#line 1097 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "|="; } @@ -4372,7 +4410,7 @@ yyreduce: case 113: /* Line 1792 of yacc.c */ -#line 1090 "dtool/src/cppparser/cppBison.yxx" +#line 1101 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "&="; } @@ -4380,7 +4418,7 @@ yyreduce: case 114: /* Line 1792 of yacc.c */ -#line 1094 "dtool/src/cppparser/cppBison.yxx" +#line 1105 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "^="; } @@ -4388,7 +4426,7 @@ yyreduce: case 115: /* Line 1792 of yacc.c */ -#line 1098 "dtool/src/cppparser/cppBison.yxx" +#line 1109 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "<<="; } @@ -4396,7 +4434,7 @@ yyreduce: case 116: /* Line 1792 of yacc.c */ -#line 1102 "dtool/src/cppparser/cppBison.yxx" +#line 1113 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = ">>="; } @@ -4404,7 +4442,7 @@ yyreduce: case 117: /* Line 1792 of yacc.c */ -#line 1106 "dtool/src/cppparser/cppBison.yxx" +#line 1117 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "->"; } @@ -4412,7 +4450,7 @@ yyreduce: case 118: /* Line 1792 of yacc.c */ -#line 1110 "dtool/src/cppparser/cppBison.yxx" +#line 1121 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "[]"; } @@ -4420,7 +4458,7 @@ yyreduce: case 119: /* Line 1792 of yacc.c */ -#line 1114 "dtool/src/cppparser/cppBison.yxx" +#line 1125 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "()"; } @@ -4428,7 +4466,7 @@ yyreduce: case 120: /* Line 1792 of yacc.c */ -#line 1118 "dtool/src/cppparser/cppBison.yxx" +#line 1129 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "new"; } @@ -4436,7 +4474,7 @@ yyreduce: case 121: /* Line 1792 of yacc.c */ -#line 1122 "dtool/src/cppparser/cppBison.yxx" +#line 1133 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "delete"; } @@ -4444,7 +4482,7 @@ yyreduce: case 124: /* Line 1792 of yacc.c */ -#line 1134 "dtool/src/cppparser/cppBison.yxx" +#line 1145 "dtool/src/cppparser/cppBison.yxx" { push_scope(new CPPTemplateScope(current_scope)); } @@ -4452,7 +4490,7 @@ yyreduce: case 125: /* Line 1792 of yacc.c */ -#line 1138 "dtool/src/cppparser/cppBison.yxx" +#line 1149 "dtool/src/cppparser/cppBison.yxx" { pop_scope(); } @@ -4460,7 +4498,7 @@ yyreduce: case 129: /* Line 1792 of yacc.c */ -#line 1151 "dtool/src/cppparser/cppBison.yxx" +#line 1162 "dtool/src/cppparser/cppBison.yxx" { CPPTemplateScope *ts = current_scope->as_template_scope(); assert(ts != NULL); @@ -4470,7 +4508,7 @@ yyreduce: case 130: /* Line 1792 of yacc.c */ -#line 1157 "dtool/src/cppparser/cppBison.yxx" +#line 1168 "dtool/src/cppparser/cppBison.yxx" { CPPTemplateScope *ts = current_scope->as_template_scope(); assert(ts != NULL); @@ -4480,7 +4518,7 @@ yyreduce: case 131: /* Line 1792 of yacc.c */ -#line 1166 "dtool/src/cppparser/cppBison.yxx" +#line 1177 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[(2) - (2)].u.identifier))); } @@ -4488,7 +4526,7 @@ yyreduce: case 132: /* Line 1792 of yacc.c */ -#line 1170 "dtool/src/cppparser/cppBison.yxx" +#line 1181 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[(2) - (4)].u.identifier), (yyvsp[(4) - (4)].u.type))); } @@ -4496,7 +4534,7 @@ yyreduce: case 133: /* Line 1792 of yacc.c */ -#line 1174 "dtool/src/cppparser/cppBison.yxx" +#line 1185 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[(2) - (2)].u.identifier))); } @@ -4504,7 +4542,7 @@ yyreduce: case 134: /* Line 1792 of yacc.c */ -#line 1178 "dtool/src/cppparser/cppBison.yxx" +#line 1189 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[(2) - (4)].u.identifier), (yyvsp[(4) - (4)].u.type))); } @@ -4512,7 +4550,7 @@ yyreduce: case 135: /* Line 1792 of yacc.c */ -#line 1182 "dtool/src/cppparser/cppBison.yxx" +#line 1193 "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)); @@ -4522,7 +4560,7 @@ yyreduce: case 136: /* Line 1792 of yacc.c */ -#line 1188 "dtool/src/cppparser/cppBison.yxx" +#line 1199 "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); @@ -4533,7 +4571,7 @@ yyreduce: case 137: /* Line 1792 of yacc.c */ -#line 1198 "dtool/src/cppparser/cppBison.yxx" +#line 1209 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type((yyvsp[(1) - (1)].u.simple_type)); } @@ -4541,7 +4579,7 @@ yyreduce: case 138: /* Line 1792 of yacc.c */ -#line 1202 "dtool/src/cppparser/cppBison.yxx" +#line 1213 "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)); @@ -4550,7 +4588,7 @@ yyreduce: case 139: /* Line 1792 of yacc.c */ -#line 1207 "dtool/src/cppparser/cppBison.yxx" +#line 1218 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = (yyvsp[(1) - (1)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); assert((yyval.u.type) != NULL); @@ -4559,7 +4597,7 @@ yyreduce: case 140: /* Line 1792 of yacc.c */ -#line 1216 "dtool/src/cppparser/cppBison.yxx" +#line 1227 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[(1) - (1)].u.identifier)); } @@ -4567,14 +4605,14 @@ yyreduce: case 141: /* Line 1792 of yacc.c */ -#line 1220 "dtool/src/cppparser/cppBison.yxx" +#line 1231 "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 // like a regular function. CPPIdentifier *ident = (yyvsp[(1) - (2)].u.identifier); if (ident == NULL) { - ident = new CPPIdentifier("operator "+(yyvsp[(2) - (2)].str), (yylsp[(2) - (2)]).file); + ident = new CPPIdentifier("operator "+(yyvsp[(2) - (2)].str), (yylsp[(2) - (2)])); } else { ident->_names.push_back("operator "+(yyvsp[(2) - (2)].str)); } @@ -4585,7 +4623,7 @@ yyreduce: case 142: /* Line 1792 of yacc.c */ -#line 1234 "dtool/src/cppparser/cppBison.yxx" +#line 1245 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_const); @@ -4594,7 +4632,7 @@ yyreduce: case 143: /* Line 1792 of yacc.c */ -#line 1239 "dtool/src/cppparser/cppBison.yxx" +#line 1250 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_volatile); @@ -4603,7 +4641,7 @@ yyreduce: case 144: /* Line 1792 of yacc.c */ -#line 1244 "dtool/src/cppparser/cppBison.yxx" +#line 1255 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_pointer); @@ -4612,7 +4650,7 @@ yyreduce: case 145: /* Line 1792 of yacc.c */ -#line 1249 "dtool/src/cppparser/cppBison.yxx" +#line 1260 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_reference); @@ -4621,7 +4659,7 @@ yyreduce: case 146: /* Line 1792 of yacc.c */ -#line 1254 "dtool/src/cppparser/cppBison.yxx" +#line 1265 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[(2) - (2)].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_rvalue_reference); @@ -4630,7 +4668,7 @@ yyreduce: case 147: /* Line 1792 of yacc.c */ -#line 1259 "dtool/src/cppparser/cppBison.yxx" +#line 1270 "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)); @@ -4639,7 +4677,7 @@ yyreduce: case 148: /* Line 1792 of yacc.c */ -#line 1264 "dtool/src/cppparser/cppBison.yxx" +#line 1275 "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)); @@ -4648,7 +4686,7 @@ yyreduce: case 149: /* Line 1792 of yacc.c */ -#line 1269 "dtool/src/cppparser/cppBison.yxx" +#line 1280 "dtool/src/cppparser/cppBison.yxx" { // bitfield definition. We ignore the bitfield for now. (yyval.u.inst_ident) = (yyvsp[(1) - (3)].u.inst_ident); @@ -4657,7 +4695,7 @@ yyreduce: case 150: /* Line 1792 of yacc.c */ -#line 1274 "dtool/src/cppparser/cppBison.yxx" +#line 1285 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[(2) - (3)].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_paren); @@ -4666,7 +4704,7 @@ yyreduce: case 151: /* Line 1792 of yacc.c */ -#line 1279 "dtool/src/cppparser/cppBison.yxx" +#line 1290 "dtool/src/cppparser/cppBison.yxx" { push_scope((yyvsp[(1) - (2)].u.inst_ident)->get_scope(current_scope, global_scope)); } @@ -4674,7 +4712,7 @@ yyreduce: case 152: /* Line 1792 of yacc.c */ -#line 1283 "dtool/src/cppparser/cppBison.yxx" +#line 1294 "dtool/src/cppparser/cppBison.yxx" { pop_scope(); (yyval.u.inst_ident) = (yyvsp[(1) - (6)].u.inst_ident); @@ -4692,7 +4730,7 @@ yyreduce: case 153: /* Line 1792 of yacc.c */ -#line 1301 "dtool/src/cppparser/cppBison.yxx" +#line 1312 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.param_list) = new CPPParameterList; } @@ -4700,7 +4738,7 @@ yyreduce: case 154: /* Line 1792 of yacc.c */ -#line 1305 "dtool/src/cppparser/cppBison.yxx" +#line 1316 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.param_list) = new CPPParameterList; (yyval.u.param_list)->_includes_ellipsis = true; @@ -4709,7 +4747,7 @@ yyreduce: case 155: /* Line 1792 of yacc.c */ -#line 1310 "dtool/src/cppparser/cppBison.yxx" +#line 1321 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.param_list) = (yyvsp[(1) - (1)].u.param_list); } @@ -4717,7 +4755,7 @@ yyreduce: case 156: /* Line 1792 of yacc.c */ -#line 1314 "dtool/src/cppparser/cppBison.yxx" +#line 1325 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.param_list) = (yyvsp[(1) - (3)].u.param_list); (yyval.u.param_list)->_includes_ellipsis = true; @@ -4726,7 +4764,7 @@ yyreduce: case 157: /* Line 1792 of yacc.c */ -#line 1319 "dtool/src/cppparser/cppBison.yxx" +#line 1330 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.param_list) = (yyvsp[(1) - (2)].u.param_list); (yyval.u.param_list)->_includes_ellipsis = true; @@ -4735,7 +4773,7 @@ yyreduce: case 158: /* Line 1792 of yacc.c */ -#line 1327 "dtool/src/cppparser/cppBison.yxx" +#line 1338 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.param_list) = new CPPParameterList; (yyval.u.param_list)->_parameters.push_back((yyvsp[(1) - (1)].u.instance)); @@ -4744,7 +4782,7 @@ yyreduce: case 159: /* Line 1792 of yacc.c */ -#line 1332 "dtool/src/cppparser/cppBison.yxx" +#line 1343 "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)); @@ -4753,7 +4791,7 @@ yyreduce: case 160: /* Line 1792 of yacc.c */ -#line 1340 "dtool/src/cppparser/cppBison.yxx" +#line 1351 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (CPPExpression *)NULL; } @@ -4761,7 +4799,7 @@ yyreduce: case 161: /* Line 1792 of yacc.c */ -#line 1344 "dtool/src/cppparser/cppBison.yxx" +#line 1355 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (yyvsp[(2) - (2)].u.expr); } @@ -4769,7 +4807,7 @@ yyreduce: case 162: /* Line 1792 of yacc.c */ -#line 1351 "dtool/src/cppparser/cppBison.yxx" +#line 1362 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (CPPExpression *)NULL; } @@ -4777,7 +4815,7 @@ yyreduce: case 163: /* Line 1792 of yacc.c */ -#line 1355 "dtool/src/cppparser/cppBison.yxx" +#line 1366 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (yyvsp[(2) - (2)].u.expr); } @@ -4785,7 +4823,7 @@ yyreduce: case 164: /* Line 1792 of yacc.c */ -#line 1362 "dtool/src/cppparser/cppBison.yxx" +#line 1373 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (CPPExpression *)NULL; } @@ -4793,7 +4831,7 @@ yyreduce: case 165: /* Line 1792 of yacc.c */ -#line 1366 "dtool/src/cppparser/cppBison.yxx" +#line 1377 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (CPPExpression *)NULL; } @@ -4801,7 +4839,7 @@ yyreduce: case 166: /* Line 1792 of yacc.c */ -#line 1370 "dtool/src/cppparser/cppBison.yxx" +#line 1381 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (CPPExpression *)NULL; } @@ -4809,7 +4847,7 @@ yyreduce: case 167: /* Line 1792 of yacc.c */ -#line 1374 "dtool/src/cppparser/cppBison.yxx" +#line 1385 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (yyvsp[(2) - (3)].u.expr); } @@ -4817,7 +4855,7 @@ yyreduce: case 168: /* Line 1792 of yacc.c */ -#line 1378 "dtool/src/cppparser/cppBison.yxx" +#line 1389 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (CPPExpression *)NULL; } @@ -4825,14 +4863,14 @@ yyreduce: case 172: /* Line 1792 of yacc.c */ -#line 1391 "dtool/src/cppparser/cppBison.yxx" +#line 1402 "dtool/src/cppparser/cppBison.yxx" { } break; case 176: /* Line 1792 of yacc.c */ -#line 1400 "dtool/src/cppparser/cppBison.yxx" +#line 1411 "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)); @@ -4841,7 +4879,7 @@ yyreduce: case 177: /* Line 1792 of yacc.c */ -#line 1405 "dtool/src/cppparser/cppBison.yxx" +#line 1416 "dtool/src/cppparser/cppBison.yxx" { yywarning("Not a type: " + (yyvsp[(1) - (3)].u.identifier)->get_fully_scoped_name(), (yylsp[(1) - (3)])); CPPType *type = @@ -4853,7 +4891,7 @@ yyreduce: case 178: /* Line 1792 of yacc.c */ -#line 1413 "dtool/src/cppparser/cppBison.yxx" +#line 1424 "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); @@ -4863,7 +4901,25 @@ yyreduce: case 179: /* Line 1792 of yacc.c */ -#line 1419 "dtool/src/cppparser/cppBison.yxx" +#line 1430 "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); + (yyval.u.instance)->set_initializer((yyvsp[(5) - (5)].u.expr)); +} + break; + + case 180: +/* Line 1792 of yacc.c */ +#line 1436 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.instance) = (yyvsp[(2) - (2)].u.instance); +} + break; + + case 181: +/* Line 1792 of yacc.c */ +#line 1440 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_parameter)); @@ -4872,183 +4928,183 @@ yyreduce: } break; - case 180: -/* Line 1792 of yacc.c */ -#line 1429 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = new CPPInstanceIdentifier((CPPIdentifier *)NULL); -} - break; - - case 181: -/* Line 1792 of yacc.c */ -#line 1433 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[(1) - (1)].u.identifier)); -} - break; - case 182: /* Line 1792 of yacc.c */ -#line 1437 "dtool/src/cppparser/cppBison.yxx" +#line 1450 "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 183: /* Line 1792 of yacc.c */ -#line 1441 "dtool/src/cppparser/cppBison.yxx" +#line 1454 "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 184: /* Line 1792 of yacc.c */ -#line 1446 "dtool/src/cppparser/cppBison.yxx" +#line 1458 "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 185: /* Line 1792 of yacc.c */ -#line 1451 "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 186: -/* Line 1792 of yacc.c */ -#line 1456 "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 187: -/* Line 1792 of yacc.c */ -#line 1461 "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 188: -/* Line 1792 of yacc.c */ -#line 1466 "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 189: -/* Line 1792 of yacc.c */ -#line 1471 "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 190: -/* Line 1792 of yacc.c */ -#line 1479 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = new CPPInstanceIdentifier((CPPIdentifier *)NULL); -} - break; - - case 191: -/* Line 1792 of yacc.c */ -#line 1483 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[(1) - (1)].u.identifier)); -} - break; - - case 192: -/* Line 1792 of yacc.c */ -#line 1487 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[(1) - (1)].u.identifier)); -} - break; - - case 193: -/* Line 1792 of yacc.c */ -#line 1491 "dtool/src/cppparser/cppBison.yxx" +#line 1462 "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 194: + case 186: /* Line 1792 of yacc.c */ -#line 1496 "dtool/src/cppparser/cppBison.yxx" +#line 1467 "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 195: + case 187: /* Line 1792 of yacc.c */ -#line 1501 "dtool/src/cppparser/cppBison.yxx" +#line 1472 "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 196: + case 188: /* Line 1792 of yacc.c */ -#line 1506 "dtool/src/cppparser/cppBison.yxx" +#line 1477 "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 197: + case 189: /* Line 1792 of yacc.c */ -#line 1511 "dtool/src/cppparser/cppBison.yxx" +#line 1482 "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 198: + case 190: /* Line 1792 of yacc.c */ -#line 1516 "dtool/src/cppparser/cppBison.yxx" +#line 1487 "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 199: + case 191: /* Line 1792 of yacc.c */ -#line 1521 "dtool/src/cppparser/cppBison.yxx" +#line 1492 "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 192: +/* Line 1792 of yacc.c */ +#line 1500 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.inst_ident) = new CPPInstanceIdentifier((CPPIdentifier *)NULL); +} + break; + + case 193: +/* Line 1792 of yacc.c */ +#line 1504 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[(1) - (1)].u.identifier)); +} + break; + + case 194: +/* Line 1792 of yacc.c */ +#line 1508 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[(1) - (1)].u.identifier)); +} + break; + + case 195: +/* Line 1792 of yacc.c */ +#line 1512 "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 196: +/* Line 1792 of yacc.c */ +#line 1517 "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 197: +/* Line 1792 of yacc.c */ +#line 1522 "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 198: +/* Line 1792 of yacc.c */ +#line 1527 "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 199: +/* Line 1792 of yacc.c */ +#line 1532 "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 200: /* Line 1792 of yacc.c */ -#line 1526 "dtool/src/cppparser/cppBison.yxx" +#line 1537 "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 201: +/* Line 1792 of yacc.c */ +#line 1542 "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 202: +/* Line 1792 of yacc.c */ +#line 1547 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[(2) - (7)].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_paren); @@ -5056,89 +5112,89 @@ yyreduce: } break; - case 201: + case 203: /* Line 1792 of yacc.c */ -#line 1532 "dtool/src/cppparser/cppBison.yxx" +#line 1553 "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 202: + case 204: /* Line 1792 of yacc.c */ -#line 1540 "dtool/src/cppparser/cppBison.yxx" +#line 1561 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = new CPPInstanceIdentifier((CPPIdentifier *)NULL); } break; - case 203: + case 205: /* Line 1792 of yacc.c */ -#line 1544 "dtool/src/cppparser/cppBison.yxx" +#line 1565 "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 204: + case 206: /* Line 1792 of yacc.c */ -#line 1549 "dtool/src/cppparser/cppBison.yxx" +#line 1570 "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 205: + case 207: /* Line 1792 of yacc.c */ -#line 1554 "dtool/src/cppparser/cppBison.yxx" +#line 1575 "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 206: + case 208: /* Line 1792 of yacc.c */ -#line 1559 "dtool/src/cppparser/cppBison.yxx" +#line 1580 "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 207: + case 209: /* Line 1792 of yacc.c */ -#line 1564 "dtool/src/cppparser/cppBison.yxx" +#line 1585 "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 208: + case 210: /* Line 1792 of yacc.c */ -#line 1569 "dtool/src/cppparser/cppBison.yxx" +#line 1590 "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 209: + case 211: /* Line 1792 of yacc.c */ -#line 1574 "dtool/src/cppparser/cppBison.yxx" +#line 1595 "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 210: + case 212: /* Line 1792 of yacc.c */ -#line 1579 "dtool/src/cppparser/cppBison.yxx" +#line 1600 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[(2) - (7)].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_paren); @@ -5146,58 +5202,58 @@ yyreduce: } break; - case 211: + case 213: /* Line 1792 of yacc.c */ -#line 1588 "dtool/src/cppparser/cppBison.yxx" +#line 1609 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type((yyvsp[(1) - (1)].u.simple_type)); } break; - case 212: + case 214: /* Line 1792 of yacc.c */ -#line 1592 "dtool/src/cppparser/cppBison.yxx" +#line 1613 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = (yyvsp[(1) - (1)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); assert((yyval.u.type) != NULL); } break; - case 213: + case 215: /* Line 1792 of yacc.c */ -#line 1597 "dtool/src/cppparser/cppBison.yxx" +#line 1618 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[(2) - (2)].u.identifier))); } break; - case 214: -/* Line 1792 of yacc.c */ -#line 1601 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.type) = CPPType::new_type((yyvsp[(1) - (1)].u.struct_type)); -} - break; - - case 215: -/* Line 1792 of yacc.c */ -#line 1605 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.type) = CPPType::new_type((yyvsp[(1) - (1)].u.struct_type)); -} - break; - case 216: /* Line 1792 of yacc.c */ -#line 1609 "dtool/src/cppparser/cppBison.yxx" +#line 1622 "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 217: /* Line 1792 of yacc.c */ -#line 1613 "dtool/src/cppparser/cppBison.yxx" +#line 1626 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.type) = CPPType::new_type((yyvsp[(1) - (1)].u.struct_type)); +} + break; + + case 218: +/* Line 1792 of yacc.c */ +#line 1630 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.type) = CPPType::new_type((yyvsp[(1) - (1)].u.enum_type)); +} + break; + + case 219: +/* Line 1792 of yacc.c */ +#line 1634 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = (yyvsp[(2) - (2)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != NULL) { @@ -5215,9 +5271,9 @@ yyreduce: } break; - case 218: + case 220: /* Line 1792 of yacc.c */ -#line 1629 "dtool/src/cppparser/cppBison.yxx" +#line 1650 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = (yyvsp[(2) - (4)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != NULL) { @@ -5235,58 +5291,58 @@ yyreduce: } break; - case 219: + case 221: /* Line 1792 of yacc.c */ -#line 1648 "dtool/src/cppparser/cppBison.yxx" +#line 1669 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = CPPType::new_type((yyvsp[(1) - (1)].u.simple_type)); } break; - case 220: + case 222: /* Line 1792 of yacc.c */ -#line 1652 "dtool/src/cppparser/cppBison.yxx" +#line 1673 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = (yyvsp[(1) - (1)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); assert((yyval.u.decl) != NULL); } break; - case 221: + case 223: /* Line 1792 of yacc.c */ -#line 1657 "dtool/src/cppparser/cppBison.yxx" +#line 1678 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = CPPType::new_type(new CPPTBDType((yyvsp[(2) - (2)].u.identifier))); } break; - case 222: + case 224: /* Line 1792 of yacc.c */ -#line 1661 "dtool/src/cppparser/cppBison.yxx" +#line 1682 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = CPPType::new_type((yyvsp[(1) - (1)].u.struct_type)); } break; - case 223: + case 225: /* Line 1792 of yacc.c */ -#line 1665 "dtool/src/cppparser/cppBison.yxx" +#line 1686 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = new CPPTypeDeclaration(CPPType::new_type((yyvsp[(1) - (1)].u.struct_type))); } break; - case 224: + case 226: /* Line 1792 of yacc.c */ -#line 1669 "dtool/src/cppparser/cppBison.yxx" +#line 1690 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = new CPPTypeDeclaration(CPPType::new_type((yyvsp[(1) - (1)].u.enum_type))); } break; - case 225: + case 227: /* Line 1792 of yacc.c */ -#line 1673 "dtool/src/cppparser/cppBison.yxx" +#line 1694 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = (yyvsp[(2) - (2)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != NULL) { @@ -5304,9 +5360,9 @@ yyreduce: } break; - case 226: + case 228: /* Line 1792 of yacc.c */ -#line 1689 "dtool/src/cppparser/cppBison.yxx" +#line 1710 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = (yyvsp[(2) - (4)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != NULL) { @@ -5324,9 +5380,9 @@ yyreduce: } break; - case 227: + case 229: /* Line 1792 of yacc.c */ -#line 1705 "dtool/src/cppparser/cppBison.yxx" +#line 1726 "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)])); @@ -5346,74 +5402,74 @@ yyreduce: } break; - case 228: + case 230: /* Line 1792 of yacc.c */ -#line 1726 "dtool/src/cppparser/cppBison.yxx" +#line 1747 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type((yyvsp[(1) - (1)].u.simple_type)); } break; - case 229: + case 231: /* Line 1792 of yacc.c */ -#line 1730 "dtool/src/cppparser/cppBison.yxx" +#line 1751 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = (yyvsp[(1) - (1)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); assert((yyval.u.type) != NULL); } break; - case 230: + case 232: /* Line 1792 of yacc.c */ -#line 1735 "dtool/src/cppparser/cppBison.yxx" +#line 1756 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[(2) - (2)].u.identifier))); } break; - case 231: -/* Line 1792 of yacc.c */ -#line 1739 "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 232: -/* Line 1792 of yacc.c */ -#line 1755 "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 233: /* Line 1792 of yacc.c */ -#line 1774 "dtool/src/cppparser/cppBison.yxx" +#line 1760 "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 234: +/* Line 1792 of yacc.c */ +#line 1776 "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 235: +/* Line 1792 of yacc.c */ +#line 1795 "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; @@ -5421,9 +5477,9 @@ yyreduce: } break; - case 234: + case 236: /* Line 1792 of yacc.c */ -#line 1780 "dtool/src/cppparser/cppBison.yxx" +#line 1801 "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); @@ -5432,9 +5488,9 @@ yyreduce: } break; - case 235: + case 237: /* Line 1792 of yacc.c */ -#line 1790 "dtool/src/cppparser/cppBison.yxx" +#line 1811 "dtool/src/cppparser/cppBison.yxx" { CPPVisibility starting_vis = ((yyvsp[(1) - (2)].u.extension_enum) == CPPExtensionType::T_class) ? V_private : V_public; @@ -5450,9 +5506,9 @@ yyreduce: } break; - case 236: + case 238: /* Line 1792 of yacc.c */ -#line 1804 "dtool/src/cppparser/cppBison.yxx" +#line 1825 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.struct_type) = current_struct; current_struct->_incomplete = false; @@ -5461,9 +5517,9 @@ yyreduce: } break; - case 237: + case 239: /* Line 1792 of yacc.c */ -#line 1814 "dtool/src/cppparser/cppBison.yxx" +#line 1835 "dtool/src/cppparser/cppBison.yxx" { CPPVisibility starting_vis = ((yyvsp[(1) - (2)].u.extension_enum) == CPPExtensionType::T_class) ? V_private : V_public; @@ -5485,9 +5541,9 @@ yyreduce: } break; - case 238: + case 240: /* Line 1792 of yacc.c */ -#line 1834 "dtool/src/cppparser/cppBison.yxx" +#line 1855 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.struct_type) = current_struct; current_struct->_incomplete = false; @@ -5496,138 +5552,138 @@ yyreduce: } break; - case 243: + case 245: /* Line 1792 of yacc.c */ -#line 1854 "dtool/src/cppparser/cppBison.yxx" +#line 1875 "dtool/src/cppparser/cppBison.yxx" { current_struct->append_derivation((yyvsp[(2) - (2)].u.type), V_public, false); } break; - case 244: + case 246: /* Line 1792 of yacc.c */ -#line 1858 "dtool/src/cppparser/cppBison.yxx" +#line 1879 "dtool/src/cppparser/cppBison.yxx" { current_struct->append_derivation((yyvsp[(2) - (2)].u.type), V_protected, false); } break; - case 245: + case 247: /* Line 1792 of yacc.c */ -#line 1862 "dtool/src/cppparser/cppBison.yxx" +#line 1883 "dtool/src/cppparser/cppBison.yxx" { current_struct->append_derivation((yyvsp[(2) - (2)].u.type), V_private, false); } break; - case 246: -/* Line 1792 of yacc.c */ -#line 1866 "dtool/src/cppparser/cppBison.yxx" - { - current_struct->append_derivation((yyvsp[(3) - (3)].u.type), V_public, true); -} - break; - - case 247: -/* Line 1792 of yacc.c */ -#line 1870 "dtool/src/cppparser/cppBison.yxx" - { - current_struct->append_derivation((yyvsp[(3) - (3)].u.type), V_protected, true); -} - break; - case 248: /* Line 1792 of yacc.c */ -#line 1874 "dtool/src/cppparser/cppBison.yxx" +#line 1887 "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 249: /* Line 1792 of yacc.c */ -#line 1878 "dtool/src/cppparser/cppBison.yxx" - { - current_struct->append_derivation((yyvsp[(3) - (3)].u.type), V_public, true); -} - break; - - case 250: -/* Line 1792 of yacc.c */ -#line 1882 "dtool/src/cppparser/cppBison.yxx" +#line 1891 "dtool/src/cppparser/cppBison.yxx" { current_struct->append_derivation((yyvsp[(3) - (3)].u.type), V_protected, true); } break; - case 251: + case 250: /* Line 1792 of yacc.c */ -#line 1886 "dtool/src/cppparser/cppBison.yxx" +#line 1895 "dtool/src/cppparser/cppBison.yxx" { current_struct->append_derivation((yyvsp[(3) - (3)].u.type), V_private, true); } break; + case 251: +/* Line 1792 of yacc.c */ +#line 1899 "dtool/src/cppparser/cppBison.yxx" + { + current_struct->append_derivation((yyvsp[(3) - (3)].u.type), V_public, true); +} + break; + case 252: /* Line 1792 of yacc.c */ -#line 1893 "dtool/src/cppparser/cppBison.yxx" +#line 1903 "dtool/src/cppparser/cppBison.yxx" + { + current_struct->append_derivation((yyvsp[(3) - (3)].u.type), V_protected, true); +} + break; + + case 253: +/* Line 1792 of yacc.c */ +#line 1907 "dtool/src/cppparser/cppBison.yxx" + { + current_struct->append_derivation((yyvsp[(3) - (3)].u.type), V_private, true); +} + break; + + case 254: +/* Line 1792 of yacc.c */ +#line 1914 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.enum_type) = current_enum; current_enum = NULL; } break; - case 253: + case 255: /* Line 1792 of yacc.c */ -#line 1901 "dtool/src/cppparser/cppBison.yxx" +#line 1922 "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 254: + case 256: /* Line 1792 of yacc.c */ -#line 1905 "dtool/src/cppparser/cppBison.yxx" +#line 1926 "dtool/src/cppparser/cppBison.yxx" { current_enum = new CPPEnumType((yyvsp[(2) - (2)].u.identifier), current_scope, (yylsp[(1) - (2)]).file); } break; - case 255: + case 257: /* Line 1792 of yacc.c */ -#line 1909 "dtool/src/cppparser/cppBison.yxx" +#line 1930 "dtool/src/cppparser/cppBison.yxx" { current_enum = new CPPEnumType(NULL, (yyvsp[(3) - (3)].u.type), current_scope, (yylsp[(1) - (3)]).file); } break; - case 256: + case 258: /* Line 1792 of yacc.c */ -#line 1913 "dtool/src/cppparser/cppBison.yxx" +#line 1934 "dtool/src/cppparser/cppBison.yxx" { current_enum = new CPPEnumType(NULL, current_scope, (yylsp[(1) - (1)]).file); } break; - case 257: + case 259: /* Line 1792 of yacc.c */ -#line 1920 "dtool/src/cppparser/cppBison.yxx" +#line 1941 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type((yyvsp[(1) - (1)].u.simple_type)); } break; - case 258: + case 260: /* Line 1792 of yacc.c */ -#line 1924 "dtool/src/cppparser/cppBison.yxx" +#line 1945 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = (yyvsp[(1) - (1)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); } break; - case 260: + case 262: /* Line 1792 of yacc.c */ -#line 1932 "dtool/src/cppparser/cppBison.yxx" +#line 1953 "dtool/src/cppparser/cppBison.yxx" { assert(current_enum != NULL); CPPInstance *inst = current_enum->add_element((yyvsp[(2) - (3)].u.identifier)->get_simple_name()); @@ -5635,9 +5691,9 @@ yyreduce: } break; - case 261: + case 263: /* Line 1792 of yacc.c */ -#line 1938 "dtool/src/cppparser/cppBison.yxx" +#line 1959 "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)); @@ -5645,9 +5701,9 @@ yyreduce: } break; - case 263: + case 265: /* Line 1792 of yacc.c */ -#line 1947 "dtool/src/cppparser/cppBison.yxx" +#line 1968 "dtool/src/cppparser/cppBison.yxx" { assert(current_enum != NULL); CPPInstance *inst = current_enum->add_element((yyvsp[(2) - (2)].u.identifier)->get_simple_name()); @@ -5655,9 +5711,9 @@ yyreduce: } break; - case 264: + case 266: /* Line 1792 of yacc.c */ -#line 1953 "dtool/src/cppparser/cppBison.yxx" +#line 1974 "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)); @@ -5665,41 +5721,41 @@ yyreduce: } break; - case 265: + case 267: /* Line 1792 of yacc.c */ -#line 1962 "dtool/src/cppparser/cppBison.yxx" +#line 1983 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.extension_enum) = CPPExtensionType::T_enum; } break; - case 266: + case 268: /* Line 1792 of yacc.c */ -#line 1969 "dtool/src/cppparser/cppBison.yxx" +#line 1990 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.extension_enum) = CPPExtensionType::T_class; } break; - case 267: + case 269: /* Line 1792 of yacc.c */ -#line 1973 "dtool/src/cppparser/cppBison.yxx" +#line 1994 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.extension_enum) = CPPExtensionType::T_struct; } break; - case 268: + case 270: /* Line 1792 of yacc.c */ -#line 1977 "dtool/src/cppparser/cppBison.yxx" +#line 1998 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.extension_enum) = CPPExtensionType::T_union; } break; - case 269: + case 271: /* Line 1792 of yacc.c */ -#line 1984 "dtool/src/cppparser/cppBison.yxx" +#line 2005 "dtool/src/cppparser/cppBison.yxx" { CPPScope *scope = (yyvsp[(2) - (3)].u.identifier)->find_scope(current_scope, global_scope, current_lexer); if (scope == NULL) { @@ -5719,17 +5775,17 @@ yyreduce: } break; - case 270: + case 272: /* Line 1792 of yacc.c */ -#line 2002 "dtool/src/cppparser/cppBison.yxx" +#line 2023 "dtool/src/cppparser/cppBison.yxx" { pop_scope(); } break; - case 272: + case 274: /* Line 1792 of yacc.c */ -#line 2010 "dtool/src/cppparser/cppBison.yxx" +#line 2031 "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)])); @@ -5737,9 +5793,9 @@ yyreduce: } break; - case 273: + case 275: /* Line 1792 of yacc.c */ -#line 2016 "dtool/src/cppparser/cppBison.yxx" +#line 2037 "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)])); @@ -5747,111 +5803,111 @@ yyreduce: } break; - case 277: + case 279: /* Line 1792 of yacc.c */ -#line 2031 "dtool/src/cppparser/cppBison.yxx" +#line 2052 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_bool); } break; - case 278: + case 280: /* Line 1792 of yacc.c */ -#line 2035 "dtool/src/cppparser/cppBison.yxx" +#line 2056 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_char); } break; - case 279: + case 281: /* Line 1792 of yacc.c */ -#line 2039 "dtool/src/cppparser/cppBison.yxx" +#line 2060 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_wchar_t); } break; - case 280: + case 282: /* Line 1792 of yacc.c */ -#line 2043 "dtool/src/cppparser/cppBison.yxx" +#line 2064 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_char16_t); } break; - case 281: + case 283: /* Line 1792 of yacc.c */ -#line 2047 "dtool/src/cppparser/cppBison.yxx" +#line 2068 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_char32_t); } break; - case 282: + case 284: /* Line 1792 of yacc.c */ -#line 2051 "dtool/src/cppparser/cppBison.yxx" +#line 2072 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_short); } break; - case 283: + case 285: /* Line 1792 of yacc.c */ -#line 2056 "dtool/src/cppparser/cppBison.yxx" +#line 2077 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_long); } break; - case 284: + case 286: /* Line 1792 of yacc.c */ -#line 2061 "dtool/src/cppparser/cppBison.yxx" +#line 2082 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_longlong); } break; - case 285: + case 287: /* Line 1792 of yacc.c */ -#line 2066 "dtool/src/cppparser/cppBison.yxx" +#line 2087 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_unsigned); } break; - case 286: + case 288: /* Line 1792 of yacc.c */ -#line 2071 "dtool/src/cppparser/cppBison.yxx" +#line 2092 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_signed); } break; - case 287: + case 289: /* Line 1792 of yacc.c */ -#line 2076 "dtool/src/cppparser/cppBison.yxx" +#line 2097 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int); } break; - case 288: + case 290: /* Line 1792 of yacc.c */ -#line 2080 "dtool/src/cppparser/cppBison.yxx" +#line 2101 "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 289: + case 291: /* Line 1792 of yacc.c */ -#line 2085 "dtool/src/cppparser/cppBison.yxx" +#line 2106 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = (yyvsp[(2) - (2)].u.simple_type); if ((yyval.u.simple_type)->_flags & CPPSimpleType::F_long) { @@ -5862,173 +5918,157 @@ yyreduce: } break; - case 290: + case 292: /* Line 1792 of yacc.c */ -#line 2094 "dtool/src/cppparser/cppBison.yxx" +#line 2115 "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 291: + case 293: /* Line 1792 of yacc.c */ -#line 2099 "dtool/src/cppparser/cppBison.yxx" +#line 2120 "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 292: + case 294: /* Line 1792 of yacc.c */ -#line 2107 "dtool/src/cppparser/cppBison.yxx" +#line 2128 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_float); } break; - case 293: + case 295: /* Line 1792 of yacc.c */ -#line 2111 "dtool/src/cppparser/cppBison.yxx" +#line 2132 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_float, CPPSimpleType::F_long); } break; - case 294: + case 296: /* Line 1792 of yacc.c */ -#line 2116 "dtool/src/cppparser/cppBison.yxx" +#line 2137 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_double); } break; - case 295: + case 297: /* Line 1792 of yacc.c */ -#line 2120 "dtool/src/cppparser/cppBison.yxx" +#line 2141 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_float, CPPSimpleType::F_longlong); } break; - case 296: + case 298: /* Line 1792 of yacc.c */ -#line 2125 "dtool/src/cppparser/cppBison.yxx" +#line 2146 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_double, CPPSimpleType::F_long); } break; - case 297: + case 299: /* Line 1792 of yacc.c */ -#line 2133 "dtool/src/cppparser/cppBison.yxx" +#line 2154 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_void); } break; - case 298: + case 300: /* Line 1792 of yacc.c */ -#line 2142 "dtool/src/cppparser/cppBison.yxx" +#line 2163 "dtool/src/cppparser/cppBison.yxx" { current_lexer->_resolve_identifiers = false; } break; - case 299: + case 301: /* Line 1792 of yacc.c */ -#line 2146 "dtool/src/cppparser/cppBison.yxx" +#line 2167 "dtool/src/cppparser/cppBison.yxx" { current_lexer->_resolve_identifiers = true; } break; - case 302: -/* Line 1792 of yacc.c */ -#line 2158 "dtool/src/cppparser/cppBison.yxx" - { -} - break; - - case 303: -/* Line 1792 of yacc.c */ -#line 2161 "dtool/src/cppparser/cppBison.yxx" - { -} - break; - case 304: /* Line 1792 of yacc.c */ -#line 2164 "dtool/src/cppparser/cppBison.yxx" - { -} - break; - - case 305: -/* Line 1792 of yacc.c */ -#line 2167 "dtool/src/cppparser/cppBison.yxx" - { -} - break; - - case 306: -/* Line 1792 of yacc.c */ -#line 2170 "dtool/src/cppparser/cppBison.yxx" - { -} - break; - - case 307: -/* Line 1792 of yacc.c */ -#line 2173 "dtool/src/cppparser/cppBison.yxx" - { -} - break; - - case 308: -/* Line 1792 of yacc.c */ -#line 2176 "dtool/src/cppparser/cppBison.yxx" - { -} - break; - - case 309: -/* Line 1792 of yacc.c */ #line 2179 "dtool/src/cppparser/cppBison.yxx" { } break; - case 384: + case 305: +/* Line 1792 of yacc.c */ +#line 2182 "dtool/src/cppparser/cppBison.yxx" + { +} + break; + + case 306: +/* Line 1792 of yacc.c */ +#line 2185 "dtool/src/cppparser/cppBison.yxx" + { +} + break; + + case 307: +/* Line 1792 of yacc.c */ +#line 2188 "dtool/src/cppparser/cppBison.yxx" + { +} + break; + + case 308: +/* Line 1792 of yacc.c */ +#line 2191 "dtool/src/cppparser/cppBison.yxx" + { +} + break; + + case 309: +/* Line 1792 of yacc.c */ +#line 2194 "dtool/src/cppparser/cppBison.yxx" + { +} + break; + + case 310: +/* Line 1792 of yacc.c */ +#line 2197 "dtool/src/cppparser/cppBison.yxx" + { +} + break; + + case 311: /* Line 1792 of yacc.c */ #line 2200 "dtool/src/cppparser/cppBison.yxx" { } break; - case 408: + case 386: /* Line 1792 of yacc.c */ -#line 2209 "dtool/src/cppparser/cppBison.yxx" +#line 2221 "dtool/src/cppparser/cppBison.yxx" { - (yyval.u.expr) = (CPPExpression *)NULL; -} - break; - - case 409: -/* Line 1792 of yacc.c */ -#line 2213 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); } break; case 410: /* Line 1792 of yacc.c */ -#line 2220 "dtool/src/cppparser/cppBison.yxx" +#line 2230 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (CPPExpression *)NULL; } @@ -6036,7 +6076,7 @@ yyreduce: case 411: /* Line 1792 of yacc.c */ -#line 2224 "dtool/src/cppparser/cppBison.yxx" +#line 2234 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); } @@ -6044,23 +6084,23 @@ yyreduce: case 412: /* Line 1792 of yacc.c */ -#line 2231 "dtool/src/cppparser/cppBison.yxx" +#line 2241 "dtool/src/cppparser/cppBison.yxx" { - (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); + (yyval.u.expr) = (CPPExpression *)NULL; } break; case 413: /* Line 1792 of yacc.c */ -#line 2235 "dtool/src/cppparser/cppBison.yxx" +#line 2245 "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 414: /* Line 1792 of yacc.c */ -#line 2242 "dtool/src/cppparser/cppBison.yxx" +#line 2252 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); } @@ -6068,55 +6108,71 @@ yyreduce: case 415: /* Line 1792 of yacc.c */ -#line 2246 "dtool/src/cppparser/cppBison.yxx" +#line 2256 "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 416: /* Line 1792 of yacc.c */ -#line 2250 "dtool/src/cppparser/cppBison.yxx" +#line 2263 "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) = (yyvsp[(1) - (1)].u.expr); } break; case 417: /* Line 1792 of yacc.c */ -#line 2254 "dtool/src/cppparser/cppBison.yxx" +#line 2267 "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 418: /* Line 1792 of yacc.c */ -#line 2258 "dtool/src/cppparser/cppBison.yxx" +#line 2271 "dtool/src/cppparser/cppBison.yxx" { - (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[(3) - (4)].u.type))); + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(3) - (7)].u.type), (yyvsp[(6) - (7)].u.expr))); } break; case 419: /* Line 1792 of yacc.c */ -#line 2262 "dtool/src/cppparser/cppBison.yxx" +#line 2275 "dtool/src/cppparser/cppBison.yxx" { - (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[(2) - (2)].u.expr)); + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(3) - (7)].u.type), (yyvsp[(6) - (7)].u.expr))); } break; case 420: /* Line 1792 of yacc.c */ -#line 2266 "dtool/src/cppparser/cppBison.yxx" +#line 2279 "dtool/src/cppparser/cppBison.yxx" { - (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[(2) - (2)].u.expr)); + (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[(3) - (4)].u.type))); } break; case 421: /* Line 1792 of yacc.c */ -#line 2270 "dtool/src/cppparser/cppBison.yxx" +#line 2283 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[(2) - (2)].u.expr)); +} + break; + + case 422: +/* Line 1792 of yacc.c */ +#line 2287 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[(2) - (2)].u.expr)); +} + break; + + case 423: +/* Line 1792 of yacc.c */ +#line 2291 "dtool/src/cppparser/cppBison.yxx" { if ((yyvsp[(2) - (2)].u.expr)->_type == CPPExpression::T_integer) { (yyval.u.expr) = (yyvsp[(2) - (2)].u.expr); @@ -6130,241 +6186,241 @@ yyreduce: } break; - case 422: + case 424: /* Line 1792 of yacc.c */ -#line 2282 "dtool/src/cppparser/cppBison.yxx" +#line 2303 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(UNARY_STAR, (yyvsp[(2) - (2)].u.expr)); } break; - case 423: + case 425: /* Line 1792 of yacc.c */ -#line 2286 "dtool/src/cppparser/cppBison.yxx" +#line 2307 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[(2) - (2)].u.expr)); } break; - case 424: + case 426: /* Line 1792 of yacc.c */ -#line 2290 "dtool/src/cppparser/cppBison.yxx" +#line 2311 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('*', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 425: + case 427: /* Line 1792 of yacc.c */ -#line 2294 "dtool/src/cppparser/cppBison.yxx" +#line 2315 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('/', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 426: + case 428: /* Line 1792 of yacc.c */ -#line 2298 "dtool/src/cppparser/cppBison.yxx" +#line 2319 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('%', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 427: + case 429: /* Line 1792 of yacc.c */ -#line 2302 "dtool/src/cppparser/cppBison.yxx" +#line 2323 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('+', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 428: + case 430: /* Line 1792 of yacc.c */ -#line 2306 "dtool/src/cppparser/cppBison.yxx" +#line 2327 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('-', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 429: + case 431: /* Line 1792 of yacc.c */ -#line 2310 "dtool/src/cppparser/cppBison.yxx" +#line 2331 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('|', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 430: + case 432: /* Line 1792 of yacc.c */ -#line 2314 "dtool/src/cppparser/cppBison.yxx" +#line 2335 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('^', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 431: + case 433: /* Line 1792 of yacc.c */ -#line 2318 "dtool/src/cppparser/cppBison.yxx" +#line 2339 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('&', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 432: + case 434: /* Line 1792 of yacc.c */ -#line 2322 "dtool/src/cppparser/cppBison.yxx" +#line 2343 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 433: + case 435: /* Line 1792 of yacc.c */ -#line 2326 "dtool/src/cppparser/cppBison.yxx" +#line 2347 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 434: + case 436: /* Line 1792 of yacc.c */ -#line 2330 "dtool/src/cppparser/cppBison.yxx" +#line 2351 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 435: + case 437: /* Line 1792 of yacc.c */ -#line 2334 "dtool/src/cppparser/cppBison.yxx" +#line 2355 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 436: + case 438: /* Line 1792 of yacc.c */ -#line 2338 "dtool/src/cppparser/cppBison.yxx" +#line 2359 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 437: + case 439: /* Line 1792 of yacc.c */ -#line 2342 "dtool/src/cppparser/cppBison.yxx" +#line 2363 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 438: + case 440: /* Line 1792 of yacc.c */ -#line 2346 "dtool/src/cppparser/cppBison.yxx" +#line 2367 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 439: + case 441: /* Line 1792 of yacc.c */ -#line 2350 "dtool/src/cppparser/cppBison.yxx" +#line 2371 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 440: + case 442: /* Line 1792 of yacc.c */ -#line 2354 "dtool/src/cppparser/cppBison.yxx" +#line 2375 "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 441: + case 443: /* Line 1792 of yacc.c */ -#line 2358 "dtool/src/cppparser/cppBison.yxx" +#line 2379 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('[', (yyvsp[(1) - (4)].u.expr), (yyvsp[(3) - (4)].u.expr)); } break; - case 442: + case 444: /* Line 1792 of yacc.c */ -#line 2362 "dtool/src/cppparser/cppBison.yxx" +#line 2383 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('f', (yyvsp[(1) - (4)].u.expr), (yyvsp[(3) - (4)].u.expr)); } break; - case 443: + case 445: /* Line 1792 of yacc.c */ -#line 2366 "dtool/src/cppparser/cppBison.yxx" +#line 2387 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('f', (yyvsp[(1) - (3)].u.expr)); } break; - case 444: + case 446: /* Line 1792 of yacc.c */ -#line 2370 "dtool/src/cppparser/cppBison.yxx" +#line 2391 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('.', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 445: + case 447: /* Line 1792 of yacc.c */ -#line 2374 "dtool/src/cppparser/cppBison.yxx" +#line 2395 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 446: + case 448: /* Line 1792 of yacc.c */ -#line 2378 "dtool/src/cppparser/cppBison.yxx" +#line 2399 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (yyvsp[(2) - (3)].u.expr); } break; - case 447: + case 449: /* Line 1792 of yacc.c */ -#line 2386 "dtool/src/cppparser/cppBison.yxx" +#line 2407 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); } break; - case 448: + case 450: /* Line 1792 of yacc.c */ -#line 2390 "dtool/src/cppparser/cppBison.yxx" +#line 2411 "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 449: -/* Line 1792 of yacc.c */ -#line 2394 "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 450: -/* Line 1792 of yacc.c */ -#line 2398 "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 451: /* Line 1792 of yacc.c */ -#line 2402 "dtool/src/cppparser/cppBison.yxx" +#line 2415 "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 452: +/* Line 1792 of yacc.c */ +#line 2419 "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 453: +/* Line 1792 of yacc.c */ +#line 2423 "dtool/src/cppparser/cppBison.yxx" { // A constructor call. CPPType *type = (yyvsp[(1) - (4)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); @@ -6373,9 +6429,9 @@ yyreduce: } break; - case 452: + case 454: /* Line 1792 of yacc.c */ -#line 2409 "dtool/src/cppparser/cppBison.yxx" +#line 2430 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_int)); @@ -6383,9 +6439,9 @@ yyreduce: } break; - case 453: + case 455: /* Line 1792 of yacc.c */ -#line 2415 "dtool/src/cppparser/cppBison.yxx" +#line 2436 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_char)); @@ -6393,9 +6449,9 @@ yyreduce: } break; - case 454: + case 456: /* Line 1792 of yacc.c */ -#line 2421 "dtool/src/cppparser/cppBison.yxx" +#line 2442 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_wchar_t)); @@ -6403,9 +6459,9 @@ yyreduce: } break; - case 455: + case 457: /* Line 1792 of yacc.c */ -#line 2427 "dtool/src/cppparser/cppBison.yxx" +#line 2448 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_char16_t)); @@ -6413,9 +6469,9 @@ yyreduce: } break; - case 456: + case 458: /* Line 1792 of yacc.c */ -#line 2433 "dtool/src/cppparser/cppBison.yxx" +#line 2454 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_char32_t)); @@ -6423,9 +6479,9 @@ yyreduce: } break; - case 457: + case 459: /* Line 1792 of yacc.c */ -#line 2439 "dtool/src/cppparser/cppBison.yxx" +#line 2460 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_bool)); @@ -6433,9 +6489,9 @@ yyreduce: } break; - case 458: + case 460: /* Line 1792 of yacc.c */ -#line 2445 "dtool/src/cppparser/cppBison.yxx" +#line 2466 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_int, @@ -6444,9 +6500,9 @@ yyreduce: } break; - case 459: + case 461: /* Line 1792 of yacc.c */ -#line 2452 "dtool/src/cppparser/cppBison.yxx" +#line 2473 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_int, @@ -6455,9 +6511,9 @@ yyreduce: } break; - case 460: + case 462: /* Line 1792 of yacc.c */ -#line 2459 "dtool/src/cppparser/cppBison.yxx" +#line 2480 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_int, @@ -6466,9 +6522,9 @@ yyreduce: } break; - case 461: + case 463: /* Line 1792 of yacc.c */ -#line 2466 "dtool/src/cppparser/cppBison.yxx" +#line 2487 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_int, @@ -6477,9 +6533,9 @@ yyreduce: } break; - case 462: + case 464: /* Line 1792 of yacc.c */ -#line 2473 "dtool/src/cppparser/cppBison.yxx" +#line 2494 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_float)); @@ -6487,9 +6543,9 @@ yyreduce: } break; - case 463: + case 465: /* Line 1792 of yacc.c */ -#line 2479 "dtool/src/cppparser/cppBison.yxx" +#line 2500 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_double)); @@ -6497,409 +6553,49 @@ yyreduce: } break; - case 464: -/* Line 1792 of yacc.c */ -#line 2485 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[(3) - (4)].u.type))); -} - break; - - case 465: -/* Line 1792 of yacc.c */ -#line 2489 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[(2) - (2)].u.type))); -} - break; - case 466: /* Line 1792 of yacc.c */ -#line 2493 "dtool/src/cppparser/cppBison.yxx" +#line 2506 "dtool/src/cppparser/cppBison.yxx" { - (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[(2) - (5)].u.type), (yyvsp[(4) - (5)].u.expr))); + (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[(3) - (4)].u.type))); } break; case 467: /* Line 1792 of yacc.c */ -#line 2497 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[(2) - (2)].u.expr)); -} - break; - - case 468: -/* Line 1792 of yacc.c */ -#line 2501 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[(2) - (2)].u.expr)); -} - break; - - case 469: -/* Line 1792 of yacc.c */ -#line 2505 "dtool/src/cppparser/cppBison.yxx" - { - if ((yyvsp[(2) - (2)].u.expr)->_type == CPPExpression::T_integer) { - (yyval.u.expr) = (yyvsp[(2) - (2)].u.expr); - (yyval.u.expr)->_u._integer = -(yyval.u.expr)->_u._integer; - } else if ((yyvsp[(2) - (2)].u.expr)->_type == CPPExpression::T_real) { - (yyval.u.expr) = (yyvsp[(2) - (2)].u.expr); - (yyval.u.expr)->_u._real = -(yyval.u.expr)->_u._real; - } else { - (yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[(2) - (2)].u.expr)); - } -} - break; - - case 470: -/* Line 1792 of yacc.c */ -#line 2517 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(UNARY_STAR, (yyvsp[(2) - (2)].u.expr)); -} - break; - - case 471: -/* Line 1792 of yacc.c */ -#line 2521 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[(2) - (2)].u.expr)); -} - break; - - case 472: -/* Line 1792 of yacc.c */ -#line 2525 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('*', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 473: -/* Line 1792 of yacc.c */ -#line 2529 "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 2533 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('%', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 475: -/* Line 1792 of yacc.c */ -#line 2537 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('+', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 476: -/* Line 1792 of yacc.c */ -#line 2541 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('-', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 477: -/* Line 1792 of yacc.c */ -#line 2545 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('|', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 478: -/* Line 1792 of yacc.c */ -#line 2549 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('^', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 479: -/* Line 1792 of yacc.c */ -#line 2553 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('&', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 480: -/* Line 1792 of yacc.c */ -#line 2557 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 481: -/* Line 1792 of yacc.c */ -#line 2561 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 482: -/* Line 1792 of yacc.c */ -#line 2565 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 483: -/* Line 1792 of yacc.c */ -#line 2569 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 484: -/* Line 1792 of yacc.c */ -#line 2573 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 485: -/* Line 1792 of yacc.c */ -#line 2577 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 486: -/* Line 1792 of yacc.c */ -#line 2581 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('<', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 487: -/* Line 1792 of yacc.c */ -#line 2585 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('>', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 488: -/* Line 1792 of yacc.c */ -#line 2589 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 489: -/* Line 1792 of yacc.c */ -#line 2593 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 490: -/* Line 1792 of yacc.c */ -#line 2597 "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 491: -/* Line 1792 of yacc.c */ -#line 2601 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('[', (yyvsp[(1) - (4)].u.expr), (yyvsp[(3) - (4)].u.expr)); -} - break; - - case 492: -/* Line 1792 of yacc.c */ -#line 2605 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('f', (yyvsp[(1) - (4)].u.expr), (yyvsp[(3) - (4)].u.expr)); -} - break; - - case 493: -/* Line 1792 of yacc.c */ -#line 2609 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('f', (yyvsp[(1) - (3)].u.expr)); -} - break; - - case 494: -/* Line 1792 of yacc.c */ -#line 2613 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('.', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 495: -/* Line 1792 of yacc.c */ -#line 2617 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 496: -/* Line 1792 of yacc.c */ -#line 2621 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (yyvsp[(2) - (3)].u.expr); -} - break; - - case 497: -/* Line 1792 of yacc.c */ -#line 2628 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.integer)); -} - break; - - case 498: -/* Line 1792 of yacc.c */ -#line 2632 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(true); -} - break; - - case 499: -/* Line 1792 of yacc.c */ -#line 2636 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(false); -} - break; - - case 500: -/* Line 1792 of yacc.c */ -#line 2640 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.integer)); -} - break; - - case 501: -/* Line 1792 of yacc.c */ -#line 2644 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.real)); -} - break; - - case 502: -/* Line 1792 of yacc.c */ -#line 2648 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].str)); -} - break; - - case 503: -/* Line 1792 of yacc.c */ -#line 2652 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.identifier), current_scope, global_scope, current_lexer); -} - break; - - case 504: -/* Line 1792 of yacc.c */ -#line 2666 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); -} - break; - - case 505: -/* Line 1792 of yacc.c */ -#line 2670 "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 506: -/* Line 1792 of yacc.c */ -#line 2674 "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 507: -/* Line 1792 of yacc.c */ -#line 2678 "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 508: -/* Line 1792 of yacc.c */ -#line 2682 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[(3) - (4)].u.type))); -} - break; - - case 509: -/* Line 1792 of yacc.c */ -#line 2686 "dtool/src/cppparser/cppBison.yxx" +#line 2510 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[(2) - (2)].u.type))); } break; - case 510: + case 468: /* Line 1792 of yacc.c */ -#line 2690 "dtool/src/cppparser/cppBison.yxx" +#line 2514 "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 511: + case 469: /* Line 1792 of yacc.c */ -#line 2694 "dtool/src/cppparser/cppBison.yxx" +#line 2518 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[(2) - (2)].u.expr)); } break; - case 512: + case 470: /* Line 1792 of yacc.c */ -#line 2698 "dtool/src/cppparser/cppBison.yxx" +#line 2522 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[(2) - (2)].u.expr)); } break; - case 513: + case 471: /* Line 1792 of yacc.c */ -#line 2702 "dtool/src/cppparser/cppBison.yxx" +#line 2526 "dtool/src/cppparser/cppBison.yxx" { if ((yyvsp[(2) - (2)].u.expr)->_type == CPPExpression::T_integer) { (yyval.u.expr) = (yyvsp[(2) - (2)].u.expr); @@ -6913,265 +6609,625 @@ yyreduce: } break; - case 514: + case 472: /* Line 1792 of yacc.c */ -#line 2714 "dtool/src/cppparser/cppBison.yxx" +#line 2538 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(UNARY_STAR, (yyvsp[(2) - (2)].u.expr)); +} + break; + + case 473: +/* Line 1792 of yacc.c */ +#line 2542 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[(2) - (2)].u.expr)); } break; - case 515: + case 474: /* Line 1792 of yacc.c */ -#line 2718 "dtool/src/cppparser/cppBison.yxx" +#line 2546 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('*', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 516: + case 475: /* Line 1792 of yacc.c */ -#line 2722 "dtool/src/cppparser/cppBison.yxx" +#line 2550 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('/', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 517: + case 476: /* Line 1792 of yacc.c */ -#line 2726 "dtool/src/cppparser/cppBison.yxx" +#line 2554 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('%', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 518: + case 477: /* Line 1792 of yacc.c */ -#line 2730 "dtool/src/cppparser/cppBison.yxx" +#line 2558 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('+', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 519: + case 478: /* Line 1792 of yacc.c */ -#line 2734 "dtool/src/cppparser/cppBison.yxx" +#line 2562 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('-', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 520: + case 479: /* Line 1792 of yacc.c */ -#line 2738 "dtool/src/cppparser/cppBison.yxx" +#line 2566 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('|', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 521: + case 480: /* Line 1792 of yacc.c */ -#line 2742 "dtool/src/cppparser/cppBison.yxx" +#line 2570 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('^', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 522: + case 481: /* Line 1792 of yacc.c */ -#line 2746 "dtool/src/cppparser/cppBison.yxx" +#line 2574 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('&', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 523: + case 482: /* Line 1792 of yacc.c */ -#line 2750 "dtool/src/cppparser/cppBison.yxx" +#line 2578 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 524: + case 483: /* Line 1792 of yacc.c */ -#line 2754 "dtool/src/cppparser/cppBison.yxx" +#line 2582 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 525: + case 484: /* Line 1792 of yacc.c */ -#line 2758 "dtool/src/cppparser/cppBison.yxx" +#line 2586 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 526: + case 485: /* Line 1792 of yacc.c */ -#line 2762 "dtool/src/cppparser/cppBison.yxx" +#line 2590 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 527: + case 486: /* Line 1792 of yacc.c */ -#line 2766 "dtool/src/cppparser/cppBison.yxx" +#line 2594 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 528: + case 487: /* Line 1792 of yacc.c */ -#line 2770 "dtool/src/cppparser/cppBison.yxx" +#line 2598 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 529: + case 488: /* Line 1792 of yacc.c */ -#line 2774 "dtool/src/cppparser/cppBison.yxx" +#line 2602 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('<', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 530: + case 489: /* Line 1792 of yacc.c */ -#line 2778 "dtool/src/cppparser/cppBison.yxx" +#line 2606 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('>', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 531: + case 490: /* Line 1792 of yacc.c */ -#line 2782 "dtool/src/cppparser/cppBison.yxx" +#line 2610 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 532: + case 491: /* Line 1792 of yacc.c */ -#line 2786 "dtool/src/cppparser/cppBison.yxx" +#line 2614 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 533: + case 492: /* Line 1792 of yacc.c */ -#line 2790 "dtool/src/cppparser/cppBison.yxx" +#line 2618 "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 534: + case 493: /* Line 1792 of yacc.c */ -#line 2794 "dtool/src/cppparser/cppBison.yxx" +#line 2622 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('[', (yyvsp[(1) - (4)].u.expr), (yyvsp[(3) - (4)].u.expr)); } break; - case 535: + case 494: /* Line 1792 of yacc.c */ -#line 2798 "dtool/src/cppparser/cppBison.yxx" +#line 2626 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('f', (yyvsp[(1) - (4)].u.expr), (yyvsp[(3) - (4)].u.expr)); } break; - case 536: + case 495: /* Line 1792 of yacc.c */ -#line 2802 "dtool/src/cppparser/cppBison.yxx" +#line 2630 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('f', (yyvsp[(1) - (3)].u.expr)); } break; - case 537: + case 496: /* Line 1792 of yacc.c */ -#line 2806 "dtool/src/cppparser/cppBison.yxx" +#line 2634 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('.', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 538: + case 497: /* Line 1792 of yacc.c */ -#line 2810 "dtool/src/cppparser/cppBison.yxx" +#line 2638 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 539: + case 498: /* Line 1792 of yacc.c */ -#line 2814 "dtool/src/cppparser/cppBison.yxx" +#line 2642 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (yyvsp[(2) - (3)].u.expr); } break; - case 540: + case 499: /* Line 1792 of yacc.c */ -#line 2821 "dtool/src/cppparser/cppBison.yxx" +#line 2649 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.integer)); } break; - case 541: + case 500: /* Line 1792 of yacc.c */ -#line 2825 "dtool/src/cppparser/cppBison.yxx" +#line 2653 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(true); } break; - case 542: + case 501: /* Line 1792 of yacc.c */ -#line 2829 "dtool/src/cppparser/cppBison.yxx" +#line 2657 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(false); } break; - case 543: + case 502: /* Line 1792 of yacc.c */ -#line 2833 "dtool/src/cppparser/cppBison.yxx" +#line 2661 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.integer)); } break; - case 544: + case 503: /* Line 1792 of yacc.c */ -#line 2837 "dtool/src/cppparser/cppBison.yxx" +#line 2665 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.real)); } break; - case 545: + case 504: /* Line 1792 of yacc.c */ -#line 2841 "dtool/src/cppparser/cppBison.yxx" +#line 2669 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].str)); } break; + case 505: +/* Line 1792 of yacc.c */ +#line 2673 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.identifier), current_scope, global_scope, current_lexer); +} + break; + + case 506: +/* Line 1792 of yacc.c */ +#line 2687 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); +} + break; + + case 507: +/* Line 1792 of yacc.c */ +#line 2691 "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 508: +/* Line 1792 of yacc.c */ +#line 2695 "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 509: +/* Line 1792 of yacc.c */ +#line 2699 "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 510: +/* Line 1792 of yacc.c */ +#line 2703 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[(3) - (4)].u.type))); +} + break; + + case 511: +/* Line 1792 of yacc.c */ +#line 2707 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[(2) - (2)].u.type))); +} + break; + + case 512: +/* Line 1792 of yacc.c */ +#line 2711 "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 513: +/* Line 1792 of yacc.c */ +#line 2715 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[(2) - (2)].u.expr)); +} + break; + + case 514: +/* Line 1792 of yacc.c */ +#line 2719 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[(2) - (2)].u.expr)); +} + break; + + case 515: +/* Line 1792 of yacc.c */ +#line 2723 "dtool/src/cppparser/cppBison.yxx" + { + if ((yyvsp[(2) - (2)].u.expr)->_type == CPPExpression::T_integer) { + (yyval.u.expr) = (yyvsp[(2) - (2)].u.expr); + (yyval.u.expr)->_u._integer = -(yyval.u.expr)->_u._integer; + } else if ((yyvsp[(2) - (2)].u.expr)->_type == CPPExpression::T_real) { + (yyval.u.expr) = (yyvsp[(2) - (2)].u.expr); + (yyval.u.expr)->_u._real = -(yyval.u.expr)->_u._real; + } else { + (yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[(2) - (2)].u.expr)); + } +} + break; + + case 516: +/* Line 1792 of yacc.c */ +#line 2735 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[(2) - (2)].u.expr)); +} + break; + + case 517: +/* Line 1792 of yacc.c */ +#line 2739 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('*', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 518: +/* Line 1792 of yacc.c */ +#line 2743 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('/', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 519: +/* Line 1792 of yacc.c */ +#line 2747 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('%', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 520: +/* Line 1792 of yacc.c */ +#line 2751 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('+', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 521: +/* Line 1792 of yacc.c */ +#line 2755 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('-', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 522: +/* Line 1792 of yacc.c */ +#line 2759 "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 2763 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('^', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 524: +/* Line 1792 of yacc.c */ +#line 2767 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('&', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 525: +/* Line 1792 of yacc.c */ +#line 2771 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 526: +/* Line 1792 of yacc.c */ +#line 2775 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 527: +/* Line 1792 of yacc.c */ +#line 2779 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 528: +/* Line 1792 of yacc.c */ +#line 2783 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 529: +/* Line 1792 of yacc.c */ +#line 2787 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 530: +/* Line 1792 of yacc.c */ +#line 2791 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 531: +/* Line 1792 of yacc.c */ +#line 2795 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('<', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 532: +/* Line 1792 of yacc.c */ +#line 2799 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('>', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 533: +/* Line 1792 of yacc.c */ +#line 2803 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 534: +/* Line 1792 of yacc.c */ +#line 2807 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 535: +/* Line 1792 of yacc.c */ +#line 2811 "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 536: +/* Line 1792 of yacc.c */ +#line 2815 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('[', (yyvsp[(1) - (4)].u.expr), (yyvsp[(3) - (4)].u.expr)); +} + break; + + case 537: +/* Line 1792 of yacc.c */ +#line 2819 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('f', (yyvsp[(1) - (4)].u.expr), (yyvsp[(3) - (4)].u.expr)); +} + break; + + case 538: +/* Line 1792 of yacc.c */ +#line 2823 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('f', (yyvsp[(1) - (3)].u.expr)); +} + break; + + case 539: +/* Line 1792 of yacc.c */ +#line 2827 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('.', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 540: +/* Line 1792 of yacc.c */ +#line 2831 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 541: +/* Line 1792 of yacc.c */ +#line 2835 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = (yyvsp[(2) - (3)].u.expr); +} + break; + + case 542: +/* Line 1792 of yacc.c */ +#line 2842 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.integer)); +} + break; + + case 543: +/* Line 1792 of yacc.c */ +#line 2846 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(true); +} + break; + + case 544: +/* Line 1792 of yacc.c */ +#line 2850 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(false); +} + break; + + case 545: +/* Line 1792 of yacc.c */ +#line 2854 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.integer)); +} + break; + case 546: /* Line 1792 of yacc.c */ -#line 2848 "dtool/src/cppparser/cppBison.yxx" +#line 2858 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.real)); +} + break; + + case 547: +/* Line 1792 of yacc.c */ +#line 2862 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].str)); +} + break; + + case 548: +/* Line 1792 of yacc.c */ +#line 2869 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = (yyvsp[(1) - (1)].u.identifier)->find_type(current_scope, global_scope, true); if (type == NULL) { @@ -7181,9 +7237,9 @@ yyreduce: } break; - case 547: + case 549: /* Line 1792 of yacc.c */ -#line 2856 "dtool/src/cppparser/cppBison.yxx" +#line 2877 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = (yyvsp[(2) - (2)].u.identifier)->find_type(current_scope, global_scope, true, current_lexer); if (type == NULL) { @@ -7193,41 +7249,41 @@ yyreduce: } break; - case 548: + case 550: /* Line 1792 of yacc.c */ -#line 2864 "dtool/src/cppparser/cppBison.yxx" +#line 2885 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[(2) - (2)].u.identifier))); } break; - case 549: -/* Line 1792 of yacc.c */ -#line 2887 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.identifier) = (yyvsp[(1) - (1)].u.identifier); -} - break; - - case 550: -/* Line 1792 of yacc.c */ -#line 2891 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.identifier) = (yyvsp[(1) - (1)].u.identifier); -} - break; - case 551: /* Line 1792 of yacc.c */ -#line 2898 "dtool/src/cppparser/cppBison.yxx" +#line 2908 "dtool/src/cppparser/cppBison.yxx" { - (yyval.str) = (yyvsp[(1) - (1)].str); + (yyval.u.identifier) = (yyvsp[(1) - (1)].u.identifier); } break; case 552: /* Line 1792 of yacc.c */ -#line 2902 "dtool/src/cppparser/cppBison.yxx" +#line 2912 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.identifier) = (yyvsp[(1) - (1)].u.identifier); +} + break; + + case 553: +/* Line 1792 of yacc.c */ +#line 2919 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.str) = (yyvsp[(1) - (1)].str); +} + break; + + case 554: +/* Line 1792 of yacc.c */ +#line 2923 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = (yyvsp[(1) - (2)].str) + (yyvsp[(2) - (2)].str); } @@ -7235,7 +7291,7 @@ yyreduce: /* Line 1792 of yacc.c */ -#line 7239 "built/tmp/cppBison.yxx.c" +#line 7295 "built/tmp/cppBison.yxx.c" default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -7286,7 +7342,7 @@ yyerrlab: { ++yynerrs; #if ! YYERROR_VERBOSE - yyerror (YY_("syntax error")); + yyerror (&yylloc, YY_("syntax error")); #else # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ yyssp, yytoken) @@ -7313,7 +7369,7 @@ yyerrlab: yymsgp = yymsg; } } - yyerror (yymsgp); + yyerror (&yylloc, yymsgp); if (yysyntax_error_status == 2) goto yyexhaustedlab; } @@ -7436,7 +7492,7 @@ yyabortlab: | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ yyexhaustedlab: - yyerror (YY_("memory exhausted")); + yyerror (&yylloc, YY_("memory exhausted")); yyresult = 2; /* Fall through. */ #endif diff --git a/dtool/src/cppparser/cppBison.yxx b/dtool/src/cppparser/cppBison.yxx index c6a704e516..8b918d5de3 100644 --- a/dtool/src/cppparser/cppBison.yxx +++ b/dtool/src/cppparser/cppBison.yxx @@ -60,14 +60,19 @@ yyerror(const string &msg) { current_lexer->error(msg); } +static void +yyerror(YYLTYPE *loc, const string &msg) { + current_lexer->error(msg, *loc); +} + static void yyerror(const string &msg, YYLTYPE &loc) { - current_lexer->error(msg, loc.first_line, loc.first_column); + current_lexer->error(msg, loc); } static void yywarning(const string &msg, YYLTYPE &loc) { - current_lexer->warning(msg, loc.first_line, loc.first_column); + current_lexer->warning(msg, loc); } static int @@ -197,6 +202,12 @@ pop_struct() { pointers to the current yylval and yylloc. */ %pure_parser +/* Ideally we'd define this instead of the above, which gives us better + tracking of error locations, but we are still using a very old + version of Bison on Windows. */ +//%define api.pure full +//%locations + %token REAL %token INTEGER %token CHAR_TOK @@ -822,7 +833,7 @@ function_prototype: yyerror("Invalid destructor name: ~" + $2->get_fully_scoped_name(), @2); } else { CPPIdentifier *ident = - new CPPIdentifier("~" + $2->get_simple_name(), @2.file); + new CPPIdentifier("~" + $2->get_simple_name(), @2); delete $2; CPPType *type; @@ -897,7 +908,7 @@ function_prototype: string name = "operator typecast " + $2->get_simple_name(); CPPIdentifier *ident = $1; if (ident == NULL) { - ident = new CPPIdentifier(name, @1.file); + ident = new CPPIdentifier(name, @2); } else { ident->add_name(name); } @@ -918,7 +929,7 @@ function_prototype: CPPIdentifier *ident = $1; if (ident == NULL) { - ident = new CPPIdentifier("operator typecast", @1.file); + ident = new CPPIdentifier("operator typecast", @4); } else { ident->add_name("operator typecast"); } @@ -1223,7 +1234,7 @@ instance_identifier: // like a regular function. CPPIdentifier *ident = $1; if (ident == NULL) { - ident = new CPPIdentifier("operator "+$2, @2.file); + ident = new CPPIdentifier("operator "+$2, @2); } else { ident->_names.push_back("operator "+$2); } @@ -1414,6 +1425,16 @@ formal_parameter: $3->add_modifier(IIT_const); $$ = new CPPInstance($2, $3, 0, @3.file); $$->set_initializer($4); +} + | KW_CONST KW_REGISTER type formal_parameter_identifier maybe_initialize +{ + $4->add_modifier(IIT_const); + $$ = new CPPInstance($3, $4, 0, @3.file); + $$->set_initializer($5); +} + | KW_REGISTER formal_parameter +{ + $$ = $2; } | formal_const_expr { diff --git a/dtool/src/cppparser/cppIdentifier.cxx b/dtool/src/cppparser/cppIdentifier.cxx index 5c44b45a5a..e19345cd2a 100644 --- a/dtool/src/cppparser/cppIdentifier.cxx +++ b/dtool/src/cppparser/cppIdentifier.cxx @@ -28,7 +28,39 @@ // Description: //////////////////////////////////////////////////////////////////// CPPIdentifier:: -CPPIdentifier(const string &name, const CPPFile &file) : _file(file) { +CPPIdentifier(const string &name, const CPPFile &file) { + _names.push_back(CPPNameComponent(name)); + _native_scope = (CPPScope *)NULL; + _loc.first_line = 0; + _loc.first_column = 0; + _loc.last_line = 0; + _loc.last_column = 0; + _loc.file = file; +} + +//////////////////////////////////////////////////////////////////// +// Function: CPPIdentifier::Constructor +// Access: Public +// Description: +//////////////////////////////////////////////////////////////////// +CPPIdentifier:: +CPPIdentifier(const CPPNameComponent &name, const CPPFile &file) { + _names.push_back(name); + _native_scope = (CPPScope *)NULL; + _loc.first_line = 0; + _loc.first_column = 0; + _loc.last_line = 0; + _loc.last_column = 0; + _loc.file = file; +} + +//////////////////////////////////////////////////////////////////// +// Function: CPPIdentifier::Constructor +// Access: Public +// Description: +//////////////////////////////////////////////////////////////////// +CPPIdentifier:: +CPPIdentifier(const string &name, const cppyyltype &loc) : _loc(loc) { _names.push_back(CPPNameComponent(name)); _native_scope = (CPPScope *)NULL; } @@ -39,7 +71,7 @@ CPPIdentifier(const string &name, const CPPFile &file) : _file(file) { // Description: //////////////////////////////////////////////////////////////////// CPPIdentifier:: -CPPIdentifier(const CPPNameComponent &name, const CPPFile &file) : _file(file) { +CPPIdentifier(const CPPNameComponent &name, const cppyyltype &loc) : _loc(loc) { _names.push_back(name); _native_scope = (CPPScope *)NULL; } @@ -256,7 +288,8 @@ get_scope(CPPScope *current_scope, CPPScope *global_scope, if (error_sink != NULL) { error_sink->error("Symbol " + _names[i].get_name() + " is not a known scope in " + - scope->get_fully_scoped_name()); + scope->get_fully_scoped_name(), + _loc); } return (CPPScope *)NULL; } @@ -302,7 +335,8 @@ get_scope(CPPScope *current_scope, CPPScope *global_scope, if (error_sink != NULL) { error_sink->error("Symbol " + _names[i].get_name() + " is not a known scope in " + - scope->get_fully_scoped_name()); + scope->get_fully_scoped_name(), + _loc); } return (CPPScope *)NULL; } diff --git a/dtool/src/cppparser/cppIdentifier.h b/dtool/src/cppparser/cppIdentifier.h index 6c3e95b030..ef94910445 100644 --- a/dtool/src/cppparser/cppIdentifier.h +++ b/dtool/src/cppparser/cppIdentifier.h @@ -20,6 +20,7 @@ #include "cppDeclaration.h" #include "cppNameComponent.h" #include "cppFile.h" +#include "cppBisonDefs.h" #include #include @@ -37,6 +38,8 @@ class CPPIdentifier { public: CPPIdentifier(const string &name, const CPPFile &file = CPPFile()); CPPIdentifier(const CPPNameComponent &name, const CPPFile &file = CPPFile()); + CPPIdentifier(const string &name, const cppyyltype &loc); + CPPIdentifier(const CPPNameComponent &name, const cppyyltype &loc); void add_name(const string &name); void add_name(const CPPNameComponent &name); @@ -91,7 +94,7 @@ public: typedef vector Names; Names _names; CPPScope *_native_scope; - CPPFile _file; + cppyyltype _loc; }; inline ostream &operator << (ostream &out, const CPPIdentifier &identifier) { diff --git a/dtool/src/cppparser/cppInstance.h b/dtool/src/cppparser/cppInstance.h index e2ecbc0ced..9a8144fdd2 100644 --- a/dtool/src/cppparser/cppInstance.h +++ b/dtool/src/cppparser/cppInstance.h @@ -19,7 +19,6 @@ #include "cppDeclaration.h" #include "cppType.h" -#include "cppIdentifier.h" #include "cppTemplateParameterList.h" class CPPInstanceIdentifier; diff --git a/dtool/src/cppparser/cppNameComponent.h b/dtool/src/cppparser/cppNameComponent.h index c08389eba3..6d9b99a042 100644 --- a/dtool/src/cppparser/cppNameComponent.h +++ b/dtool/src/cppparser/cppNameComponent.h @@ -16,6 +16,7 @@ #define CPPNAMECOMPONENT_H #include "dtoolbase.h" +#include "cppBisonDefs.h" #include diff --git a/dtool/src/cppparser/cppPreprocessor.cxx b/dtool/src/cppparser/cppPreprocessor.cxx index e4098af553..71f7dbc568 100644 --- a/dtool/src/cppparser/cppPreprocessor.cxx +++ b/dtool/src/cppparser/cppPreprocessor.cxx @@ -86,8 +86,10 @@ CPPPreprocessor::InputFile:: InputFile() { _in = NULL; _ignore_manifest = NULL; - _line_number = 1; - _col_number = 1; + _line_number = 0; + _col_number = 0; + _next_line_number = 1; + _next_col_number = 1; _lock_position = false; } @@ -145,11 +147,15 @@ connect_input(const string &input) { //////////////////////////////////////////////////////////////////// // Function: CPPPreprocessor::InputFile::get // Access: Public -// Description: +// Description: Fetches a single character from the source file. //////////////////////////////////////////////////////////////////// int CPPPreprocessor::InputFile:: get() { assert(_in != NULL); + + _line_number = _next_line_number; + _col_number = _next_col_number; + int c = _in->get(); // Quietly skip over embedded carriage-return characters. We @@ -165,20 +171,42 @@ get() { case '\n': if (!_lock_position) { - _line_number++; - _col_number = 1; + ++_next_line_number; + _next_col_number = 1; } break; default: if (!_lock_position) { - _col_number++; + ++_next_col_number; } } return c; } +//////////////////////////////////////////////////////////////////// +// Function: CPPPreprocessor::InputFile::peek +// Access: Public +// Description: Like get(), but does not advance the file pointer. +//////////////////////////////////////////////////////////////////// +int CPPPreprocessor::InputFile:: +peek() { + assert(_in != NULL); + + int c = _in->peek(); + + // Quietly skip over embedded carriage-return characters. We + // shouldn't see any of these unless there was some DOS-to-Unix file + // conversion problem. + while (c == '\r') { + get(); + c = _in->peek(); + } + + return c; +} + //////////////////////////////////////////////////////////////////// // Function: CPPPreprocessor::Constructor // Access: Public @@ -258,7 +286,8 @@ get_file() const { //////////////////////////////////////////////////////////////////// // Function: CPPPreprocessor::get_line_number // Access: Public -// Description: +// Description: Returns the line number of the last character +// returned by get(). //////////////////////////////////////////////////////////////////// int CPPPreprocessor:: get_line_number() const { @@ -271,7 +300,8 @@ get_line_number() const { //////////////////////////////////////////////////////////////////// // Function: CPPPreprocessor::get_col_number // Access: Public -// Description: +// Description: Returns the column number of the last character +// returned by get(). //////////////////////////////////////////////////////////////////// int CPPPreprocessor:: get_col_number() const { @@ -312,9 +342,7 @@ get_next_token0() { token = internal_get_next_token(); } - int first_line = token._lloc.first_line; - int first_col = token._lloc.first_column; - CPPFile first_file = token._lloc.file; + YYLTYPE loc = token._lloc; if (_resolve_identifiers && (token._token == SIMPLE_IDENTIFIER || token._token == SCOPE)) { @@ -333,7 +361,7 @@ get_next_token0() { token = internal_get_next_token(); } - CPPIdentifier *ident = new CPPIdentifier(name, token._lloc.file); + CPPIdentifier *ident = new CPPIdentifier(name, loc); YYSTYPE result; result.u.identifier = ident; @@ -351,6 +379,9 @@ get_next_token0() { } while (token._token == SCOPE) { + loc.last_line = token._lloc.last_line; + loc.last_column = token._lloc.last_column; + name += "::"; token = internal_get_next_token(); string token_prefix; @@ -376,13 +407,17 @@ get_next_token0() { return token; } _saved_tokens.push_back(token); - return CPPToken(SCOPING, first_line, first_col, first_file, - name, result); + return CPPToken(SCOPING, loc, name, result); } name += token._lval.str; ident->_names.push_back(token_prefix + token._lval.str); + loc.last_line = token._lloc.last_line; + loc.last_column = token._lloc.last_column; + ident->_loc.last_line = loc.last_line; + ident->_loc.last_column = loc.last_column; + token = internal_get_next_token(); if (token._token == '<') { @@ -409,38 +444,76 @@ get_next_token0() { token_type = TYPENAME_IDENTIFIER; } - return CPPToken(token_type, first_line, first_col, first_file, - name, result); + return CPPToken(token_type, loc, name, result); } // This is the normal case: just pass through whatever token we got. return token; } +//////////////////////////////////////////////////////////////////// +// Function: CPPPreprocessor::peek_next_token +// Access: Public +// Description: +//////////////////////////////////////////////////////////////////// +CPPToken CPPPreprocessor:: +peek_next_token() { + CPPToken token(0); + if (!_saved_tokens.empty()) { + token = _saved_tokens.back(); + } else { + token = internal_get_next_token(); + _saved_tokens.push_back(token); + } + return token; +} + //////////////////////////////////////////////////////////////////// // Function: CPPPreprocessor::warning // Access: Public // Description: //////////////////////////////////////////////////////////////////// void CPPPreprocessor:: -warning(const string &message, int line, int col, CPPFile file) { +warning(const string &message) { + if (_verbose < 2) { + return; + } + int line = get_line_number(); + int col = get_col_number(); + YYLTYPE loc; + loc.first_line = line; + loc.first_column = col; + loc.last_line = line; + loc.last_column = col; + loc.file = get_file(); + warning(message, loc); +} + +//////////////////////////////////////////////////////////////////// +// Function: CPPPreprocessor::warning +// Access: Public +// Description: +//////////////////////////////////////////////////////////////////// +void CPPPreprocessor:: +warning(const string &message, const YYLTYPE &loc) { if (_verbose >= 2) { - if (line == 0) { - line = get_line_number(); - col = get_col_number(); - } - if (file.empty()) { - file = get_file(); - } - int indent_level = 0; if (_verbose >= 3) { - indent_level = _files.size() * 2; + indent(cerr, _files.size() * 2); } - indent(cerr, indent_level) - << "*** Warning in " << file - << " near line " << line << ", column " << col << ":\n"; - indent(cerr, indent_level) - << message << "\n"; + + if (!loc.file.empty()) { + cerr << loc.file << ':'; + } + if (loc.first_line) { + cerr << loc.first_line << ':'; + + if (loc.first_column) { + cerr << loc.first_column << ':'; + } + } + + cerr << " warning: " << message << "\n"; + show_line(loc); } _warning_count++; } @@ -451,7 +524,25 @@ warning(const string &message, int line, int col, CPPFile file) { // Description: //////////////////////////////////////////////////////////////////// void CPPPreprocessor:: -error(const string &message, int line, int col, CPPFile file) { +error(const string &message) { + int line = get_line_number(); + int col = get_col_number(); + YYLTYPE loc; + loc.first_line = line; + loc.first_column = col; + loc.last_line = line; + loc.last_column = col; + loc.file = get_file(); + error(message, loc); +} + +//////////////////////////////////////////////////////////////////// +// Function: CPPPreprocessor::error +// Access: Public +// Description: +//////////////////////////////////////////////////////////////////// +void CPPPreprocessor:: +error(const string &message, const YYLTYPE &loc) { if (_state == S_nested || _state == S_end_nested) { // Don't report or log errors in the nested state. These will be // reported when the nesting level collapses. @@ -459,22 +550,23 @@ error(const string &message, int line, int col, CPPFile file) { } if (_verbose >= 1) { - if (line == 0) { - line = get_line_number(); - col = get_col_number(); - } - if (file.empty()) { - file = get_file(); - } - int indent_level = 0; if (_verbose >= 3) { - indent_level = _files.size() * 2; + indent(cerr, _files.size() * 2); } - indent(cerr, indent_level) - << "*** Error in " << file - << " near line " << line << ", column " << col << ":\n"; - indent(cerr, indent_level) - << message << "\n"; + + if (!loc.file.empty()) { + cerr << loc.file << ':'; + } + if (loc.first_line) { + cerr << loc.first_line << ':'; + + if (loc.first_column) { + cerr << loc.first_column << ':'; + } + } + + cerr << " error: " << message << "\n"; + show_line(loc); if (_error_abort) { cerr << "Aborting.\n"; @@ -484,6 +576,63 @@ error(const string &message, int line, int col, CPPFile file) { _error_count++; } +//////////////////////////////////////////////////////////////////// +// Function: CPPPreprocessor::show_line +// Access: Public +// Description: Shows the indicated line, useful for error messages. +//////////////////////////////////////////////////////////////////// +void CPPPreprocessor:: +show_line(const YYLTYPE &loc) { + if (loc.file._filename.empty()) { + return; + } + + int indent_level = 0; + if (_verbose >= 3) { + indent_level = _files.size() * 2; + } + + // Seek to the offending line in the file. + ifstream stream; + if (loc.file._filename.open_read(stream)) { + int l = 0; + string linestr; + while (l < loc.first_line) { + getline(stream, linestr); + ++l; + } + + // Strip off trailing whitespace. + size_t last = linestr.length(); + while (isspace(linestr[--last])) { + linestr = linestr.substr(0, last); + } + + indent(cerr, indent_level) << linestr << "\n"; + + // Point the user at the offending column. + if (loc.first_column) { + int last_column; + if (loc.first_line == loc.last_line && loc.last_column) { + last_column = loc.last_column; + } else { + last_column = linestr.length(); + } + + indent(cerr, indent_level); + int i = 0; + for (; i < loc.first_column - 1; ++i) { + cerr.put(' '); + } + cerr.put('^'); + while (++i < last_column) { + cerr.put('~'); + } + cerr << "\n"; + } + } +} + //////////////////////////////////////////////////////////////////// // Function: CPPPreprocessor::get_warning_count // Access: Public @@ -800,120 +949,40 @@ internal_get_next_token() { return get_number(c); } - _last_c = c; if (c == EOF) { _state = S_eof; return CPPToken::eof(); } - CPPFile first_file = get_file(); - int first_line = get_line_number(); - int first_col = get_col_number(); - // Check for a number beginning with a decimal point. - int next_c = get(); + int next_c = peek(); if (c == '.' && isdigit(next_c)) { - return get_number(c, next_c); + return get_number(c); } + YYLTYPE loc; + loc.file = get_file(); + loc.first_line = get_line_number(); + loc.first_column = get_col_number(); + loc.last_line = loc.first_line; + loc.last_column = loc.first_column; + // Check for two- or three-character tokens. - _last_c = get(); + int di = check_digraph(c); + if (di != 0) { + c = di; + ++loc.last_column; + get(); - switch (c) { - case '+': - if (next_c == '+') return CPPToken(PLUSPLUS, first_line, first_col, first_file); - if (next_c == '=') return CPPToken(PLUSEQUAL, first_line, first_col, first_file); - break; - - case '-': - if (next_c == '-') return CPPToken(MINUSMINUS, first_line, first_col, first_file); - if (next_c == '=') return CPPToken(MINUSEQUAL, first_line, first_col, first_file); - if (next_c == '>' && _last_c == '*') { - _last_c = get(); - return CPPToken(POINTSAT_STAR, first_line, first_col, first_file); + int tri = check_trigraph(di); + if (tri != 0) { + ++loc.last_column; + get(); + return CPPToken(tri, loc); } - if (next_c == '>') return CPPToken(POINTSAT, first_line, first_col, first_file); - break; - - case '<': - if (next_c == '<' && _last_c == '=') { - _last_c = get(); - return CPPToken(LSHIFTEQUAL, first_line, first_col, first_file); - } - if (next_c == '<') return CPPToken(LSHIFT, first_line, first_col, first_file); - if (next_c == '=') return CPPToken(LECOMPARE, first_line, first_col, first_file); - if (next_c == ':') return CPPToken('[', first_line, first_col, first_file); - if (next_c == '%') return CPPToken('{', first_line, first_col, first_file); - break; - - case '>': - if (_parsing_template_params && _paren_nesting <= 0) { - // Don't parse > as greater-than when parsing a template list, as per C++11. - // However, nested >> must be preserved, such as in A<(2>>1)> - break; - } - if (next_c == '>' && _last_c == '=') { - _last_c = get(); - return CPPToken(RSHIFTEQUAL, first_line, first_col, first_file); - } - if (next_c == '>') return CPPToken(RSHIFT, first_line, first_col, first_file); - if (next_c == '=') return CPPToken(GECOMPARE, first_line, first_col, first_file); - break; - - case '|': - if (next_c == '|') return CPPToken(OROR, first_line, first_col, first_file); - if (next_c == '=') return CPPToken(OREQUAL, first_line, first_col, first_file); - break; - - case '&': - if (next_c == '&') return CPPToken(ANDAND, first_line, first_col, first_file); - if (next_c == '=') return CPPToken(ANDEQUAL, first_line, first_col, first_file); - break; - - case '^': - if (next_c == '=') return CPPToken(XOREQUAL, first_line, first_col, first_file); - break; - - case '=': - if (next_c == '=') return CPPToken(EQCOMPARE, first_line, first_col, first_file); - break; - - case '!': - if (next_c == '=') return CPPToken(NECOMPARE, first_line, first_col, first_file); - break; - - case '.': - if (next_c == '*') return CPPToken(DOT_STAR, first_line, first_col, first_file); - if (next_c == '.' && _last_c == '.') { - _last_c = get(); - return CPPToken(ELLIPSIS, first_line, first_col, first_file); - } - break; - - case ':': - if (next_c == ':') return CPPToken(SCOPE, first_line, first_col, first_file); - if (next_c == '>') return CPPToken(']', first_line, first_col, first_file); - break; - - case '*': - if (next_c == '=') return CPPToken(TIMESEQUAL, first_line, first_col, first_file); - break; - - case '/': - if (next_c == '=') return CPPToken(DIVIDEEQUAL, first_line, first_col, first_file); - break; - - case '%': - if (next_c == '=') return CPPToken(MODEQUAL, first_line, first_col, first_file); - if (next_c == '>') return CPPToken('}', first_line, first_col, first_file); - break; + return CPPToken(di, loc); } - // It wasn't any of the two- or three-character tokens, so put back - // the lookahead character and return the one-character token. - unget(_last_c); - _last_c = next_c; - if (_state == S_nested) { // If we're running a nested lexer, keep track of the paren // levels. When we encounter a comma or closing angle bracket at @@ -946,11 +1015,142 @@ internal_get_next_token() { } } - // We skip whitespace here again, so that we can read any comments - // after this point before we parse this line. - _last_c = skip_whitespace(_last_c); + // Look for an end-of-line comment, and parse it before we finish + // this token. This is not strictly necessary, but it allows us to + // pick up docstrings from comments after enum values. + while (next_c != EOF && isspace(next_c)) { + get(); + next_c = peek(); + } + if (next_c == '/') { + _last_c = skip_whitespace(get()); + } - return CPPToken(c, first_line, first_col, first_file); + return CPPToken(c, loc); +} + +//////////////////////////////////////////////////////////////////// +// Function: CPPPreprocessor::check_digraph +// Access: Private +// Description: Checks the next character in the stream to see if +// this might be a two-character token. +// Returns 0 if it is only a single-character token. +//////////////////////////////////////////////////////////////////// +int CPPPreprocessor:: +check_digraph(int c) { + int next_c = peek(); + switch (c) { + case '+': + if (next_c == '+') return PLUSPLUS; + if (next_c == '=') return PLUSEQUAL; + break; + + case '-': + if (next_c == '-') return MINUSMINUS; + if (next_c == '=') return MINUSEQUAL; + if (next_c == '>') return POINTSAT; + break; + + case '<': + if (next_c == '<') return LSHIFT; + if (next_c == '=') return LECOMPARE; + if (next_c == ':') return '['; + if (next_c == '%') return '{'; + break; + + case '>': + if (_parsing_template_params && _paren_nesting <= 0) { + // Don't parse >> as right-shift when parsing a template list, as + // per C++11, to allow a syntax like A>. + // However, nested >> must be preserved, such as in A<(2>>1)> + break; + } + if (next_c == '>') return RSHIFT; + if (next_c == '=') return GECOMPARE; + break; + + case '|': + if (next_c == '|') return OROR; + if (next_c == '=') return OREQUAL; + break; + + case '&': + if (next_c == '&') return ANDAND; + if (next_c == '=') return ANDEQUAL; + break; + + case '^': + if (next_c == '=') return XOREQUAL; + break; + + case '=': + if (next_c == '=') return EQCOMPARE; + break; + + case '!': + if (next_c == '=') return NECOMPARE; + break; + + case '.': + if (next_c == '*') return DOT_STAR; + if (next_c == '.') { + get(); + if (peek() == '.') { + return ELLIPSIS; + } else { + unget('.'); + } + } + break; + + case ':': + if (next_c == ':') return SCOPE; + if (next_c == '>') return ']'; + break; + + case '*': + if (next_c == '=') return TIMESEQUAL; + break; + + case '/': + if (next_c == '=') return DIVIDEEQUAL; + break; + + case '%': + if (next_c == '=') return MODEQUAL; + if (next_c == '>') return '}'; + break; + } + + return 0; +} + +//////////////////////////////////////////////////////////////////// +// Function: CPPPreprocessor::check_trigraph +// Access: Private +// Description: Checks the next character in the stream to see if +// this might be a three-character token; usually +// called in conjunction with check_digraph. +// Returns 0 if it is not a three-character token. +//////////////////////////////////////////////////////////////////// +int CPPPreprocessor:: +check_trigraph(int c) { + int next_c = peek(); + switch (c) { + case POINTSAT: + if (next_c == '*') return POINTSAT_STAR; + break; + + case LSHIFT: + if (next_c == '=') return LSHIFTEQUAL; + break; + + case RSHIFT: + if (next_c == '=') return RSHIFTEQUAL; + break; + } + + return 0; } //////////////////////////////////////////////////////////////////// @@ -966,11 +1166,10 @@ skip_whitespace(int c) { if (c == '\\') { // This does not usually occur in the middle of unquoted C++ // code, except before a newline character. - c = get(); - if (c != '\n') { - unget(c); + if (peek() != '\n') { return '\\'; } + c = get(); } if (!isspace(c)) { @@ -989,16 +1188,17 @@ skip_whitespace(int c) { int CPPPreprocessor:: skip_comment(int c) { while (c == '/') { - int next_c = get(); + int next_c = peek(); if (next_c == '*') { + get(); _last_cpp_comment = false; c = skip_c_comment(get()); } else if (next_c == '/') { + get(); c = skip_cpp_comment(get()); break; } else { _last_cpp_comment = false; - unget(next_c); return c; } } @@ -1015,14 +1215,21 @@ skip_comment(int c) { //////////////////////////////////////////////////////////////////// int CPPPreprocessor:: skip_c_comment(int c) { + YYLTYPE loc; + loc.file = get_file(); + loc.first_line = get_line_number(); + loc.first_column = get_col_number() - 2; + loc.last_line = 0; + loc.last_column = 0; + if (_save_comments) { CPPCommentBlock *comment = new CPPCommentBlock; _comments.push_back(comment); - comment->_file = get_file(); - comment->_line_number = get_line_number(); - comment->_last_line = get_line_number(); - comment->_col_number = get_col_number() - 2; + comment->_file = loc.file; + comment->_line_number = loc.first_line; + comment->_last_line = loc.last_line; + comment->_col_number = loc.first_column; comment->_c_style = true; comment->_comment = "/*"; @@ -1041,9 +1248,10 @@ skip_c_comment(int c) { } } - warning("Comment is unterminated", - comment->_line_number, comment->_col_number, - comment->_file); + loc.last_line = get_line_number(); + comment->_last_line = loc.last_line; + + warning("Comment is unterminated", loc); } else { CPPFile first_file = get_file(); @@ -1061,9 +1269,9 @@ skip_c_comment(int c) { } } - warning("Comment is unterminated", - first_line_number, first_col_number, - first_file); + loc.last_line = get_line_number(); + + warning("Comment is unterminated", loc); } return c; @@ -1136,29 +1344,40 @@ skip_cpp_comment(int c) { //////////////////////////////////////////////////////////////////// int CPPPreprocessor:: process_directive(int c) { - CPPFile first_file = get_file(); - int first_line = get_line_number(); - int first_col = get_col_number(); + assert(c == '#'); + c = skip_whitespace(get()); + + int begin_line = get_line_number(); + int begin_column = get_col_number(); string command, args; c = get_preprocessor_command(c, command); + + YYLTYPE loc; + loc.file = get_file(); + loc.first_line = get_line_number(); + loc.first_column = get_col_number(); + c = get_preprocessor_args(c, args); + loc.last_line = get_line_number(); + loc.last_column = 0; + #ifdef CPP_VERBOSE_LEX indent(cerr, _files.size() * 2) << "#" << command << " " << args << "\n"; #endif if (command == "define") { - handle_define_directive(args, first_line, first_col, first_file); + handle_define_directive(args, loc); } else if (command == "undef") { - handle_undef_directive(args, first_line, first_col, first_file); + handle_undef_directive(args, loc); } else if (command == "ifdef") { - handle_ifdef_directive(args, first_line, first_col, first_file); + handle_ifdef_directive(args, loc); } else if (command == "ifndef") { - handle_ifndef_directive(args, first_line, first_col, first_file); + handle_ifndef_directive(args, loc); } else if (command == "if") { - handle_if_directive(args, first_line, first_col, first_file); + handle_if_directive(args, loc); } else if (command == "else" || command == "elif") { // Presumably this follows some #if or #ifdef. We don't bother to // check this, however. @@ -1167,16 +1386,19 @@ process_directive(int c) { // Presumably this follows some #if or #ifdef. We don't bother to // check this, however. } else if (command == "include") { - handle_include_directive(args, first_line, first_col, first_file); + handle_include_directive(args, loc); } else if (command == "pragma") { - handle_pragma_directive(args, first_line, first_col, first_file); + handle_pragma_directive(args, loc); } else if (command == "ident") { // Quietly ignore idents. } else if (command == "error") { - handle_error_directive(args, first_line, first_col, first_file); + handle_error_directive(args, loc); } else { - warning("Ignoring unknown directive #" + command, - first_line, first_col, first_file); + loc.first_line = begin_line; + loc.first_column = begin_column; + loc.last_line = begin_line; + loc.last_column = begin_column + command.size() - 1; + warning("Ignoring unknown directive #" + command, loc); } _start_of_line = true; @@ -1190,22 +1412,16 @@ process_directive(int c) { //////////////////////////////////////////////////////////////////// int CPPPreprocessor:: get_preprocessor_command(int c, string &command) { - // Skip the hash mark. - assert(c == '#'); - c = get(); - - // Also skip any whitespace following the hash mark--but don't skip - // past a newline. - while (c != EOF && (c == ' ' || c == '\t')) { - c = get(); - } - // The next sequence of characters is the command. while (c != EOF && (isalnum(c) || c == '_')) { command += c; c = get(); } + while (c != EOF && c != '\n' && isspace(c)) { + c = get(); + } + return c; } @@ -1250,13 +1466,11 @@ get_preprocessor_args(int c, string &args) { // Description: //////////////////////////////////////////////////////////////////// void CPPPreprocessor:: -handle_define_directive(const string &args, int first_line, - int first_col, const CPPFile &first_file) { +handle_define_directive(const string &args, const YYLTYPE &loc) { if (args.empty()) { - warning("Ignoring empty #define directive", - first_line, first_col, first_file); + warning("Ignoring empty #define directive", loc); } else { - CPPManifest *manifest = new CPPManifest(args, first_file); + CPPManifest *manifest = new CPPManifest(args, loc.file); manifest->_vis = preprocessor_vis; if (!manifest->_has_parameters) { string expr_string = manifest->expand(); @@ -1286,11 +1500,9 @@ handle_define_directive(const string &args, int first_line, // Description: //////////////////////////////////////////////////////////////////// void CPPPreprocessor:: -handle_undef_directive(const string &args, int first_line, - int first_col, const CPPFile &first_file) { +handle_undef_directive(const string &args, const YYLTYPE &loc) { if (args.empty()) { - warning("Ignoring empty #undef directive", - first_line, first_col, first_file); + warning("Ignoring empty #undef directive", loc); } else { Manifests::iterator mi = _manifests.find(args); if (mi != _manifests.end()) { @@ -1305,7 +1517,7 @@ handle_undef_directive(const string &args, int first_line, // Description: //////////////////////////////////////////////////////////////////// void CPPPreprocessor:: -handle_ifdef_directive(const string &args, int, int, const CPPFile &) { +handle_ifdef_directive(const string &args, const YYLTYPE &loc) { Manifests::const_iterator mi = _manifests.find(args); if (mi != _manifests.end()) { // The macro is defined. We continue. @@ -1322,7 +1534,7 @@ handle_ifdef_directive(const string &args, int, int, const CPPFile &) { // Description: //////////////////////////////////////////////////////////////////// void CPPPreprocessor:: -handle_ifndef_directive(const string &args, int, int, const CPPFile &) { +handle_ifndef_directive(const string &args, const YYLTYPE &loc) { Manifests::const_iterator mi = _manifests.find(args); if (mi == _manifests.end()) { // The macro is undefined. We continue. @@ -1340,8 +1552,7 @@ handle_ifndef_directive(const string &args, int, int, const CPPFile &) { // Description: //////////////////////////////////////////////////////////////////// void CPPPreprocessor:: -handle_if_directive(const string &args, int first_line, - int first_col, const CPPFile &first_file) { +handle_if_directive(const string &args, const YYLTYPE &loc) { CPPExpression *expr = parse_expr(args, global_scope, global_scope); int expression_result = 0; @@ -1349,14 +1560,12 @@ handle_if_directive(const string &args, int first_line, if (expr != (CPPExpression *)NULL) { CPPExpression::Result result = expr->evaluate(); if (result._type == CPPExpression::RT_error) { - warning("Ignoring invalid expression " + args, - first_line, first_col, first_file); + warning("Ignoring invalid expression " + args, loc); } else { expression_result = result.as_integer(); } } else { - warning("Ignoring invalid expression " + args, - first_line, first_col, first_file); + warning("Ignoring invalid expression " + args, loc); } if (expression_result) { @@ -1374,8 +1583,7 @@ handle_if_directive(const string &args, int first_line, // Description: //////////////////////////////////////////////////////////////////// void CPPPreprocessor:: -handle_include_directive(const string &args, int first_line, - int first_col, const CPPFile &first_file) { +handle_include_directive(const string &args, const YYLTYPE &loc) { bool okflag = false; Filename filename; Filename filename_as_referenced; @@ -1469,8 +1677,7 @@ handle_include_directive(const string &args, int first_line, } if (!found_file) { - warning("Cannot find " + filename.get_fullpath(), - first_line, first_col, first_file); + warning("Cannot find " + filename.get_fullpath(), loc); } else { _last_c = '\0'; @@ -1483,13 +1690,11 @@ handle_include_directive(const string &args, int first_line, } if (!push_file(file)) { - warning("Unable to read " + filename.get_fullpath(), - first_line, first_col, first_file); + warning("Unable to read " + filename.get_fullpath(), loc); } } } else { - warning("Ignoring invalid #include directive", - first_line, first_col, first_file); + warning("Ignoring invalid #include directive", loc); } } @@ -1499,10 +1704,9 @@ handle_include_directive(const string &args, int first_line, // Description: //////////////////////////////////////////////////////////////////// void CPPPreprocessor:: -handle_pragma_directive(const string &args, int first_line, - int first_col, const CPPFile &first_file) { +handle_pragma_directive(const string &args, const YYLTYPE &loc) { if (args == "once") { - ParsedFiles::iterator it = _parsed_files.find(first_file); + ParsedFiles::iterator it = _parsed_files.find(loc.file); assert(it != _parsed_files.end()); it->_pragma_once = true; } @@ -1514,9 +1718,8 @@ handle_pragma_directive(const string &args, int first_line, // Description: //////////////////////////////////////////////////////////////////// void CPPPreprocessor:: -handle_error_directive(const string &args, int first_line, - int first_col, const CPPFile &first_file) { - error(args, first_line, first_col, first_file); +handle_error_directive(const string &args, const YYLTYPE &loc) { + error(args, loc); } //////////////////////////////////////////////////////////////////// @@ -1535,9 +1738,14 @@ skip_false_if_block(bool consider_elifs) { int c = skip_comment(get()); while (c != EOF) { if (c == '#' && _start_of_line) { - CPPFile first_file = get_file(); - int first_line = get_line_number(); - int first_col = get_col_number(); + c = skip_whitespace(get()); + + YYLTYPE loc; + loc.file = get_file(); + loc.first_line = get_line_number(); + loc.first_column = get_col_number(); + loc.last_line = loc.first_line; + loc.last_column = loc.first_column; // Is this it? string command, args; @@ -1556,7 +1764,7 @@ skip_false_if_block(bool consider_elifs) { if (level == 0 && consider_elifs) { // If we pass this test, we're in. _save_comments = true; - handle_if_directive(args, first_line, first_col, first_file); + handle_if_directive(args, loc); return; } } else if (command == "endif") { @@ -1583,18 +1791,22 @@ skip_false_if_block(bool consider_elifs) { //////////////////////////////////////////////////////////////////// CPPToken CPPPreprocessor:: get_quoted_char(int c) { - CPPFile first_file = get_file(); - int first_line = get_line_number(); - int first_col = get_col_number(); - string str = scan_quoted(c); + YYLTYPE loc; + loc.file = get_file(); + loc.first_line = get_line_number(); + loc.first_column = get_col_number(); + string str = scan_quoted(c); YYSTYPE result; if (!str.empty()) { result.u.integer = (int)str[0]; } else { result.u.integer = 0; } - return CPPToken(CHAR_TOK, first_line, first_col, first_file, str, result); + + loc.last_line = get_line_number(); + loc.last_column = get_col_number(); + return CPPToken(CHAR_TOK, loc, str, result); } //////////////////////////////////////////////////////////////////// @@ -1604,11 +1816,16 @@ get_quoted_char(int c) { //////////////////////////////////////////////////////////////////// CPPToken CPPPreprocessor:: get_quoted_string(int c) { - CPPFile first_file = get_file(); - int first_line = get_line_number(); - int first_col = get_col_number(); + YYLTYPE loc; + loc.file = get_file(); + loc.first_line = get_line_number(); + loc.first_column = get_col_number(); + string str = scan_quoted(c); - return CPPToken(STRING, first_line, first_col, first_file, str); + + loc.last_line = get_line_number(); + loc.last_column = get_col_number(); + return CPPToken(STRING, loc, str); } //////////////////////////////////////////////////////////////////// @@ -1618,33 +1835,40 @@ get_quoted_string(int c) { //////////////////////////////////////////////////////////////////// CPPToken CPPPreprocessor:: get_identifier(int c) { - CPPFile first_file = get_file(); - int first_line = get_line_number(); - int first_col = get_col_number(); + YYLTYPE loc; + loc.file = get_file(); + loc.first_line = get_line_number(); + loc.first_column = get_col_number(); + loc.last_line = loc.first_line; + loc.last_column = loc.first_column; string name(1, (char)c); - c = get(); + c = peek(); while (c != EOF && (isalnum(c) || c == '_')) { - name += c; - c = get(); + name += get(); + c = peek(); } if (c == '\'' || c == '"') { // This is actually a wide-character or wide-string literal or // some such: a string with an alphanumeric prefix. We don't // necessarily try to parse it correctly; for most purposes, we // don't care. + get(); CPPToken token(0); if (c == '\'') { token = get_quoted_char(c); } else { token = get_quoted_string(c); } - token._lloc.first_column = first_col; + token._lloc.first_column = loc.first_column; return token; } - _last_c = c; + loc.last_line = get_line_number(); + loc.last_column = get_col_number(); + + _last_c = 0; // Is it a manifest? Manifests::const_iterator mi = _manifests.find(name); @@ -1669,11 +1893,10 @@ get_identifier(int c) { if (kw != 0) { YYSTYPE result; result.u.identifier = (CPPIdentifier *)NULL; - return CPPToken(kw, first_line, first_col, first_file, name, result); + return CPPToken(kw, loc, name, result); } - return CPPToken(SIMPLE_IDENTIFIER, first_line, first_col, first_file, - name); + return CPPToken(SIMPLE_IDENTIFIER, loc, name); } //////////////////////////////////////////////////////////////////// @@ -1723,6 +1946,9 @@ extract_manifest_args(const string &name, int num_args, int va_arg, // Skip whitespace till paren. int c = _last_c; _last_c = '\0'; + if (c == 0) { + c = get(); + } while (c != EOF && isspace(c)) { c = get(); } @@ -1806,13 +2032,18 @@ extract_manifest_args(const string &name, int num_args, int va_arg, } } + YYLTYPE loc; + loc.first_line = first_line; + loc.first_column = first_col; + loc.last_line = first_line; + loc.last_column = first_col; + loc.file = first_file; + if ((int)args.size() < num_args) { - warning("Not enough arguments for manifest " + name, - first_line, first_col, first_file); + warning("Not enough arguments for manifest " + name, loc); } else if (va_arg < 0 && (int)args.size() > num_args) { - warning("Too many arguments for manifest " + name, - first_line, first_col, first_file); + warning("Too many arguments for manifest " + name, loc); } } @@ -1942,93 +2173,103 @@ extract_manifest_args_inline(const string &name, int num_args, // Description: //////////////////////////////////////////////////////////////////// CPPToken CPPPreprocessor:: -get_number(int c, int c2) { - CPPFile first_file = get_file(); - int first_line = get_line_number(); - int first_col = get_col_number(); +get_number(int c) { + YYLTYPE loc; + loc.file = get_file(); + loc.first_line = get_line_number(); + loc.first_column = get_col_number(); + loc.last_line = loc.first_line; + loc.last_column = loc.first_column; string num(1, (char)c); bool leading_zero = (c == '0'); bool decimal_point = (c == '.'); - if (c2 == 0) { - c = get(); - } else { - c = c2; - } + c = peek(); + if (leading_zero && c == 'x') { // Here we have a hex number. - num += c; - c = get(); + num += get(); + c = peek(); while (c != EOF && (isdigit(c) || (tolower(c) >= 'a' && tolower(c) <= 'f'))) { - num += c; - c = get(); + num += get(); + c = peek(); } - while (c == 'L' || c == 'U') { + while (c == 'L' || c == 'U' || c == 'l' || c == 'u') { // We allow (and ignore) an 'L' and/or 'U' following the number. - c = get(); + get(); + c = peek(); } - _last_c = c; + loc.last_line = get_line_number(); + loc.last_column = get_col_number(); + + _last_c = 0; YYSTYPE result; result.u.integer = strtol(num.c_str(), (char **)NULL, 16); - return CPPToken(INTEGER, first_line, first_col, first_file, num, result); + return CPPToken(INTEGER, loc, num, result); } while (c != EOF && isdigit(c)) { - num += c; - c = get(); + num += get(); + c = peek(); } if (c == '.' && !decimal_point) { // Now we have a floating-point number. decimal_point = true; - num += c; - c = get(); + num += get(); + c = peek(); while (c != EOF && isdigit(c)) { - num += c; - c = get(); + num += get(); + c = peek(); } } if (decimal_point) { if (tolower(c) == 'e') { // An exponent is allowed. - num += c; - c = get(); + num += get(); + c = peek(); if (c == '-' || c == '+') { - num += c; - c = get(); + num += get(); + c = peek(); } while (c != EOF && isdigit(c)) { - num += c; - c = get(); + num += get(); + c = peek(); } } if (c == 'f') { // We allow (and ignore) an 'f' following the number. - c = get(); + get(); + c = peek(); } - _last_c = c; + loc.last_line = get_line_number(); + loc.last_column = get_col_number(); + YYSTYPE result; result.u.real = pstrtod(num.c_str(), (char **)NULL); - return CPPToken(REAL, first_line, first_col, first_file, num, result); + return CPPToken(REAL, loc, num, result); } // This is a decimal or octal integer number. while (c == 'L' || c == 'U') { // We allow (and ignore) an 'L' and/or 'U' following the number. - c = get(); + get(); + c = peek(); } - _last_c = c; + loc.last_line = get_line_number(); + loc.last_column = get_col_number(); + YYSTYPE result; if (leading_zero) { @@ -2042,7 +2283,7 @@ get_number(int c, int c2) { result.u.integer = strtol(num.c_str(), (char **)NULL, 10); } - return CPPToken(INTEGER, first_line, first_col, first_file, num, result); + return CPPToken(INTEGER, loc, num, result); } //////////////////////////////////////////////////////////////////// @@ -2168,7 +2409,7 @@ scan_escape_sequence(int c) { return '\v'; case 'e': - // \e is non-standard, buT GCC supports it. + // \e is non-standard, but GCC supports it. return '\x1B'; case 'x': @@ -2176,11 +2417,8 @@ scan_escape_sequence(int c) { c = get(); if (isxdigit(c)) { int val = hex_val(c); - c = get(); - if (isxdigit(c)) { - val = (val << 4) | hex_val(c); - } else { - unget(c); + if (isxdigit(peek())) { + val = (val << 4) | hex_val(get()); } return val; } @@ -2197,17 +2435,13 @@ scan_escape_sequence(int c) { // Octal character. { int val = (c - '0'); - c = get(); + c = peek(); if (c >= '0' && c <= '7') { - val = (val << 3) | (c - '0'); - c = get(); + val = (val << 3) | (get() - '0'); + c = peek(); if (c >= '0' && c <= '7') { - val = (val << 3) | (c - '0'); - } else { - unget(c); + val = (val << 3) | (get() - '0'); } - } else { - unget(c); } return val; } @@ -2244,7 +2478,6 @@ scan_quoted(int c) { return str; } - //////////////////////////////////////////////////////////////////// // Function: CPPPreprocessor::should_ignore_manifest // Access: Public @@ -2326,10 +2559,44 @@ get() { return c; } +//////////////////////////////////////////////////////////////////// +// Function: CPPPreprocessor::peek +// Access: Private +// Description: Like get(), but does not alter the current state. +//////////////////////////////////////////////////////////////////// +int CPPPreprocessor:: +peek() { + if (_unget != '\0') { + return _unget; + } + + if (_files.empty()) { + return EOF; + } + + Files::reverse_iterator it = _files.rbegin(); + int c = (*it).peek(); + + while (c == EOF && it != _files.rend()) { + int last_c = (*it)._prev_last_c; + ++it; + + if (last_c != '\0') { + c = last_c; + } else if (it != _files.rend()) { + c = (*it).peek(); + } + } + + return c; +} + //////////////////////////////////////////////////////////////////// // Function: CPPPreprocessor::unget // Access: Private -// Description: +// Description: Undoes the effects of a previous get(). Not +// recommended, use peek() instead where possible, as +// it doesn't cause the column index to be off. //////////////////////////////////////////////////////////////////// void CPPPreprocessor:: unget(int c) { @@ -2377,9 +2644,8 @@ nested_parse_template_instantiation(CPPTemplateScope *scope) { for (pi = formal_params._parameters.begin(); pi != formal_params._parameters.end() && _parsing_template_params; ++pi) { - CPPFile first_file = get_file(); - int first_line = get_line_number(); - int first_col = get_col_number(); + CPPToken token = peek_next_token(); + YYLTYPE loc = token._lloc; CPPDeclaration *decl = (*pi); if (decl->as_type()) { @@ -2387,7 +2653,9 @@ nested_parse_template_instantiation(CPPTemplateScope *scope) { _saved_tokens.push_back(CPPToken(START_TYPE)); CPPType *type = ::parse_type(this, current_scope, global_scope); if (type == NULL) { - warning("Invalid type", first_line, first_col, first_file); + loc.last_line = get_line_number(); + loc.last_column = get_col_number() - 1; + warning("Invalid type", loc); skip_to_end_nested(); type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_unknown)); } @@ -2397,7 +2665,9 @@ nested_parse_template_instantiation(CPPTemplateScope *scope) { _saved_tokens.push_back(CPPToken(START_CONST_EXPR)); CPPExpression *expr = parse_const_expr(this, current_scope, global_scope); if (expr == NULL) { - warning("Invalid expression", first_line, first_col, first_file); + loc.last_line = get_line_number(); + loc.last_column = get_col_number() - 1; + warning("Invalid expression", loc); skip_to_end_nested(); expr = new CPPExpression(0); } diff --git a/dtool/src/cppparser/cppPreprocessor.h b/dtool/src/cppparser/cppPreprocessor.h index e04dbf75a5..c02f0a2e25 100644 --- a/dtool/src/cppparser/cppPreprocessor.h +++ b/dtool/src/cppparser/cppPreprocessor.h @@ -53,15 +53,17 @@ public: int get_col_number() const; CPPToken get_next_token(); + CPPToken peek_next_token(); #ifdef CPP_VERBOSE_LEX CPPToken get_next_token0(); int _token_index; #endif - void warning(const string &message, int line = 0, int col = 0, - CPPFile file = CPPFile()); - void error(const string &message, int line = 0, int col = 0, - CPPFile file = CPPFile()); + void warning(const string &message); + void warning(const string &message, const YYLTYPE &loc); + void error(const string &message); + void error(const string &message, const YYLTYPE &loc); + void show_line(const YYLTYPE &loc); CPPCommentBlock *get_comment_before(int line, CPPFile file); CPPCommentBlock *get_comment_on(int line, CPPFile file); @@ -112,6 +114,8 @@ protected: private: CPPToken internal_get_next_token(); + int check_digraph(int c); + int check_trigraph(int c); int skip_whitespace(int c); int skip_comment(int c); int skip_c_comment(int c); @@ -121,22 +125,14 @@ private: int get_preprocessor_command(int c, string &command); int get_preprocessor_args(int c, string &args); - void handle_define_directive(const string &args, int first_line, - int first_col, const CPPFile &first_file); - void handle_undef_directive(const string &args, int first_line, - int first_col, const CPPFile &first_file); - void handle_ifdef_directive(const string &args, int first_line, - int first_col, const CPPFile &first_file); - void handle_ifndef_directive(const string &args, int first_line, - int first_col, const CPPFile &first_file); - void handle_if_directive(const string &args, int first_line, - int first_col, const CPPFile &first_file); - void handle_include_directive(const string &args, int first_line, - int first_col, const CPPFile &first_file); - void handle_pragma_directive(const string &args, int first_line, - int first_col, const CPPFile &first_file); - void handle_error_directive(const string &args, int first_line, - int first_col, const CPPFile &first_file); + void handle_define_directive(const string &args, const YYLTYPE &loc); + void handle_undef_directive(const string &args, const YYLTYPE &loc); + void handle_ifdef_directive(const string &args, const YYLTYPE &loc); + void handle_ifndef_directive(const string &args, const YYLTYPE &loc); + void handle_if_directive(const string &args, const YYLTYPE &loc); + void handle_include_directive(const string &args, const YYLTYPE &loc); + void handle_pragma_directive(const string &args, const YYLTYPE &loc); + void handle_error_directive(const string &args, const YYLTYPE &loc); void skip_false_if_block(bool consider_elifs); @@ -153,7 +149,7 @@ private: int va_arg, vector_string &args, const string &expr, size_t &p); - CPPToken get_number(int c, int c2 = 0); + CPPToken get_number(int c); static int check_keyword(const string &name); int scan_escape_sequence(int c); string scan_quoted(int c); @@ -162,6 +158,7 @@ private: bool should_ignore_preprocessor() const; int get(); + int peek(); void unget(int c); CPPTemplateParameterList * @@ -177,6 +174,7 @@ private: bool open(const CPPFile &file); bool connect_input(const string &input); int get(); + int peek(); const CPPManifest *_ignore_manifest; CPPFile _file; @@ -184,6 +182,8 @@ private: istream *_in; int _line_number; int _col_number; + int _next_line_number; + int _next_col_number; bool _lock_position; int _prev_last_c; }; diff --git a/dtool/src/cppparser/cppScope.cxx b/dtool/src/cppparser/cppScope.cxx index 565a9ef4e5..e365c3e6d6 100644 --- a/dtool/src/cppparser/cppScope.cxx +++ b/dtool/src/cppparser/cppScope.cxx @@ -226,9 +226,14 @@ define_extension_type(CPPExtensionType *type, CPPPreprocessor *error_sink) { if (other_ext->_type != type->_type) { if (error_sink != NULL) { ostringstream errstr; - errstr << other_ext->_type << " " << type->get_fully_scoped_name() - << " was previously declared as " << other_ext->_type << "\n"; - error_sink->error(errstr.str()); + errstr << type->_type << " " << type->get_fully_scoped_name() + << " was previously declared as " << other_ext->_type; + error_sink->error(errstr.str(), type->_ident->_loc); + + if (other_ext->_ident != NULL) { + error_sink->error("previous declaration is here", + other_ext->_ident->_loc); + } } } (*result.first).second = type; @@ -242,10 +247,19 @@ define_extension_type(CPPExtensionType *type, CPPPreprocessor *error_sink) { if (error_sink != NULL) { ostringstream errstr; + if (!cppparser_output_class_keyword) { + errstr << type->_type << " "; + } type->output(errstr, 0, NULL, false); - errstr << " has conflicting declaration as "; + errstr << " has conflicting definition as "; other_type->output(errstr, 0, NULL, true); - error_sink->error(errstr.str()); + error_sink->error(errstr.str(), type->_ident->_loc); + + CPPExtensionType *other_ext = other_type->as_extension_type(); + if (other_ext != NULL && other_ext->_ident != NULL) { + error_sink->error("previous definition is here", + other_ext->_ident->_loc); + } } } } @@ -1107,7 +1121,9 @@ handle_declaration(CPPDeclaration *decl, CPPScope *global_scope, def->output(errstr, 0, NULL, false); errstr << " has conflicting declaration as "; other_type->output(errstr, 0, NULL, true); - error_sink->error(errstr.str()); + error_sink->error(errstr.str(), def->_ident->_loc); + error_sink->error("previous definition is here", + other_td->_ident->_loc); } } } else { diff --git a/dtool/src/cppparser/cppToken.cxx b/dtool/src/cppparser/cppToken.cxx index 9cb6102440..cfaf4057ed 100644 --- a/dtool/src/cppparser/cppToken.cxx +++ b/dtool/src/cppparser/cppToken.cxx @@ -38,6 +38,18 @@ CPPToken(int token, int line_number, int col_number, _lloc.file = file; } +//////////////////////////////////////////////////////////////////// +// Function: CPPToken::Constructor +// Access: Public +// Description: +//////////////////////////////////////////////////////////////////// +CPPToken:: +CPPToken(int token, const YYLTYPE &loc, const string &str, const YYSTYPE &val) : + _token(token), _lloc(loc), _lval(val) +{ + _lval.str = str; +} + //////////////////////////////////////////////////////////////////// // Function: CPPToken::Copy Constructor // Access: Public diff --git a/dtool/src/cppparser/cppToken.h b/dtool/src/cppparser/cppToken.h index db1bc4a44e..8f442e683e 100644 --- a/dtool/src/cppparser/cppToken.h +++ b/dtool/src/cppparser/cppToken.h @@ -29,6 +29,9 @@ public: const CPPFile &file = CPPFile(""), const string &str = string(), const YYSTYPE &lval = YYSTYPE()); + CPPToken(int token, const YYLTYPE &loc, + const string &str = string(), + const YYSTYPE &lval = YYSTYPE()); CPPToken(const CPPToken ©); void operator = (const CPPToken ©); diff --git a/dtool/src/interrogate/typeManager.cxx b/dtool/src/interrogate/typeManager.cxx index 529aa71db1..314e2d447a 100644 --- a/dtool/src/interrogate/typeManager.cxx +++ b/dtool/src/interrogate/typeManager.cxx @@ -20,6 +20,7 @@ #include "cppEnumType.h" #include "cppFunctionGroup.h" #include "cppFunctionType.h" +#include "cppIdentifier.h" #include "cppParameterList.h" #include "cppPointerType.h" #include "cppReferenceType.h"