diff --git a/dtool/src/cppparser/cppBison.cxx.prebuilt b/dtool/src/cppparser/cppBison.cxx.prebuilt index bee2ccfa65..863abcd1d4 100644 --- a/dtool/src/cppparser/cppBison.cxx.prebuilt +++ b/dtool/src/cppparser/cppBison.cxx.prebuilt @@ -305,216 +305,234 @@ extern int cppyydebug; REAL = 258, INTEGER = 259, CHAR_TOK = 260, - STRING = 261, + SIMPLE_STRING = 261, SIMPLE_IDENTIFIER = 262, - IDENTIFIER = 263, - TYPENAME_IDENTIFIER = 264, - SCOPING = 265, - TYPEDEFNAME = 266, - ELLIPSIS = 267, - OROR = 268, - ANDAND = 269, - EQCOMPARE = 270, - NECOMPARE = 271, - LECOMPARE = 272, - GECOMPARE = 273, - LSHIFT = 274, - RSHIFT = 275, - POINTSAT_STAR = 276, - DOT_STAR = 277, - UNARY = 278, - UNARY_NOT = 279, - UNARY_NEGATE = 280, - UNARY_MINUS = 281, - UNARY_STAR = 282, - UNARY_REF = 283, - POINTSAT = 284, - SCOPE = 285, - PLUSPLUS = 286, - MINUSMINUS = 287, - TIMESEQUAL = 288, - DIVIDEEQUAL = 289, - MODEQUAL = 290, - PLUSEQUAL = 291, - MINUSEQUAL = 292, - OREQUAL = 293, - ANDEQUAL = 294, - XOREQUAL = 295, - LSHIFTEQUAL = 296, - RSHIFTEQUAL = 297, - KW_BEGIN_PUBLISH = 298, - KW_BLOCKING = 299, - KW_BOOL = 300, - KW_CATCH = 301, - KW_CHAR = 302, - KW_CHAR16_T = 303, - KW_CHAR32_T = 304, - KW_CLASS = 305, - KW_CONST = 306, - KW_DELETE = 307, - KW_DOUBLE = 308, - KW_DYNAMIC_CAST = 309, - KW_ELSE = 310, - KW_END_PUBLISH = 311, - KW_ENUM = 312, - KW_EXTENSION = 313, - KW_EXTERN = 314, - KW_EXPLICIT = 315, - KW_PUBLISHED = 316, - KW_FALSE = 317, - KW_FLOAT = 318, - KW_FRIEND = 319, - KW_FOR = 320, - KW_GOTO = 321, - KW_IF = 322, - KW_INLINE = 323, - KW_INT = 324, - KW_LONG = 325, - KW_LONGLONG = 326, - KW_MAKE_PROPERTY = 327, - KW_MAKE_SEQ = 328, - KW_MUTABLE = 329, - KW_NAMESPACE = 330, - KW_NEW = 331, - KW_NOEXCEPT = 332, - KW_OPERATOR = 333, - KW_PRIVATE = 334, - KW_PROTECTED = 335, - KW_PUBLIC = 336, - KW_REGISTER = 337, - KW_RETURN = 338, - KW_SHORT = 339, - KW_SIGNED = 340, - KW_SIZEOF = 341, - KW_STATIC = 342, - KW_STATIC_ASSERT = 343, - KW_STATIC_CAST = 344, - KW_STRUCT = 345, - KW_TEMPLATE = 346, - KW_THROW = 347, - KW_TRUE = 348, - KW_TRY = 349, - KW_TYPEDEF = 350, - KW_TYPENAME = 351, - KW_UNION = 352, - KW_UNSIGNED = 353, - KW_USING = 354, - KW_VIRTUAL = 355, - KW_VOID = 356, - KW_VOLATILE = 357, - KW_WCHAR_T = 358, - KW_WHILE = 359, - START_CPP = 360, - START_CONST_EXPR = 361, - START_TYPE = 362 + STRING_LITERAL = 263, + CUSTOM_LITERAL = 264, + IDENTIFIER = 265, + TYPENAME_IDENTIFIER = 266, + SCOPING = 267, + TYPEDEFNAME = 268, + ELLIPSIS = 269, + OROR = 270, + ANDAND = 271, + EQCOMPARE = 272, + NECOMPARE = 273, + LECOMPARE = 274, + GECOMPARE = 275, + LSHIFT = 276, + RSHIFT = 277, + POINTSAT_STAR = 278, + DOT_STAR = 279, + UNARY = 280, + UNARY_NOT = 281, + UNARY_NEGATE = 282, + UNARY_MINUS = 283, + UNARY_STAR = 284, + UNARY_REF = 285, + POINTSAT = 286, + SCOPE = 287, + PLUSPLUS = 288, + MINUSMINUS = 289, + TIMESEQUAL = 290, + DIVIDEEQUAL = 291, + MODEQUAL = 292, + PLUSEQUAL = 293, + MINUSEQUAL = 294, + OREQUAL = 295, + ANDEQUAL = 296, + XOREQUAL = 297, + LSHIFTEQUAL = 298, + RSHIFTEQUAL = 299, + KW_ALIGNAS = 300, + KW_ALIGNOF = 301, + KW_AUTO = 302, + KW_BEGIN_PUBLISH = 303, + KW_BLOCKING = 304, + KW_BOOL = 305, + KW_CATCH = 306, + KW_CHAR = 307, + KW_CHAR16_T = 308, + KW_CHAR32_T = 309, + KW_CLASS = 310, + KW_CONST = 311, + KW_CONSTEXPR = 312, + KW_DECLTYPE = 313, + KW_DEFAULT = 314, + KW_DELETE = 315, + KW_DOUBLE = 316, + KW_DYNAMIC_CAST = 317, + KW_ELSE = 318, + KW_END_PUBLISH = 319, + KW_ENUM = 320, + KW_EXTENSION = 321, + KW_EXTERN = 322, + KW_EXPLICIT = 323, + KW_PUBLISHED = 324, + KW_FALSE = 325, + KW_FLOAT = 326, + KW_FRIEND = 327, + KW_FOR = 328, + KW_GOTO = 329, + KW_IF = 330, + KW_INLINE = 331, + KW_INT = 332, + KW_LONG = 333, + KW_LONGLONG = 334, + KW_MAKE_PROPERTY = 335, + KW_MAKE_SEQ = 336, + KW_MUTABLE = 337, + KW_NAMESPACE = 338, + KW_NEW = 339, + KW_NOEXCEPT = 340, + KW_NULLPTR = 341, + KW_OPERATOR = 342, + KW_PRIVATE = 343, + KW_PROTECTED = 344, + KW_PUBLIC = 345, + KW_REGISTER = 346, + KW_RETURN = 347, + KW_SHORT = 348, + KW_SIGNED = 349, + KW_SIZEOF = 350, + KW_STATIC = 351, + KW_STATIC_ASSERT = 352, + KW_STATIC_CAST = 353, + KW_STRUCT = 354, + KW_TEMPLATE = 355, + KW_THROW = 356, + KW_TRUE = 357, + KW_TRY = 358, + KW_TYPEDEF = 359, + KW_TYPENAME = 360, + KW_UNION = 361, + KW_UNSIGNED = 362, + KW_USING = 363, + KW_VIRTUAL = 364, + KW_VOID = 365, + KW_VOLATILE = 366, + KW_WCHAR_T = 367, + KW_WHILE = 368, + START_CPP = 369, + START_CONST_EXPR = 370, + START_TYPE = 371 }; #endif /* Tokens. */ #define REAL 258 #define INTEGER 259 #define CHAR_TOK 260 -#define STRING 261 +#define SIMPLE_STRING 261 #define SIMPLE_IDENTIFIER 262 -#define IDENTIFIER 263 -#define TYPENAME_IDENTIFIER 264 -#define SCOPING 265 -#define TYPEDEFNAME 266 -#define ELLIPSIS 267 -#define OROR 268 -#define ANDAND 269 -#define EQCOMPARE 270 -#define NECOMPARE 271 -#define LECOMPARE 272 -#define GECOMPARE 273 -#define LSHIFT 274 -#define RSHIFT 275 -#define POINTSAT_STAR 276 -#define DOT_STAR 277 -#define UNARY 278 -#define UNARY_NOT 279 -#define UNARY_NEGATE 280 -#define UNARY_MINUS 281 -#define UNARY_STAR 282 -#define UNARY_REF 283 -#define POINTSAT 284 -#define SCOPE 285 -#define PLUSPLUS 286 -#define MINUSMINUS 287 -#define TIMESEQUAL 288 -#define DIVIDEEQUAL 289 -#define MODEQUAL 290 -#define PLUSEQUAL 291 -#define MINUSEQUAL 292 -#define OREQUAL 293 -#define ANDEQUAL 294 -#define XOREQUAL 295 -#define LSHIFTEQUAL 296 -#define RSHIFTEQUAL 297 -#define KW_BEGIN_PUBLISH 298 -#define KW_BLOCKING 299 -#define KW_BOOL 300 -#define KW_CATCH 301 -#define KW_CHAR 302 -#define KW_CHAR16_T 303 -#define KW_CHAR32_T 304 -#define KW_CLASS 305 -#define KW_CONST 306 -#define KW_DELETE 307 -#define KW_DOUBLE 308 -#define KW_DYNAMIC_CAST 309 -#define KW_ELSE 310 -#define KW_END_PUBLISH 311 -#define KW_ENUM 312 -#define KW_EXTENSION 313 -#define KW_EXTERN 314 -#define KW_EXPLICIT 315 -#define KW_PUBLISHED 316 -#define KW_FALSE 317 -#define KW_FLOAT 318 -#define KW_FRIEND 319 -#define KW_FOR 320 -#define KW_GOTO 321 -#define KW_IF 322 -#define KW_INLINE 323 -#define KW_INT 324 -#define KW_LONG 325 -#define KW_LONGLONG 326 -#define KW_MAKE_PROPERTY 327 -#define KW_MAKE_SEQ 328 -#define KW_MUTABLE 329 -#define KW_NAMESPACE 330 -#define KW_NEW 331 -#define KW_NOEXCEPT 332 -#define KW_OPERATOR 333 -#define KW_PRIVATE 334 -#define KW_PROTECTED 335 -#define KW_PUBLIC 336 -#define KW_REGISTER 337 -#define KW_RETURN 338 -#define KW_SHORT 339 -#define KW_SIGNED 340 -#define KW_SIZEOF 341 -#define KW_STATIC 342 -#define KW_STATIC_ASSERT 343 -#define KW_STATIC_CAST 344 -#define KW_STRUCT 345 -#define KW_TEMPLATE 346 -#define KW_THROW 347 -#define KW_TRUE 348 -#define KW_TRY 349 -#define KW_TYPEDEF 350 -#define KW_TYPENAME 351 -#define KW_UNION 352 -#define KW_UNSIGNED 353 -#define KW_USING 354 -#define KW_VIRTUAL 355 -#define KW_VOID 356 -#define KW_VOLATILE 357 -#define KW_WCHAR_T 358 -#define KW_WHILE 359 -#define START_CPP 360 -#define START_CONST_EXPR 361 -#define START_TYPE 362 +#define STRING_LITERAL 263 +#define CUSTOM_LITERAL 264 +#define IDENTIFIER 265 +#define TYPENAME_IDENTIFIER 266 +#define SCOPING 267 +#define TYPEDEFNAME 268 +#define ELLIPSIS 269 +#define OROR 270 +#define ANDAND 271 +#define EQCOMPARE 272 +#define NECOMPARE 273 +#define LECOMPARE 274 +#define GECOMPARE 275 +#define LSHIFT 276 +#define RSHIFT 277 +#define POINTSAT_STAR 278 +#define DOT_STAR 279 +#define UNARY 280 +#define UNARY_NOT 281 +#define UNARY_NEGATE 282 +#define UNARY_MINUS 283 +#define UNARY_STAR 284 +#define UNARY_REF 285 +#define POINTSAT 286 +#define SCOPE 287 +#define PLUSPLUS 288 +#define MINUSMINUS 289 +#define TIMESEQUAL 290 +#define DIVIDEEQUAL 291 +#define MODEQUAL 292 +#define PLUSEQUAL 293 +#define MINUSEQUAL 294 +#define OREQUAL 295 +#define ANDEQUAL 296 +#define XOREQUAL 297 +#define LSHIFTEQUAL 298 +#define RSHIFTEQUAL 299 +#define KW_ALIGNAS 300 +#define KW_ALIGNOF 301 +#define KW_AUTO 302 +#define KW_BEGIN_PUBLISH 303 +#define KW_BLOCKING 304 +#define KW_BOOL 305 +#define KW_CATCH 306 +#define KW_CHAR 307 +#define KW_CHAR16_T 308 +#define KW_CHAR32_T 309 +#define KW_CLASS 310 +#define KW_CONST 311 +#define KW_CONSTEXPR 312 +#define KW_DECLTYPE 313 +#define KW_DEFAULT 314 +#define KW_DELETE 315 +#define KW_DOUBLE 316 +#define KW_DYNAMIC_CAST 317 +#define KW_ELSE 318 +#define KW_END_PUBLISH 319 +#define KW_ENUM 320 +#define KW_EXTENSION 321 +#define KW_EXTERN 322 +#define KW_EXPLICIT 323 +#define KW_PUBLISHED 324 +#define KW_FALSE 325 +#define KW_FLOAT 326 +#define KW_FRIEND 327 +#define KW_FOR 328 +#define KW_GOTO 329 +#define KW_IF 330 +#define KW_INLINE 331 +#define KW_INT 332 +#define KW_LONG 333 +#define KW_LONGLONG 334 +#define KW_MAKE_PROPERTY 335 +#define KW_MAKE_SEQ 336 +#define KW_MUTABLE 337 +#define KW_NAMESPACE 338 +#define KW_NEW 339 +#define KW_NOEXCEPT 340 +#define KW_NULLPTR 341 +#define KW_OPERATOR 342 +#define KW_PRIVATE 343 +#define KW_PROTECTED 344 +#define KW_PUBLIC 345 +#define KW_REGISTER 346 +#define KW_RETURN 347 +#define KW_SHORT 348 +#define KW_SIGNED 349 +#define KW_SIZEOF 350 +#define KW_STATIC 351 +#define KW_STATIC_ASSERT 352 +#define KW_STATIC_CAST 353 +#define KW_STRUCT 354 +#define KW_TEMPLATE 355 +#define KW_THROW 356 +#define KW_TRUE 357 +#define KW_TRY 358 +#define KW_TYPEDEF 359 +#define KW_TYPENAME 360 +#define KW_UNION 361 +#define KW_UNSIGNED 362 +#define KW_USING 363 +#define KW_VIRTUAL 364 +#define KW_VOID 365 +#define KW_VOLATILE 366 +#define KW_WCHAR_T 367 +#define KW_WHILE 368 +#define START_CPP 369 +#define START_CONST_EXPR 370 +#define START_TYPE 371 @@ -557,7 +575,7 @@ int cppyyparse (); /* Copy the second part of user declarations. */ /* Line 390 of yacc.c */ -#line 561 "built/tmp/cppBison.yxx.c" +#line 579 "built/tmp/cppBison.yxx.c" #ifdef short # undef short @@ -777,22 +795,22 @@ union yyalloc #endif /* !YYCOPY_NEEDED */ /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 73 +#define YYFINAL 78 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 3843 +#define YYLAST 4093 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 132 +#define YYNTOKENS 141 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 93 /* YYNRULES -- Number of rules. */ -#define YYNRULES 557 +#define YYNRULES 579 /* YYNRULES -- Number of states. */ -#define YYNSTATES 1015 +#define YYNSTATES 1053 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 362 +#define YYMAXUTOK 371 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -803,16 +821,16 @@ static const yytype_uint8 yytranslate[] = 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 130, 2, 2, 2, 123, 116, 2, - 126, 128, 121, 119, 109, 120, 125, 122, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 111, 110, - 117, 112, 118, 113, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 139, 2, 2, 2, 132, 125, 2, + 135, 137, 130, 128, 118, 129, 134, 131, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 120, 119, + 126, 121, 127, 122, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 127, 2, 131, 115, 2, 2, 2, 2, 2, + 2, 136, 2, 140, 124, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 108, 114, 129, 124, 2, 2, 2, + 2, 2, 2, 117, 123, 138, 133, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -836,7 +854,8 @@ static const yytype_uint8 yytranslate[] = 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107 + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116 }; #if YYDEBUG @@ -858,289 +877,299 @@ static const yytype_uint16 yyprhs[] = 363, 365, 367, 369, 371, 373, 375, 377, 379, 381, 383, 386, 389, 391, 393, 395, 397, 398, 405, 408, 410, 412, 414, 418, 421, 426, 429, 434, 438, 443, - 445, 447, 449, 451, 454, 457, 460, 463, 466, 469, - 473, 478, 482, 486, 487, 494, 496, 498, 500, 504, - 507, 509, 513, 515, 518, 520, 523, 525, 529, 535, - 539, 544, 546, 548, 551, 553, 557, 561, 567, 571, - 575, 580, 586, 589, 591, 593, 595, 597, 600, 603, - 606, 609, 612, 616, 621, 623, 625, 627, 630, 633, - 636, 639, 642, 646, 651, 659, 663, 665, 668, 671, - 674, 677, 680, 684, 689, 697, 699, 701, 704, 706, - 708, 710, 713, 718, 720, 722, 725, 727, 729, 731, - 734, 739, 742, 744, 746, 749, 752, 755, 758, 762, - 763, 769, 770, 778, 780, 782, 785, 789, 792, 795, - 798, 802, 806, 810, 814, 818, 822, 827, 832, 835, - 839, 841, 843, 845, 847, 851, 857, 859, 862, 867, - 869, 871, 873, 875, 876, 883, 888, 891, 895, 897, - 899, 901, 903, 905, 907, 909, 911, 913, 915, 917, - 919, 921, 923, 926, 929, 932, 935, 937, 940, 942, - 946, 949, 951, 952, 955, 957, 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, 1160, 1162, 1164, 1166, - 1168, 1170, 1174, 1176, 1178, 1180, 1182, 1184, 1188, 1190, - 1195, 1203, 1211, 1216, 1219, 1222, 1225, 1228, 1231, 1235, - 1239, 1243, 1247, 1251, 1255, 1259, 1263, 1267, 1271, 1275, - 1279, 1283, 1287, 1291, 1295, 1301, 1306, 1311, 1315, 1319, - 1323, 1327, 1329, 1334, 1342, 1350, 1355, 1360, 1365, 1370, - 1375, 1380, 1385, 1390, 1395, 1400, 1405, 1410, 1415, 1420, - 1423, 1429, 1432, 1435, 1438, 1441, 1444, 1448, 1452, 1456, - 1460, 1464, 1468, 1472, 1476, 1480, 1484, 1488, 1492, 1496, - 1500, 1504, 1508, 1512, 1516, 1522, 1527, 1532, 1536, 1540, - 1544, 1548, 1550, 1552, 1554, 1556, 1558, 1560, 1562, 1564, - 1569, 1577, 1585, 1590, 1593, 1599, 1602, 1605, 1608, 1611, - 1615, 1619, 1623, 1627, 1631, 1635, 1639, 1643, 1647, 1651, - 1655, 1659, 1663, 1667, 1671, 1675, 1679, 1683, 1689, 1694, - 1699, 1703, 1707, 1711, 1715, 1717, 1719, 1721, 1723, 1725, - 1727, 1729, 1732, 1735, 1737, 1739, 1741, 1744 + 445, 447, 449, 451, 454, 458, 461, 464, 467, 470, + 473, 477, 482, 486, 490, 491, 498, 500, 502, 504, + 508, 511, 513, 517, 519, 522, 524, 527, 529, 533, + 539, 543, 548, 550, 552, 555, 557, 561, 565, 571, + 575, 579, 584, 590, 593, 595, 597, 599, 601, 604, + 607, 610, 613, 616, 620, 625, 627, 629, 631, 634, + 637, 640, 643, 646, 650, 655, 663, 667, 669, 672, + 675, 678, 681, 684, 688, 693, 701, 703, 705, 708, + 710, 712, 714, 717, 722, 727, 729, 731, 734, 736, + 738, 740, 743, 748, 751, 756, 758, 760, 763, 766, + 769, 772, 776, 777, 783, 784, 792, 794, 796, 799, + 803, 806, 809, 812, 816, 820, 824, 828, 832, 836, + 841, 846, 849, 853, 855, 857, 859, 861, 865, 871, + 873, 876, 881, 883, 885, 887, 889, 890, 897, 902, + 905, 909, 911, 913, 915, 917, 919, 921, 923, 925, + 927, 929, 931, 933, 935, 937, 940, 943, 946, 949, + 951, 954, 956, 960, 963, 965, 966, 969, 971, 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, 1160, 1162, 1164, 1166, 1168, 1170, 1172, 1174, + 1176, 1178, 1180, 1182, 1184, 1186, 1188, 1190, 1192, 1194, + 1196, 1198, 1200, 1202, 1204, 1208, 1210, 1212, 1214, 1216, + 1218, 1222, 1224, 1229, 1237, 1245, 1250, 1255, 1258, 1261, + 1264, 1267, 1270, 1274, 1278, 1282, 1286, 1290, 1294, 1298, + 1302, 1306, 1310, 1314, 1318, 1322, 1326, 1330, 1334, 1340, + 1345, 1350, 1354, 1358, 1362, 1366, 1368, 1373, 1381, 1389, + 1394, 1399, 1404, 1409, 1414, 1419, 1424, 1429, 1434, 1439, + 1444, 1449, 1454, 1459, 1464, 1467, 1473, 1476, 1479, 1482, + 1485, 1488, 1492, 1496, 1500, 1504, 1508, 1512, 1516, 1520, + 1524, 1528, 1532, 1536, 1540, 1544, 1548, 1552, 1556, 1560, + 1566, 1571, 1576, 1580, 1584, 1588, 1592, 1594, 1596, 1598, + 1600, 1602, 1604, 1606, 1608, 1610, 1612, 1617, 1625, 1633, + 1638, 1643, 1646, 1652, 1655, 1658, 1661, 1664, 1668, 1672, + 1676, 1680, 1684, 1688, 1692, 1696, 1700, 1704, 1708, 1712, + 1716, 1720, 1724, 1728, 1732, 1736, 1742, 1747, 1752, 1756, + 1760, 1764, 1768, 1770, 1772, 1774, 1776, 1778, 1780, 1782, + 1784, 1786, 1789, 1792, 1794, 1796, 1798, 1800, 1803, 1806 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 133, 0, -1, 105, 134, -1, 106, 217, -1, 107, - 187, -1, 224, -1, 134, 110, -1, 134, 139, -1, - 136, -1, 135, 109, 136, -1, 222, 126, 214, 128, - -1, -1, 142, 108, 138, 134, 129, -1, 143, -1, - 165, -1, 137, -1, 202, -1, 204, -1, 140, -1, - 95, 149, -1, 43, -1, 56, -1, 61, 111, -1, - 81, 111, -1, 80, 111, -1, 79, 111, -1, 72, - 126, 8, 109, 8, 128, 110, -1, 72, 126, 8, - 109, 8, 109, 8, 128, 110, -1, 73, 126, 222, - 109, 222, 109, 222, 128, 110, -1, 88, 126, 217, - 109, 223, 128, -1, 88, 126, 217, 128, -1, -1, - 64, 141, 139, -1, 224, -1, 142, 59, -1, 142, - 59, 223, -1, 142, 87, -1, 142, 68, -1, 142, - 100, -1, 142, 60, -1, 142, 102, -1, 142, 74, - -1, 142, 82, -1, 142, 44, -1, 142, 58, -1, - 144, -1, 142, 185, 110, -1, 142, 154, 177, -1, - -1, 142, 185, 145, 147, -1, -1, 142, 51, 184, - 146, 148, -1, 171, 177, -1, 171, 176, 109, 147, - -1, 171, 177, -1, 171, 176, 109, 148, -1, -1, - 142, 185, 150, 152, -1, -1, 142, 51, 184, 151, - 153, -1, 142, 154, 177, -1, 171, 177, -1, 171, - 176, 109, 152, -1, 171, 177, -1, 171, 176, 109, - 153, -1, -1, 8, 126, 155, 173, 128, 162, -1, - -1, 9, 126, 156, 173, 128, 162, -1, -1, 124, - 222, 126, 157, 173, 128, 162, -1, -1, 9, 126, - 121, 171, 128, 126, 158, 173, 128, 162, -1, -1, - 9, 126, 10, 121, 171, 128, 126, 159, 173, 128, - 162, -1, -1, 78, 184, 181, 126, 160, 173, 128, - 162, -1, -1, 78, 51, 184, 181, 126, 161, 173, - 128, 162, -1, 8, -1, 224, -1, 51, -1, 162, - 77, -1, 162, 92, 126, 128, -1, 162, 92, 126, - 222, 128, -1, 130, -1, 124, -1, 121, -1, 122, - -1, 123, -1, 119, -1, 120, -1, 114, -1, 116, - -1, 115, -1, 13, -1, 14, -1, 15, -1, 16, - -1, 17, -1, 18, -1, 117, -1, 118, -1, 19, - -1, 20, -1, 112, -1, 109, -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, 29, -1, 127, 131, -1, 126, 128, -1, 76, - -1, 52, -1, 143, -1, 165, -1, -1, 91, 166, - 117, 167, 118, 164, -1, 91, 143, -1, 224, -1, - 168, -1, 169, -1, 168, 109, 169, -1, 50, 222, - -1, 50, 222, 112, 187, -1, 96, 222, -1, 96, - 222, 112, 187, -1, 170, 182, 175, -1, 51, 170, - 182, 175, -1, 205, -1, 8, -1, 9, -1, 222, - -1, 78, 163, -1, 51, 171, -1, 102, 171, -1, - 121, 171, -1, 116, 171, -1, 14, 171, -1, 10, - 121, 171, -1, 171, 127, 213, 131, -1, 171, 111, - 4, -1, 126, 171, 128, -1, -1, 171, 126, 172, - 173, 128, 162, -1, 224, -1, 12, -1, 174, -1, - 174, 109, 12, -1, 174, 12, -1, 180, -1, 174, - 109, 180, -1, 224, -1, 112, 216, -1, 224, -1, - 112, 217, -1, 110, -1, 108, 209, 129, -1, 111, - 135, 108, 209, 129, -1, 112, 217, 110, -1, 112, - 108, 178, 129, -1, 224, -1, 179, -1, 179, 109, - -1, 217, -1, 108, 178, 129, -1, 179, 109, 217, - -1, 179, 109, 108, 178, 129, -1, 184, 182, 176, - -1, 8, 182, 176, -1, 51, 184, 182, 176, -1, - 51, 82, 184, 182, 176, -1, 82, 180, -1, 219, - -1, 224, -1, 8, -1, 9, -1, 51, 181, -1, - 102, 181, -1, 121, 181, -1, 116, 181, -1, 14, - 181, -1, 10, 121, 181, -1, 181, 127, 213, 131, - -1, 224, -1, 8, -1, 9, -1, 51, 182, -1, - 102, 182, -1, 121, 182, -1, 116, 182, -1, 14, - 182, -1, 10, 121, 182, -1, 182, 127, 213, 131, - -1, 126, 182, 128, 126, 173, 128, 162, -1, 126, - 182, 128, -1, 224, -1, 51, 183, -1, 102, 183, - -1, 121, 183, -1, 116, 183, -1, 14, 183, -1, - 10, 121, 183, -1, 183, 127, 213, 131, -1, 126, - 183, 128, 126, 173, 128, 162, -1, 205, -1, 9, - -1, 96, 222, -1, 188, -1, 190, -1, 195, -1, - 201, 222, -1, 200, 222, 111, 197, -1, 205, -1, - 9, -1, 96, 222, -1, 188, -1, 190, -1, 195, - -1, 201, 222, -1, 200, 222, 111, 197, -1, 200, - 222, -1, 205, -1, 9, -1, 96, 222, -1, 201, - 222, -1, 200, 222, -1, 184, 183, -1, 51, 184, - 183, -1, -1, 201, 108, 189, 134, 129, -1, -1, - 201, 222, 191, 192, 108, 134, 129, -1, 224, -1, - 193, -1, 111, 194, -1, 193, 109, 194, -1, 81, - 221, -1, 80, 221, -1, 79, 221, -1, 100, 81, - 221, -1, 100, 80, 221, -1, 100, 79, 221, -1, - 81, 100, 221, -1, 80, 100, 221, -1, 79, 100, - 221, -1, 196, 108, 199, 129, -1, 200, 222, 111, - 197, -1, 200, 222, -1, 200, 111, 197, -1, 200, - -1, 206, -1, 9, -1, 224, -1, 198, 222, 109, - -1, 198, 222, 112, 217, 109, -1, 198, -1, 198, - 222, -1, 198, 222, 112, 217, -1, 57, -1, 50, - -1, 90, -1, 97, -1, -1, 75, 222, 108, 203, - 134, 129, -1, 75, 108, 134, 129, -1, 99, 222, - -1, 99, 75, 222, -1, 206, -1, 207, -1, 208, - -1, 45, -1, 47, -1, 103, -1, 48, -1, 49, - -1, 84, -1, 70, -1, 71, -1, 98, -1, 85, - -1, 69, -1, 84, 206, -1, 70, 206, -1, 98, - 206, -1, 85, 206, -1, 63, -1, 70, 63, -1, - 53, -1, 70, 70, 63, -1, 70, 53, -1, 101, - -1, -1, 210, 211, -1, 224, -1, 211, 212, -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, 103, -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, 89, -1, - 90, -1, 92, -1, 93, -1, 94, -1, 95, -1, - 96, -1, 97, -1, 98, -1, 100, -1, 101, -1, - 102, -1, 104, -1, 78, -1, 119, -1, 120, -1, - 121, -1, 122, -1, 116, -1, 114, -1, 115, -1, - 130, -1, 124, -1, 112, -1, 123, -1, 117, -1, - 118, -1, 126, -1, 128, -1, 125, -1, 109, -1, - 110, -1, 111, -1, 127, -1, 131, -1, 113, -1, - 108, 211, 129, -1, 224, -1, 217, -1, 224, -1, - 215, -1, 217, -1, 215, 109, 217, -1, 218, -1, - 126, 187, 128, 216, -1, 89, 117, 187, 118, 126, - 215, 128, -1, 54, 117, 187, 118, 126, 215, 128, - -1, 86, 126, 187, 128, -1, 130, 216, -1, 124, - 216, -1, 120, 216, -1, 121, 216, -1, 116, 216, - -1, 216, 121, 216, -1, 216, 122, 216, -1, 216, - 123, 216, -1, 216, 119, 216, -1, 216, 120, 216, - -1, 216, 114, 216, -1, 216, 115, 216, -1, 216, - 116, 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, 19, 216, - -1, 216, 20, 216, -1, 216, 113, 216, 111, 216, - -1, 216, 127, 217, 131, -1, 216, 126, 215, 128, - -1, 216, 126, 128, -1, 216, 125, 216, -1, 216, - 29, 216, -1, 126, 215, 128, -1, 218, -1, 126, - 187, 128, 217, -1, 89, 117, 187, 118, 126, 215, - 128, -1, 54, 117, 187, 118, 126, 215, 128, -1, - 9, 126, 214, 128, -1, 69, 126, 214, 128, -1, - 47, 126, 214, 128, -1, 103, 126, 214, 128, -1, - 48, 126, 214, 128, -1, 49, 126, 214, 128, -1, - 45, 126, 214, 128, -1, 84, 126, 214, 128, -1, - 70, 126, 214, 128, -1, 98, 126, 214, 128, -1, - 85, 126, 214, 128, -1, 63, 126, 214, 128, -1, - 53, 126, 214, 128, -1, 86, 126, 187, 128, -1, - 76, 186, -1, 76, 186, 126, 214, 128, -1, 130, - 217, -1, 124, 217, -1, 120, 217, -1, 121, 217, - -1, 116, 217, -1, 217, 121, 217, -1, 217, 122, - 217, -1, 217, 123, 217, -1, 217, 119, 217, -1, - 217, 120, 217, -1, 217, 114, 217, -1, 217, 115, - 217, -1, 217, 116, 217, -1, 217, 13, 217, -1, - 217, 14, 217, -1, 217, 15, 217, -1, 217, 16, - 217, -1, 217, 17, 217, -1, 217, 18, 217, -1, - 217, 117, 217, -1, 217, 118, 217, -1, 217, 19, - 217, -1, 217, 20, 217, -1, 217, 113, 217, 111, - 217, -1, 217, 127, 217, 131, -1, 217, 126, 215, - 128, -1, 217, 126, 128, -1, 217, 125, 217, -1, - 217, 29, 217, -1, 126, 215, 128, -1, 4, -1, - 93, -1, 62, -1, 5, -1, 3, -1, 223, -1, - 8, -1, 220, -1, 126, 187, 128, 217, -1, 89, - 117, 187, 118, 126, 215, 128, -1, 54, 117, 187, - 118, 126, 215, 128, -1, 86, 126, 187, 128, -1, - 76, 186, -1, 76, 186, 126, 214, 128, -1, 130, - 217, -1, 124, 217, -1, 120, 217, -1, 116, 217, - -1, 219, 121, 217, -1, 219, 122, 217, -1, 219, - 123, 217, -1, 219, 119, 217, -1, 219, 120, 217, - -1, 219, 114, 217, -1, 219, 115, 217, -1, 219, - 116, 217, -1, 219, 13, 217, -1, 219, 14, 217, - -1, 219, 15, 217, -1, 219, 16, 217, -1, 219, - 17, 217, -1, 219, 18, 217, -1, 219, 117, 217, - -1, 219, 118, 217, -1, 219, 19, 217, -1, 219, - 20, 217, -1, 219, 113, 217, 111, 217, -1, 219, - 127, 217, 131, -1, 219, 126, 215, 128, -1, 219, - 126, 128, -1, 219, 125, 217, -1, 219, 29, 217, - -1, 126, 215, 128, -1, 4, -1, 93, -1, 62, - -1, 5, -1, 3, -1, 223, -1, 222, -1, 201, - 222, -1, 96, 222, -1, 8, -1, 9, -1, 6, - -1, 223, 6, -1, -1 + 142, 0, -1, 114, 143, -1, 115, 226, -1, 116, + 196, -1, 233, -1, 143, 119, -1, 143, 148, -1, + 145, -1, 144, 118, 145, -1, 231, 135, 223, 137, + -1, -1, 151, 117, 147, 143, 138, -1, 152, -1, + 174, -1, 146, -1, 211, -1, 213, -1, 149, -1, + 104, 158, -1, 48, -1, 64, -1, 69, 120, -1, + 90, 120, -1, 89, 120, -1, 88, 120, -1, 80, + 135, 10, 118, 10, 137, 119, -1, 80, 135, 10, + 118, 10, 118, 10, 137, 119, -1, 81, 135, 231, + 118, 231, 118, 231, 137, 119, -1, 97, 135, 226, + 118, 232, 137, -1, 97, 135, 226, 137, -1, -1, + 72, 150, 148, -1, 233, -1, 151, 67, -1, 151, + 67, 6, -1, 151, 96, -1, 151, 76, -1, 151, + 109, -1, 151, 68, -1, 151, 111, -1, 151, 82, + -1, 151, 91, -1, 151, 49, -1, 151, 66, -1, + 153, -1, 151, 194, 119, -1, 151, 163, 186, -1, + -1, 151, 194, 154, 156, -1, -1, 151, 56, 193, + 155, 157, -1, 180, 186, -1, 180, 185, 118, 156, + -1, 180, 186, -1, 180, 185, 118, 157, -1, -1, + 151, 194, 159, 161, -1, -1, 151, 56, 193, 160, + 162, -1, 151, 163, 186, -1, 180, 186, -1, 180, + 185, 118, 161, -1, 180, 186, -1, 180, 185, 118, + 162, -1, -1, 10, 135, 164, 182, 137, 171, -1, + -1, 11, 135, 165, 182, 137, 171, -1, -1, 133, + 231, 135, 166, 182, 137, 171, -1, -1, 11, 135, + 130, 180, 137, 135, 167, 182, 137, 171, -1, -1, + 11, 135, 12, 130, 180, 137, 135, 168, 182, 137, + 171, -1, -1, 87, 193, 190, 135, 169, 182, 137, + 171, -1, -1, 87, 56, 193, 190, 135, 170, 182, + 137, 171, -1, 10, -1, 233, -1, 56, -1, 171, + 85, -1, 171, 101, 135, 137, -1, 171, 101, 135, + 231, 137, -1, 139, -1, 133, -1, 130, -1, 131, + -1, 132, -1, 128, -1, 129, -1, 123, -1, 125, + -1, 124, -1, 15, -1, 16, -1, 17, -1, 18, + -1, 19, -1, 20, -1, 126, -1, 127, -1, 21, + -1, 22, -1, 121, -1, 118, -1, 33, -1, 34, + -1, 35, -1, 36, -1, 37, -1, 38, -1, 39, + -1, 40, -1, 41, -1, 42, -1, 43, -1, 44, + -1, 31, -1, 136, 140, -1, 135, 137, -1, 84, + -1, 60, -1, 152, -1, 174, -1, -1, 100, 175, + 126, 176, 127, 173, -1, 100, 152, -1, 233, -1, + 177, -1, 178, -1, 177, 118, 178, -1, 55, 231, + -1, 55, 231, 121, 196, -1, 105, 231, -1, 105, + 231, 121, 196, -1, 179, 191, 184, -1, 56, 179, + 191, 184, -1, 214, -1, 10, -1, 11, -1, 231, + -1, 87, 172, -1, 87, 6, 10, -1, 56, 180, + -1, 111, 180, -1, 130, 180, -1, 125, 180, -1, + 16, 180, -1, 12, 130, 180, -1, 180, 136, 222, + 140, -1, 180, 120, 4, -1, 135, 180, 137, -1, + -1, 180, 135, 181, 182, 137, 171, -1, 233, -1, + 14, -1, 183, -1, 183, 118, 14, -1, 183, 14, + -1, 189, -1, 183, 118, 189, -1, 233, -1, 121, + 225, -1, 233, -1, 121, 226, -1, 119, -1, 117, + 218, 138, -1, 120, 144, 117, 218, 138, -1, 121, + 226, 119, -1, 121, 117, 187, 138, -1, 233, -1, + 188, -1, 188, 118, -1, 226, -1, 117, 187, 138, + -1, 188, 118, 226, -1, 188, 118, 117, 187, 138, + -1, 193, 191, 185, -1, 10, 191, 185, -1, 56, + 193, 191, 185, -1, 56, 91, 193, 191, 185, -1, + 91, 189, -1, 228, -1, 233, -1, 10, -1, 11, + -1, 56, 190, -1, 111, 190, -1, 130, 190, -1, + 125, 190, -1, 16, 190, -1, 12, 130, 190, -1, + 190, 136, 222, 140, -1, 233, -1, 10, -1, 11, + -1, 56, 191, -1, 111, 191, -1, 130, 191, -1, + 125, 191, -1, 16, 191, -1, 12, 130, 191, -1, + 191, 136, 222, 140, -1, 135, 191, 137, 135, 182, + 137, 171, -1, 135, 191, 137, -1, 233, -1, 56, + 192, -1, 111, 192, -1, 130, 192, -1, 125, 192, + -1, 16, 192, -1, 12, 130, 192, -1, 192, 136, + 222, 140, -1, 135, 192, 137, 135, 182, 137, 171, + -1, 214, -1, 11, -1, 105, 231, -1, 197, -1, + 199, -1, 204, -1, 210, 231, -1, 209, 231, 120, + 206, -1, 58, 135, 226, 137, -1, 214, -1, 11, + -1, 105, 231, -1, 197, -1, 199, -1, 204, -1, + 210, 231, -1, 209, 231, 120, 206, -1, 209, 231, + -1, 58, 135, 226, 137, -1, 214, -1, 11, -1, + 105, 231, -1, 210, 231, -1, 209, 231, -1, 193, + 192, -1, 56, 193, 192, -1, -1, 210, 117, 198, + 143, 138, -1, -1, 210, 231, 200, 201, 117, 143, + 138, -1, 233, -1, 202, -1, 120, 203, -1, 202, + 118, 203, -1, 90, 230, -1, 89, 230, -1, 88, + 230, -1, 109, 90, 230, -1, 109, 89, 230, -1, + 109, 88, 230, -1, 90, 109, 230, -1, 89, 109, + 230, -1, 88, 109, 230, -1, 205, 117, 208, 138, + -1, 209, 231, 120, 206, -1, 209, 231, -1, 209, + 120, 206, -1, 209, -1, 215, -1, 11, -1, 233, + -1, 207, 231, 118, -1, 207, 231, 121, 226, 118, + -1, 207, -1, 207, 231, -1, 207, 231, 121, 226, + -1, 65, -1, 55, -1, 99, -1, 106, -1, -1, + 83, 231, 117, 212, 143, 138, -1, 83, 117, 143, + 138, -1, 108, 231, -1, 108, 83, 231, -1, 215, + -1, 216, -1, 217, -1, 50, -1, 52, -1, 112, + -1, 53, -1, 54, -1, 93, -1, 78, -1, 79, + -1, 107, -1, 94, -1, 77, -1, 93, 215, -1, + 78, 215, -1, 107, 215, -1, 94, 215, -1, 71, + -1, 78, 71, -1, 61, -1, 78, 78, 71, -1, + 78, 61, -1, 110, -1, -1, 219, 220, -1, 233, + -1, 220, 221, -1, 3, -1, 4, -1, 6, -1, + 8, -1, 9, -1, 5, -1, 10, -1, 11, -1, + 12, -1, 7, -1, 14, -1, 15, -1, 16, -1, + 17, -1, 18, -1, 19, -1, 20, -1, 21, -1, + 22, -1, 23, -1, 24, -1, 31, -1, 32, -1, + 33, -1, 34, -1, 35, -1, 36, -1, 37, -1, + 38, -1, 39, -1, 40, -1, 41, -1, 42, -1, + 43, -1, 44, -1, 45, -1, 46, -1, 47, -1, + 50, -1, 51, -1, 52, -1, 53, -1, 54, -1, + 55, -1, 56, -1, 57, -1, 58, -1, 59, -1, + 60, -1, 61, -1, 62, -1, 63, -1, 65, -1, + 67, -1, 68, -1, 70, -1, 71, -1, 72, -1, + 73, -1, 74, -1, 75, -1, 76, -1, 77, -1, + 78, -1, 82, -1, 84, -1, 86, -1, 87, -1, + 88, -1, 89, -1, 90, -1, 69, -1, 91, -1, + 92, -1, 93, -1, 94, -1, 95, -1, 96, -1, + 97, -1, 98, -1, 99, -1, 101, -1, 102, -1, + 103, -1, 104, -1, 105, -1, 106, -1, 107, -1, + 109, -1, 110, -1, 111, -1, 112, -1, 113, -1, + 128, -1, 129, -1, 130, -1, 131, -1, 125, -1, + 123, -1, 124, -1, 139, -1, 133, -1, 121, -1, + 132, -1, 126, -1, 127, -1, 135, -1, 137, -1, + 134, -1, 118, -1, 119, -1, 120, -1, 136, -1, + 140, -1, 122, -1, 117, 220, 138, -1, 233, -1, + 226, -1, 233, -1, 224, -1, 226, -1, 224, 118, + 226, -1, 227, -1, 135, 196, 137, 225, -1, 98, + 126, 196, 127, 135, 224, 137, -1, 62, 126, 196, + 127, 135, 224, 137, -1, 95, 135, 196, 137, -1, + 46, 135, 196, 137, -1, 139, 225, -1, 133, 225, + -1, 129, 225, -1, 130, 225, -1, 125, 225, -1, + 225, 130, 225, -1, 225, 131, 225, -1, 225, 132, + 225, -1, 225, 128, 225, -1, 225, 129, 225, -1, + 225, 123, 225, -1, 225, 124, 225, -1, 225, 125, + 225, -1, 225, 15, 225, -1, 225, 16, 225, -1, + 225, 17, 225, -1, 225, 18, 225, -1, 225, 19, + 225, -1, 225, 20, 225, -1, 225, 21, 225, -1, + 225, 22, 225, -1, 225, 122, 225, 120, 225, -1, + 225, 136, 226, 140, -1, 225, 135, 224, 137, -1, + 225, 135, 137, -1, 225, 134, 225, -1, 225, 31, + 225, -1, 135, 224, 137, -1, 227, -1, 135, 196, + 137, 226, -1, 98, 126, 196, 127, 135, 224, 137, + -1, 62, 126, 196, 127, 135, 224, 137, -1, 11, + 135, 223, 137, -1, 77, 135, 223, 137, -1, 52, + 135, 223, 137, -1, 112, 135, 223, 137, -1, 53, + 135, 223, 137, -1, 54, 135, 223, 137, -1, 50, + 135, 223, 137, -1, 93, 135, 223, 137, -1, 78, + 135, 223, 137, -1, 107, 135, 223, 137, -1, 94, + 135, 223, 137, -1, 71, 135, 223, 137, -1, 61, + 135, 223, 137, -1, 95, 135, 196, 137, -1, 46, + 135, 196, 137, -1, 84, 195, -1, 84, 195, 135, + 223, 137, -1, 139, 226, -1, 133, 226, -1, 129, + 226, -1, 130, 226, -1, 125, 226, -1, 226, 130, + 226, -1, 226, 131, 226, -1, 226, 132, 226, -1, + 226, 128, 226, -1, 226, 129, 226, -1, 226, 123, + 226, -1, 226, 124, 226, -1, 226, 125, 226, -1, + 226, 15, 226, -1, 226, 16, 226, -1, 226, 17, + 226, -1, 226, 18, 226, -1, 226, 19, 226, -1, + 226, 20, 226, -1, 226, 126, 226, -1, 226, 127, + 226, -1, 226, 21, 226, -1, 226, 22, 226, -1, + 226, 122, 226, 120, 226, -1, 226, 136, 226, 140, + -1, 226, 135, 224, 137, -1, 226, 135, 137, -1, + 226, 134, 226, -1, 226, 31, 226, -1, 135, 224, + 137, -1, 4, -1, 102, -1, 70, -1, 5, -1, + 3, -1, 232, -1, 9, -1, 10, -1, 86, -1, + 229, -1, 135, 196, 137, 226, -1, 98, 126, 196, + 127, 135, 224, 137, -1, 62, 126, 196, 127, 135, + 224, 137, -1, 95, 135, 196, 137, -1, 46, 135, + 196, 137, -1, 84, 195, -1, 84, 195, 135, 223, + 137, -1, 139, 226, -1, 133, 226, -1, 129, 226, + -1, 125, 226, -1, 228, 130, 226, -1, 228, 131, + 226, -1, 228, 132, 226, -1, 228, 128, 226, -1, + 228, 129, 226, -1, 228, 123, 226, -1, 228, 124, + 226, -1, 228, 125, 226, -1, 228, 15, 226, -1, + 228, 16, 226, -1, 228, 17, 226, -1, 228, 18, + 226, -1, 228, 19, 226, -1, 228, 20, 226, -1, + 228, 126, 226, -1, 228, 127, 226, -1, 228, 21, + 226, -1, 228, 22, 226, -1, 228, 122, 226, 120, + 226, -1, 228, 136, 226, 140, -1, 228, 135, 224, + 137, -1, 228, 135, 137, -1, 228, 134, 226, -1, + 228, 31, 226, -1, 135, 224, 137, -1, 4, -1, + 102, -1, 70, -1, 5, -1, 3, -1, 232, -1, + 9, -1, 86, -1, 231, -1, 210, 231, -1, 105, + 231, -1, 10, -1, 11, -1, 6, -1, 8, -1, + 232, 6, -1, 232, 8, -1, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 396, 396, 397, 401, 408, 409, 410, 414, 415, - 419, 432, 431, 443, 444, 445, 446, 447, 448, 449, - 450, 463, 472, 476, 484, 488, 492, 503, 524, 529, - 538, 552, 551, 566, 570, 574, 585, 589, 593, 597, - 601, 605, 609, 613, 617, 624, 628, 637, 649, 648, - 664, 663, 681, 689, 700, 709, 723, 722, 738, 737, - 748, 763, 769, 778, 785, 798, 797, 820, 819, 844, - 843, 874, 873, 892, 891, 912, 911, 943, 942, 968, - 981, 985, 989, 993, 997, 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, 1136, 1140, - 1144, 1148, 1152, 1156, 1163, 1164, 1169, 1168, 1176, 1180, - 1181, 1185, 1191, 1200, 1204, 1208, 1212, 1216, 1222, 1232, - 1236, 1241, 1253, 1257, 1271, 1276, 1281, 1286, 1291, 1296, - 1301, 1306, 1311, 1317, 1316, 1338, 1342, 1347, 1351, 1356, - 1364, 1369, 1377, 1381, 1388, 1392, 1399, 1403, 1407, 1411, - 1415, 1422, 1423, 1424, 1428, 1431, 1432, 1433, 1437, 1442, - 1450, 1456, 1462, 1466, 1476, 1480, 1484, 1488, 1493, 1498, - 1503, 1508, 1513, 1518, 1526, 1530, 1534, 1538, 1543, 1548, - 1553, 1558, 1563, 1568, 1573, 1579, 1587, 1591, 1596, 1601, - 1606, 1611, 1616, 1621, 1626, 1635, 1639, 1647, 1651, 1655, - 1659, 1663, 1679, 1698, 1702, 1710, 1714, 1718, 1722, 1726, - 1742, 1758, 1779, 1783, 1791, 1795, 1811, 1830, 1836, 1847, - 1846, 1871, 1870, 1900, 1901, 1905, 1906, 1910, 1914, 1918, - 1922, 1926, 1930, 1934, 1938, 1942, 1949, 1957, 1961, 1965, - 1969, 1976, 1980, 1987, 1988, 1994, 2002, 2003, 2009, 2018, - 2025, 2029, 2033, 2041, 2040, 2062, 2066, 2072, 2081, 2082, - 2083, 2087, 2091, 2095, 2099, 2103, 2107, 2112, 2117, 2122, - 2127, 2132, 2136, 2141, 2150, 2155, 2163, 2167, 2172, 2176, - 2181, 2189, 2199, 2199, 2209, 2210, 2214, 2217, 2220, 2223, - 2226, 2229, 2232, 2235, 2238, 2238, 2238, 2239, 2239, 2239, - 2239, 2240, 2240, 2240, 2240, 2240, 2241, 2241, 2241, 2242, - 2242, 2242, 2242, 2242, 2243, 2243, 2243, 2243, 2243, 2244, - 2244, 2244, 2244, 2244, 2245, 2245, 2245, 2246, 2246, 2246, - 2246, 2246, 2247, 2247, 2247, 2248, 2248, 2248, 2248, 2249, - 2249, 2249, 2250, 2250, 2250, 2250, 2250, 2251, 2251, 2251, - 2251, 2252, 2252, 2252, 2252, 2252, 2253, 2253, 2253, 2253, - 2253, 2253, 2254, 2254, 2254, 2254, 2254, 2255, 2256, 2259, - 2259, 2259, 2259, 2259, 2259, 2259, 2259, 2259, 2259, 2259, - 2260, 2260, 2260, 2260, 2260, 2260, 2260, 2260, 2260, 2260, - 2261, 2261, 2265, 2269, 2276, 2280, 2287, 2291, 2298, 2302, - 2306, 2310, 2314, 2318, 2322, 2326, 2338, 2342, 2346, 2350, - 2354, 2358, 2362, 2366, 2370, 2374, 2378, 2382, 2386, 2390, - 2394, 2398, 2402, 2406, 2410, 2414, 2418, 2422, 2426, 2430, - 2434, 2442, 2446, 2450, 2454, 2458, 2468, 2474, 2480, 2486, - 2492, 2498, 2504, 2511, 2518, 2525, 2532, 2538, 2544, 2548, - 2552, 2556, 2560, 2564, 2576, 2580, 2584, 2588, 2592, 2596, - 2600, 2604, 2608, 2612, 2616, 2620, 2624, 2628, 2632, 2636, - 2640, 2644, 2648, 2652, 2656, 2660, 2664, 2668, 2672, 2676, - 2680, 2687, 2691, 2695, 2699, 2703, 2707, 2711, 2725, 2729, - 2733, 2737, 2741, 2745, 2749, 2753, 2757, 2761, 2773, 2777, - 2781, 2785, 2789, 2793, 2797, 2801, 2805, 2809, 2813, 2817, - 2821, 2825, 2829, 2833, 2837, 2841, 2845, 2849, 2853, 2857, - 2861, 2865, 2869, 2873, 2880, 2884, 2888, 2892, 2896, 2900, - 2907, 2915, 2923, 2949, 2953, 2960, 2964, 2970 + 0, 404, 404, 405, 409, 416, 417, 418, 422, 423, + 427, 440, 439, 451, 452, 453, 454, 455, 456, 457, + 458, 471, 480, 484, 492, 496, 500, 511, 532, 537, + 548, 562, 561, 576, 580, 584, 595, 599, 603, 607, + 611, 615, 619, 623, 627, 634, 638, 647, 659, 658, + 674, 673, 691, 699, 710, 719, 733, 732, 748, 747, + 758, 773, 779, 788, 795, 808, 807, 830, 829, 854, + 853, 884, 883, 902, 901, 922, 921, 953, 952, 978, + 991, 995, 999, 1003, 1007, 1014, 1018, 1022, 1026, 1030, + 1034, 1038, 1042, 1046, 1050, 1054, 1058, 1062, 1066, 1070, + 1074, 1078, 1082, 1086, 1090, 1094, 1098, 1102, 1106, 1110, + 1114, 1118, 1122, 1126, 1130, 1134, 1138, 1142, 1146, 1150, + 1154, 1158, 1162, 1166, 1173, 1174, 1179, 1178, 1186, 1190, + 1191, 1195, 1201, 1210, 1214, 1218, 1222, 1226, 1232, 1242, + 1246, 1251, 1263, 1267, 1281, 1296, 1301, 1306, 1311, 1316, + 1321, 1326, 1331, 1336, 1342, 1341, 1363, 1367, 1372, 1376, + 1381, 1389, 1394, 1402, 1406, 1413, 1417, 1424, 1428, 1432, + 1436, 1440, 1447, 1448, 1449, 1453, 1456, 1457, 1458, 1462, + 1467, 1475, 1481, 1487, 1491, 1501, 1505, 1509, 1513, 1518, + 1523, 1528, 1533, 1538, 1543, 1551, 1555, 1559, 1563, 1568, + 1573, 1578, 1583, 1588, 1593, 1598, 1604, 1612, 1616, 1621, + 1626, 1631, 1636, 1641, 1646, 1651, 1660, 1664, 1672, 1676, + 1680, 1684, 1688, 1704, 1720, 1732, 1736, 1744, 1748, 1752, + 1756, 1760, 1776, 1792, 1810, 1822, 1826, 1834, 1838, 1854, + 1873, 1879, 1890, 1889, 1914, 1913, 1943, 1944, 1948, 1949, + 1953, 1957, 1961, 1965, 1969, 1973, 1977, 1981, 1985, 1992, + 2000, 2004, 2008, 2012, 2019, 2023, 2030, 2031, 2037, 2045, + 2046, 2052, 2061, 2068, 2072, 2076, 2084, 2083, 2105, 2109, + 2115, 2124, 2125, 2126, 2130, 2134, 2138, 2142, 2146, 2150, + 2155, 2160, 2165, 2170, 2175, 2179, 2184, 2193, 2198, 2206, + 2210, 2215, 2219, 2224, 2232, 2242, 2242, 2252, 2253, 2257, + 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, + 2267, 2267, 2268, 2268, 2268, 2268, 2269, 2269, 2269, 2269, + 2269, 2270, 2270, 2270, 2271, 2271, 2271, 2271, 2271, 2272, + 2272, 2272, 2272, 2272, 2273, 2273, 2273, 2273, 2273, 2274, + 2274, 2274, 2275, 2275, 2275, 2275, 2275, 2276, 2276, 2276, + 2276, 2276, 2277, 2277, 2277, 2278, 2278, 2278, 2278, 2279, + 2279, 2279, 2279, 2279, 2280, 2280, 2280, 2280, 2280, 2281, + 2281, 2281, 2281, 2282, 2282, 2282, 2282, 2282, 2283, 2283, + 2283, 2283, 2283, 2284, 2284, 2284, 2284, 2284, 2285, 2285, + 2285, 2285, 2288, 2288, 2288, 2288, 2288, 2288, 2288, 2288, + 2288, 2288, 2288, 2289, 2289, 2289, 2289, 2289, 2289, 2289, + 2289, 2289, 2289, 2290, 2290, 2294, 2298, 2305, 2309, 2316, + 2320, 2327, 2331, 2335, 2339, 2343, 2347, 2351, 2355, 2359, + 2363, 2367, 2371, 2375, 2379, 2383, 2387, 2391, 2395, 2399, + 2403, 2407, 2411, 2415, 2419, 2423, 2427, 2431, 2435, 2439, + 2443, 2447, 2451, 2455, 2459, 2467, 2471, 2475, 2479, 2483, + 2493, 2499, 2505, 2511, 2517, 2523, 2529, 2536, 2543, 2550, + 2557, 2563, 2569, 2573, 2577, 2581, 2585, 2589, 2593, 2597, + 2601, 2605, 2609, 2613, 2617, 2621, 2625, 2629, 2633, 2637, + 2641, 2645, 2649, 2653, 2657, 2661, 2665, 2669, 2673, 2677, + 2681, 2685, 2689, 2693, 2697, 2701, 2708, 2712, 2716, 2720, + 2724, 2728, 2732, 2736, 2740, 2754, 2758, 2762, 2766, 2770, + 2774, 2778, 2782, 2786, 2790, 2794, 2798, 2802, 2806, 2810, + 2814, 2818, 2822, 2826, 2830, 2834, 2838, 2842, 2846, 2850, + 2854, 2858, 2862, 2866, 2870, 2874, 2878, 2882, 2886, 2890, + 2894, 2898, 2905, 2909, 2913, 2917, 2921, 2925, 2929, 2933, + 2940, 2948, 2956, 2982, 2986, 2993, 2997, 3001, 3007, 3018 }; #endif @@ -1149,33 +1178,35 @@ static const yytype_uint16 yyrline[] = First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { - "$end", "error", "$undefined", "REAL", "INTEGER", "CHAR_TOK", "STRING", - "SIMPLE_IDENTIFIER", "IDENTIFIER", "TYPENAME_IDENTIFIER", "SCOPING", - "TYPEDEFNAME", "ELLIPSIS", "OROR", "ANDAND", "EQCOMPARE", "NECOMPARE", - "LECOMPARE", "GECOMPARE", "LSHIFT", "RSHIFT", "POINTSAT_STAR", - "DOT_STAR", "UNARY", "UNARY_NOT", "UNARY_NEGATE", "UNARY_MINUS", - "UNARY_STAR", "UNARY_REF", "POINTSAT", "SCOPE", "PLUSPLUS", "MINUSMINUS", - "TIMESEQUAL", "DIVIDEEQUAL", "MODEQUAL", "PLUSEQUAL", "MINUSEQUAL", - "OREQUAL", "ANDEQUAL", "XOREQUAL", "LSHIFTEQUAL", "RSHIFTEQUAL", - "KW_BEGIN_PUBLISH", "KW_BLOCKING", "KW_BOOL", "KW_CATCH", "KW_CHAR", - "KW_CHAR16_T", "KW_CHAR32_T", "KW_CLASS", "KW_CONST", "KW_DELETE", + "$end", "error", "$undefined", "REAL", "INTEGER", "CHAR_TOK", + "SIMPLE_STRING", "SIMPLE_IDENTIFIER", "STRING_LITERAL", "CUSTOM_LITERAL", + "IDENTIFIER", "TYPENAME_IDENTIFIER", "SCOPING", "TYPEDEFNAME", + "ELLIPSIS", "OROR", "ANDAND", "EQCOMPARE", "NECOMPARE", "LECOMPARE", + "GECOMPARE", "LSHIFT", "RSHIFT", "POINTSAT_STAR", "DOT_STAR", "UNARY", + "UNARY_NOT", "UNARY_NEGATE", "UNARY_MINUS", "UNARY_STAR", "UNARY_REF", + "POINTSAT", "SCOPE", "PLUSPLUS", "MINUSMINUS", "TIMESEQUAL", + "DIVIDEEQUAL", "MODEQUAL", "PLUSEQUAL", "MINUSEQUAL", "OREQUAL", + "ANDEQUAL", "XOREQUAL", "LSHIFTEQUAL", "RSHIFTEQUAL", "KW_ALIGNAS", + "KW_ALIGNOF", "KW_AUTO", "KW_BEGIN_PUBLISH", "KW_BLOCKING", "KW_BOOL", + "KW_CATCH", "KW_CHAR", "KW_CHAR16_T", "KW_CHAR32_T", "KW_CLASS", + "KW_CONST", "KW_CONSTEXPR", "KW_DECLTYPE", "KW_DEFAULT", "KW_DELETE", "KW_DOUBLE", "KW_DYNAMIC_CAST", "KW_ELSE", "KW_END_PUBLISH", "KW_ENUM", "KW_EXTENSION", "KW_EXTERN", "KW_EXPLICIT", "KW_PUBLISHED", "KW_FALSE", "KW_FLOAT", "KW_FRIEND", "KW_FOR", "KW_GOTO", "KW_IF", "KW_INLINE", "KW_INT", "KW_LONG", "KW_LONGLONG", "KW_MAKE_PROPERTY", "KW_MAKE_SEQ", - "KW_MUTABLE", "KW_NAMESPACE", "KW_NEW", "KW_NOEXCEPT", "KW_OPERATOR", - "KW_PRIVATE", "KW_PROTECTED", "KW_PUBLIC", "KW_REGISTER", "KW_RETURN", - "KW_SHORT", "KW_SIGNED", "KW_SIZEOF", "KW_STATIC", "KW_STATIC_ASSERT", - "KW_STATIC_CAST", "KW_STRUCT", "KW_TEMPLATE", "KW_THROW", "KW_TRUE", - "KW_TRY", "KW_TYPEDEF", "KW_TYPENAME", "KW_UNION", "KW_UNSIGNED", - "KW_USING", "KW_VIRTUAL", "KW_VOID", "KW_VOLATILE", "KW_WCHAR_T", - "KW_WHILE", "START_CPP", "START_CONST_EXPR", "START_TYPE", "'{'", "','", - "';'", "':'", "'='", "'?'", "'|'", "'^'", "'&'", "'<'", "'>'", "'+'", - "'-'", "'*'", "'/'", "'%'", "'~'", "'.'", "'('", "'['", "')'", "'}'", - "'!'", "']'", "$accept", "grammar", "cpp", "constructor_inits", - "constructor_init", "extern_c", "$@1", "declaration", - "friend_declaration", "$@2", "storage_class", "type_like_declaration", - "multiple_var_declaration", "$@3", "$@4", + "KW_MUTABLE", "KW_NAMESPACE", "KW_NEW", "KW_NOEXCEPT", "KW_NULLPTR", + "KW_OPERATOR", "KW_PRIVATE", "KW_PROTECTED", "KW_PUBLIC", "KW_REGISTER", + "KW_RETURN", "KW_SHORT", "KW_SIGNED", "KW_SIZEOF", "KW_STATIC", + "KW_STATIC_ASSERT", "KW_STATIC_CAST", "KW_STRUCT", "KW_TEMPLATE", + "KW_THROW", "KW_TRUE", "KW_TRY", "KW_TYPEDEF", "KW_TYPENAME", "KW_UNION", + "KW_UNSIGNED", "KW_USING", "KW_VIRTUAL", "KW_VOID", "KW_VOLATILE", + "KW_WCHAR_T", "KW_WHILE", "START_CPP", "START_CONST_EXPR", "START_TYPE", + "'{'", "','", "';'", "':'", "'='", "'?'", "'|'", "'^'", "'&'", "'<'", + "'>'", "'+'", "'-'", "'*'", "'/'", "'%'", "'~'", "'.'", "'('", "'['", + "')'", "'}'", "'!'", "']'", "$accept", "grammar", "cpp", + "constructor_inits", "constructor_init", "extern_c", "$@1", + "declaration", "friend_declaration", "$@2", "storage_class", + "type_like_declaration", "multiple_var_declaration", "$@3", "$@4", "multiple_instance_identifiers", "multiple_const_instance_identifiers", "typedef_declaration", "$@5", "$@6", "typedef_instance_identifiers", "typedef_const_instance_identifiers", "function_prototype", "$@7", "$@8", @@ -1199,7 +1230,7 @@ static const char *const yytname[] = "element", "optional_const_expr", "optional_const_expr_comma", "const_expr_comma", "no_angle_bracket_const_expr", "const_expr", "const_operand", "formal_const_expr", "formal_const_operand", - "class_derivation_name", "name", "string", "empty", YY_NULL + "class_derivation_name", "name", "string_literal", "empty", YY_NULL }; #endif @@ -1218,72 +1249,75 @@ static const yytype_uint16 yytoknum[] = 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 123, 44, - 59, 58, 61, 63, 124, 94, 38, 60, 62, 43, - 45, 42, 47, 37, 126, 46, 40, 91, 41, 125, - 33, 93 + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 123, 44, 59, + 58, 61, 63, 124, 94, 38, 60, 62, 43, 45, + 42, 47, 37, 126, 46, 40, 91, 41, 125, 33, + 93 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 132, 133, 133, 133, 134, 134, 134, 135, 135, - 136, 138, 137, 139, 139, 139, 139, 139, 139, 139, - 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, - 139, 141, 140, 142, 142, 142, 142, 142, 142, 142, - 142, 142, 142, 142, 142, 143, 143, 143, 145, 144, - 146, 144, 147, 147, 148, 148, 150, 149, 151, 149, - 149, 152, 152, 153, 153, 155, 154, 156, 154, 157, - 154, 158, 154, 159, 154, 160, 154, 161, 154, 154, - 162, 162, 162, 162, 162, 163, 163, 163, 163, 163, - 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, - 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, - 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, - 163, 163, 163, 163, 164, 164, 166, 165, 165, 167, - 167, 168, 168, 169, 169, 169, 169, 169, 169, 170, - 170, 170, 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 172, 171, 173, 173, 173, 173, 173, - 174, 174, 175, 175, 176, 176, 177, 177, 177, 177, - 177, 178, 178, 178, 179, 179, 179, 179, 180, 180, - 180, 180, 180, 180, 181, 181, 181, 181, 181, 181, - 181, 181, 181, 181, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 184, 184, 184, 184, 184, - 184, 184, 184, 185, 185, 185, 185, 185, 185, 185, - 185, 185, 186, 186, 186, 186, 186, 187, 187, 189, - 188, 191, 190, 192, 192, 193, 193, 194, 194, 194, - 194, 194, 194, 194, 194, 194, 195, 196, 196, 196, - 196, 197, 197, 198, 198, 198, 199, 199, 199, 200, - 201, 201, 201, 203, 202, 202, 204, 204, 205, 205, - 205, 206, 206, 206, 206, 206, 206, 206, 206, 206, - 206, 206, 206, 206, 206, 206, 207, 207, 207, 207, - 207, 208, 210, 209, 211, 211, 212, 212, 212, 212, - 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, - 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, - 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, - 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, - 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, - 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, - 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, - 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, - 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, - 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, - 212, 212, 213, 213, 214, 214, 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, 217, 217, 217, 217, 217, 217, 217, 217, 217, - 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, - 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, - 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, - 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, - 217, 218, 218, 218, 218, 218, 218, 218, 219, 219, - 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, - 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, - 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, - 219, 219, 219, 219, 220, 220, 220, 220, 220, 220, - 221, 221, 221, 222, 222, 223, 223, 224 + 0, 141, 142, 142, 142, 143, 143, 143, 144, 144, + 145, 147, 146, 148, 148, 148, 148, 148, 148, 148, + 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, + 148, 150, 149, 151, 151, 151, 151, 151, 151, 151, + 151, 151, 151, 151, 151, 152, 152, 152, 154, 153, + 155, 153, 156, 156, 157, 157, 159, 158, 160, 158, + 158, 161, 161, 162, 162, 164, 163, 165, 163, 166, + 163, 167, 163, 168, 163, 169, 163, 170, 163, 163, + 171, 171, 171, 171, 171, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 173, 173, 175, 174, 174, 176, + 176, 177, 177, 178, 178, 178, 178, 178, 178, 179, + 179, 179, 180, 180, 180, 180, 180, 180, 180, 180, + 180, 180, 180, 180, 181, 180, 182, 182, 182, 182, + 182, 183, 183, 184, 184, 185, 185, 186, 186, 186, + 186, 186, 187, 187, 187, 188, 188, 188, 188, 189, + 189, 189, 189, 189, 189, 190, 190, 190, 190, 190, + 190, 190, 190, 190, 190, 191, 191, 191, 191, 191, + 191, 191, 191, 191, 191, 191, 191, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 194, 194, 194, 194, 194, + 194, 194, 194, 194, 194, 195, 195, 195, 195, 195, + 196, 196, 198, 197, 200, 199, 201, 201, 202, 202, + 203, 203, 203, 203, 203, 203, 203, 203, 203, 204, + 205, 205, 205, 205, 206, 206, 207, 207, 207, 208, + 208, 208, 209, 210, 210, 210, 212, 211, 211, 213, + 213, 214, 214, 214, 215, 215, 215, 215, 215, 215, + 215, 215, 215, 215, 215, 215, 215, 215, 215, 216, + 216, 216, 216, 216, 217, 219, 218, 220, 220, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 222, 222, 223, 223, 224, + 224, 225, 225, 225, 225, 225, 225, 225, 225, 225, + 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, + 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, + 225, 225, 225, 225, 225, 226, 226, 226, 226, 226, + 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, + 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, + 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, + 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, + 226, 226, 226, 226, 226, 226, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 229, 229, 229, 229, 229, 229, 229, 229, + 230, 230, 230, 231, 231, 232, 232, 232, 232, 233 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -1303,23 +1337,23 @@ static const yytype_uint8 yyr2[] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 0, 6, 2, 1, 1, 1, 3, 2, 4, 2, 4, 3, 4, 1, - 1, 1, 1, 2, 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, 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, 2, 3, 2, 2, 2, 2, 2, + 3, 4, 3, 3, 0, 6, 1, 1, 1, 3, + 2, 1, 3, 1, 2, 1, 2, 1, 3, 5, + 3, 4, 1, 1, 2, 1, 3, 3, 5, 3, + 3, 4, 5, 2, 1, 1, 1, 1, 2, 2, + 2, 2, 2, 3, 4, 1, 1, 1, 2, 2, + 2, 2, 2, 3, 4, 7, 3, 1, 2, 2, + 2, 2, 2, 3, 4, 7, 1, 1, 2, 1, + 1, 1, 2, 4, 4, 1, 1, 2, 1, 1, + 1, 2, 4, 2, 4, 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, @@ -1330,21 +1364,23 @@ static const yytype_uint8 yyr2[] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 3, 1, 1, 1, 1, 1, 3, 1, 4, - 7, 7, 4, 2, 2, 2, 2, 2, 3, 3, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, + 3, 1, 4, 7, 7, 4, 4, 2, 2, 2, + 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 5, 4, + 4, 3, 3, 3, 3, 1, 4, 7, 7, 4, + 4, 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, 3, 3, 5, + 4, 4, 3, 3, 3, 3, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 4, 7, 7, 4, + 4, 2, 5, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 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, 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, 1, + 1, 2, 2, 1, 1, 1, 1, 2, 2, 0 }; /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. @@ -1352,1143 +1388,1205 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint16 yydefact[] = { - 0, 557, 0, 0, 0, 557, 5, 505, 501, 504, - 555, 507, 0, 0, 0, 0, 0, 0, 0, 503, - 0, 0, 0, 0, 0, 0, 0, 0, 502, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 451, 506, - 216, 281, 282, 284, 285, 270, 0, 298, 269, 296, - 291, 287, 288, 286, 290, 271, 0, 272, 289, 301, - 283, 557, 4, 218, 219, 220, 0, 260, 0, 215, - 278, 279, 280, 1, 20, 21, 0, 31, 0, 0, - 0, 0, 0, 0, 0, 557, 557, 0, 6, 15, - 7, 18, 0, 13, 45, 14, 16, 17, 33, 557, - 557, 557, 557, 557, 557, 0, 557, 557, 557, 233, - 0, 469, 0, 0, 232, 557, 557, 0, 0, 557, - 557, 475, 473, 474, 472, 216, 281, 282, 284, 285, - 298, 296, 291, 287, 286, 290, 289, 283, 0, 0, - 416, 471, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 579, 0, 0, 0, 579, 5, 520, 516, 519, + 575, 576, 522, 523, 0, 0, 0, 0, 0, 0, + 0, 0, 518, 0, 0, 0, 0, 524, 0, 0, + 0, 0, 517, 0, 0, 0, 0, 0, 0, 0, + 0, 3, 465, 521, 217, 284, 285, 287, 288, 273, + 0, 0, 301, 272, 299, 294, 290, 291, 289, 293, + 274, 0, 275, 292, 304, 286, 579, 4, 219, 220, + 221, 0, 263, 0, 216, 281, 282, 283, 1, 20, + 21, 0, 31, 0, 0, 0, 0, 0, 0, 0, + 579, 579, 0, 6, 15, 7, 18, 0, 13, 45, + 14, 16, 17, 33, 579, 0, 579, 579, 579, 579, + 579, 0, 579, 579, 579, 236, 0, 484, 0, 0, + 235, 579, 579, 0, 0, 579, 579, 490, 488, 489, + 487, 217, 284, 285, 287, 288, 301, 299, 294, 290, + 289, 293, 292, 286, 0, 0, 429, 486, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 556, 557, 300, 297, 287, - 293, 287, 292, 295, 553, 554, 217, 294, 0, 557, - 557, 557, 557, 557, 557, 237, 206, 557, 0, 258, - 239, 221, 22, 557, 0, 0, 557, 0, 25, 24, - 23, 0, 0, 128, 0, 0, 19, 0, 276, 79, - 224, 43, 0, 44, 34, 39, 37, 41, 0, 42, - 36, 0, 38, 40, 11, 0, 0, 48, 226, 227, - 228, 260, 0, 223, 0, 415, 414, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 234, 557, 236, 235, - 0, 0, 0, 0, 0, 0, 0, 0, 500, 484, - 485, 486, 487, 488, 489, 492, 493, 499, 0, 481, - 482, 483, 490, 491, 479, 480, 476, 477, 478, 498, - 497, 0, 0, 238, 299, 557, 211, 207, 208, 210, - 209, 0, 557, 266, 0, 263, 262, 259, 261, 0, - 557, 557, 32, 0, 0, 557, 273, 0, 557, 0, - 0, 56, 277, 65, 67, 50, 35, 0, 557, 225, - 557, 0, 302, 166, 0, 0, 47, 46, 0, 231, - 229, 455, 461, 457, 459, 460, 467, 0, 466, 456, - 463, 0, 462, 465, 468, 0, 464, 458, 452, 417, - 0, 496, 495, 212, 0, 0, 413, 412, 267, 256, - 222, 557, 0, 0, 244, 243, 0, 0, 275, 557, - 0, 30, 140, 141, 0, 0, 0, 0, 130, 131, - 557, 139, 129, 58, 60, 0, 557, 0, 0, 557, - 0, 557, 185, 186, 0, 557, 557, 557, 557, 557, - 0, 184, 557, 69, 0, 557, 0, 8, 0, 557, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, - 557, 142, 0, 0, 470, 0, 494, 557, 213, 264, - 0, 240, 0, 0, 0, 0, 245, 557, 0, 0, - 0, 557, 0, 133, 557, 135, 557, 0, 195, 196, - 0, 557, 557, 557, 557, 557, 557, 557, 194, 0, - 57, 557, 548, 544, 547, 557, 156, 0, 0, 546, - 0, 0, 0, 0, 545, 0, 0, 0, 0, 0, - 0, 157, 160, 557, 183, 508, 549, 155, 0, 0, - 0, 51, 557, 0, 557, 191, 187, 188, 190, 189, - 75, 557, 12, 557, 167, 303, 304, 302, 0, 557, - 557, 0, 172, 174, 171, 169, 0, 148, 144, 95, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 577, 578, 579, 0, 303, 300, 290, 296, 290, + 295, 298, 573, 574, 218, 297, 0, 579, 579, 579, + 579, 579, 579, 240, 207, 579, 0, 261, 242, 222, + 22, 579, 0, 0, 579, 0, 25, 24, 23, 0, + 0, 128, 0, 0, 19, 0, 279, 79, 226, 43, + 0, 0, 44, 34, 39, 37, 41, 0, 42, 36, + 0, 38, 40, 11, 0, 0, 48, 228, 229, 230, + 263, 0, 225, 0, 428, 427, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 237, 579, 239, 238, + 0, 0, 0, 0, 0, 0, 0, 0, 515, 499, + 500, 501, 502, 503, 504, 507, 508, 514, 0, 496, + 497, 498, 505, 506, 494, 495, 491, 492, 493, 513, + 512, 0, 0, 241, 0, 302, 579, 212, 208, 209, + 211, 210, 0, 579, 269, 0, 266, 265, 262, 264, + 0, 579, 579, 32, 0, 0, 579, 276, 0, 579, + 0, 0, 56, 280, 65, 67, 50, 0, 35, 0, + 579, 227, 579, 0, 305, 167, 0, 0, 47, 46, + 0, 233, 231, 469, 483, 475, 471, 473, 474, 481, + 0, 480, 470, 477, 0, 476, 479, 482, 0, 478, + 472, 466, 430, 0, 511, 510, 224, 213, 0, 0, + 426, 425, 270, 259, 223, 579, 0, 0, 247, 246, + 0, 0, 278, 579, 0, 30, 140, 141, 0, 0, + 0, 0, 130, 131, 579, 139, 129, 58, 60, 0, + 579, 0, 0, 579, 0, 0, 579, 186, 187, 0, + 579, 579, 579, 579, 579, 0, 185, 579, 69, 0, + 579, 0, 8, 0, 579, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 49, 579, 142, 0, 0, 485, + 0, 509, 579, 214, 267, 0, 243, 0, 0, 0, + 0, 248, 579, 0, 0, 0, 579, 0, 133, 579, + 135, 579, 0, 196, 197, 0, 579, 579, 579, 579, + 579, 579, 579, 195, 0, 57, 579, 566, 562, 565, + 568, 579, 157, 0, 0, 0, 564, 0, 569, 0, + 0, 0, 563, 0, 0, 0, 0, 0, 0, 158, + 161, 579, 184, 525, 567, 156, 0, 0, 0, 51, + 579, 234, 0, 579, 192, 188, 189, 191, 190, 75, + 579, 12, 579, 168, 306, 307, 305, 0, 579, 579, + 0, 173, 175, 172, 170, 0, 149, 145, 0, 95, 96, 97, 98, 99, 100, 103, 104, 119, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 123, 122, 106, 105, 92, 94, 93, 101, 102, 90, - 91, 87, 88, 89, 86, 0, 0, 85, 143, 145, - 147, 146, 0, 0, 0, 153, 557, 0, 52, 164, - 230, 0, 0, 0, 268, 0, 0, 0, 249, 550, - 0, 248, 0, 247, 0, 0, 0, 557, 246, 0, - 0, 0, 274, 29, 0, 557, 0, 124, 127, 125, - 132, 557, 201, 197, 198, 200, 199, 0, 0, 557, - 137, 162, 59, 557, 0, 61, 557, 0, 557, 0, - 513, 182, 0, 0, 518, 517, 516, 0, 0, 515, - 557, 159, 0, 557, 0, 0, 0, 0, 0, 0, + 91, 87, 88, 89, 86, 0, 0, 85, 143, 146, + 148, 147, 0, 0, 0, 154, 579, 0, 52, 165, + 232, 0, 0, 0, 271, 0, 0, 0, 252, 570, + 0, 251, 0, 250, 0, 0, 0, 579, 249, 0, + 0, 0, 277, 29, 0, 579, 0, 124, 127, 125, + 132, 579, 202, 198, 199, 201, 200, 0, 0, 579, + 137, 163, 59, 579, 0, 61, 579, 0, 0, 579, + 0, 531, 183, 0, 0, 536, 535, 534, 0, 0, + 533, 579, 160, 0, 579, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 557, 0, 54, 77, 192, 557, 0, 0, 306, 307, - 309, 308, 313, 310, 311, 312, 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, 342, 343, 345, 346, 347, 348, - 349, 350, 351, 352, 353, 368, 354, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 388, 365, 366, - 367, 369, 370, 371, 372, 373, 374, 375, 376, 377, - 378, 379, 380, 381, 382, 383, 384, 385, 386, 344, - 387, 557, 405, 406, 407, 398, 410, 394, 395, 393, - 400, 401, 389, 390, 391, 392, 399, 397, 404, 402, - 408, 403, 396, 409, 305, 0, 9, 0, 0, 170, - 173, 149, 121, 120, 152, 151, 165, 557, 0, 0, - 454, 453, 557, 265, 552, 255, 551, 254, 253, 252, - 251, 250, 242, 0, 26, 0, 134, 138, 136, 202, - 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 163, 418, 0, 0, 63, 0, 0, 179, 557, 557, - 0, 557, 0, 0, 0, 543, 81, 66, 80, 158, - 161, 178, 527, 528, 529, 530, 531, 532, 535, 536, - 542, 0, 524, 525, 526, 533, 534, 522, 523, 519, - 520, 521, 541, 540, 0, 0, 0, 71, 68, 0, - 557, 0, 193, 557, 0, 168, 10, 175, 557, 176, - 0, 150, 53, 214, 0, 0, 557, 0, 0, 0, - 427, 425, 426, 424, 0, 0, 423, 0, 0, 0, + 0, 579, 0, 54, 77, 193, 579, 0, 0, 309, + 310, 314, 311, 318, 312, 313, 315, 316, 317, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 380, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 579, 418, 419, 420, 411, 423, 407, 408, + 406, 413, 414, 402, 403, 404, 405, 412, 410, 417, + 415, 421, 416, 409, 422, 308, 0, 9, 0, 0, + 171, 174, 150, 144, 121, 120, 153, 152, 166, 579, + 0, 0, 468, 467, 579, 268, 572, 258, 571, 257, + 256, 255, 254, 253, 245, 0, 26, 0, 134, 138, + 136, 203, 206, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 164, 431, 0, 0, 63, 0, 0, + 180, 0, 579, 579, 0, 579, 0, 0, 0, 561, + 81, 66, 80, 159, 162, 179, 545, 546, 547, 548, + 549, 550, 553, 554, 560, 0, 542, 543, 544, 551, + 552, 540, 541, 537, 538, 539, 559, 558, 0, 0, + 0, 71, 68, 0, 579, 0, 194, 579, 0, 169, + 10, 176, 579, 177, 0, 151, 53, 215, 0, 0, + 579, 0, 0, 0, 0, 441, 439, 440, 438, 0, + 0, 437, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 203, 0, - 62, 165, 557, 180, 0, 0, 512, 0, 509, 82, - 0, 0, 539, 538, 73, 557, 55, 0, 557, 70, - 411, 0, 557, 27, 28, 0, 0, 0, 0, 0, - 450, 436, 437, 438, 439, 440, 441, 442, 443, 449, - 0, 433, 434, 435, 431, 432, 428, 429, 430, 448, - 447, 0, 0, 64, 181, 0, 514, 0, 0, 537, - 557, 0, 557, 76, 177, 154, 557, 0, 422, 0, - 419, 0, 446, 445, 0, 0, 83, 0, 0, 557, - 78, 204, 0, 0, 444, 511, 510, 84, 557, 72, - 0, 0, 74, 421, 420 + 0, 0, 0, 204, 0, 62, 166, 530, 579, 181, + 0, 0, 529, 0, 526, 82, 0, 0, 557, 556, + 73, 579, 55, 0, 579, 70, 424, 0, 579, 27, + 28, 0, 0, 0, 0, 0, 0, 464, 450, 451, + 452, 453, 454, 455, 456, 457, 463, 0, 447, 448, + 449, 445, 446, 442, 443, 444, 462, 461, 0, 0, + 64, 182, 0, 532, 0, 0, 555, 579, 0, 579, + 76, 178, 155, 579, 436, 0, 435, 0, 432, 0, + 460, 459, 0, 0, 83, 0, 0, 579, 78, 205, + 0, 0, 458, 528, 527, 84, 579, 72, 0, 0, + 74, 434, 433 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 4, 5, 406, 407, 89, 320, 90, 91, 193, - 92, 93, 94, 328, 390, 419, 491, 206, 385, 459, - 460, 612, 226, 386, 389, 503, 935, 980, 665, 870, - 837, 558, 598, 95, 204, 377, 378, 379, 380, 420, - 787, 480, 481, 610, 567, 326, 511, 512, 482, 400, - 457, 185, 61, 227, 111, 62, 63, 300, 64, 301, - 363, 364, 436, 65, 66, 297, 293, 294, 67, 68, - 96, 369, 97, 69, 70, 71, 72, 404, 405, 505, - 774, 355, 234, 235, 820, 140, 38, 484, 485, 578, - 421, 39, 236 + -1, 4, 5, 421, 422, 94, 332, 95, 96, 201, + 97, 98, 99, 340, 404, 434, 509, 214, 399, 474, + 475, 632, 235, 400, 403, 522, 971, 1017, 686, 904, + 871, 578, 618, 100, 212, 391, 392, 393, 394, 435, + 819, 498, 499, 630, 587, 338, 530, 531, 500, 415, + 472, 193, 66, 236, 117, 67, 68, 311, 69, 312, + 377, 378, 451, 70, 71, 308, 304, 305, 72, 73, + 101, 383, 102, 74, 75, 76, 77, 419, 420, 524, + 805, 369, 243, 244, 853, 146, 42, 502, 503, 598, + 436, 43, 245 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -508 +#define YYPACT_NINF -594 static const yytype_int16 yypact[] = { - 84, -508, 2205, 3287, 35, 3159, -508, -508, -508, -508, - -508, -508, -77, -64, -48, -46, -40, -30, -86, -508, - -28, 1, 3, 3458, 29, 34, 73, 94, -508, 113, - 115, 2205, 2205, 2205, 2205, 1580, 2205, 2865, -508, 132, - -508, -508, -508, -508, -508, -508, 3515, -508, -508, -508, - -508, 3447, -508, 3712, 3712, -508, 105, -508, 3712, -508, - -508, 230, -508, -508, -508, -508, 43, 91, 33, -508, - -508, -508, -508, -508, -508, -508, 138, -508, 129, 156, - 58, 181, 192, 194, 184, 211, -508, 110, -508, -508, - -508, -508, 2556, -508, -508, -508, -508, -508, -508, 2205, - 2205, 2205, 2205, 2205, 2205, 3287, 2205, 2205, 2205, -508, - 105, 190, 105, 105, -508, 2205, 2205, 3287, 3287, 2205, - 2205, 50, 50, 50, 50, -77, -64, -48, -46, -40, - -30, -28, 1, 2103, 1367, 3158, 3333, 115, 201, -27, - 2865, 50, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, - 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, - 2205, 2205, 2205, 1782, 2205, -508, 230, -508, -508, 3504, - -508, 3712, -508, -508, -508, -508, -508, -508, 215, 230, - 230, 230, 230, 230, 230, 210, -508, -508, 1771, 228, - -508, 14, -508, 3744, 335, 105, -508, 236, -508, -508, - -508, 2205, 2624, -508, 232, 2692, -508, 105, -508, 221, - 224, -508, 3515, -508, 346, -508, -508, -508, 3344, -508, - -508, 105, -508, -508, -508, 105, 336, 243, -508, -508, - -508, 91, 33, -508, 227, 248, -508, 233, 234, 235, - 237, 244, 240, 247, 250, 252, -508, 2205, -508, -508, - 254, 256, 258, 269, 261, 265, 2205, 2205, -508, 895, - 1597, 977, 977, 1572, 1572, 312, 312, -508, 2715, 2268, - 2913, 3026, 1572, 1572, 352, 352, 50, 50, 50, -508, - -508, -26, 2298, 210, -508, 230, 210, 210, 210, 210, - 210, 87, 2205, 105, 271, -508, -508, -508, -508, 1771, - -508, 291, -508, 267, 297, 3553, -508, 2417, 3228, 3515, - 336, -508, -508, -508, 24, -508, 132, 3515, 238, -508, - -508, 283, -508, -508, 105, 1873, -508, -508, 199, 53, - 14, -508, -508, -508, -508, -508, -508, 284, -508, -508, - -508, 285, -508, -508, -508, 290, -508, -508, 50, 2865, - 2205, -508, -508, 210, 292, 280, 2865, -508, 11, -508, - 309, 3581, 36, 313, 316, -508, 414, 105, -508, -508, - 346, -508, -508, -508, 105, 736, 105, 323, 333, -508, - 520, -508, -508, -508, -508, 199, 1378, 328, 199, 1378, - 199, 238, -508, -508, 340, 238, 238, 238, 238, 238, - 145, -508, 3614, -508, 339, -508, 200, -508, 331, 1884, - 2783, 348, 199, 199, 2472, 199, 199, 199, 199, -508, - 185, -508, 1771, 2205, -508, 2205, 2865, 1378, -508, -508, - 2205, -508, 537, 697, 802, 124, -508, -508, 36, 12, - 361, 3642, 16, 359, 520, 368, 401, 3228, -508, -508, - 373, 520, 520, 520, 520, 520, 520, -54, -508, 199, - -508, 185, -508, -508, -508, 520, -508, 3401, 384, -508, - 3458, 1681, 377, 389, -508, 2205, 2205, 2205, 1580, 2205, - 385, 25, -508, 520, 2898, -508, 132, -508, 199, 207, - 386, -508, 185, 187, 238, 388, 388, 388, 388, 388, - -508, 2205, -508, 1378, -508, 1249, -508, -508, 105, 2205, - 1884, 390, 408, 2865, -508, -508, 199, 195, 195, -508, - -508, -508, -508, -508, -508, -508, -508, -508, -508, -508, - -508, -508, -508, -508, -508, -508, -508, -508, -508, -508, - -508, -508, -508, -508, -508, -508, -508, -508, -508, -508, - -508, -508, -508, -508, -508, 393, 387, -508, -508, 195, - 195, 195, 370, 154, 1873, -508, 2205, 416, -508, -508, - 309, 21, 22, 398, 2830, 105, 277, 105, -508, -508, - 277, -508, 277, -508, 277, 277, 277, 3675, -508, 519, - 421, 105, -508, -508, 3287, -54, 3287, -508, -508, -508, - -508, 520, 413, 413, 413, 413, 413, 196, 2216, 2205, - -508, -508, -508, 185, 426, -508, -23, 3515, 520, 3287, - 415, -508, 3287, 3287, 50, 50, 50, 419, 142, 50, - 493, -508, 1479, -23, 2205, 2205, 2205, 2205, 2205, 2205, - 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, - 2205, 2205, 2205, 2205, 2205, 2012, 2205, 411, 544, 428, - 493, 443, -508, -508, 388, 1378, 424, 430, -508, -508, - -508, -508, -508, -508, -508, -508, -508, -508, -508, -508, - -508, -508, -508, -508, -508, -508, -508, -508, -508, -508, - -508, -508, -508, -508, -508, -508, -508, -508, -508, -508, - -508, -508, -508, -508, -508, -508, -508, -508, -508, -508, - -508, -508, -508, -508, -508, -508, -508, -508, -508, -508, - -508, -508, -508, -508, -508, -508, -508, -508, -508, -508, - -508, -508, -508, -508, -508, -508, -508, -508, -508, -508, - -508, -508, -508, -508, -508, -508, -508, -508, -508, -508, - -508, -508, -508, -508, -508, -508, -508, -508, -508, -508, - -508, -508, -508, -508, -508, -508, -508, -508, -508, -508, - -508, -508, -508, -508, -508, 427, -508, 431, 432, -508, - 2023, 195, -508, -508, -508, -508, 2783, 1378, 433, 199, - -508, -508, 493, -508, -508, -508, -508, -508, -508, -508, - -508, -508, -508, 434, -508, 435, -508, -508, -508, 413, - 441, 453, 448, 460, 2216, 2216, 2216, 2216, 1580, 2216, - 930, -508, 452, 470, -508, 199, 2205, -508, 520, -23, - 467, 2205, 461, 472, 2205, -508, -508, 32, -508, -508, - -508, -508, 895, 1597, 977, 977, 1572, 1572, 312, 312, - -508, 2847, 2268, 2913, 3026, 1572, 1572, 352, 352, 50, - 50, 50, -508, -508, 148, 2334, 465, -508, 32, 199, - 1378, 464, -508, 493, 1120, -508, -508, -508, 1884, 2865, - 478, -508, -508, 32, 483, 494, 1378, 3287, 3287, 3287, - 141, 141, 141, 141, 479, 150, 141, 2216, 2216, 2216, - 2216, 2216, 2216, 2216, 2216, 2216, 2216, 2216, 2216, 2216, - 2216, 2216, 2216, 2216, 2216, 2216, 2114, 2205, -508, 199, - -508, 2865, -23, -508, 484, 481, -508, 485, 50, -508, - 487, 2205, -508, -508, -508, 1378, -508, 486, 493, 32, - -508, 489, 493, -508, -508, 488, 501, 492, 505, 2216, - -508, 1391, 2978, 3167, 3167, 1921, 1921, 476, 476, -508, - 847, 3041, 3056, 3091, 363, 363, 141, 141, 141, -508, - -508, 152, 2353, -508, -508, 2205, -508, 2205, 31, 2865, - 1378, 497, 493, 32, -508, 32, 493, 502, -508, 504, - 141, 2216, -508, -508, 160, 170, -508, 503, 511, 493, - 32, 32, 2205, 2205, 930, -508, -508, -508, 493, 32, - 174, 178, 32, -508, -508 + 272, -594, 2401, 3534, 18, 1969, -594, -594, -594, -594, + -594, -594, -594, -594, -91, -79, -33, -24, -11, -2, + 3, 47, -594, 62, 70, 75, 3730, -594, 78, 82, + 119, 131, -594, 138, 158, 2401, 2401, 2401, 2401, 1581, + 2401, 3091, -594, 46, -594, -594, -594, -594, -594, -594, + 3693, 161, -594, -594, -594, -594, 3981, -594, 3584, 3584, + -594, 76, -594, 3584, -594, -594, 427, -594, -594, -594, + -594, 192, 14, 99, -594, -594, -594, -594, -594, -594, + -594, 200, -594, 177, 189, 112, 208, 210, 213, 206, + 236, -594, 63, -594, -594, -594, -594, 2629, -594, -594, + -594, -594, -594, -594, 2401, 3534, 2401, 2401, 2401, 2401, + 2401, 3534, 2401, 2401, 2401, -594, 76, 229, 76, 76, + -594, 2401, 2401, 3534, 3534, 2401, 2401, 114, 114, 114, + 114, -91, -33, -24, -11, -2, 3, 62, 70, 3950, + 1790, 3253, 3439, 158, -17, -87, 3091, 114, 2401, 2401, + 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, + 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 1801, + 2401, -594, -594, 427, 2401, -594, -594, 3523, -594, 3584, + -594, -594, -594, -594, -594, -594, 237, 427, 427, 427, + 427, 427, 427, 235, -594, -594, 897, 255, -594, -41, + -594, 2069, 368, 76, -594, 277, -594, -594, -594, 2401, + 2699, -594, 254, 2763, -594, 76, -594, 261, 266, -594, + 3693, 268, -594, 383, -594, -594, -594, 3595, -594, -594, + 76, -594, -594, -594, 76, 365, 279, -594, -594, -594, + 14, 99, -594, 278, 304, -594, 298, 299, 305, 309, + 310, 313, 325, 320, 322, 324, -594, 2401, -594, -594, + 326, 327, 336, 347, 341, 342, 2401, 2401, -594, 3141, + 2471, 2445, 2445, 668, 668, 566, 566, -594, 2917, 3277, + 3292, 3322, 668, 668, 759, 759, 114, 114, 114, -594, + -594, -71, 1379, 235, 2882, -594, 427, 235, 235, 235, + 235, 235, 147, 2401, 76, 338, -594, -594, -594, -594, + 897, -594, 369, -594, 378, 380, 3758, -594, 2861, 3449, + 3693, 365, -594, -594, -594, 1, -594, 2401, -594, 3693, + 676, -594, -594, 364, -594, -594, 76, 1901, -594, -594, + 421, -36, -41, -594, -594, -594, -594, -594, -594, -594, + 366, -594, -594, -594, 367, -594, -594, -594, 370, -594, + -594, 114, 3091, 2401, -594, -594, -594, 235, 371, 375, + 3091, -594, 11, -594, 385, 3795, -26, 390, 393, -594, + 506, 76, -594, -594, 263, -594, -594, -594, 76, 3486, + 76, 391, 399, -594, 265, -594, -594, -594, -594, 421, + 1361, 392, 421, 1361, 421, 2899, 676, -594, -594, 394, + 676, 676, 676, 676, 676, 151, -594, 3838, -594, 387, + -594, 183, -594, 398, 2001, 2935, 397, 421, 421, 2526, + 421, 421, 421, 421, -594, 187, -594, 897, 2401, -594, + 2401, 3091, 1361, -594, -594, 2401, -594, 233, 503, 525, + 339, -594, -594, -26, -69, 416, 3875, 45, 419, 265, + 420, 442, 3449, -594, -594, 413, 265, 265, 265, 265, + 265, 265, -78, -594, 421, -594, 187, -594, -594, -594, + -594, 265, -594, 409, 3632, 424, -594, 3730, -594, 1691, + 410, 428, -594, 2401, 2401, 2401, 1581, 2401, 418, 66, + -594, 265, 3108, -594, 46, -594, 421, 154, 422, -594, + 187, -594, 181, 676, 411, 411, 411, 411, 411, -594, + 2401, -594, 1361, -594, 1223, -594, -594, 76, 2401, 2001, + 415, 445, 3091, -594, -594, 421, 256, 256, 550, -594, + -594, -594, -594, -594, -594, -594, -594, -594, -594, -594, + -594, -594, -594, -594, -594, -594, -594, -594, -594, -594, + -594, -594, -594, -594, -594, -594, -594, -594, -594, -594, + -594, -594, -594, -594, -594, 429, 425, -594, -594, 256, + 256, 256, 162, 362, 1901, -594, 2401, 446, -594, -594, + 385, -59, -19, 430, 3057, 76, 315, 76, -594, -594, + 315, -594, 315, -594, 315, 315, 315, 3918, -594, 559, + 451, 76, -594, -594, 3534, -78, 3534, -594, -594, -594, + -594, 265, 435, 435, 435, 435, 435, 281, 925, 2401, + -594, -594, -594, 187, 454, -594, 98, 3534, 3693, 265, + 3534, 438, -594, 3534, 3534, 114, 114, 114, 437, 7, + 114, 519, -594, 1471, 98, 2401, 2401, 2401, 2401, 2401, + 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, 2401, + 2401, 2401, 2401, 2401, 2401, 2401, 2101, 2401, 199, 574, + 444, 519, 463, -594, -594, 411, 1361, 443, 452, -594, + -594, -594, -594, -594, -594, -594, -594, -594, -594, -594, + -594, -594, -594, -594, -594, -594, -594, -594, -594, -594, + -594, -594, -594, -594, -594, -594, -594, -594, -594, -594, + -594, -594, -594, -594, -594, -594, -594, -594, -594, -594, + -594, -594, -594, -594, -594, -594, -594, -594, -594, -594, + -594, -594, -594, -594, -594, -594, -594, -594, -594, -594, + -594, -594, -594, -594, -594, -594, -594, -594, -594, -594, + -594, -594, -594, -594, -594, -594, -594, -594, -594, -594, + -594, -594, -594, -594, -594, -594, -594, -594, -594, -594, + -594, -594, -594, -594, -594, -594, -594, -594, -594, -594, + -594, -594, -594, -594, -594, -594, -594, -594, -594, -594, + -594, -594, -594, -594, -594, -594, 450, -594, 456, 453, + -594, 2201, 256, -594, -594, -594, -594, -594, 2935, 1361, + 459, 421, -594, -594, 519, -594, -594, -594, -594, -594, + -594, -594, -594, -594, -594, 467, -594, 470, -594, -594, + -594, 435, 447, 461, 484, 478, 485, 925, 925, 925, + 925, 1581, 925, 3125, -594, 475, 498, -594, 421, 2401, + -594, 480, 265, 98, 492, 2401, 488, 494, 2401, -594, + -594, 167, -594, -594, -594, -594, 3141, 2471, 2445, 2445, + 668, 668, 566, 566, -594, 3074, 3277, 3292, 3322, 668, + 668, 759, 759, 114, 114, 114, -594, -594, 83, 1599, + 487, -594, 167, 421, 1361, 489, -594, 519, 1085, -594, + -594, -594, 2001, 3091, 496, -594, -594, 167, 518, 521, + 1361, 3534, 3534, 3534, 3534, 144, 144, 144, 144, 504, + 88, 144, 925, 925, 925, 925, 925, 925, 925, 925, + 925, 925, 925, 925, 925, 925, 925, 925, 925, 925, + 925, 2301, 2401, -594, 421, -594, 3091, -594, 98, -594, + 509, 517, -594, 511, 114, -594, 541, 2401, -594, -594, + -594, 1361, -594, 556, 519, 167, -594, 540, 519, -594, + -594, 567, 571, 576, 572, 584, 925, -594, 3262, 3307, + 2485, 2485, 715, 715, 621, 621, -594, 752, 3337, 1814, + 3352, 824, 824, 144, 144, 144, -594, -594, 93, 2502, + -594, -594, 2401, -594, 2401, 6, 3091, 1361, 575, 519, + 167, -594, 167, 519, -594, 578, -594, 579, 144, 925, + -594, -594, 105, 118, -594, 581, 583, 519, 167, 167, + 2401, 2401, 3125, -594, -594, -594, 519, 167, 127, 133, + 167, -594, -594 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -508, -508, -163, -508, 134, -508, -508, 450, -508, -508, - -69, -55, -508, -508, -508, -145, -224, -508, -508, -508, - -178, -271, 445, -508, -508, -508, -508, -508, -508, -508, - -466, -508, -508, 209, -508, -508, -508, 213, 281, -362, - -508, -375, -508, 62, -460, -249, -507, -508, -444, -327, - -408, -89, -44, 457, 188, 30, -63, -508, -33, -508, - -508, -508, 223, -18, -508, -289, -508, -508, -5, -4, - -508, -508, -508, 40, 643, -508, -508, 158, -508, -85, - -508, -463, -95, -20, 173, 74, -141, -508, -508, -322, - 456, -133, -1 + -594, -594, -190, -594, 188, -594, -594, 522, -594, -594, + -84, -82, -594, -594, -594, -99, -179, -594, -594, -594, + -133, -228, 514, -594, -594, -594, -594, -594, -594, -594, + -593, -594, -594, 269, -594, -594, -594, 267, 344, -327, + -594, -394, -594, 128, -455, -264, -528, -594, -477, -173, + -374, -75, -35, 532, 260, 91, -74, -594, -30, -594, + -594, -594, 295, 22, -594, -300, -594, -594, -15, 43, + -594, -594, -594, -6, 542, -594, -594, 228, -594, -23, + -594, -460, -80, -34, -108, 0, -589, -594, -594, -378, + 476, -381, -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 -259 +#define YYTABLE_NINF -262 static const yytype_int16 yytable[] = { - 6, 614, 166, 778, 98, 237, 238, 239, 240, 241, - 360, 243, 244, 245, 490, 139, 202, 205, 112, 113, - 250, 251, 165, 461, 254, 255, 489, 621, 492, 228, - 203, 105, 661, 305, 387, 73, 595, 631, 666, 174, - 175, 174, 175, 602, 603, 604, 605, 606, 607, 99, - 517, 518, 573, 559, 560, 561, 562, 616, 608, 229, - 186, 384, 100, 114, 493, 138, 174, 175, 495, 496, - 497, 498, 499, 609, 230, 633, 37, 283, 101, 150, - 102, 316, 257, 257, 98, 98, 103, 231, 232, 826, - 286, 287, 288, 289, 290, 291, 104, 613, 106, 174, - 175, 258, 351, 788, 609, 121, 122, 123, 124, 929, - 141, 581, 583, 174, 175, 432, 433, 434, 174, 175, - 429, 589, -241, 430, 930, -241, 657, 107, 667, 108, - 257, 257, 233, 570, 632, 242, 435, 361, 165, 228, - 590, 190, 228, 281, 593, 388, 822, 252, 253, 790, - 791, 187, 341, 823, 781, 115, 827, 402, 785, 996, - 116, -258, 174, 175, 422, 186, 196, 664, 315, 229, - 905, 568, 229, 841, 318, 162, 163, 164, 186, 186, - 186, 186, 186, 186, 230, 207, 295, 230, 840, 1, - 2, 3, 98, 809, 868, 6, 353, 231, 232, 117, - 231, 232, 188, 584, 585, 586, 441, 174, 175, 411, - 829, 118, 615, 412, 292, 354, 259, 260, 261, 262, - 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 442, 282, 119, - 178, 120, 233, 662, 179, 233, 392, 393, 394, 192, - 413, 257, 395, 486, 795, 194, 486, 257, 797, 257, - 798, 257, 799, 800, 801, 383, 915, 916, 917, 257, - 835, 500, 501, 391, 587, 307, 932, 414, 950, 257, - 992, 180, 195, 257, 186, 174, 175, 257, 1005, 396, - 871, 357, 198, 322, 486, 323, 563, 564, 1006, 6, - 365, 415, 1013, 199, 98, 200, 1014, 382, 507, 508, - 201, 565, 566, 663, 501, 416, 247, 401, 658, 6, - 417, 565, 566, 609, 810, 418, 883, 45, -126, 256, - 348, 349, 181, 565, 566, 659, 285, 292, 486, 299, - 397, 150, 483, 303, 306, 483, 182, 313, 381, 308, - 314, 183, 10, 327, 398, 331, 184, 257, 337, 399, - 98, 332, 333, 334, 824, 335, 356, 55, 6, 923, - 486, 941, 336, 575, 57, 338, 366, 202, 339, 458, - 340, 150, 342, 483, 343, 487, 344, 345, 487, 346, - 401, 597, 905, 347, 401, 401, 401, 401, 401, 410, - 359, 98, 362, 571, 506, 572, 367, 939, 514, 403, - 423, 428, 880, 424, 777, 381, 425, -257, 427, 569, - 922, 437, 439, 618, 426, 438, 487, 483, 577, 577, - 577, 157, 158, 159, 160, 161, 6, 162, 163, 164, - 98, 446, 447, 458, 322, 98, 323, 324, 325, 488, - 458, 458, 458, 458, 458, 458, 611, 509, 628, 483, - 569, 494, 974, 461, 458, 112, 113, 821, 504, 516, - 591, 594, 983, 159, 160, 161, 985, 162, 163, 164, - 596, 658, 458, 513, 912, 913, 914, 381, 915, 916, - 917, 569, 85, 401, 601, 937, 565, 566, 784, 486, - 357, 619, 487, 622, 574, 905, 623, 492, 627, 514, - 114, 945, 176, 630, 660, 501, 1000, 780, 783, 779, - 1001, 782, 658, 189, 191, 789, 792, 803, 448, 449, - 450, 804, 486, 1009, 451, 825, 197, 565, 566, 866, - 609, 831, 1012, 208, 836, 174, 175, 834, 785, 624, - 625, 626, 869, 629, 867, 872, 875, 613, 873, 876, - 981, 877, 884, 885, 881, 357, 246, 886, 248, 249, - 887, 452, 577, 828, 888, 356, 577, 889, 577, 919, - 577, 577, 577, 918, 513, 924, 98, 45, 483, 926, - 927, 934, 938, 943, 611, 910, 911, 912, 913, 914, - 458, 915, 916, 917, 944, 998, 942, 949, 357, 976, - 975, 977, 569, 978, 982, 569, 986, 458, 984, 987, - 988, 483, 453, 989, 806, 999, 808, 55, 1002, 838, - 1003, 1007, 569, 575, 57, 864, 454, 576, 786, 1008, - 356, 455, 776, 302, 882, 936, 456, 920, 973, 830, - 310, 304, 832, 833, 486, 599, 444, 807, 620, 838, - 600, 588, 311, 312, 487, 775, 874, 0, 0, 0, - 0, 0, 0, 821, 821, 821, 821, 319, 821, 0, - 0, 321, 0, 356, 0, 0, 0, 329, 330, 0, - 0, 0, 0, 0, 170, 0, 172, 173, 0, 0, - 0, 177, 0, 0, 0, 174, 175, 0, 842, 843, - 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, - 854, 855, 856, 857, 858, 859, 860, 861, 862, 0, - 865, 0, 0, 0, 0, 0, 925, 486, 0, 0, - 0, 0, 0, 483, 372, 373, 0, 45, 0, 358, - 506, 0, 0, 486, 0, 0, 821, 821, 821, 821, - 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, - 821, 821, 821, 821, 821, 0, 170, 172, 173, 177, - 408, 41, 0, 42, 43, 44, 487, 55, 0, 47, - 0, 838, 0, 575, 57, 0, 0, 580, 895, 49, - 0, 0, 486, 0, 0, 50, 51, 52, 821, 0, - 174, 175, 170, 0, 170, 0, 0, 0, 0, 0, - 53, 54, 0, 440, 0, 0, 483, 458, 569, 0, - 443, 298, 445, 0, 58, 0, 0, 59, 0, 60, - 0, 0, 483, 0, 0, 0, 0, 486, 894, 0, - 821, 0, 45, 0, 879, 0, 0, 0, 0, 0, - 897, 898, 899, 900, 901, 902, 903, 904, 0, 487, - 0, 0, 838, 0, 0, 0, 905, 514, 0, 0, - 0, 0, 0, 0, 0, 487, 0, 0, 579, 579, - 579, 483, 55, 0, 0, 0, 971, 0, 575, 57, - 921, 0, 582, 0, 0, 0, 0, 0, 928, 143, - 144, 145, 146, 147, 148, 149, 0, 946, 947, 948, - 0, 569, 0, 0, 150, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 487, 0, 483, 838, 0, 0, - 0, 838, 298, 897, 898, 899, 900, 901, 902, 903, - 904, 0, 513, 0, 0, 994, 0, 995, 991, 905, - 906, 907, 908, 909, 408, 0, 910, 911, 912, 913, - 914, 0, 915, 916, 917, 0, 0, 0, 0, 487, - 0, 838, 1010, 1011, 0, 838, 0, 890, 891, 892, - 893, 972, 896, 0, 146, 147, 148, 149, 838, 0, - 0, 0, 0, 0, 0, 979, 150, 838, 0, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 408, - 162, 163, 164, 0, 0, 0, 0, 0, 0, 0, - 0, 794, 579, 796, 0, 0, 579, 0, 579, 0, - 579, 579, 579, 906, 907, 908, 909, 805, 0, 910, - 911, 912, 913, 914, 0, 915, 916, 917, 0, 0, - 0, 0, 0, 0, 0, 298, 0, 0, 0, 0, - 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, - 961, 962, 963, 964, 965, 966, 967, 968, 969, 0, - 0, 0, 0, 0, 155, 156, 157, 158, 159, 160, - 161, 0, 162, 163, 164, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 990, 668, 669, 670, 671, 672, 673, 674, - 675, 0, 676, 677, 678, 679, 680, 681, 682, 683, - 684, 685, 686, 0, 0, 0, 0, 0, 0, 687, - 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, - 698, 699, 700, 0, 1004, 701, 702, 703, 704, 705, - 706, 707, 708, 709, 710, 711, 0, 712, 0, 713, + 6, 809, 41, 457, 103, 145, 210, 213, 211, 508, + 374, 118, 642, 401, 316, 173, 182, 183, 78, 504, + 120, 634, 504, 237, 182, 183, 247, 248, 249, 250, + 251, 267, 253, 254, 255, 127, 128, 129, 130, 854, + 147, 260, 261, 628, 104, 264, 265, 267, 593, 609, + 268, 171, 171, 172, 172, 682, 105, 398, 629, 267, + 687, 504, 447, 448, 449, 194, 364, 238, 610, 119, + 601, 603, 476, 182, 183, 507, -244, 510, 822, -244, + 652, -261, 240, 450, 437, 615, 182, 183, 902, 103, + 103, 242, 622, 623, 624, 625, 626, 627, 293, 267, + 536, 537, 106, 579, 580, 581, 582, 636, 504, 182, + 183, 107, 297, 298, 299, 300, 301, 302, 823, 239, + 266, 375, 182, 183, 108, 267, 820, 654, 688, 444, + 144, 402, 445, 109, 196, 291, 237, 590, 110, 237, + 241, 504, 417, 1034, 869, 156, 215, 633, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 855, + 292, 588, 194, 111, 294, 940, 874, 354, 856, 678, + 238, 860, 613, 238, 653, 326, 194, 194, 194, 194, + 194, 194, 330, 456, 306, 240, 246, 112, 240, 875, + 103, 267, 252, 6, 242, 113, 267, 242, 812, 318, + 114, 267, 635, 121, 262, 263, 198, 122, 827, 859, + 968, 367, 829, 267, 830, 987, 831, 832, 833, 204, + 1030, 917, 239, 512, 629, 239, 267, 514, 515, 516, + 517, 518, 1043, 182, 183, 267, 683, 841, 168, 169, + 170, 267, 965, 241, 123, 1044, 241, 124, 854, 854, + 854, 854, 607, 854, 1051, 863, 361, 362, 966, 10, + 1052, 11, 504, 125, 679, 463, 464, 465, 950, 951, + 952, 466, 679, 303, 368, 397, 519, 520, 49, 585, + 586, 680, 905, 126, 406, 194, 174, 585, 586, 816, + 526, 527, 371, 370, 334, 504, 335, 583, 584, 195, + 6, 379, 202, 395, 975, 103, 684, 520, 396, 679, + 200, 467, 585, 586, 203, 182, 183, 405, 206, 416, + 207, 6, 60, 208, 585, 586, 900, 425, 595, 62, + 685, 209, 596, 854, 854, 854, 854, 854, 854, 854, + 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, + 854, 854, -126, 441, 257, 501, 817, 296, 501, 857, + 49, 303, 182, 183, 103, 310, 468, 210, 314, 617, + 319, 1020, 6, 395, 977, 1022, 1, 2, 3, 328, + 469, 585, 586, 473, 317, 470, 324, 854, 339, 505, + 471, 325, 505, 327, 591, 416, 592, 501, 959, 416, + 416, 416, 416, 416, 60, 343, 103, 629, 842, 525, + 595, 62, 267, 533, 532, 914, 1038, 604, 605, 606, + 1039, 182, 183, 426, 589, 344, 345, 427, 504, 186, + 854, 505, 346, 187, 1047, 594, 347, 348, 808, 639, + 349, 6, 350, 1050, 501, 103, 395, 351, 473, 352, + 103, 353, 649, 355, 356, 473, 473, 473, 473, 473, + 473, 631, 118, 357, 358, 589, 373, 428, 359, 360, + 473, 120, 334, 188, 335, 336, 337, 501, 958, 376, + 597, 597, 597, 645, 646, 647, 380, 650, 381, 418, + 473, 438, -260, 1011, 439, 440, 442, 452, 429, 589, + 973, 453, 416, 182, 183, 443, 454, 462, 461, 371, + 370, 505, 506, 504, 513, 523, 981, 535, 533, 532, + 119, 476, 430, 528, 611, 182, 183, 184, 189, 504, + 614, 616, 90, 621, 637, 643, 431, 520, 197, 199, + 640, 432, 190, 810, 644, 651, 433, 191, 49, 681, + 813, 205, 192, 811, 821, 815, 814, 824, 216, 835, + 836, 629, 858, 865, 868, 870, 510, 1018, 817, 901, + 49, 903, 920, 906, 818, 371, 370, 648, 909, 907, + 504, 911, 256, 910, 258, 259, 921, 156, 178, 915, + 180, 181, 60, 862, 918, 185, 103, 919, 595, 62, + 922, 924, 600, 923, 631, 953, 954, 957, 501, 960, + 473, 963, 970, 1036, 60, 962, 974, 633, 371, 370, + 595, 62, 589, 978, 602, 589, 504, 979, 473, 597, + 980, 986, 898, 597, 1012, 597, 1014, 597, 597, 597, + 872, 501, 940, 589, 1013, 876, 877, 878, 879, 880, + 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, + 891, 892, 893, 894, 895, 896, 1015, 899, 1021, 315, + 872, 178, 180, 181, 185, 505, 407, 408, 409, 154, + 155, 323, 410, 1019, 163, 164, 165, 166, 167, 156, + 168, 169, 170, 1025, 1023, 838, 331, 840, 1024, 1026, + 333, 1027, 1037, 1040, 1041, 807, 341, 342, 1045, 178, + 1046, 178, 916, 313, 972, 955, 1010, 321, 861, 620, + 619, 864, 411, 459, 866, 867, 938, 939, 309, 925, + 926, 927, 928, 839, 931, 322, 940, 641, 608, 945, + 946, 947, 948, 949, 806, 950, 951, 952, 0, 908, + 0, 0, 0, 0, 0, 0, 0, 932, 933, 934, + 935, 936, 937, 938, 939, 0, 0, 0, 0, 0, + 372, 525, 0, 940, 501, 961, 0, 412, 0, 0, + 156, 0, 0, 0, 0, 0, 163, 164, 165, 166, + 167, 413, 168, 169, 170, 0, 414, 0, 0, 0, + 0, 913, 423, 0, 0, 0, 0, 930, 505, 0, + 0, 0, 0, 872, 988, 989, 990, 991, 992, 993, + 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, + 1004, 1005, 1006, 945, 946, 947, 948, 949, 0, 950, + 951, 952, 309, 0, 0, 940, 0, 455, 0, 956, + 0, 473, 589, 0, 458, 0, 460, 0, 964, 501, + 0, 0, 1029, 0, 941, 942, 943, 944, 1028, 0, + 945, 946, 947, 948, 949, 501, 950, 951, 952, 165, + 166, 167, 0, 168, 169, 170, 0, 0, 0, 0, + 0, 0, 0, 505, 0, 0, 872, 0, 307, 0, + 0, 533, 532, 0, 0, 0, 0, 1008, 0, 505, + 0, 1042, 0, 599, 599, 599, 0, 0, 7, 8, + 9, 10, 0, 11, 12, 13, 501, 0, 0, 0, + 0, 0, 929, 0, 0, 0, 0, 45, 0, 46, + 47, 48, 1009, 0, 947, 948, 949, 589, 950, 951, + 952, 0, 0, 0, 0, 0, 0, 1016, 0, 0, + 505, 843, 0, 872, 55, 179, 57, 872, 1032, 309, + 1033, 0, 501, 0, 0, 0, 0, 844, 0, 0, + 58, 59, 0, 0, 0, 22, 0, 0, 0, 0, + 0, 0, 0, 423, 63, 0, 1048, 1049, 0, 65, + 0, 27, 982, 983, 984, 985, 505, 0, 872, 0, + 845, 0, 872, 846, 0, 0, 0, 32, 0, 0, + 0, 0, 0, 0, 0, 0, 872, 0, 0, 0, + 0, 0, 0, 0, 0, 872, 0, 0, 0, 0, + 847, 0, 0, 0, 848, 849, 0, 0, 850, 423, + 851, 0, 0, 0, 852, 0, 0, 0, 0, 0, + 0, 826, 599, 828, 0, 0, 599, 0, 599, 0, + 599, 599, 599, 0, 0, 0, 0, 837, 689, 690, + 691, 692, 693, 694, 695, 696, 697, 698, 0, 699, + 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, + 0, 0, 0, 0, 0, 0, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, - 724, 0, 0, 0, 725, 0, 726, 0, 727, 728, - 729, 730, 731, 732, 733, 734, 735, 736, 0, 737, - 738, 0, 739, 740, 741, 742, 743, 744, 745, 0, - 746, 747, 748, 749, 750, 0, 0, 0, 751, 752, - 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, - 763, 764, 765, 766, 767, 768, 769, 770, 771, 940, - 772, 773, 668, 669, 670, 671, 672, 673, 674, 675, - 0, 676, 677, 678, 679, 680, 681, 682, 683, 684, - 685, 686, 0, 0, 0, 0, 0, 0, 687, 688, - 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, - 699, 700, 0, 0, 701, 702, 703, 704, 705, 706, - 707, 708, 709, 710, 711, 0, 712, 0, 713, 714, - 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, - 0, 0, 0, 725, 0, 726, 0, 727, 728, 729, - 730, 731, 732, 733, 734, 735, 736, 0, 737, 738, - 0, 739, 740, 741, 742, 743, 744, 745, 0, 746, - 747, 748, 749, 750, 0, 0, 0, 751, 752, 753, - 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, - 764, 765, 766, 767, 768, 769, 770, 771, 0, 772, - 773, 462, 463, 464, 10, 0, 465, 40, 0, 0, - 466, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 898, 899, 900, 901, 902, - 903, 904, 41, 0, 42, 43, 44, 0, 0, 0, - 905, 0, 0, 41, 0, 42, 43, 44, 45, 467, - 0, 47, 468, 0, 997, 48, 50, 171, 52, 0, - 469, 49, 0, 0, 0, 0, 0, 50, 51, 52, - 0, 53, 54, 0, 470, 0, 0, 0, 0, 0, - 471, 0, 53, 54, 472, 58, 0, 473, 55, 0, - 60, 474, 0, 0, 56, 57, 58, 0, 0, 59, - 0, 60, 462, 463, 464, 10, 0, 465, 40, 0, - 0, 839, 0, 115, 475, 0, 0, 0, 476, 0, - 0, 0, 477, 0, 478, 907, 908, 909, 479, 0, - 910, 911, 912, 913, 914, 0, 915, 916, 917, 0, - 0, 0, 0, 0, 41, 0, 42, 43, 44, 45, - 467, 0, 47, 468, 0, 0, 48, 0, 0, 0, - 0, 469, 49, 0, 0, 0, 0, 0, 50, 51, - 52, 0, 0, 0, 0, 470, 0, 0, 0, 0, - 0, 471, 0, 53, 54, 472, 0, 0, 473, 55, - 0, 0, 474, 0, 0, 56, 57, 58, 0, 0, - 59, 0, 60, 7, 8, 9, 10, 0, 11, 125, - 0, 148, 149, 0, 0, 475, 0, 0, 0, 476, - 0, 150, 0, 477, 0, 478, 0, 0, 0, 479, - 0, 0, 144, 145, 146, 147, 148, 149, 0, 0, - 0, 0, 0, 0, 0, 126, 150, 127, 128, 129, - 45, 46, 0, 130, 18, 0, 0, 48, 0, 0, - 0, 0, 19, 131, 0, 0, 0, 0, 0, 132, - 133, 52, 0, 0, 0, 0, 23, 0, 0, 0, - 0, 0, 0, 0, 134, 135, 26, 0, 0, 27, - 55, 0, 0, 28, 0, 0, 56, 57, 136, 0, - 0, 59, 0, 137, 462, 463, 464, 10, 0, 465, - 40, 157, 158, 159, 160, 161, 31, 162, 163, 164, - 32, 33, 0, 0, 34, 0, 35, 0, 0, 0, - 36, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 0, 162, 163, 164, 0, 41, 0, 42, 43, - 44, 45, 467, 0, 47, 468, 0, 0, 48, 0, - 0, 0, 0, 469, 49, 0, 0, 0, 0, 0, - 50, 51, 52, 0, 0, 0, 0, 470, 0, 0, - 0, 0, 0, 471, 0, 53, 54, 472, 0, 0, - 473, 55, 0, 0, 474, 0, 0, 56, 57, 58, - 296, 0, 59, 0, 60, 7, 8, 9, 10, 0, - 11, 12, 0, 0, 0, 0, 0, 475, 0, 0, - 0, 476, 0, 0, 0, 477, 0, 478, 0, 0, - 0, 479, 0, 0, 0, 0, 41, 0, 42, 43, - 44, 0, 0, 0, 0, 0, 0, 13, 0, 14, - 15, 16, 0, 0, 0, 17, 18, 0, 0, 0, - 50, 171, 52, 0, 19, 20, 0, 0, 0, 0, - 0, 21, 22, 0, 0, 53, 54, 0, 23, 0, - 0, 0, 0, 0, 0, 0, 24, 25, 26, 58, - 0, 27, 0, 0, 60, 28, 7, 8, 9, 10, - 29, 11, 12, 0, 0, 30, 0, 7, 8, 9, - 10, 0, 11, 12, 0, 0, 0, 0, 31, 0, - 0, 0, 32, 33, 0, 0, 34, 0, 35, 0, - 280, 0, 36, 0, 0, 0, 0, 0, 13, 0, - 14, 15, 16, 0, 0, 0, 17, 18, 0, 13, - 0, 14, 15, 16, 0, 19, 20, 17, 18, 0, - 903, 904, 21, 22, 0, 0, 19, 20, 0, 23, - 905, 0, 0, 21, 22, 0, 0, 24, 25, 26, - 23, 0, 27, 0, 0, 0, 28, 0, 24, 25, - 26, 29, 0, 27, 0, 0, 30, 28, 0, 0, - 0, 409, 29, 0, 0, 0, 0, 30, 0, 31, - 0, 0, 510, 32, 33, 0, 0, 34, 0, 35, - 31, 0, 0, 36, 32, 33, 0, 0, 34, 0, - 35, 0, 0, 0, 36, 7, 8, 9, 10, 0, - 11, 12, 0, 0, 0, 0, 7, 8, 9, 10, - 0, 11, 12, 0, 0, 0, 0, 0, 0, 0, - 910, 911, 912, 913, 914, 0, 915, 916, 917, 0, - 0, 0, 0, 0, 0, 0, 0, 13, 0, 14, - 15, 16, 0, 0, 0, 17, 18, 0, 13, 0, - 14, 15, 16, 0, 19, 20, 17, 18, 0, 0, - 0, 21, 22, 0, 0, 19, 20, 0, 23, 0, - 0, 0, 21, 22, 0, 0, 24, 25, 26, 23, - 0, 27, 0, 0, 0, 28, 0, 24, 25, 26, - 29, 0, 27, 0, 0, 30, 28, 7, 8, 9, - 10, 29, 11, 12, 0, 0, 30, 0, 31, 0, - 0, 878, 32, 33, 0, 0, 34, 0, 35, 31, - 863, 0, 36, 32, 33, 0, 0, 34, 41, 35, - 42, 43, 44, 36, 0, 0, 167, 0, 0, 13, - 0, 14, 15, 16, 0, 0, 168, 17, 18, 0, - 0, 0, 50, 169, 52, 0, 19, 20, 0, 0, - 0, 0, 0, 21, 22, 0, 0, 53, 54, 0, - 23, 0, 0, 0, 0, 0, 0, 0, 24, 25, - 26, 58, 0, 27, 0, 0, 60, 28, 7, 8, - 9, 10, 29, 11, 12, 0, 0, 30, 0, 7, - 8, 9, 10, 0, 11, 0, 0, 0, 0, 108, - 31, 0, 0, 0, 32, 33, 0, 0, 34, 0, - 35, 0, 970, 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, - 811, 0, 0, 0, 21, 22, 0, 0, 19, 0, - 0, 23, 0, 144, 145, 146, 147, 148, 149, 24, - 25, 26, 0, 0, 27, 0, 0, 150, 28, 0, - 0, 0, 812, 29, 0, 813, 0, 0, 30, 28, - 0, 142, 143, 144, 145, 146, 147, 148, 149, 0, - 0, 31, 0, 0, 0, 32, 33, 150, 0, 34, - 0, 35, 814, 0, 0, 36, 815, 816, 0, 0, - 817, 0, 818, 0, 0, 0, 819, 142, 143, 144, - 145, 146, 147, 148, 149, 0, 0, 0, 0, 0, - 0, 0, 0, 150, 0, 0, 142, 143, 144, 145, - 146, 147, 148, 149, 0, 0, 0, 0, 0, 0, - 0, 0, 150, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 0, 162, 163, 164, 0, 0, 0, 0, + 724, 725, 726, 0, 0, 727, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, 738, 739, 740, 0, + 741, 0, 742, 743, 744, 745, 746, 747, 748, 749, + 750, 751, 752, 753, 0, 0, 0, 754, 0, 755, + 0, 756, 757, 758, 759, 760, 761, 762, 763, 764, + 765, 766, 767, 768, 769, 0, 770, 771, 772, 773, + 774, 775, 776, 0, 777, 778, 779, 780, 781, 0, + 0, 0, 782, 783, 784, 785, 786, 787, 788, 789, + 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, + 800, 801, 802, 976, 803, 804, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 0, 699, 700, 701, + 702, 703, 704, 705, 706, 707, 708, 709, 0, 0, + 0, 0, 0, 0, 710, 711, 712, 713, 714, 715, + 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, + 726, 0, 0, 727, 728, 729, 730, 731, 732, 733, + 734, 735, 736, 737, 738, 739, 740, 0, 741, 0, + 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, + 752, 753, 0, 0, 0, 754, 0, 755, 0, 756, + 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, + 767, 768, 769, 0, 770, 771, 772, 773, 774, 775, + 776, 0, 777, 778, 779, 780, 781, 0, 0, 0, + 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, + 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, + 802, 0, 803, 804, 477, 478, 479, 10, 0, 11, + 480, 481, 44, 0, 0, 482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 0, 162, 163, 164, 0, 0, 0, 352, - 142, 143, 144, 145, 146, 147, 148, 149, 0, 0, - 0, 0, 0, 0, 0, 0, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 0, 162, - 163, 164, 0, 0, 0, 933, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 0, 162, 163, - 164, 0, 0, 0, 993, 519, 520, 521, 522, 523, - 524, 525, 526, 0, 0, 0, 0, 0, 0, 0, - 0, 527, 0, 528, 529, 530, 531, 532, 533, 534, - 535, 536, 537, 538, 539, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 540, 0, 370, 0, 0, 0, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 0, 162, 163, 164, 371, 0, 0, 541, 0, + 0, 0, 0, 0, 148, 149, 150, 151, 152, 153, + 154, 155, 0, 0, 0, 0, 0, 483, 0, 0, + 156, 45, 0, 46, 47, 48, 49, 484, 0, 51, + 0, 0, 52, 485, 0, 0, 53, 0, 0, 0, + 0, 486, 54, 0, 0, 0, 0, 0, 55, 56, + 57, 0, 0, 0, 0, 487, 0, 488, 0, 0, + 0, 0, 489, 0, 58, 59, 490, 0, 0, 491, + 60, 0, 0, 492, 0, 0, 61, 62, 63, 0, + 0, 64, 0, 65, 477, 478, 479, 10, 0, 11, + 480, 481, 44, 0, 0, 873, 493, 0, 0, 0, + 494, 1035, 0, 0, 495, 0, 496, 0, 0, 0, + 497, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 0, 168, 169, 170, 0, 483, 0, 365, + 0, 45, 0, 46, 47, 48, 49, 484, 0, 51, + 0, 0, 52, 485, 0, 0, 53, 0, 0, 0, + 0, 486, 54, 0, 0, 0, 0, 0, 55, 56, + 57, 0, 0, 0, 0, 487, 0, 488, 0, 0, + 0, 0, 489, 0, 58, 59, 490, 0, 0, 491, + 60, 0, 0, 492, 0, 0, 61, 62, 63, 0, + 0, 64, 0, 65, 7, 8, 9, 10, 0, 11, + 12, 13, 131, 0, 0, 0, 493, 0, 0, 0, + 494, 0, 0, 0, 495, 0, 496, 0, 0, 0, + 497, 0, 0, 0, 148, 149, 150, 151, 152, 153, + 154, 155, 0, 0, 0, 0, 0, 15, 0, 0, + 156, 132, 0, 133, 134, 135, 49, 50, 0, 51, + 0, 0, 136, 21, 0, 0, 53, 0, 0, 0, + 0, 22, 137, 0, 0, 0, 0, 0, 138, 139, + 57, 0, 0, 0, 0, 26, 0, 27, 0, 0, + 0, 0, 0, 0, 140, 141, 30, 0, 0, 31, + 60, 0, 0, 32, 0, 0, 61, 62, 142, 0, + 0, 64, 0, 143, 477, 478, 479, 10, 0, 11, + 480, 481, 44, 0, 0, 0, 35, 0, 0, 0, + 36, 37, 0, 0, 38, 0, 39, 0, 0, 0, + 40, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 0, 168, 169, 170, 0, 483, 0, 969, + 0, 45, 0, 46, 47, 48, 49, 484, 0, 51, + 0, 0, 52, 485, 0, 0, 53, 0, 0, 0, + 0, 486, 54, 0, 0, 0, 0, 0, 55, 56, + 57, 0, 0, 0, 0, 487, 0, 488, 0, 0, + 0, 0, 489, 0, 58, 59, 490, 0, 0, 491, + 60, 0, 0, 492, 0, 0, 61, 62, 63, 0, + 0, 64, 0, 65, 7, 8, 9, 10, 0, 11, + 12, 13, 14, 0, 0, 0, 493, 0, 0, 0, + 494, 0, 0, 0, 495, 0, 496, 0, 0, 0, + 497, 934, 935, 936, 937, 938, 939, 0, 0, 0, + 45, 0, 46, 47, 48, 940, 0, 15, 0, 0, + 0, 16, 0, 17, 18, 19, 0, 0, 0, 0, + 0, 0, 20, 21, 0, 0, 0, 55, 179, 57, + 0, 22, 23, 0, 0, 0, 0, 0, 24, 25, + 0, 0, 0, 58, 59, 26, 0, 27, 0, 0, + 0, 0, 0, 0, 28, 29, 30, 63, 0, 31, + 0, 0, 65, 32, 7, 8, 9, 10, 33, 11, + 12, 13, 14, 34, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 121, 35, 0, 0, 0, + 36, 37, 0, 0, 38, 0, 39, 0, 290, 944, + 40, 0, 945, 946, 947, 948, 949, 15, 950, 951, + 952, 16, 0, 17, 18, 19, 0, 0, 0, 0, + 0, 0, 20, 21, 0, 0, 0, 0, 0, -2, + 0, 22, 23, 0, 0, 0, 0, 0, 24, 25, + 0, 0, 0, 0, 0, 26, 0, 27, 0, 0, + 0, 0, 0, 0, 28, 29, 30, 0, 0, 31, + 0, 0, 0, 32, 7, 8, 9, 10, 33, 11, + 12, 13, 14, 34, 0, 0, 0, 79, 424, 0, + 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, + 36, 37, 0, 80, 38, 0, 39, 0, 81, 0, + 40, 82, 0, 0, 0, 0, 0, 15, 0, 83, + 84, 16, 85, 17, 18, 19, 0, 86, 87, 88, + 0, 0, 20, 21, 0, 0, 89, 0, 0, 90, + 0, 22, 23, 91, 0, 0, 0, 92, 24, 25, + 0, 0, 0, 0, 0, 26, 0, 27, 93, 0, + 0, 0, 0, 0, 28, 29, 30, 0, 0, 31, + 0, 0, 0, 32, 7, 8, 9, 10, 33, 11, + 12, 13, 14, 34, 0, 0, 0, 79, 529, 0, + 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, + 36, 37, 0, 80, 38, 0, 39, 0, 81, 0, + 40, 82, 0, 0, 0, 0, 0, 15, 0, 83, + 84, 16, 85, 17, 18, 19, 0, 86, 87, 88, + 0, 0, 20, 21, 0, 0, 89, 0, 0, 90, + 0, 22, 23, 91, 0, 0, 0, 92, 24, 25, + 0, 0, 0, 0, 0, 26, 0, 27, 0, 0, + 0, 0, 0, 0, 28, 29, 30, 0, 0, 31, + 0, 0, 0, 32, 7, 8, 9, 10, 33, 11, + 12, 13, 14, 34, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, + 36, 37, 0, 0, 38, 0, 39, 0, 897, 0, + 40, 0, 0, 0, 0, 0, 0, 15, 0, 0, + 0, 16, 0, 17, 18, 19, 0, 0, 0, 0, + 0, 0, 20, 21, 0, 0, 0, 0, 0, 0, + 0, 22, 23, 0, 0, 0, 0, 0, 24, 25, + 0, 0, 0, 0, 0, 26, 0, 27, 0, 0, + 0, 0, 0, 0, 28, 29, 30, 0, 0, 31, + 0, 0, 0, 32, 7, 8, 9, 10, 33, 11, + 12, 13, 14, 34, 0, 0, 0, 0, 912, 0, + 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, + 36, 37, 0, 0, 38, 0, 39, 0, 0, 0, + 40, 0, 0, 0, 0, 0, 0, 15, 0, 0, + 0, 16, 0, 17, 18, 19, 0, 0, 0, 0, + 0, 0, 20, 21, 0, 0, 0, 0, 0, 0, + 0, 22, 23, 0, 0, 0, 0, 0, 24, 25, + 0, 0, 0, 0, 0, 26, 0, 27, 0, 0, + 0, 0, 0, 0, 28, 29, 30, 0, 0, 31, + 0, 0, 0, 32, 7, 8, 9, 10, 33, 11, + 12, 13, 14, 34, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, + 36, 37, 0, 0, 38, 0, 39, 0, 1007, 0, + 40, 0, 0, 0, 0, 0, 0, 15, 0, 0, + 0, 16, 0, 17, 18, 19, 0, 0, 0, 0, + 0, 0, 20, 21, 152, 153, 154, 155, 0, 0, + 0, 22, 23, 0, 0, 0, 156, 0, 24, 25, + 0, 0, 0, 0, 0, 26, 0, 27, 150, 151, + 152, 153, 154, 155, 28, 29, 30, 0, 0, 31, + 0, 0, 156, 32, 936, 937, 938, 939, 33, 0, + 0, 0, 0, 34, 0, 0, 940, 148, 149, 150, + 151, 152, 153, 154, 155, 0, 35, 0, 0, 0, + 36, 37, 538, 156, 38, 0, 39, 0, 0, 0, + 40, 539, 540, 541, 542, 543, 544, 545, 546, 0, + 0, 0, 0, 0, 0, 0, 0, 547, 0, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 161, 162, 163, 164, 165, 166, 167, 0, 168, + 169, 170, 0, 0, 0, 0, 560, 0, 0, 0, + 0, 0, 0, 0, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 0, 168, 169, 170, 0, 0, + 561, 0, 0, 945, 946, 947, 948, 949, 0, 950, + 951, 952, 0, 0, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 0, 168, 169, 170, 217, + 218, 0, 1031, 0, 562, 0, 0, 563, 0, 564, + 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, + 0, 575, 576, 0, 0, 577, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 219, 45, + 0, 46, 47, 48, 49, 220, 0, 221, 0, 0, + 52, 0, 0, 0, 53, 222, 223, 224, 0, 0, + 54, 0, 0, 0, 0, 225, 55, 56, 57, 217, + 218, 226, 0, 0, 0, 0, 227, 0, 0, 0, + 228, 0, 58, 59, 0, 229, 0, 0, 60, 0, + 0, 0, 0, 0, 230, 62, 63, 0, 231, 64, + 232, 65, 0, 0, 0, 0, 233, 0, 219, 45, + 0, 46, 47, 48, 49, 220, 0, 221, 0, 0, + 52, 0, 234, 0, 53, 222, 223, 224, 0, 0, + 54, 0, 0, 217, 218, 225, 55, 56, 57, 0, + 0, 226, 0, 0, 0, 0, 227, 0, 0, 0, + 228, 0, 58, 59, 0, 229, 0, 0, 60, 0, + 0, 0, 0, 0, 230, 62, 63, 0, 231, 64, + 232, 65, 219, 45, 0, 46, 47, 48, 49, 320, + 0, 221, 0, 0, 52, 0, 0, 0, 53, 222, + 223, 224, 234, 0, 54, 0, 0, 0, 0, 225, + 55, 56, 57, 0, 0, 226, 0, 0, 0, 0, + 227, 0, 0, 0, 228, 0, 58, 59, 0, 229, + 0, 0, 60, 0, 0, 0, 0, 0, 230, 62, + 63, 0, 231, 64, 232, 65, 148, 149, 150, 151, + 152, 153, 154, 155, 0, 0, 0, 0, 0, 0, + 0, 0, 156, 0, 0, 0, 234, 148, 149, 150, + 151, 152, 153, 154, 155, 0, 0, 0, 0, 0, + 0, 0, 0, 156, 148, 149, 150, 151, 152, 153, + 154, 155, 0, 0, 0, 0, 0, 0, 0, 0, + 156, 0, 148, 149, 150, 151, 152, 153, 154, 155, + 0, 0, 0, 0, 0, 0, 0, 0, 156, 0, + 148, 149, 150, 151, 152, 153, 154, 155, 0, 0, + 0, 0, 0, 0, 0, 0, 156, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 384, + 0, 0, 0, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 0, 168, 169, 170, 385, 0, + 0, 0, 0, 0, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 0, 168, 169, 170, 366, + 0, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 0, 168, 169, 170, 511, 363, 0, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 0, 168, 169, 170, 534, 0, 0, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 0, 168, + 169, 170, 148, 149, 150, 151, 152, 153, 154, 155, + 0, 0, 0, 0, 0, 0, 0, 0, 156, 148, + 149, 150, 151, 152, 153, 154, 155, 0, 0, 0, + 0, 0, 0, 0, 0, 156, 148, 149, 150, 151, + 152, 153, 154, 155, 0, 0, 0, 0, 0, 0, + 0, 0, 156, 655, 656, 657, 658, 659, 660, 661, + 662, 0, 0, 0, 0, 0, 0, 0, 0, 663, + 932, 933, 934, 935, 936, 937, 938, 939, 0, 0, + 0, 0, 0, 0, 0, 0, 940, 149, 150, 151, + 152, 153, 154, 155, 0, 0, 0, 0, 0, 0, + 0, 0, 156, 0, 0, 825, 0, 0, 0, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 0, 168, 169, 170, 967, 0, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 0, 168, 169, + 170, 0, 0, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 0, 168, 169, 170, 0, 0, + 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, + 674, 0, 675, 676, 677, 0, 0, 941, 942, 943, + 944, 0, 0, 945, 946, 947, 948, 949, 0, 950, + 951, 952, 0, 0, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 0, 168, 169, 170, 933, 934, + 935, 936, 937, 938, 939, 0, 0, 0, 0, 0, + 0, 0, 0, 940, 150, 151, 152, 153, 154, 155, + 0, 0, 0, 45, 0, 46, 47, 48, 156, 150, + 151, 152, 153, 154, 155, 0, 0, 0, 0, 0, + 0, 0, 0, 156, 934, 935, 936, 937, 938, 939, + 55, 179, 57, 0, 0, 0, 0, 0, 940, 150, + 151, 152, 153, 154, 155, 0, 58, 59, 0, 0, + 0, 0, 0, 156, 934, 935, 936, 937, 938, 939, + 63, 0, 0, 0, 0, 65, 0, 0, 940, 934, + 935, 936, 937, 938, 939, 0, 0, 0, 0, 0, + 0, 0, 0, 940, 0, 942, 943, 944, 122, 0, + 945, 946, 947, 948, 949, 0, 950, 951, 952, 0, + 0, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 0, 168, 169, 170, 0, 0, 0, 160, 161, 162, + 163, 164, 165, 166, 167, 0, 168, 169, 170, 0, + 942, 943, 944, 0, 0, 945, 946, 947, 948, 949, + 0, 950, 951, 952, 0, 0, 0, 0, 161, 162, + 163, 164, 165, 166, 167, 0, 168, 169, 170, 386, + 387, 943, 944, 0, 0, 945, 946, 947, 948, 949, + 0, 950, 951, 952, 0, 0, 0, 0, 0, 0, + 945, 946, 947, 948, 949, 0, 950, 951, 952, 45, + 0, 46, 47, 48, 0, 0, 386, 387, 0, 45, + 0, 46, 47, 48, 388, 389, 0, 0, 0, 0, + 52, 0, 0, 0, 0, 0, 55, 179, 57, 0, + 54, 0, 0, 0, 0, 0, 55, 56, 57, 0, + 0, 0, 58, 59, 0, 0, 45, 0, 46, 47, + 48, 0, 58, 59, 0, 44, 63, 52, 0, 0, + 0, 65, 0, 0, 390, 0, 63, 54, 0, 64, + 0, 65, 0, 55, 56, 57, 0, 0, 0, 0, + 0, 0, 0, 45, 125, 46, 47, 48, 0, 58, + 59, 0, 0, 0, 45, 0, 46, 47, 48, 49, + 50, 0, 51, 63, 295, 52, 64, 0, 65, 53, + 55, 179, 57, 0, 0, 54, 44, 0, 0, 0, + 0, 55, 56, 57, 0, 0, 58, 59, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 58, 59, 0, + 63, 0, 0, 60, 45, 65, 46, 47, 48, 61, + 62, 63, 0, 44, 64, 45, 65, 46, 47, 48, + 49, 329, 0, 51, 0, 0, 52, 0, 0, 0, + 53, 55, 179, 57, 0, 0, 54, 0, 0, 0, + 0, 0, 55, 56, 57, 0, 0, 58, 59, 0, + 0, 0, 45, 0, 46, 47, 48, 49, 58, 59, + 51, 63, 0, 52, 60, 0, 65, 53, 0, 0, + 61, 62, 63, 54, 44, 64, 0, 65, 0, 55, + 56, 57, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 638, 0, 58, 59, 0, 0, 0, + 0, 60, 0, 0, 0, 0, 0, 61, 62, 63, + 0, 115, 64, 45, 65, 46, 47, 48, 49, 0, + 0, 51, 0, 0, 52, 0, 0, 0, 53, 0, + 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, + 55, 56, 57, 0, 0, 0, 0, 0, 0, 0, + 45, 0, 46, 47, 48, 49, 58, 59, 0, 0, + 0, 52, 60, 0, 0, 53, 0, 0, 61, 62, + 63, 54, 0, 64, 0, 65, 79, 55, 56, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 209, 210, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 542, 0, 0, 543, 0, 544, 545, 546, 547, - 548, 549, 550, 551, 552, 553, 554, 0, 555, 556, - 211, 41, 557, 42, 43, 44, 45, 212, 0, 47, - 0, 0, 0, 48, 213, 214, 215, 0, 0, 49, - 0, 0, 0, 0, 216, 50, 51, 52, 0, 0, - 217, 0, 209, 210, 218, 0, 0, 0, 219, 0, - 53, 54, 0, 220, 0, 0, 55, 0, 0, 0, - 0, 0, 221, 57, 58, 0, 222, 59, 223, 60, - 0, 0, 0, 0, 224, 0, 0, 0, 211, 41, - 0, 42, 43, 44, 45, 212, 0, 47, 0, 0, - 225, 48, 213, 214, 215, 0, 0, 49, 0, 0, - 0, 0, 216, 50, 51, 52, 0, 0, 217, 0, - 209, 210, 218, 0, 0, 0, 219, 0, 53, 54, - 0, 220, 0, 0, 55, 0, 0, 0, 0, 0, - 221, 57, 58, 0, 222, 59, 223, 60, 142, 143, - 144, 145, 146, 147, 148, 149, 211, 41, 0, 42, - 43, 44, 45, 309, 150, 47, 0, 0, 225, 48, - 213, 214, 215, 0, 0, 49, 0, 0, 0, 0, - 216, 50, 51, 52, 0, 0, 217, 0, 0, 0, - 218, 0, 0, 0, 219, 0, 53, 54, 0, 220, - 0, 0, 55, 0, 0, 0, 0, 0, 221, 57, - 58, 0, 222, 59, 223, 60, 142, 143, 144, 145, - 146, 147, 148, 149, 0, 0, 0, 0, 0, 0, - 0, 0, 150, 0, 0, 0, 225, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 350, 0, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 0, - 162, 163, 164, 142, 143, 144, 145, 146, 147, 148, - 149, 0, 0, 0, 0, 0, 0, 0, 0, 150, - 142, 143, 144, 145, 146, 147, 148, 149, 0, 0, - 0, 0, 0, 0, 0, 0, 150, 0, 142, 143, - 144, 145, 146, 147, 148, 149, 0, 0, 0, 0, - 0, 0, 0, 515, 150, 0, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 0, 162, 163, - 164, 634, 635, 636, 637, 638, 639, 640, 641, 0, - 0, 0, 0, 0, 0, 0, 0, 642, 144, 145, - 146, 147, 148, 149, 0, 0, 0, 0, 0, 793, - 0, 0, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 0, 162, 163, 164, 931, 0, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 0, 162, 163, 164, 0, 0, 0, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 0, - 162, 163, 164, 899, 900, 901, 902, 903, 904, 0, - 0, 0, 0, 0, 0, 0, 0, 905, 0, 0, - 0, 643, 644, 645, 646, 647, 648, 649, 650, 651, - 652, 653, 0, 654, 655, 656, 0, 0, 0, 154, - 155, 156, 157, 158, 159, 160, 161, 0, 162, 163, - 164, 144, 145, 146, 147, 148, 149, 0, 0, 0, - 0, 0, 0, 0, 0, 150, 899, 900, 901, 902, - 903, 904, 0, 0, 0, 0, 0, 0, 0, 0, - 905, 899, 900, 901, 902, 903, 904, 0, 0, 0, - 0, 0, 0, 0, 0, 905, 0, 0, 0, 0, - 0, 0, 907, 908, 909, 0, 0, 910, 911, 912, - 913, 914, 0, 915, 916, 917, 899, 900, 901, 902, - 903, 904, 0, 0, 0, 0, 0, 0, 0, 0, - 905, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 155, 156, 157, 158, 159, 160, 161, - 0, 162, 163, 164, 0, 0, 908, 909, 0, -2, - 910, 911, 912, 913, 914, 0, 915, 916, 917, 0, - 0, 0, 909, 0, 0, 910, 911, 912, 913, 914, - 0, 915, 916, 917, 901, 902, 903, 904, 0, 0, - 0, 0, 0, 0, 0, 0, 905, 0, 0, 0, - 0, 0, 74, 41, 0, 42, 43, 44, 0, 0, - 910, 911, 912, 913, 914, 75, 915, 916, 917, 0, - 76, 0, 0, 77, 0, 0, 0, 50, 171, 52, - 0, 78, 79, 0, 80, 0, 372, 373, 81, 82, - 83, 0, 53, 54, 0, 0, 0, 84, 0, 0, - 85, 0, 0, 0, 86, 0, 58, 0, 87, 0, - 0, 60, 0, 0, 0, 0, 0, 0, 0, 88, - 0, 0, 0, 41, 0, 42, 43, 44, 374, 375, - 0, 47, 0, 0, 116, 0, 910, 911, 912, 913, - 914, 49, 915, 916, 917, 0, 40, 50, 51, 52, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 53, 54, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 376, 0, 58, 0, 0, 59, - 0, 60, 41, 0, 42, 43, 44, 45, 46, 0, - 47, 0, 0, 0, 48, 0, 0, 0, 0, 0, - 49, 0, 0, 40, 0, 0, 50, 51, 52, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 53, 54, 0, 0, 0, 0, 55, 41, 0, - 42, 43, 44, 56, 57, 58, 0, 0, 59, 41, - 60, 42, 43, 44, 45, 317, 0, 47, 0, 0, - 0, 48, 50, 171, 52, 0, 0, 49, 0, 0, - 40, 0, 0, 50, 51, 52, 0, 53, 54, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 53, 54, - 0, 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, 119, - 0, 0, 0, 0, 49, 0, 0, 109, 0, 0, - 50, 51, 52, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 617, 0, 53, 54, 0, 0, 0, - 0, 55, 41, 0, 42, 43, 44, 56, 57, 58, - 167, 0, 59, 41, 60, 42, 43, 44, 45, 0, - 168, 47, 0, 0, 0, 48, 50, 169, 52, 0, - 0, 49, 0, 0, 40, 0, 0, 50, 51, 52, - 0, 53, 54, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 53, 54, 0, 58, 0, 0, 55, 41, - 60, 42, 43, 44, 110, 57, 58, 0, 0, 59, - 41, 60, 42, 43, 44, 45, 0, 284, 47, 0, - 0, 0, 48, 50, 171, 52, 0, 0, 49, 0, - 0, 0, 0, 0, 50, 51, 52, 0, 53, 54, - 0, 0, 0, 0, 0, 0, 74, 0, 0, 53, - 54, 0, 58, 0, 0, 55, 0, 60, 0, 75, - 0, 56, 57, 58, 76, 0, 59, 77, 60, 0, - 0, 0, 0, 0, 74, 78, 79, 0, 80, 0, - 0, 0, 81, 82, 83, 0, 0, 75, 0, 0, - 0, 84, 76, 0, 85, 77, 0, 0, 86, 0, - 0, 0, 87, 78, 79, 0, 80, 74, 0, 0, - 81, 82, 83, 88, 0, 0, 0, 0, 0, 84, - 75, 0, 85, 0, 0, 76, 86, 0, 77, 0, - 87, 0, 368, 0, 0, 74, 78, 79, 0, 80, - 0, 88, 0, 81, 82, 83, 0, 0, 75, 0, - 0, 0, 84, 76, 0, 85, 77, 0, 0, 86, - 431, 0, 0, 87, 78, 79, 0, 80, 74, 0, - 0, 81, 82, 83, 88, 0, 0, 0, 0, 0, - 84, 75, 0, 85, 0, 0, 76, 86, 0, 77, - 0, 87, 0, 502, 0, 0, 0, 78, 79, 0, - 80, 0, 88, 0, 81, 82, 83, 41, 0, 42, - 43, 44, 0, 84, 0, 0, 85, 0, 0, 0, - 86, 592, 0, 0, 87, 0, 0, 0, 0, 0, - 0, 50, 171, 52, 0, 88, 0, 74, 0, 0, - 0, 0, 0, 0, 0, 0, 53, 54, 0, 0, - 75, 0, 0, 0, 802, 76, 0, 0, 77, 0, - 58, 0, 0, 0, 0, 60, 78, 79, 0, 80, - 0, 0, 0, 81, 82, 83, 0, 0, 0, 0, - 0, 0, 84, 0, 0, 85, 0, 0, 0, 86, - 0, 0, 0, 87 + 0, 0, 80, 58, 59, 0, 0, 81, 0, 60, + 82, 0, 0, 0, 0, 116, 62, 63, 83, 84, + 64, 85, 65, 79, 0, 0, 86, 87, 88, 0, + 0, 0, 0, 0, 0, 89, 0, 0, 90, 80, + 0, 0, 91, 0, 81, 0, 92, 82, 0, 0, + 0, 0, 0, 0, 0, 83, 84, 93, 85, 0, + 0, 0, 0, 86, 87, 88, 79, 0, 0, 0, + 0, 0, 89, 0, 0, 90, 382, 0, 0, 91, + 0, 0, 80, 92, 0, 0, 0, 81, 0, 0, + 82, 0, 0, 0, 93, 0, 0, 0, 83, 84, + 0, 85, 0, 79, 0, 0, 86, 87, 88, 0, + 0, 0, 0, 446, 0, 89, 0, 0, 90, 80, + 0, 0, 91, 0, 81, 0, 92, 82, 0, 0, + 0, 0, 0, 0, 0, 83, 84, 93, 85, 0, + 0, 0, 0, 86, 87, 88, 79, 0, 0, 0, + 0, 0, 89, 0, 0, 90, 521, 0, 0, 91, + 0, 0, 80, 92, 0, 0, 0, 81, 0, 0, + 82, 0, 0, 0, 93, 0, 0, 0, 83, 84, + 45, 85, 46, 47, 48, 0, 86, 87, 88, 0, + 0, 175, 0, 612, 0, 89, 0, 0, 90, 0, + 0, 176, 91, 0, 0, 0, 92, 55, 177, 57, + 0, 45, 0, 46, 47, 48, 0, 93, 0, 0, + 0, 0, 175, 58, 59, 0, 0, 0, 0, 0, + 0, 0, 176, 0, 0, 0, 834, 63, 55, 177, + 57, 0, 65, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 58, 59, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 114, 0, 0, 63, 0, + 0, 0, 0, 65 }; #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-508))) + (!!((Yystate) == (-594))) #define yytable_value_is_error(Yytable_value) \ YYID (0) static const yytype_int16 yycheck[] = { - 1, 461, 46, 510, 5, 100, 101, 102, 103, 104, - 299, 106, 107, 108, 389, 35, 85, 86, 23, 23, - 115, 116, 6, 385, 119, 120, 388, 471, 390, 92, - 85, 117, 492, 196, 10, 0, 444, 12, 501, 8, - 9, 8, 9, 451, 452, 453, 454, 455, 456, 126, - 412, 413, 427, 415, 416, 417, 418, 465, 112, 92, - 61, 310, 126, 23, 391, 35, 8, 9, 395, 396, - 397, 398, 399, 127, 92, 483, 2, 166, 126, 29, - 126, 214, 109, 109, 85, 86, 126, 92, 92, 112, - 179, 180, 181, 182, 183, 184, 126, 459, 126, 8, - 9, 128, 128, 566, 127, 31, 32, 33, 34, 77, - 36, 433, 434, 8, 9, 79, 80, 81, 8, 9, - 109, 109, 108, 112, 92, 111, 488, 126, 503, 126, - 109, 109, 92, 422, 109, 105, 100, 300, 6, 202, - 128, 108, 205, 163, 128, 121, 609, 117, 118, 128, - 128, 108, 247, 613, 516, 126, 616, 320, 4, 128, - 126, 108, 8, 9, 111, 166, 108, 494, 212, 202, - 29, 420, 205, 633, 218, 125, 126, 127, 179, 180, - 181, 182, 183, 184, 202, 75, 187, 205, 632, 105, - 106, 107, 193, 601, 660, 196, 285, 202, 202, 126, - 205, 205, 111, 79, 80, 81, 369, 8, 9, 10, - 618, 117, 461, 14, 127, 128, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 370, 164, 126, - 10, 126, 202, 492, 14, 205, 8, 9, 10, 111, - 51, 109, 14, 386, 576, 126, 389, 109, 580, 109, - 582, 109, 584, 585, 586, 309, 125, 126, 127, 109, - 128, 126, 127, 317, 437, 201, 128, 78, 128, 109, - 128, 51, 126, 109, 285, 8, 9, 109, 128, 51, - 665, 292, 111, 108, 427, 110, 111, 112, 128, 300, - 301, 102, 128, 111, 305, 111, 128, 308, 108, 109, - 126, 126, 127, 126, 127, 116, 126, 318, 111, 320, - 121, 126, 127, 127, 128, 126, 792, 50, 117, 128, - 256, 257, 102, 126, 127, 128, 121, 127, 471, 111, - 102, 29, 386, 8, 108, 389, 116, 126, 308, 117, - 126, 121, 6, 110, 116, 128, 126, 109, 118, 121, - 361, 128, 128, 128, 613, 128, 292, 90, 369, 829, - 503, 878, 128, 96, 97, 128, 109, 446, 128, 380, - 128, 29, 128, 427, 128, 386, 128, 118, 389, 128, - 391, 446, 29, 128, 395, 396, 397, 398, 399, 325, - 129, 402, 111, 423, 405, 425, 109, 873, 409, 126, - 126, 131, 787, 128, 509, 375, 126, 108, 126, 420, - 828, 108, 8, 467, 350, 109, 427, 471, 432, 433, - 434, 119, 120, 121, 122, 123, 437, 125, 126, 127, - 441, 118, 109, 444, 108, 446, 110, 111, 112, 121, - 451, 452, 453, 454, 455, 456, 457, 126, 478, 503, - 461, 121, 922, 825, 465, 470, 470, 608, 129, 121, - 109, 112, 938, 121, 122, 123, 942, 125, 126, 127, - 112, 111, 483, 409, 121, 122, 123, 447, 125, 126, - 127, 492, 91, 494, 121, 870, 126, 127, 128, 632, - 501, 117, 503, 126, 430, 29, 117, 869, 478, 510, - 470, 886, 56, 128, 128, 127, 982, 109, 131, 129, - 986, 128, 111, 67, 68, 109, 128, 8, 8, 9, - 10, 110, 665, 999, 14, 109, 80, 126, 127, 128, - 127, 126, 1008, 87, 51, 8, 9, 128, 4, 475, - 476, 477, 109, 479, 126, 131, 129, 919, 128, 128, - 935, 129, 128, 128, 131, 566, 110, 126, 112, 113, - 117, 51, 576, 617, 126, 501, 580, 117, 582, 109, - 584, 585, 586, 131, 510, 118, 587, 50, 632, 128, - 118, 126, 128, 110, 595, 119, 120, 121, 122, 123, - 601, 125, 126, 127, 110, 980, 128, 128, 609, 128, - 126, 126, 613, 126, 128, 616, 128, 618, 129, 118, - 128, 665, 102, 118, 594, 128, 596, 90, 126, 630, - 126, 128, 633, 96, 97, 655, 116, 100, 564, 128, - 566, 121, 508, 193, 789, 869, 126, 825, 919, 619, - 205, 195, 622, 623, 787, 446, 375, 595, 470, 660, - 447, 438, 205, 207, 665, 507, 751, -1, -1, -1, - -1, -1, -1, 814, 815, 816, 817, 221, 819, -1, - -1, 225, -1, 609, -1, -1, -1, 231, 232, -1, - -1, -1, -1, -1, 51, -1, 53, 54, -1, -1, - -1, 58, -1, -1, -1, 8, 9, -1, 634, 635, - 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, - 646, 647, 648, 649, 650, 651, 652, 653, 654, -1, - 656, -1, -1, -1, -1, -1, 831, 870, -1, -1, - -1, -1, -1, 787, 8, 9, -1, 50, -1, 293, - 751, -1, -1, 886, -1, -1, 897, 898, 899, 900, - 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, - 911, 912, 913, 914, 915, -1, 133, 134, 135, 136, - 324, 45, -1, 47, 48, 49, 787, 90, -1, 53, - -1, 792, -1, 96, 97, -1, -1, 100, 818, 63, - -1, -1, 935, -1, -1, 69, 70, 71, 949, -1, - 8, 9, 169, -1, 171, -1, -1, -1, -1, -1, - 84, 85, -1, 367, -1, -1, 870, 828, 829, -1, - 374, 188, 376, -1, 98, -1, -1, 101, -1, 103, - -1, -1, 886, -1, -1, -1, -1, 980, 818, -1, - 991, -1, 50, -1, 780, -1, -1, -1, -1, -1, - 13, 14, 15, 16, 17, 18, 19, 20, -1, 870, - -1, -1, 873, -1, -1, -1, 29, 878, -1, -1, - -1, -1, -1, -1, -1, 886, -1, -1, 432, 433, - 434, 935, 90, -1, -1, -1, 916, -1, 96, 97, - 826, -1, 100, -1, -1, -1, -1, -1, 834, 14, - 15, 16, 17, 18, 19, 20, -1, 887, 888, 889, - -1, 922, -1, -1, 29, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 935, -1, 980, 938, -1, -1, - -1, 942, 299, 13, 14, 15, 16, 17, 18, 19, - 20, -1, 878, -1, -1, 975, -1, 977, 111, 29, - 113, 114, 115, 116, 508, -1, 119, 120, 121, 122, - 123, -1, 125, 126, 127, -1, -1, -1, -1, 980, - -1, 982, 1002, 1003, -1, 986, -1, 814, 815, 816, - 817, 917, 819, -1, 17, 18, 19, 20, 999, -1, - -1, -1, -1, -1, -1, 931, 29, 1008, -1, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 563, - 125, 126, 127, -1, -1, -1, -1, -1, -1, -1, - -1, 575, 576, 577, -1, -1, 580, -1, 582, -1, - 584, 585, 586, 113, 114, 115, 116, 591, -1, 119, - 120, 121, 122, 123, -1, 125, 126, 127, -1, -1, - -1, -1, -1, -1, -1, 422, -1, -1, -1, -1, - 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, - 907, 908, 909, 910, 911, 912, 913, 914, 915, -1, - -1, -1, -1, -1, 117, 118, 119, 120, 121, 122, - 123, -1, 125, 126, 127, -1, -1, -1, -1, -1, + 1, 529, 2, 384, 5, 39, 90, 91, 90, 403, + 310, 26, 489, 12, 204, 50, 10, 11, 0, 400, + 26, 476, 403, 97, 10, 11, 106, 107, 108, 109, + 110, 118, 112, 113, 114, 35, 36, 37, 38, 628, + 40, 121, 122, 121, 135, 125, 126, 118, 442, 118, + 137, 6, 6, 8, 8, 510, 135, 321, 136, 118, + 520, 442, 88, 89, 90, 66, 137, 97, 137, 26, + 448, 449, 399, 10, 11, 402, 117, 404, 137, 120, + 14, 117, 97, 109, 120, 459, 10, 11, 681, 90, + 91, 97, 466, 467, 468, 469, 470, 471, 173, 118, + 427, 428, 135, 430, 431, 432, 433, 481, 489, 10, + 11, 135, 187, 188, 189, 190, 191, 192, 137, 97, + 137, 311, 10, 11, 135, 118, 586, 501, 522, 118, + 39, 130, 121, 135, 120, 169, 210, 437, 135, 213, + 97, 522, 332, 137, 137, 31, 83, 474, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 629, + 170, 435, 173, 126, 174, 31, 653, 257, 633, 506, + 210, 636, 137, 213, 118, 220, 187, 188, 189, 190, + 191, 192, 227, 383, 195, 210, 105, 135, 213, 654, + 201, 118, 111, 204, 210, 135, 118, 213, 535, 209, + 135, 118, 476, 135, 123, 124, 117, 135, 596, 121, + 137, 296, 600, 118, 602, 137, 604, 605, 606, 117, + 137, 824, 210, 406, 136, 213, 118, 410, 411, 412, + 413, 414, 137, 10, 11, 118, 510, 621, 134, 135, + 136, 118, 85, 210, 135, 137, 213, 126, 847, 848, + 849, 850, 452, 852, 137, 639, 266, 267, 101, 6, + 137, 8, 653, 135, 120, 10, 11, 12, 134, 135, + 136, 16, 120, 136, 137, 320, 135, 136, 55, 135, + 136, 137, 686, 135, 329, 296, 135, 135, 136, 137, + 117, 118, 303, 303, 117, 686, 119, 120, 121, 117, + 311, 312, 135, 319, 907, 316, 135, 136, 319, 120, + 120, 56, 135, 136, 135, 10, 11, 327, 120, 330, + 120, 332, 99, 120, 135, 136, 137, 337, 105, 106, + 513, 135, 109, 932, 933, 934, 935, 936, 937, 938, + 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, + 949, 950, 126, 363, 135, 400, 4, 130, 403, 633, + 55, 136, 10, 11, 375, 120, 111, 461, 10, 461, + 126, 974, 383, 389, 912, 978, 114, 115, 116, 6, + 125, 135, 136, 394, 117, 130, 135, 986, 119, 400, + 135, 135, 403, 135, 438, 406, 440, 442, 863, 410, + 411, 412, 413, 414, 99, 137, 417, 136, 137, 420, + 105, 106, 118, 424, 424, 819, 1019, 88, 89, 90, + 1023, 10, 11, 12, 435, 137, 137, 16, 819, 12, + 1029, 442, 137, 16, 1037, 445, 137, 137, 528, 484, + 137, 452, 127, 1046, 489, 456, 462, 137, 459, 137, + 461, 137, 496, 137, 137, 466, 467, 468, 469, 470, + 471, 472, 487, 137, 127, 476, 138, 56, 137, 137, + 481, 487, 117, 56, 119, 120, 121, 522, 862, 120, + 447, 448, 449, 493, 494, 495, 118, 497, 118, 135, + 501, 135, 117, 958, 137, 135, 135, 117, 87, 510, + 904, 118, 513, 10, 11, 140, 10, 118, 127, 520, + 520, 522, 130, 904, 130, 138, 920, 130, 529, 529, + 487, 858, 111, 135, 118, 10, 11, 61, 111, 920, + 121, 121, 100, 130, 135, 135, 125, 136, 72, 73, + 126, 130, 125, 138, 126, 137, 135, 130, 55, 137, + 10, 85, 135, 118, 118, 140, 137, 137, 92, 10, + 119, 136, 118, 135, 137, 56, 903, 971, 4, 135, + 55, 118, 135, 140, 584, 586, 586, 496, 138, 137, + 971, 138, 116, 137, 118, 119, 135, 31, 56, 140, + 58, 59, 99, 638, 137, 63, 607, 137, 105, 106, + 126, 126, 109, 135, 615, 140, 118, 137, 653, 127, + 621, 127, 135, 1017, 99, 137, 137, 954, 629, 629, + 105, 106, 633, 137, 109, 636, 1017, 119, 639, 596, + 119, 137, 676, 600, 135, 602, 135, 604, 605, 606, + 651, 686, 31, 654, 137, 655, 656, 657, 658, 659, + 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, + 670, 671, 672, 673, 674, 675, 135, 677, 138, 203, + 681, 139, 140, 141, 142, 686, 10, 11, 12, 21, + 22, 215, 16, 137, 128, 129, 130, 131, 132, 31, + 134, 135, 136, 127, 137, 614, 230, 616, 137, 137, + 234, 127, 137, 135, 135, 527, 240, 241, 137, 177, + 137, 179, 821, 201, 903, 858, 954, 213, 637, 462, + 461, 640, 56, 389, 643, 644, 21, 22, 196, 847, + 848, 849, 850, 615, 852, 213, 31, 487, 453, 128, + 129, 130, 131, 132, 526, 134, 135, 136, -1, 782, + -1, -1, -1, -1, -1, -1, -1, 15, 16, 17, + 18, 19, 20, 21, 22, -1, -1, -1, -1, -1, + 304, 782, -1, 31, 819, 865, -1, 111, -1, -1, + 31, -1, -1, -1, -1, -1, 128, 129, 130, 131, + 132, 125, 134, 135, 136, -1, 130, -1, -1, -1, + -1, 811, 336, -1, -1, -1, -1, 851, 819, -1, + -1, -1, -1, 824, 932, 933, 934, 935, 936, 937, + 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, + 948, 949, 950, 128, 129, 130, 131, 132, -1, 134, + 135, 136, 310, -1, -1, 31, -1, 381, -1, 859, + -1, 862, 863, -1, 388, -1, 390, -1, 868, 904, + -1, -1, 120, -1, 122, 123, 124, 125, 986, -1, + 128, 129, 130, 131, 132, 920, 134, 135, 136, 130, + 131, 132, -1, 134, 135, 136, -1, -1, -1, -1, + -1, -1, -1, 904, -1, -1, 907, -1, 11, -1, + -1, 912, 912, -1, -1, -1, -1, 951, -1, 920, + -1, 1029, -1, 447, 448, 449, -1, -1, 3, 4, + 5, 6, -1, 8, 9, 10, 971, -1, -1, -1, + -1, -1, 851, -1, -1, -1, -1, 50, -1, 52, + 53, 54, 952, -1, 130, 131, 132, 958, 134, 135, + 136, -1, -1, -1, -1, -1, -1, 967, -1, -1, + 971, 46, -1, 974, 77, 78, 79, 978, 1012, 437, + 1014, -1, 1017, -1, -1, -1, -1, 62, -1, -1, + 93, 94, -1, -1, -1, 70, -1, -1, -1, -1, + -1, -1, -1, 527, 107, -1, 1040, 1041, -1, 112, + -1, 86, 921, 922, 923, 924, 1017, -1, 1019, -1, + 95, -1, 1023, 98, -1, -1, -1, 102, -1, -1, + -1, -1, -1, -1, -1, -1, 1037, -1, -1, -1, + -1, -1, -1, -1, -1, 1046, -1, -1, -1, -1, + 125, -1, -1, -1, 129, 130, -1, -1, 133, 583, + 135, -1, -1, -1, 139, -1, -1, -1, -1, -1, + -1, 595, 596, 597, -1, -1, 600, -1, 602, -1, + 604, 605, 606, -1, -1, -1, -1, 611, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, -1, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + -1, -1, -1, -1, -1, -1, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, -1, -1, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, + 65, -1, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, -1, -1, -1, 82, -1, 84, + -1, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, + 105, 106, 107, -1, 109, 110, 111, 112, 113, -1, + -1, -1, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, -1, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, -1, -1, + -1, -1, -1, -1, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, -1, -1, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, -1, 65, -1, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, -1, -1, -1, 82, -1, 84, -1, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, + 107, -1, 109, 110, 111, 112, 113, -1, -1, -1, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, -1, 139, 140, 3, 4, 5, 6, -1, 8, + 9, 10, 11, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 949, 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, 991, 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, -1, 89, - 90, -1, 92, 93, 94, 95, 96, 97, 98, -1, - 100, 101, 102, 103, 104, -1, -1, -1, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 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, -1, 89, 90, - -1, 92, 93, 94, 95, 96, 97, 98, -1, 100, - 101, 102, 103, 104, -1, -1, -1, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, -1, 130, - 131, 3, 4, 5, 6, -1, 8, 9, -1, -1, - 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, - 19, 20, 45, -1, 47, 48, 49, -1, -1, -1, - 29, -1, -1, 45, -1, 47, 48, 49, 50, 51, - -1, 53, 54, -1, 978, 57, 69, 70, 71, -1, - 62, 63, -1, -1, -1, -1, -1, 69, 70, 71, - -1, 84, 85, -1, 76, -1, -1, -1, -1, -1, - 82, -1, 84, 85, 86, 98, -1, 89, 90, -1, - 103, 93, -1, -1, 96, 97, 98, -1, -1, 101, - -1, 103, 3, 4, 5, 6, -1, 8, 9, -1, - -1, 12, -1, 126, 116, -1, -1, -1, 120, -1, - -1, -1, 124, -1, 126, 114, 115, 116, 130, -1, - 119, 120, 121, 122, 123, -1, 125, 126, 127, -1, - -1, -1, -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, -1, 89, 90, - -1, -1, 93, -1, -1, 96, 97, 98, -1, -1, - 101, -1, 103, 3, 4, 5, 6, -1, 8, 9, - -1, 19, 20, -1, -1, 116, -1, -1, -1, 120, - -1, 29, -1, 124, -1, 126, -1, -1, -1, 130, - -1, -1, 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, -1, -1, -1, -1, 76, -1, -1, -1, - -1, -1, -1, -1, 84, 85, 86, -1, -1, 89, - 90, -1, -1, 93, -1, -1, 96, 97, 98, -1, - -1, 101, -1, 103, 3, 4, 5, 6, -1, 8, - 9, 119, 120, 121, 122, 123, 116, 125, 126, 127, - 120, 121, -1, -1, 124, -1, 126, -1, -1, -1, - 130, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, -1, 125, 126, 127, -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, -1, - 89, 90, -1, -1, 93, -1, -1, 96, 97, 98, - 9, -1, 101, -1, 103, 3, 4, 5, 6, -1, - 8, 9, -1, -1, -1, -1, -1, 116, -1, -1, - -1, 120, -1, -1, -1, 124, -1, 126, -1, -1, - -1, 130, -1, -1, -1, -1, 45, -1, 47, 48, - 49, -1, -1, -1, -1, -1, -1, 45, -1, 47, - 48, 49, -1, -1, -1, 53, 54, -1, -1, -1, - 69, 70, 71, -1, 62, 63, -1, -1, -1, -1, - -1, 69, 70, -1, -1, 84, 85, -1, 76, -1, - -1, -1, -1, -1, -1, -1, 84, 85, 86, 98, - -1, 89, -1, -1, 103, 93, 3, 4, 5, 6, - 98, 8, 9, -1, -1, 103, -1, 3, 4, 5, - 6, -1, 8, 9, -1, -1, -1, -1, 116, -1, - -1, -1, 120, 121, -1, -1, 124, -1, 126, -1, - 128, -1, 130, -1, -1, -1, -1, -1, 45, -1, - 47, 48, 49, -1, -1, -1, 53, 54, -1, 45, - -1, 47, 48, 49, -1, 62, 63, 53, 54, -1, - 19, 20, 69, 70, -1, -1, 62, 63, -1, 76, - 29, -1, -1, 69, 70, -1, -1, 84, 85, 86, - 76, -1, 89, -1, -1, -1, 93, -1, 84, 85, - 86, 98, -1, 89, -1, -1, 103, 93, -1, -1, - -1, 108, 98, -1, -1, -1, -1, 103, -1, 116, - -1, -1, 108, 120, 121, -1, -1, 124, -1, 126, - 116, -1, -1, 130, 120, 121, -1, -1, 124, -1, - 126, -1, -1, -1, 130, 3, 4, 5, 6, -1, - 8, 9, -1, -1, -1, -1, 3, 4, 5, 6, - -1, 8, 9, -1, -1, -1, -1, -1, -1, -1, - 119, 120, 121, 122, 123, -1, 125, 126, 127, -1, - -1, -1, -1, -1, -1, -1, -1, 45, -1, 47, - 48, 49, -1, -1, -1, 53, 54, -1, 45, -1, - 47, 48, 49, -1, 62, 63, 53, 54, -1, -1, - -1, 69, 70, -1, -1, 62, 63, -1, 76, -1, - -1, -1, 69, 70, -1, -1, 84, 85, 86, 76, - -1, 89, -1, -1, -1, 93, -1, 84, 85, 86, - 98, -1, 89, -1, -1, 103, 93, 3, 4, 5, - 6, 98, 8, 9, -1, -1, 103, -1, 116, -1, - -1, 108, 120, 121, -1, -1, 124, -1, 126, 116, - 128, -1, 130, 120, 121, -1, -1, 124, 45, 126, - 47, 48, 49, 130, -1, -1, 53, -1, -1, 45, - -1, 47, 48, 49, -1, -1, 63, 53, 54, -1, - -1, -1, 69, 70, 71, -1, 62, 63, -1, -1, - -1, -1, -1, 69, 70, -1, -1, 84, 85, -1, - 76, -1, -1, -1, -1, -1, -1, -1, 84, 85, - 86, 98, -1, 89, -1, -1, 103, 93, 3, 4, - 5, 6, 98, 8, 9, -1, -1, 103, -1, 3, - 4, 5, 6, -1, 8, -1, -1, -1, -1, 126, - 116, -1, -1, -1, 120, 121, -1, -1, 124, -1, - 126, -1, 128, -1, 130, -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, - 54, -1, -1, -1, 69, 70, -1, -1, 62, -1, - -1, 76, -1, 15, 16, 17, 18, 19, 20, 84, - 85, 86, -1, -1, 89, -1, -1, 29, 93, -1, - -1, -1, 86, 98, -1, 89, -1, -1, 103, 93, - -1, 13, 14, 15, 16, 17, 18, 19, 20, -1, - -1, 116, -1, -1, -1, 120, 121, 29, -1, 124, - -1, 126, 116, -1, -1, 130, 120, 121, -1, -1, - 124, -1, 126, -1, -1, -1, 130, 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, 115, 116, 117, 118, 119, 120, 121, - 122, 123, -1, 125, 126, 127, -1, -1, -1, -1, + -1, -1, -1, -1, 15, 16, 17, 18, 19, 20, + 21, 22, -1, -1, -1, -1, -1, 46, -1, -1, + 31, 50, -1, 52, 53, 54, 55, 56, -1, 58, + -1, -1, 61, 62, -1, -1, 65, -1, -1, -1, + -1, 70, 71, -1, -1, -1, -1, -1, 77, 78, + 79, -1, -1, -1, -1, 84, -1, 86, -1, -1, + -1, -1, 91, -1, 93, 94, 95, -1, -1, 98, + 99, -1, -1, 102, -1, -1, 105, 106, 107, -1, + -1, 110, -1, 112, 3, 4, 5, 6, -1, 8, + 9, 10, 11, -1, -1, 14, 125, -1, -1, -1, + 129, 1015, -1, -1, 133, -1, 135, -1, -1, -1, + 139, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, -1, 134, 135, 136, -1, 46, -1, 140, + -1, 50, -1, 52, 53, 54, 55, 56, -1, 58, + -1, -1, 61, 62, -1, -1, 65, -1, -1, -1, + -1, 70, 71, -1, -1, -1, -1, -1, 77, 78, + 79, -1, -1, -1, -1, 84, -1, 86, -1, -1, + -1, -1, 91, -1, 93, 94, 95, -1, -1, 98, + 99, -1, -1, 102, -1, -1, 105, 106, 107, -1, + -1, 110, -1, 112, 3, 4, 5, 6, -1, 8, + 9, 10, 11, -1, -1, -1, 125, -1, -1, -1, + 129, -1, -1, -1, 133, -1, 135, -1, -1, -1, + 139, -1, -1, -1, 15, 16, 17, 18, 19, 20, + 21, 22, -1, -1, -1, -1, -1, 46, -1, -1, + 31, 50, -1, 52, 53, 54, 55, 56, -1, 58, + -1, -1, 61, 62, -1, -1, 65, -1, -1, -1, + -1, 70, 71, -1, -1, -1, -1, -1, 77, 78, + 79, -1, -1, -1, -1, 84, -1, 86, -1, -1, + -1, -1, -1, -1, 93, 94, 95, -1, -1, 98, + 99, -1, -1, 102, -1, -1, 105, 106, 107, -1, + -1, 110, -1, 112, 3, 4, 5, 6, -1, 8, + 9, 10, 11, -1, -1, -1, 125, -1, -1, -1, + 129, 130, -1, -1, 133, -1, 135, -1, -1, -1, + 139, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, -1, 134, 135, 136, -1, 46, -1, 140, + -1, 50, -1, 52, 53, 54, 55, 56, -1, 58, + -1, -1, 61, 62, -1, -1, 65, -1, -1, -1, + -1, 70, 71, -1, -1, -1, -1, -1, 77, 78, + 79, -1, -1, -1, -1, 84, -1, 86, -1, -1, + -1, -1, 91, -1, 93, 94, 95, -1, -1, 98, + 99, -1, -1, 102, -1, -1, 105, 106, 107, -1, + -1, 110, -1, 112, 3, 4, 5, 6, -1, 8, + 9, 10, 11, -1, -1, -1, 125, -1, -1, -1, + 129, -1, -1, -1, 133, -1, 135, -1, -1, -1, + 139, 17, 18, 19, 20, 21, 22, -1, -1, -1, + 50, -1, 52, 53, 54, 31, -1, 46, -1, -1, + -1, 50, -1, 52, 53, 54, -1, -1, -1, -1, + -1, -1, 61, 62, -1, -1, -1, 77, 78, 79, + -1, 70, 71, -1, -1, -1, -1, -1, 77, 78, + -1, -1, -1, 93, 94, 84, -1, 86, -1, -1, + -1, -1, -1, -1, 93, 94, 95, 107, -1, 98, + -1, -1, 112, 102, 3, 4, 5, 6, 107, 8, + 9, 10, 11, 112, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 135, 125, -1, -1, -1, + 129, 130, -1, -1, 133, -1, 135, -1, 137, 125, + 139, -1, 128, 129, 130, 131, 132, 46, 134, 135, + 136, 50, -1, 52, 53, 54, -1, -1, -1, -1, + -1, -1, 61, 62, -1, -1, -1, -1, -1, 0, + -1, 70, 71, -1, -1, -1, -1, -1, 77, 78, + -1, -1, -1, -1, -1, 84, -1, 86, -1, -1, + -1, -1, -1, -1, 93, 94, 95, -1, -1, 98, + -1, -1, -1, 102, 3, 4, 5, 6, 107, 8, + 9, 10, 11, 112, -1, -1, -1, 48, 117, -1, + -1, -1, -1, -1, -1, -1, 125, -1, -1, -1, + 129, 130, -1, 64, 133, -1, 135, -1, 69, -1, + 139, 72, -1, -1, -1, -1, -1, 46, -1, 80, + 81, 50, 83, 52, 53, 54, -1, 88, 89, 90, + -1, -1, 61, 62, -1, -1, 97, -1, -1, 100, + -1, 70, 71, 104, -1, -1, -1, 108, 77, 78, + -1, -1, -1, -1, -1, 84, -1, 86, 119, -1, + -1, -1, -1, -1, 93, 94, 95, -1, -1, 98, + -1, -1, -1, 102, 3, 4, 5, 6, 107, 8, + 9, 10, 11, 112, -1, -1, -1, 48, 117, -1, + -1, -1, -1, -1, -1, -1, 125, -1, -1, -1, + 129, 130, -1, 64, 133, -1, 135, -1, 69, -1, + 139, 72, -1, -1, -1, -1, -1, 46, -1, 80, + 81, 50, 83, 52, 53, 54, -1, 88, 89, 90, + -1, -1, 61, 62, -1, -1, 97, -1, -1, 100, + -1, 70, 71, 104, -1, -1, -1, 108, 77, 78, + -1, -1, -1, -1, -1, 84, -1, 86, -1, -1, + -1, -1, -1, -1, 93, 94, 95, -1, -1, 98, + -1, -1, -1, 102, 3, 4, 5, 6, 107, 8, + 9, 10, 11, 112, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 125, -1, -1, -1, + 129, 130, -1, -1, 133, -1, 135, -1, 137, -1, + 139, -1, -1, -1, -1, -1, -1, 46, -1, -1, + -1, 50, -1, 52, 53, 54, -1, -1, -1, -1, + -1, -1, 61, 62, -1, -1, -1, -1, -1, -1, + -1, 70, 71, -1, -1, -1, -1, -1, 77, 78, + -1, -1, -1, -1, -1, 84, -1, 86, -1, -1, + -1, -1, -1, -1, 93, 94, 95, -1, -1, 98, + -1, -1, -1, 102, 3, 4, 5, 6, 107, 8, + 9, 10, 11, 112, -1, -1, -1, -1, 117, -1, + -1, -1, -1, -1, -1, -1, 125, -1, -1, -1, + 129, 130, -1, -1, 133, -1, 135, -1, -1, -1, + 139, -1, -1, -1, -1, -1, -1, 46, -1, -1, + -1, 50, -1, 52, 53, 54, -1, -1, -1, -1, + -1, -1, 61, 62, -1, -1, -1, -1, -1, -1, + -1, 70, 71, -1, -1, -1, -1, -1, 77, 78, + -1, -1, -1, -1, -1, 84, -1, 86, -1, -1, + -1, -1, -1, -1, 93, 94, 95, -1, -1, 98, + -1, -1, -1, 102, 3, 4, 5, 6, 107, 8, + 9, 10, 11, 112, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 125, -1, -1, -1, + 129, 130, -1, -1, 133, -1, 135, -1, 137, -1, + 139, -1, -1, -1, -1, -1, -1, 46, -1, -1, + -1, 50, -1, 52, 53, 54, -1, -1, -1, -1, + -1, -1, 61, 62, 19, 20, 21, 22, -1, -1, + -1, 70, 71, -1, -1, -1, 31, -1, 77, 78, + -1, -1, -1, -1, -1, 84, -1, 86, 17, 18, + 19, 20, 21, 22, 93, 94, 95, -1, -1, 98, + -1, -1, 31, 102, 19, 20, 21, 22, 107, -1, + -1, -1, -1, 112, -1, -1, 31, 15, 16, 17, + 18, 19, 20, 21, 22, -1, 125, -1, -1, -1, + 129, 130, 6, 31, 133, -1, 135, -1, -1, -1, + 139, 15, 16, 17, 18, 19, 20, 21, 22, -1, + -1, -1, -1, -1, -1, -1, -1, 31, -1, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 126, 127, 128, 129, 130, 131, 132, -1, 134, + 135, 136, -1, -1, -1, -1, 60, -1, -1, -1, + -1, -1, -1, -1, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, -1, 134, 135, 136, -1, -1, + 84, -1, -1, 128, 129, 130, 131, 132, -1, 134, + 135, 136, -1, -1, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, -1, 134, 135, 136, 10, + 11, -1, 140, -1, 118, -1, -1, 121, -1, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + -1, 135, 136, -1, -1, 139, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 49, 50, + -1, 52, 53, 54, 55, 56, -1, 58, -1, -1, + 61, -1, -1, -1, 65, 66, 67, 68, -1, -1, + 71, -1, -1, -1, -1, 76, 77, 78, 79, 10, + 11, 82, -1, -1, -1, -1, 87, -1, -1, -1, + 91, -1, 93, 94, -1, 96, -1, -1, 99, -1, + -1, -1, -1, -1, 105, 106, 107, -1, 109, 110, + 111, 112, -1, -1, -1, -1, 117, -1, 49, 50, + -1, 52, 53, 54, 55, 56, -1, 58, -1, -1, + 61, -1, 133, -1, 65, 66, 67, 68, -1, -1, + 71, -1, -1, 10, 11, 76, 77, 78, 79, -1, + -1, 82, -1, -1, -1, -1, 87, -1, -1, -1, + 91, -1, 93, 94, -1, 96, -1, -1, 99, -1, + -1, -1, -1, -1, 105, 106, 107, -1, 109, 110, + 111, 112, 49, 50, -1, 52, 53, 54, 55, 56, + -1, 58, -1, -1, 61, -1, -1, -1, 65, 66, + 67, 68, 133, -1, 71, -1, -1, -1, -1, 76, + 77, 78, 79, -1, -1, 82, -1, -1, -1, -1, + 87, -1, -1, -1, 91, -1, 93, 94, -1, 96, + -1, -1, 99, -1, -1, -1, -1, -1, 105, 106, + 107, -1, 109, 110, 111, 112, 15, 16, 17, 18, + 19, 20, 21, 22, -1, -1, -1, -1, -1, -1, + -1, -1, 31, -1, -1, -1, 133, 15, 16, 17, + 18, 19, 20, 21, 22, -1, -1, -1, -1, -1, + -1, -1, -1, 31, 15, 16, 17, 18, 19, 20, + 21, 22, -1, -1, -1, -1, -1, -1, -1, -1, + 31, -1, 15, 16, 17, 18, 19, 20, 21, 22, + -1, -1, -1, -1, -1, -1, -1, -1, 31, -1, + 15, 16, 17, 18, 19, 20, 21, 22, -1, -1, + -1, -1, -1, -1, -1, -1, 31, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 118, + -1, -1, -1, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, -1, 134, 135, 136, 137, -1, + -1, -1, -1, -1, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, -1, 134, 135, 136, 137, + -1, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, -1, 134, 135, 136, 137, 120, -1, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + -1, 134, 135, 136, 119, -1, -1, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, -1, 134, + 135, 136, 15, 16, 17, 18, 19, 20, 21, 22, + -1, -1, -1, -1, -1, -1, -1, -1, 31, 15, + 16, 17, 18, 19, 20, 21, 22, -1, -1, -1, + -1, -1, -1, -1, -1, 31, 15, 16, 17, 18, + 19, 20, 21, 22, -1, -1, -1, -1, -1, -1, + -1, -1, 31, 15, 16, 17, 18, 19, 20, 21, + 22, -1, -1, -1, -1, -1, -1, -1, -1, 31, + 15, 16, 17, 18, 19, 20, 21, 22, -1, -1, + -1, -1, -1, -1, -1, -1, 31, 16, 17, 18, + 19, 20, 21, 22, -1, -1, -1, -1, -1, -1, + -1, -1, 31, -1, -1, 118, -1, -1, -1, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + -1, 134, 135, 136, 120, -1, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, -1, 134, 135, + 136, -1, -1, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, -1, 134, 135, 136, -1, -1, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, -1, 134, 135, 136, -1, -1, 122, 123, 124, + 125, -1, -1, 128, 129, 130, 131, 132, -1, 134, + 135, 136, -1, -1, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, -1, 134, 135, 136, 16, 17, + 18, 19, 20, 21, 22, -1, -1, -1, -1, -1, + -1, -1, -1, 31, 17, 18, 19, 20, 21, 22, + -1, -1, -1, 50, -1, 52, 53, 54, 31, 17, + 18, 19, 20, 21, 22, -1, -1, -1, -1, -1, + -1, -1, -1, 31, 17, 18, 19, 20, 21, 22, + 77, 78, 79, -1, -1, -1, -1, -1, 31, 17, + 18, 19, 20, 21, 22, -1, 93, 94, -1, -1, + -1, -1, -1, 31, 17, 18, 19, 20, 21, 22, + 107, -1, -1, -1, -1, 112, -1, -1, 31, 17, + 18, 19, 20, 21, 22, -1, -1, -1, -1, -1, + -1, -1, -1, 31, -1, 123, 124, 125, 135, -1, + 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, + -1, 124, 125, 126, 127, 128, 129, 130, 131, 132, + -1, 134, 135, 136, -1, -1, -1, 125, 126, 127, + 128, 129, 130, 131, 132, -1, 134, 135, 136, -1, + 123, 124, 125, -1, -1, 128, 129, 130, 131, 132, + -1, 134, 135, 136, -1, -1, -1, -1, 126, 127, + 128, 129, 130, 131, 132, -1, 134, 135, 136, 10, + 11, 124, 125, -1, -1, 128, 129, 130, 131, 132, + -1, 134, 135, 136, -1, -1, -1, -1, -1, -1, + 128, 129, 130, 131, 132, -1, 134, 135, 136, 50, + -1, 52, 53, 54, -1, -1, 10, 11, -1, 50, + -1, 52, 53, 54, 55, 56, -1, -1, -1, -1, + 61, -1, -1, -1, -1, -1, 77, 78, 79, -1, + 71, -1, -1, -1, -1, -1, 77, 78, 79, -1, + -1, -1, 93, 94, -1, -1, 50, -1, 52, 53, + 54, -1, 93, 94, -1, 11, 107, 61, -1, -1, + -1, 112, -1, -1, 105, -1, 107, 71, -1, 110, + -1, 112, -1, 77, 78, 79, -1, -1, -1, -1, + -1, -1, -1, 50, 135, 52, 53, 54, -1, 93, + 94, -1, -1, -1, 50, -1, 52, 53, 54, 55, + 56, -1, 58, 107, 71, 61, 110, -1, 112, 65, + 77, 78, 79, -1, -1, 71, 11, -1, -1, -1, + -1, 77, 78, 79, -1, -1, 93, 94, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 93, 94, -1, + 107, -1, -1, 99, 50, 112, 52, 53, 54, 105, + 106, 107, -1, 11, 110, 50, 112, 52, 53, 54, + 55, 56, -1, 58, -1, -1, 61, -1, -1, -1, + 65, 77, 78, 79, -1, -1, 71, -1, -1, -1, + -1, -1, 77, 78, 79, -1, -1, 93, 94, -1, + -1, -1, 50, -1, 52, 53, 54, 55, 93, 94, + 58, 107, -1, 61, 99, -1, 112, 65, -1, -1, + 105, 106, 107, 71, 11, 110, -1, 112, -1, 77, + 78, 79, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 91, -1, 93, 94, -1, -1, -1, + -1, 99, -1, -1, -1, -1, -1, 105, 106, 107, + -1, 11, 110, 50, 112, 52, 53, 54, 55, -1, + -1, 58, -1, -1, 61, -1, -1, -1, 65, -1, + -1, -1, -1, -1, 71, -1, -1, -1, -1, -1, + 77, 78, 79, -1, -1, -1, -1, -1, -1, -1, + 50, -1, 52, 53, 54, 55, 93, 94, -1, -1, + -1, 61, 99, -1, -1, 65, -1, -1, 105, 106, + 107, 71, -1, 110, -1, 112, 48, 77, 78, 79, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, -1, 125, 126, 127, -1, -1, -1, 131, - 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, - -1, -1, -1, -1, -1, -1, 29, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, -1, 125, - 126, 127, -1, -1, -1, 131, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, -1, 125, 126, - 127, -1, -1, -1, 131, 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, -1, -1, - -1, -1, -1, -1, 52, -1, 109, -1, -1, -1, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, -1, 125, 126, 127, 128, -1, -1, 76, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 8, 9, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 109, -1, -1, 112, -1, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, -1, 126, 127, - 44, 45, 130, 47, 48, 49, 50, 51, -1, 53, - -1, -1, -1, 57, 58, 59, 60, -1, -1, 63, - -1, -1, -1, -1, 68, 69, 70, 71, -1, -1, - 74, -1, 8, 9, 78, -1, -1, -1, 82, -1, - 84, 85, -1, 87, -1, -1, 90, -1, -1, -1, - -1, -1, 96, 97, 98, -1, 100, 101, 102, 103, - -1, -1, -1, -1, 108, -1, -1, -1, 44, 45, - -1, 47, 48, 49, 50, 51, -1, 53, -1, -1, - 124, 57, 58, 59, 60, -1, -1, 63, -1, -1, - -1, -1, 68, 69, 70, 71, -1, -1, 74, -1, - 8, 9, 78, -1, -1, -1, 82, -1, 84, 85, - -1, 87, -1, -1, 90, -1, -1, -1, -1, -1, - 96, 97, 98, -1, 100, 101, 102, 103, 13, 14, - 15, 16, 17, 18, 19, 20, 44, 45, -1, 47, - 48, 49, 50, 51, 29, 53, -1, -1, 124, 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, -1, 90, -1, -1, -1, -1, -1, 96, 97, - 98, -1, 100, 101, 102, 103, 13, 14, 15, 16, - 17, 18, 19, 20, -1, -1, -1, -1, -1, -1, - -1, -1, 29, -1, -1, -1, 124, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 111, -1, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, -1, - 125, 126, 127, 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, -1, 13, 14, - 15, 16, 17, 18, 19, 20, -1, -1, -1, -1, - -1, -1, -1, 110, 29, -1, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, -1, 125, 126, - 127, 13, 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, 109, - -1, -1, 29, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, -1, 125, 126, 127, 111, -1, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, -1, 125, 126, 127, -1, -1, -1, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, -1, - 125, 126, 127, 15, 16, 17, 18, 19, 20, -1, - -1, -1, -1, -1, -1, -1, -1, 29, -1, -1, - -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, -1, 125, 126, 127, -1, -1, -1, 116, - 117, 118, 119, 120, 121, 122, 123, -1, 125, 126, - 127, 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, -1, -1, - -1, -1, 114, 115, 116, -1, -1, 119, 120, 121, - 122, 123, -1, 125, 126, 127, 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, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 117, 118, 119, 120, 121, 122, 123, - -1, 125, 126, 127, -1, -1, 115, 116, -1, 0, - 119, 120, 121, 122, 123, -1, 125, 126, 127, -1, - -1, -1, 116, -1, -1, 119, 120, 121, 122, 123, - -1, 125, 126, 127, 17, 18, 19, 20, -1, -1, - -1, -1, -1, -1, -1, -1, 29, -1, -1, -1, - -1, -1, 43, 45, -1, 47, 48, 49, -1, -1, - 119, 120, 121, 122, 123, 56, 125, 126, 127, -1, - 61, -1, -1, 64, -1, -1, -1, 69, 70, 71, - -1, 72, 73, -1, 75, -1, 8, 9, 79, 80, - 81, -1, 84, 85, -1, -1, -1, 88, -1, -1, - 91, -1, -1, -1, 95, -1, 98, -1, 99, -1, - -1, 103, -1, -1, -1, -1, -1, -1, -1, 110, - -1, -1, -1, 45, -1, 47, 48, 49, 50, 51, - -1, 53, -1, -1, 126, -1, 119, 120, 121, 122, - 123, 63, 125, 126, 127, -1, 9, 69, 70, 71, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 84, 85, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 96, -1, 98, -1, -1, 101, - -1, 103, 45, -1, 47, 48, 49, 50, 51, -1, - 53, -1, -1, -1, 57, -1, -1, -1, -1, -1, - 63, -1, -1, 9, -1, -1, 69, 70, 71, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 84, 85, -1, -1, -1, -1, 90, 45, -1, - 47, 48, 49, 96, 97, 98, -1, -1, 101, 45, - 103, 47, 48, 49, 50, 51, -1, 53, -1, -1, - -1, 57, 69, 70, 71, -1, -1, 63, -1, -1, - 9, -1, -1, 69, 70, 71, -1, 84, 85, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, - -1, 98, -1, -1, 90, -1, 103, -1, -1, -1, - 96, 97, 98, -1, -1, 101, 45, 103, 47, 48, - 49, 50, -1, -1, 53, -1, -1, -1, 57, 126, - -1, -1, -1, -1, 63, -1, -1, 9, -1, -1, - 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 82, -1, 84, 85, -1, -1, -1, - -1, 90, 45, -1, 47, 48, 49, 96, 97, 98, - 53, -1, 101, 45, 103, 47, 48, 49, 50, -1, - 63, 53, -1, -1, -1, 57, 69, 70, 71, -1, - -1, 63, -1, -1, 9, -1, -1, 69, 70, 71, - -1, 84, 85, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 84, 85, -1, 98, -1, -1, 90, 45, - 103, 47, 48, 49, 96, 97, 98, -1, -1, 101, - 45, 103, 47, 48, 49, 50, -1, 63, 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, -1, 43, -1, -1, 84, - 85, -1, 98, -1, -1, 90, -1, 103, -1, 56, - -1, 96, 97, 98, 61, -1, 101, 64, 103, -1, - -1, -1, -1, -1, 43, 72, 73, -1, 75, -1, - -1, -1, 79, 80, 81, -1, -1, 56, -1, -1, - -1, 88, 61, -1, 91, 64, -1, -1, 95, -1, - -1, -1, 99, 72, 73, -1, 75, 43, -1, -1, - 79, 80, 81, 110, -1, -1, -1, -1, -1, 88, - 56, -1, 91, -1, -1, 61, 95, -1, 64, -1, - 99, -1, 129, -1, -1, 43, 72, 73, -1, 75, - -1, 110, -1, 79, 80, 81, -1, -1, 56, -1, - -1, -1, 88, 61, -1, 91, 64, -1, -1, 95, - 129, -1, -1, 99, 72, 73, -1, 75, 43, -1, - -1, 79, 80, 81, 110, -1, -1, -1, -1, -1, - 88, 56, -1, 91, -1, -1, 61, 95, -1, 64, - -1, 99, -1, 129, -1, -1, -1, 72, 73, -1, - 75, -1, 110, -1, 79, 80, 81, 45, -1, 47, - 48, 49, -1, 88, -1, -1, 91, -1, -1, -1, - 95, 129, -1, -1, 99, -1, -1, -1, -1, -1, - -1, 69, 70, 71, -1, 110, -1, 43, -1, -1, - -1, -1, -1, -1, -1, -1, 84, 85, -1, -1, - 56, -1, -1, -1, 129, 61, -1, -1, 64, -1, - 98, -1, -1, -1, -1, 103, 72, 73, -1, 75, - -1, -1, -1, 79, 80, 81, -1, -1, -1, -1, - -1, -1, 88, -1, -1, 91, -1, -1, -1, 95, - -1, -1, -1, 99 + -1, -1, 64, 93, 94, -1, -1, 69, -1, 99, + 72, -1, -1, -1, -1, 105, 106, 107, 80, 81, + 110, 83, 112, 48, -1, -1, 88, 89, 90, -1, + -1, -1, -1, -1, -1, 97, -1, -1, 100, 64, + -1, -1, 104, -1, 69, -1, 108, 72, -1, -1, + -1, -1, -1, -1, -1, 80, 81, 119, 83, -1, + -1, -1, -1, 88, 89, 90, 48, -1, -1, -1, + -1, -1, 97, -1, -1, 100, 138, -1, -1, 104, + -1, -1, 64, 108, -1, -1, -1, 69, -1, -1, + 72, -1, -1, -1, 119, -1, -1, -1, 80, 81, + -1, 83, -1, 48, -1, -1, 88, 89, 90, -1, + -1, -1, -1, 138, -1, 97, -1, -1, 100, 64, + -1, -1, 104, -1, 69, -1, 108, 72, -1, -1, + -1, -1, -1, -1, -1, 80, 81, 119, 83, -1, + -1, -1, -1, 88, 89, 90, 48, -1, -1, -1, + -1, -1, 97, -1, -1, 100, 138, -1, -1, 104, + -1, -1, 64, 108, -1, -1, -1, 69, -1, -1, + 72, -1, -1, -1, 119, -1, -1, -1, 80, 81, + 50, 83, 52, 53, 54, -1, 88, 89, 90, -1, + -1, 61, -1, 138, -1, 97, -1, -1, 100, -1, + -1, 71, 104, -1, -1, -1, 108, 77, 78, 79, + -1, 50, -1, 52, 53, 54, -1, 119, -1, -1, + -1, -1, 61, 93, 94, -1, -1, -1, -1, -1, + -1, -1, 71, -1, -1, -1, 138, 107, 77, 78, + 79, -1, 112, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 93, 94, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 135, -1, -1, 107, -1, + -1, -1, -1, 112 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 105, 106, 107, 133, 134, 224, 3, 4, 5, - 6, 8, 9, 45, 47, 48, 49, 53, 54, 62, - 63, 69, 70, 76, 84, 85, 86, 89, 93, 98, - 103, 116, 120, 121, 124, 126, 130, 217, 218, 223, - 9, 45, 47, 48, 49, 50, 51, 53, 57, 63, - 69, 70, 71, 84, 85, 90, 96, 97, 98, 101, - 103, 184, 187, 188, 190, 195, 196, 200, 201, 205, - 206, 207, 208, 0, 43, 56, 61, 64, 72, 73, - 75, 79, 80, 81, 88, 91, 95, 99, 110, 137, - 139, 140, 142, 143, 144, 165, 202, 204, 224, 126, - 126, 126, 126, 126, 126, 117, 126, 126, 126, 9, - 96, 186, 200, 201, 205, 126, 126, 126, 117, 126, - 126, 217, 217, 217, 217, 9, 45, 47, 48, 49, - 53, 63, 69, 70, 84, 85, 98, 103, 187, 215, - 217, 217, 13, 14, 15, 16, 17, 18, 19, 20, - 29, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 125, 126, 127, 6, 184, 53, 63, 70, - 206, 70, 206, 206, 8, 9, 222, 206, 10, 14, - 51, 102, 116, 121, 126, 183, 224, 108, 111, 222, - 108, 222, 111, 141, 126, 126, 108, 222, 111, 111, - 111, 126, 142, 143, 166, 142, 149, 75, 222, 8, - 9, 44, 51, 58, 59, 60, 68, 74, 78, 82, - 87, 96, 100, 102, 108, 124, 154, 185, 188, 190, - 195, 200, 201, 205, 214, 215, 224, 214, 214, 214, - 214, 214, 187, 214, 214, 214, 222, 126, 222, 222, - 214, 214, 187, 187, 214, 214, 128, 109, 128, 217, - 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, - 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, - 128, 215, 217, 183, 63, 121, 183, 183, 183, 183, - 183, 183, 127, 198, 199, 224, 9, 197, 206, 111, - 189, 191, 139, 8, 222, 134, 108, 217, 117, 51, - 154, 185, 222, 126, 126, 184, 223, 51, 184, 222, - 138, 222, 108, 110, 111, 112, 177, 110, 145, 222, - 222, 128, 128, 128, 128, 128, 128, 118, 128, 128, - 128, 214, 128, 128, 128, 118, 128, 128, 217, 217, - 111, 128, 131, 183, 128, 213, 217, 224, 222, 129, - 197, 134, 111, 192, 193, 224, 109, 109, 129, 203, - 109, 128, 8, 9, 50, 51, 96, 167, 168, 169, - 170, 205, 224, 184, 177, 150, 155, 10, 121, 156, - 146, 184, 8, 9, 10, 14, 51, 102, 116, 121, - 181, 224, 134, 126, 209, 210, 135, 136, 222, 108, - 217, 10, 14, 51, 78, 102, 116, 121, 126, 147, - 171, 222, 111, 126, 128, 126, 217, 126, 131, 109, - 112, 129, 79, 80, 81, 100, 194, 108, 109, 8, - 222, 134, 223, 222, 170, 222, 118, 109, 8, 9, - 10, 14, 51, 102, 116, 121, 126, 182, 224, 151, - 152, 171, 3, 4, 5, 8, 12, 51, 54, 62, - 76, 82, 86, 89, 93, 116, 120, 124, 126, 130, - 173, 174, 180, 184, 219, 220, 223, 224, 121, 171, - 173, 148, 171, 181, 121, 181, 181, 181, 181, 181, - 126, 127, 129, 157, 129, 211, 224, 108, 109, 126, - 108, 178, 179, 217, 224, 110, 121, 171, 171, 13, - 14, 15, 16, 17, 18, 19, 20, 29, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 52, 76, 109, 112, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 126, 127, 130, 163, 171, - 171, 171, 171, 111, 112, 126, 127, 176, 177, 224, - 197, 215, 215, 173, 217, 96, 100, 201, 221, 222, - 100, 221, 100, 221, 79, 80, 81, 134, 194, 109, - 128, 109, 129, 128, 112, 182, 112, 143, 164, 165, - 169, 121, 182, 182, 182, 182, 182, 182, 112, 127, - 175, 224, 153, 171, 176, 177, 182, 82, 184, 117, - 186, 180, 126, 117, 217, 217, 217, 187, 215, 217, - 128, 12, 109, 182, 13, 14, 15, 16, 17, 18, - 19, 20, 29, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 125, 126, 127, 171, 111, 128, - 128, 176, 177, 126, 181, 160, 213, 173, 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, 89, 90, 92, - 93, 94, 95, 96, 97, 98, 100, 101, 102, 103, - 104, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 130, 131, 212, 209, 136, 214, 178, 129, - 109, 171, 128, 131, 128, 4, 217, 172, 213, 109, - 128, 128, 128, 109, 222, 221, 222, 221, 221, 221, - 221, 221, 129, 8, 110, 222, 187, 175, 187, 182, - 128, 54, 86, 89, 116, 120, 121, 124, 126, 130, - 216, 218, 213, 176, 177, 109, 112, 176, 184, 182, - 187, 126, 187, 187, 128, 128, 51, 162, 224, 12, - 180, 176, 217, 217, 217, 217, 217, 217, 217, 217, - 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, - 217, 217, 217, 128, 215, 217, 128, 126, 162, 109, - 161, 173, 131, 128, 211, 129, 128, 129, 108, 217, - 173, 131, 147, 162, 128, 128, 126, 117, 126, 117, - 216, 216, 216, 216, 187, 215, 216, 13, 14, 15, - 16, 17, 18, 19, 20, 29, 113, 114, 115, 116, - 119, 120, 121, 122, 123, 125, 126, 127, 131, 109, - 152, 217, 182, 176, 118, 214, 128, 118, 217, 77, - 92, 111, 128, 131, 126, 158, 148, 173, 128, 162, - 129, 178, 128, 110, 110, 173, 187, 187, 187, 128, - 128, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 128, 215, 217, 153, 176, 126, 128, 126, 126, 217, - 159, 173, 128, 162, 129, 162, 128, 118, 128, 118, - 216, 111, 128, 131, 215, 215, 128, 222, 173, 128, - 162, 162, 126, 126, 216, 128, 128, 128, 128, 162, - 215, 215, 162, 128, 128 + 0, 114, 115, 116, 142, 143, 233, 3, 4, 5, + 6, 8, 9, 10, 11, 46, 50, 52, 53, 54, + 61, 62, 70, 71, 77, 78, 84, 86, 93, 94, + 95, 98, 102, 107, 112, 125, 129, 130, 133, 135, + 139, 226, 227, 232, 11, 50, 52, 53, 54, 55, + 56, 58, 61, 65, 71, 77, 78, 79, 93, 94, + 99, 105, 106, 107, 110, 112, 193, 196, 197, 199, + 204, 205, 209, 210, 214, 215, 216, 217, 0, 48, + 64, 69, 72, 80, 81, 83, 88, 89, 90, 97, + 100, 104, 108, 119, 146, 148, 149, 151, 152, 153, + 174, 211, 213, 233, 135, 135, 135, 135, 135, 135, + 135, 126, 135, 135, 135, 11, 105, 195, 209, 210, + 214, 135, 135, 135, 126, 135, 135, 226, 226, 226, + 226, 11, 50, 52, 53, 54, 61, 71, 77, 78, + 93, 94, 107, 112, 196, 224, 226, 226, 15, 16, + 17, 18, 19, 20, 21, 22, 31, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 134, 135, + 136, 6, 8, 193, 135, 61, 71, 78, 215, 78, + 215, 215, 10, 11, 231, 215, 12, 16, 56, 111, + 125, 130, 135, 192, 233, 117, 120, 231, 117, 231, + 120, 150, 135, 135, 117, 231, 120, 120, 120, 135, + 151, 152, 175, 151, 158, 83, 231, 10, 11, 49, + 56, 58, 66, 67, 68, 76, 82, 87, 91, 96, + 105, 109, 111, 117, 133, 163, 194, 197, 199, 204, + 209, 210, 214, 223, 224, 233, 196, 223, 223, 223, + 223, 223, 196, 223, 223, 223, 231, 135, 231, 231, + 223, 223, 196, 196, 223, 223, 137, 118, 137, 226, + 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, + 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, + 137, 224, 226, 192, 226, 71, 130, 192, 192, 192, + 192, 192, 192, 136, 207, 208, 233, 11, 206, 215, + 120, 198, 200, 148, 10, 231, 143, 117, 226, 126, + 56, 163, 194, 231, 135, 135, 193, 135, 6, 56, + 193, 231, 147, 231, 117, 119, 120, 121, 186, 119, + 154, 231, 231, 137, 137, 137, 137, 137, 137, 137, + 127, 137, 137, 137, 223, 137, 137, 137, 127, 137, + 137, 226, 226, 120, 137, 140, 137, 192, 137, 222, + 226, 233, 231, 138, 206, 143, 120, 201, 202, 233, + 118, 118, 138, 212, 118, 137, 10, 11, 55, 56, + 105, 176, 177, 178, 179, 214, 233, 193, 186, 159, + 164, 12, 130, 165, 155, 226, 193, 10, 11, 12, + 16, 56, 111, 125, 130, 190, 233, 143, 135, 218, + 219, 144, 145, 231, 117, 226, 12, 16, 56, 87, + 111, 125, 130, 135, 156, 180, 231, 120, 135, 137, + 135, 226, 135, 140, 118, 121, 138, 88, 89, 90, + 109, 203, 117, 118, 10, 231, 143, 232, 231, 179, + 231, 127, 118, 10, 11, 12, 16, 56, 111, 125, + 130, 135, 191, 233, 160, 161, 180, 3, 4, 5, + 9, 10, 14, 46, 56, 62, 70, 84, 86, 91, + 95, 98, 102, 125, 129, 133, 135, 139, 182, 183, + 189, 193, 228, 229, 232, 233, 130, 180, 182, 157, + 180, 137, 190, 130, 190, 190, 190, 190, 190, 135, + 136, 138, 166, 138, 220, 233, 117, 118, 135, 117, + 187, 188, 226, 233, 119, 130, 180, 180, 6, 15, + 16, 17, 18, 19, 20, 21, 22, 31, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 60, 84, 118, 121, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 135, 136, 139, 172, 180, + 180, 180, 180, 120, 121, 135, 136, 185, 186, 233, + 206, 224, 224, 182, 226, 105, 109, 210, 230, 231, + 109, 230, 109, 230, 88, 89, 90, 143, 203, 118, + 137, 118, 138, 137, 121, 191, 121, 152, 173, 174, + 178, 130, 191, 191, 191, 191, 191, 191, 121, 136, + 184, 233, 162, 180, 185, 186, 191, 135, 91, 193, + 126, 195, 189, 135, 126, 226, 226, 226, 196, 224, + 226, 137, 14, 118, 191, 15, 16, 17, 18, 19, + 20, 21, 22, 31, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 134, 135, 136, 180, 120, + 137, 137, 185, 186, 135, 190, 169, 222, 182, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 65, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 82, 84, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 101, 102, 103, 104, 105, 106, 107, 109, 110, 111, + 112, 113, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 139, 140, 221, 218, 145, 223, 187, + 138, 118, 180, 10, 137, 140, 137, 4, 226, 181, + 222, 118, 137, 137, 137, 118, 231, 230, 231, 230, + 230, 230, 230, 230, 138, 10, 119, 231, 196, 184, + 196, 191, 137, 46, 62, 95, 98, 125, 129, 130, + 133, 135, 139, 225, 227, 222, 185, 186, 118, 121, + 185, 196, 193, 191, 196, 135, 196, 196, 137, 137, + 56, 171, 233, 14, 189, 185, 226, 226, 226, 226, + 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, + 226, 226, 226, 226, 226, 226, 226, 137, 224, 226, + 137, 135, 171, 118, 170, 182, 140, 137, 220, 138, + 137, 138, 117, 226, 182, 140, 156, 171, 137, 137, + 135, 135, 126, 135, 126, 225, 225, 225, 225, 196, + 224, 225, 15, 16, 17, 18, 19, 20, 21, 22, + 31, 122, 123, 124, 125, 128, 129, 130, 131, 132, + 134, 135, 136, 140, 118, 161, 226, 137, 191, 185, + 127, 223, 137, 127, 226, 85, 101, 120, 137, 140, + 135, 167, 157, 182, 137, 171, 138, 187, 137, 119, + 119, 182, 196, 196, 196, 196, 137, 137, 225, 225, + 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, + 225, 225, 225, 225, 225, 225, 225, 137, 224, 226, + 162, 185, 135, 137, 135, 135, 226, 168, 182, 137, + 171, 138, 171, 137, 137, 127, 137, 127, 225, 120, + 137, 140, 224, 224, 137, 231, 182, 137, 171, 171, + 135, 135, 225, 137, 137, 137, 137, 171, 224, 224, + 171, 137, 137 }; #define yyerrok (yyerrstatus = 0) @@ -3411,7 +3509,7 @@ yyreduce: { case 3: /* Line 1792 of yacc.c */ -#line 398 "dtool/src/cppparser/cppBison.yxx" +#line 406 "dtool/src/cppparser/cppBison.yxx" { current_expr = (yyvsp[(2) - (2)].u.expr); } @@ -3419,7 +3517,7 @@ yyreduce: case 4: /* Line 1792 of yacc.c */ -#line 402 "dtool/src/cppparser/cppBison.yxx" +#line 410 "dtool/src/cppparser/cppBison.yxx" { current_type = (yyvsp[(2) - (2)].u.type); } @@ -3427,7 +3525,7 @@ yyreduce: case 10: /* Line 1792 of yacc.c */ -#line 420 "dtool/src/cppparser/cppBison.yxx" +#line 428 "dtool/src/cppparser/cppBison.yxx" { delete (yyvsp[(3) - (4)].u.expr); } @@ -3435,7 +3533,7 @@ yyreduce: case 11: /* Line 1792 of yacc.c */ -#line 432 "dtool/src/cppparser/cppBison.yxx" +#line 440 "dtool/src/cppparser/cppBison.yxx" { push_storage_class((current_storage_class & ~CPPInstance::SC_c_binding) | ((yyvsp[(1) - (2)].u.integer) & CPPInstance::SC_c_binding)); @@ -3444,7 +3542,7 @@ yyreduce: case 12: /* Line 1792 of yacc.c */ -#line 437 "dtool/src/cppparser/cppBison.yxx" +#line 445 "dtool/src/cppparser/cppBison.yxx" { pop_storage_class(); } @@ -3452,7 +3550,7 @@ yyreduce: case 20: /* Line 1792 of yacc.c */ -#line 451 "dtool/src/cppparser/cppBison.yxx" +#line 459 "dtool/src/cppparser/cppBison.yxx" { if (publish_nest_level != 0) { yyerror("Unclosed __begin_publish", publish_loc); @@ -3469,7 +3567,7 @@ yyreduce: case 21: /* Line 1792 of yacc.c */ -#line 464 "dtool/src/cppparser/cppBison.yxx" +#line 472 "dtool/src/cppparser/cppBison.yxx" { if (publish_nest_level != 1) { yyerror("Unmatched __end_publish", (yylsp[(1) - (1)])); @@ -3482,7 +3580,7 @@ yyreduce: case 22: /* Line 1792 of yacc.c */ -#line 473 "dtool/src/cppparser/cppBison.yxx" +#line 481 "dtool/src/cppparser/cppBison.yxx" { current_scope->set_current_vis(V_published); } @@ -3490,7 +3588,7 @@ yyreduce: case 23: /* Line 1792 of yacc.c */ -#line 477 "dtool/src/cppparser/cppBison.yxx" +#line 485 "dtool/src/cppparser/cppBison.yxx" { if (publish_nest_level > 0) { current_scope->set_current_vis(V_published); @@ -3502,7 +3600,7 @@ yyreduce: case 24: /* Line 1792 of yacc.c */ -#line 485 "dtool/src/cppparser/cppBison.yxx" +#line 493 "dtool/src/cppparser/cppBison.yxx" { current_scope->set_current_vis(V_protected); } @@ -3510,7 +3608,7 @@ yyreduce: case 25: /* Line 1792 of yacc.c */ -#line 489 "dtool/src/cppparser/cppBison.yxx" +#line 497 "dtool/src/cppparser/cppBison.yxx" { current_scope->set_current_vis(V_private); } @@ -3518,7 +3616,7 @@ yyreduce: case 26: /* Line 1792 of yacc.c */ -#line 493 "dtool/src/cppparser/cppBison.yxx" +#line 501 "dtool/src/cppparser/cppBison.yxx" { CPPDeclaration *getter = (yyvsp[(5) - (7)].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); @@ -3533,7 +3631,7 @@ yyreduce: case 27: /* Line 1792 of yacc.c */ -#line 504 "dtool/src/cppparser/cppBison.yxx" +#line 512 "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) { @@ -3558,7 +3656,7 @@ yyreduce: case 28: /* Line 1792 of yacc.c */ -#line 525 "dtool/src/cppparser/cppBison.yxx" +#line 533 "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)])); @@ -3567,20 +3665,22 @@ yyreduce: case 29: /* Line 1792 of yacc.c */ -#line 530 "dtool/src/cppparser/cppBison.yxx" +#line 538 "dtool/src/cppparser/cppBison.yxx" { CPPExpression::Result result = (yyvsp[(3) - (6)].u.expr)->evaluate(); if (result._type == CPPExpression::RT_error) { yywarning("static_assert requires a constant expression", (yylsp[(3) - (6)])); } else if (!result.as_boolean()) { - yywarning("static_assert failed: " + (yyvsp[(5) - (6)].str), (yylsp[(3) - (6)])); + stringstream str; + str << *(yyvsp[(5) - (6)].u.expr); + yywarning("static_assert failed: " + str.str(), (yylsp[(3) - (6)])); } } break; case 30: /* Line 1792 of yacc.c */ -#line 539 "dtool/src/cppparser/cppBison.yxx" +#line 549 "dtool/src/cppparser/cppBison.yxx" { // This alternative version of static_assert was introduced in C++17. CPPExpression::Result result = (yyvsp[(3) - (4)].u.expr)->evaluate(); @@ -3594,7 +3694,7 @@ yyreduce: case 31: /* Line 1792 of yacc.c */ -#line 552 "dtool/src/cppparser/cppBison.yxx" +#line 562 "dtool/src/cppparser/cppBison.yxx" { CPPScope *new_scope = new CPPScope(current_scope, CPPNameComponent("temp"), V_public); @@ -3604,7 +3704,7 @@ yyreduce: case 32: /* Line 1792 of yacc.c */ -#line 558 "dtool/src/cppparser/cppBison.yxx" +#line 568 "dtool/src/cppparser/cppBison.yxx" { delete current_scope; pop_scope(); @@ -3613,7 +3713,7 @@ yyreduce: case 33: /* Line 1792 of yacc.c */ -#line 567 "dtool/src/cppparser/cppBison.yxx" +#line 577 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = 0; } @@ -3621,7 +3721,7 @@ yyreduce: case 34: /* Line 1792 of yacc.c */ -#line 571 "dtool/src/cppparser/cppBison.yxx" +#line 581 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[(1) - (2)].u.integer) | (int)CPPInstance::SC_extern; } @@ -3629,7 +3729,7 @@ yyreduce: case 35: /* Line 1792 of yacc.c */ -#line 575 "dtool/src/cppparser/cppBison.yxx" +#line 585 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[(1) - (3)].u.integer) | (int)CPPInstance::SC_extern; if ((yyvsp[(3) - (3)].str) == "C") { @@ -3644,7 +3744,7 @@ yyreduce: case 36: /* Line 1792 of yacc.c */ -#line 586 "dtool/src/cppparser/cppBison.yxx" +#line 596 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[(1) - (2)].u.integer) | (int)CPPInstance::SC_static; } @@ -3652,7 +3752,7 @@ yyreduce: case 37: /* Line 1792 of yacc.c */ -#line 590 "dtool/src/cppparser/cppBison.yxx" +#line 600 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[(1) - (2)].u.integer) | (int)CPPInstance::SC_inline; } @@ -3660,7 +3760,7 @@ yyreduce: case 38: /* Line 1792 of yacc.c */ -#line 594 "dtool/src/cppparser/cppBison.yxx" +#line 604 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[(1) - (2)].u.integer) | (int)CPPInstance::SC_virtual; } @@ -3668,7 +3768,7 @@ yyreduce: case 39: /* Line 1792 of yacc.c */ -#line 598 "dtool/src/cppparser/cppBison.yxx" +#line 608 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[(1) - (2)].u.integer) | (int)CPPInstance::SC_explicit; } @@ -3676,7 +3776,7 @@ yyreduce: case 40: /* Line 1792 of yacc.c */ -#line 602 "dtool/src/cppparser/cppBison.yxx" +#line 612 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[(1) - (2)].u.integer) | (int)CPPInstance::SC_volatile; } @@ -3684,7 +3784,7 @@ yyreduce: case 41: /* Line 1792 of yacc.c */ -#line 606 "dtool/src/cppparser/cppBison.yxx" +#line 616 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[(1) - (2)].u.integer) | (int)CPPInstance::SC_mutable; } @@ -3692,7 +3792,7 @@ yyreduce: case 42: /* Line 1792 of yacc.c */ -#line 610 "dtool/src/cppparser/cppBison.yxx" +#line 620 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[(1) - (2)].u.integer) | (int)CPPInstance::SC_register; } @@ -3700,7 +3800,7 @@ yyreduce: case 43: /* Line 1792 of yacc.c */ -#line 614 "dtool/src/cppparser/cppBison.yxx" +#line 624 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[(1) - (2)].u.integer) | (int)CPPInstance::SC_blocking; } @@ -3708,7 +3808,7 @@ yyreduce: case 44: /* Line 1792 of yacc.c */ -#line 618 "dtool/src/cppparser/cppBison.yxx" +#line 628 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[(1) - (2)].u.integer) | (int)CPPInstance::SC_extension; } @@ -3716,7 +3816,7 @@ yyreduce: case 45: /* Line 1792 of yacc.c */ -#line 625 "dtool/src/cppparser/cppBison.yxx" +#line 635 "dtool/src/cppparser/cppBison.yxx" { /* multiple_var_declaration adds itself to the scope. */ } @@ -3724,7 +3824,7 @@ yyreduce: case 46: /* Line 1792 of yacc.c */ -#line 629 "dtool/src/cppparser/cppBison.yxx" +#line 639 "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 @@ -3737,7 +3837,7 @@ yyreduce: case 47: /* Line 1792 of yacc.c */ -#line 638 "dtool/src/cppparser/cppBison.yxx" +#line 648 "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)); @@ -3749,7 +3849,7 @@ yyreduce: case 48: /* Line 1792 of yacc.c */ -#line 649 "dtool/src/cppparser/cppBison.yxx" +#line 659 "dtool/src/cppparser/cppBison.yxx" { // We don't need to push/pop type, because we can't nest // multiple_var_declarations. @@ -3764,7 +3864,7 @@ yyreduce: case 49: /* Line 1792 of yacc.c */ -#line 660 "dtool/src/cppparser/cppBison.yxx" +#line 670 "dtool/src/cppparser/cppBison.yxx" { pop_storage_class(); } @@ -3772,7 +3872,7 @@ yyreduce: case 50: /* Line 1792 of yacc.c */ -#line 664 "dtool/src/cppparser/cppBison.yxx" +#line 674 "dtool/src/cppparser/cppBison.yxx" { // We don't need to push/pop type, because we can't nest // multiple_var_declarations. @@ -3783,7 +3883,7 @@ yyreduce: case 51: /* Line 1792 of yacc.c */ -#line 671 "dtool/src/cppparser/cppBison.yxx" +#line 681 "dtool/src/cppparser/cppBison.yxx" { pop_storage_class(); } @@ -3791,7 +3891,7 @@ yyreduce: case 52: /* Line 1792 of yacc.c */ -#line 682 "dtool/src/cppparser/cppBison.yxx" +#line 692 "dtool/src/cppparser/cppBison.yxx" { CPPInstance *inst = new CPPInstance(current_type, (yyvsp[(1) - (2)].u.inst_ident), current_storage_class, @@ -3803,7 +3903,7 @@ yyreduce: case 53: /* Line 1792 of yacc.c */ -#line 690 "dtool/src/cppparser/cppBison.yxx" +#line 700 "dtool/src/cppparser/cppBison.yxx" { CPPInstance *inst = new CPPInstance(current_type, (yyvsp[(1) - (4)].u.inst_ident), current_storage_class, @@ -3815,7 +3915,7 @@ yyreduce: case 54: /* Line 1792 of yacc.c */ -#line 701 "dtool/src/cppparser/cppBison.yxx" +#line 711 "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), @@ -3828,7 +3928,7 @@ yyreduce: case 55: /* Line 1792 of yacc.c */ -#line 710 "dtool/src/cppparser/cppBison.yxx" +#line 720 "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), @@ -3841,7 +3941,7 @@ yyreduce: case 56: /* Line 1792 of yacc.c */ -#line 723 "dtool/src/cppparser/cppBison.yxx" +#line 733 "dtool/src/cppparser/cppBison.yxx" { // We don't need to push/pop type, because we can't nest // multiple_var_declarations. @@ -3856,7 +3956,7 @@ yyreduce: case 57: /* Line 1792 of yacc.c */ -#line 734 "dtool/src/cppparser/cppBison.yxx" +#line 744 "dtool/src/cppparser/cppBison.yxx" { pop_storage_class(); } @@ -3864,7 +3964,7 @@ yyreduce: case 58: /* Line 1792 of yacc.c */ -#line 738 "dtool/src/cppparser/cppBison.yxx" +#line 748 "dtool/src/cppparser/cppBison.yxx" { // We don't need to push/pop type, because we can't nest // multiple_var_declarations. @@ -3875,7 +3975,7 @@ yyreduce: case 59: /* Line 1792 of yacc.c */ -#line 745 "dtool/src/cppparser/cppBison.yxx" +#line 755 "dtool/src/cppparser/cppBison.yxx" { pop_storage_class(); } @@ -3883,7 +3983,7 @@ yyreduce: case 60: /* Line 1792 of yacc.c */ -#line 749 "dtool/src/cppparser/cppBison.yxx" +#line 759 "dtool/src/cppparser/cppBison.yxx" { if ((yyvsp[(2) - (3)].u.instance) != (CPPDeclaration *)NULL) { CPPInstance *inst = (yyvsp[(2) - (3)].u.instance)->as_instance(); @@ -3899,7 +3999,7 @@ yyreduce: case 61: /* Line 1792 of yacc.c */ -#line 764 "dtool/src/cppparser/cppBison.yxx" +#line 774 "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); @@ -3909,7 +4009,7 @@ yyreduce: case 62: /* Line 1792 of yacc.c */ -#line 770 "dtool/src/cppparser/cppBison.yxx" +#line 780 "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); @@ -3919,7 +4019,7 @@ yyreduce: case 63: /* Line 1792 of yacc.c */ -#line 779 "dtool/src/cppparser/cppBison.yxx" +#line 789 "dtool/src/cppparser/cppBison.yxx" { (yyvsp[(1) - (2)].u.inst_ident)->add_modifier(IIT_const); CPPType *target_type = current_type; @@ -3930,7 +4030,7 @@ yyreduce: case 64: /* Line 1792 of yacc.c */ -#line 786 "dtool/src/cppparser/cppBison.yxx" +#line 796 "dtool/src/cppparser/cppBison.yxx" { (yyvsp[(1) - (4)].u.inst_ident)->add_modifier(IIT_const); CPPType *target_type = current_type; @@ -3941,7 +4041,7 @@ yyreduce: case 65: /* Line 1792 of yacc.c */ -#line 798 "dtool/src/cppparser/cppBison.yxx" +#line 808 "dtool/src/cppparser/cppBison.yxx" { push_scope((yyvsp[(1) - (2)].u.identifier)->get_scope(current_scope, global_scope)); } @@ -3949,7 +4049,7 @@ yyreduce: case 66: /* Line 1792 of yacc.c */ -#line 802 "dtool/src/cppparser/cppBison.yxx" +#line 812 "dtool/src/cppparser/cppBison.yxx" { pop_scope(); CPPType *type; @@ -3971,7 +4071,7 @@ yyreduce: case 67: /* Line 1792 of yacc.c */ -#line 820 "dtool/src/cppparser/cppBison.yxx" +#line 830 "dtool/src/cppparser/cppBison.yxx" { push_scope((yyvsp[(1) - (2)].u.identifier)->get_scope(current_scope, global_scope)); } @@ -3979,7 +4079,7 @@ yyreduce: case 68: /* Line 1792 of yacc.c */ -#line 824 "dtool/src/cppparser/cppBison.yxx" +#line 834 "dtool/src/cppparser/cppBison.yxx" { pop_scope(); CPPType *type; @@ -4001,7 +4101,7 @@ yyreduce: case 69: /* Line 1792 of yacc.c */ -#line 844 "dtool/src/cppparser/cppBison.yxx" +#line 854 "dtool/src/cppparser/cppBison.yxx" { push_scope((yyvsp[(2) - (3)].u.identifier)->get_scope(current_scope, global_scope)); } @@ -4009,7 +4109,7 @@ yyreduce: case 70: /* Line 1792 of yacc.c */ -#line 848 "dtool/src/cppparser/cppBison.yxx" +#line 858 "dtool/src/cppparser/cppBison.yxx" { pop_scope(); if ((yyvsp[(2) - (7)].u.identifier)->is_scoped()) { @@ -4032,7 +4132,7 @@ yyreduce: case 71: /* Line 1792 of yacc.c */ -#line 874 "dtool/src/cppparser/cppBison.yxx" +#line 884 "dtool/src/cppparser/cppBison.yxx" { push_scope((yyvsp[(4) - (6)].u.inst_ident)->get_scope(current_scope, global_scope)); } @@ -4040,7 +4140,7 @@ yyreduce: case 72: /* Line 1792 of yacc.c */ -#line 878 "dtool/src/cppparser/cppBison.yxx" +#line 888 "dtool/src/cppparser/cppBison.yxx" { pop_scope(); CPPType *type = (yyvsp[(1) - (10)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); @@ -4058,7 +4158,7 @@ yyreduce: case 73: /* Line 1792 of yacc.c */ -#line 892 "dtool/src/cppparser/cppBison.yxx" +#line 902 "dtool/src/cppparser/cppBison.yxx" { push_scope((yyvsp[(5) - (7)].u.inst_ident)->get_scope(current_scope, global_scope)); } @@ -4066,7 +4166,7 @@ yyreduce: case 74: /* Line 1792 of yacc.c */ -#line 896 "dtool/src/cppparser/cppBison.yxx" +#line 906 "dtool/src/cppparser/cppBison.yxx" { pop_scope(); CPPType *type = (yyvsp[(1) - (11)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); @@ -4084,7 +4184,7 @@ yyreduce: case 75: /* Line 1792 of yacc.c */ -#line 912 "dtool/src/cppparser/cppBison.yxx" +#line 922 "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)); @@ -4094,7 +4194,7 @@ yyreduce: case 76: /* Line 1792 of yacc.c */ -#line 918 "dtool/src/cppparser/cppBison.yxx" +#line 928 "dtool/src/cppparser/cppBison.yxx" { if ((yyvsp[(1) - (8)].u.identifier) != NULL) { pop_scope(); @@ -4123,7 +4223,7 @@ yyreduce: case 77: /* Line 1792 of yacc.c */ -#line 943 "dtool/src/cppparser/cppBison.yxx" +#line 953 "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)); @@ -4133,7 +4233,7 @@ yyreduce: case 78: /* Line 1792 of yacc.c */ -#line 949 "dtool/src/cppparser/cppBison.yxx" +#line 959 "dtool/src/cppparser/cppBison.yxx" { if ((yyvsp[(1) - (9)].u.identifier) != NULL) { pop_scope(); @@ -4153,7 +4253,7 @@ yyreduce: case 79: /* Line 1792 of yacc.c */ -#line 969 "dtool/src/cppparser/cppBison.yxx" +#line 979 "dtool/src/cppparser/cppBison.yxx" { CPPDeclaration *decl = (yyvsp[(1) - (1)].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); @@ -4167,7 +4267,7 @@ yyreduce: case 80: /* Line 1792 of yacc.c */ -#line 982 "dtool/src/cppparser/cppBison.yxx" +#line 992 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = 0; } @@ -4175,7 +4275,7 @@ yyreduce: case 81: /* Line 1792 of yacc.c */ -#line 986 "dtool/src/cppparser/cppBison.yxx" +#line 996 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (int)CPPFunctionType::F_const_method; } @@ -4183,7 +4283,7 @@ yyreduce: case 82: /* Line 1792 of yacc.c */ -#line 990 "dtool/src/cppparser/cppBison.yxx" +#line 1000 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (int)CPPFunctionType::F_noexcept; } @@ -4191,7 +4291,7 @@ yyreduce: case 83: /* Line 1792 of yacc.c */ -#line 994 "dtool/src/cppparser/cppBison.yxx" +#line 1004 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[(1) - (4)].u.integer); } @@ -4199,7 +4299,7 @@ yyreduce: case 84: /* Line 1792 of yacc.c */ -#line 998 "dtool/src/cppparser/cppBison.yxx" +#line 1008 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.integer) = (yyvsp[(1) - (5)].u.integer); } @@ -4207,7 +4307,7 @@ yyreduce: case 85: /* Line 1792 of yacc.c */ -#line 1005 "dtool/src/cppparser/cppBison.yxx" +#line 1015 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "!"; } @@ -4215,7 +4315,7 @@ yyreduce: case 86: /* Line 1792 of yacc.c */ -#line 1009 "dtool/src/cppparser/cppBison.yxx" +#line 1019 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "~"; } @@ -4223,7 +4323,7 @@ yyreduce: case 87: /* Line 1792 of yacc.c */ -#line 1013 "dtool/src/cppparser/cppBison.yxx" +#line 1023 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "*"; } @@ -4231,7 +4331,7 @@ yyreduce: case 88: /* Line 1792 of yacc.c */ -#line 1017 "dtool/src/cppparser/cppBison.yxx" +#line 1027 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "/"; } @@ -4239,7 +4339,7 @@ yyreduce: case 89: /* Line 1792 of yacc.c */ -#line 1021 "dtool/src/cppparser/cppBison.yxx" +#line 1031 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "%"; } @@ -4247,7 +4347,7 @@ yyreduce: case 90: /* Line 1792 of yacc.c */ -#line 1025 "dtool/src/cppparser/cppBison.yxx" +#line 1035 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "+"; } @@ -4255,7 +4355,7 @@ yyreduce: case 91: /* Line 1792 of yacc.c */ -#line 1029 "dtool/src/cppparser/cppBison.yxx" +#line 1039 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "-"; } @@ -4263,7 +4363,7 @@ yyreduce: case 92: /* Line 1792 of yacc.c */ -#line 1033 "dtool/src/cppparser/cppBison.yxx" +#line 1043 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "|"; } @@ -4271,7 +4371,7 @@ yyreduce: case 93: /* Line 1792 of yacc.c */ -#line 1037 "dtool/src/cppparser/cppBison.yxx" +#line 1047 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "&"; } @@ -4279,7 +4379,7 @@ yyreduce: case 94: /* Line 1792 of yacc.c */ -#line 1041 "dtool/src/cppparser/cppBison.yxx" +#line 1051 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "^"; } @@ -4287,7 +4387,7 @@ yyreduce: case 95: /* Line 1792 of yacc.c */ -#line 1045 "dtool/src/cppparser/cppBison.yxx" +#line 1055 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "||"; } @@ -4295,7 +4395,7 @@ yyreduce: case 96: /* Line 1792 of yacc.c */ -#line 1049 "dtool/src/cppparser/cppBison.yxx" +#line 1059 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "&&"; } @@ -4303,7 +4403,7 @@ yyreduce: case 97: /* Line 1792 of yacc.c */ -#line 1053 "dtool/src/cppparser/cppBison.yxx" +#line 1063 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "=="; } @@ -4311,7 +4411,7 @@ yyreduce: case 98: /* Line 1792 of yacc.c */ -#line 1057 "dtool/src/cppparser/cppBison.yxx" +#line 1067 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "!="; } @@ -4319,7 +4419,7 @@ yyreduce: case 99: /* Line 1792 of yacc.c */ -#line 1061 "dtool/src/cppparser/cppBison.yxx" +#line 1071 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "<="; } @@ -4327,7 +4427,7 @@ yyreduce: case 100: /* Line 1792 of yacc.c */ -#line 1065 "dtool/src/cppparser/cppBison.yxx" +#line 1075 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = ">="; } @@ -4335,7 +4435,7 @@ yyreduce: case 101: /* Line 1792 of yacc.c */ -#line 1069 "dtool/src/cppparser/cppBison.yxx" +#line 1079 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "<"; } @@ -4343,7 +4443,7 @@ yyreduce: case 102: /* Line 1792 of yacc.c */ -#line 1073 "dtool/src/cppparser/cppBison.yxx" +#line 1083 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = ">"; } @@ -4351,7 +4451,7 @@ yyreduce: case 103: /* Line 1792 of yacc.c */ -#line 1077 "dtool/src/cppparser/cppBison.yxx" +#line 1087 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "<<"; } @@ -4359,7 +4459,7 @@ yyreduce: case 104: /* Line 1792 of yacc.c */ -#line 1081 "dtool/src/cppparser/cppBison.yxx" +#line 1091 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = ">>"; } @@ -4367,7 +4467,7 @@ yyreduce: case 105: /* Line 1792 of yacc.c */ -#line 1085 "dtool/src/cppparser/cppBison.yxx" +#line 1095 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "="; } @@ -4375,7 +4475,7 @@ yyreduce: case 106: /* Line 1792 of yacc.c */ -#line 1089 "dtool/src/cppparser/cppBison.yxx" +#line 1099 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = ","; } @@ -4383,7 +4483,7 @@ yyreduce: case 107: /* Line 1792 of yacc.c */ -#line 1093 "dtool/src/cppparser/cppBison.yxx" +#line 1103 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "++"; } @@ -4391,7 +4491,7 @@ yyreduce: case 108: /* Line 1792 of yacc.c */ -#line 1097 "dtool/src/cppparser/cppBison.yxx" +#line 1107 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "--"; } @@ -4399,7 +4499,7 @@ yyreduce: case 109: /* Line 1792 of yacc.c */ -#line 1101 "dtool/src/cppparser/cppBison.yxx" +#line 1111 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "*="; } @@ -4407,7 +4507,7 @@ yyreduce: case 110: /* Line 1792 of yacc.c */ -#line 1105 "dtool/src/cppparser/cppBison.yxx" +#line 1115 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "/="; } @@ -4415,7 +4515,7 @@ yyreduce: case 111: /* Line 1792 of yacc.c */ -#line 1109 "dtool/src/cppparser/cppBison.yxx" +#line 1119 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "%="; } @@ -4423,7 +4523,7 @@ yyreduce: case 112: /* Line 1792 of yacc.c */ -#line 1113 "dtool/src/cppparser/cppBison.yxx" +#line 1123 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "+="; } @@ -4431,7 +4531,7 @@ yyreduce: case 113: /* Line 1792 of yacc.c */ -#line 1117 "dtool/src/cppparser/cppBison.yxx" +#line 1127 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "-="; } @@ -4439,7 +4539,7 @@ yyreduce: case 114: /* Line 1792 of yacc.c */ -#line 1121 "dtool/src/cppparser/cppBison.yxx" +#line 1131 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "|="; } @@ -4447,7 +4547,7 @@ yyreduce: case 115: /* Line 1792 of yacc.c */ -#line 1125 "dtool/src/cppparser/cppBison.yxx" +#line 1135 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "&="; } @@ -4455,7 +4555,7 @@ yyreduce: case 116: /* Line 1792 of yacc.c */ -#line 1129 "dtool/src/cppparser/cppBison.yxx" +#line 1139 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "^="; } @@ -4463,7 +4563,7 @@ yyreduce: case 117: /* Line 1792 of yacc.c */ -#line 1133 "dtool/src/cppparser/cppBison.yxx" +#line 1143 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "<<="; } @@ -4471,7 +4571,7 @@ yyreduce: case 118: /* Line 1792 of yacc.c */ -#line 1137 "dtool/src/cppparser/cppBison.yxx" +#line 1147 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = ">>="; } @@ -4479,7 +4579,7 @@ yyreduce: case 119: /* Line 1792 of yacc.c */ -#line 1141 "dtool/src/cppparser/cppBison.yxx" +#line 1151 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "->"; } @@ -4487,7 +4587,7 @@ yyreduce: case 120: /* Line 1792 of yacc.c */ -#line 1145 "dtool/src/cppparser/cppBison.yxx" +#line 1155 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "[]"; } @@ -4495,7 +4595,7 @@ yyreduce: case 121: /* Line 1792 of yacc.c */ -#line 1149 "dtool/src/cppparser/cppBison.yxx" +#line 1159 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "()"; } @@ -4503,7 +4603,7 @@ yyreduce: case 122: /* Line 1792 of yacc.c */ -#line 1153 "dtool/src/cppparser/cppBison.yxx" +#line 1163 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "new"; } @@ -4511,7 +4611,7 @@ yyreduce: case 123: /* Line 1792 of yacc.c */ -#line 1157 "dtool/src/cppparser/cppBison.yxx" +#line 1167 "dtool/src/cppparser/cppBison.yxx" { (yyval.str) = "delete"; } @@ -4519,7 +4619,7 @@ yyreduce: case 126: /* Line 1792 of yacc.c */ -#line 1169 "dtool/src/cppparser/cppBison.yxx" +#line 1179 "dtool/src/cppparser/cppBison.yxx" { push_scope(new CPPTemplateScope(current_scope)); } @@ -4527,7 +4627,7 @@ yyreduce: case 127: /* Line 1792 of yacc.c */ -#line 1173 "dtool/src/cppparser/cppBison.yxx" +#line 1183 "dtool/src/cppparser/cppBison.yxx" { pop_scope(); } @@ -4535,7 +4635,7 @@ yyreduce: case 131: /* Line 1792 of yacc.c */ -#line 1186 "dtool/src/cppparser/cppBison.yxx" +#line 1196 "dtool/src/cppparser/cppBison.yxx" { CPPTemplateScope *ts = current_scope->as_template_scope(); assert(ts != NULL); @@ -4545,7 +4645,7 @@ yyreduce: case 132: /* Line 1792 of yacc.c */ -#line 1192 "dtool/src/cppparser/cppBison.yxx" +#line 1202 "dtool/src/cppparser/cppBison.yxx" { CPPTemplateScope *ts = current_scope->as_template_scope(); assert(ts != NULL); @@ -4555,7 +4655,7 @@ yyreduce: case 133: /* Line 1792 of yacc.c */ -#line 1201 "dtool/src/cppparser/cppBison.yxx" +#line 1211 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[(2) - (2)].u.identifier))); } @@ -4563,7 +4663,7 @@ yyreduce: case 134: /* Line 1792 of yacc.c */ -#line 1205 "dtool/src/cppparser/cppBison.yxx" +#line 1215 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[(2) - (4)].u.identifier), (yyvsp[(4) - (4)].u.type))); } @@ -4571,7 +4671,7 @@ yyreduce: case 135: /* Line 1792 of yacc.c */ -#line 1209 "dtool/src/cppparser/cppBison.yxx" +#line 1219 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[(2) - (2)].u.identifier))); } @@ -4579,7 +4679,7 @@ yyreduce: case 136: /* Line 1792 of yacc.c */ -#line 1213 "dtool/src/cppparser/cppBison.yxx" +#line 1223 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[(2) - (4)].u.identifier), (yyvsp[(4) - (4)].u.type))); } @@ -4587,7 +4687,7 @@ yyreduce: case 137: /* Line 1792 of yacc.c */ -#line 1217 "dtool/src/cppparser/cppBison.yxx" +#line 1227 "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)); @@ -4597,7 +4697,7 @@ yyreduce: case 138: /* Line 1792 of yacc.c */ -#line 1223 "dtool/src/cppparser/cppBison.yxx" +#line 1233 "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); @@ -4608,7 +4708,7 @@ yyreduce: case 139: /* Line 1792 of yacc.c */ -#line 1233 "dtool/src/cppparser/cppBison.yxx" +#line 1243 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type((yyvsp[(1) - (1)].u.simple_type)); } @@ -4616,7 +4716,7 @@ yyreduce: case 140: /* Line 1792 of yacc.c */ -#line 1237 "dtool/src/cppparser/cppBison.yxx" +#line 1247 "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)); @@ -4625,7 +4725,7 @@ yyreduce: case 141: /* Line 1792 of yacc.c */ -#line 1242 "dtool/src/cppparser/cppBison.yxx" +#line 1252 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = (yyvsp[(1) - (1)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if ((yyval.u.type) == NULL) { @@ -4637,7 +4737,7 @@ yyreduce: case 142: /* Line 1792 of yacc.c */ -#line 1254 "dtool/src/cppparser/cppBison.yxx" +#line 1264 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[(1) - (1)].u.identifier)); } @@ -4645,7 +4745,7 @@ yyreduce: case 143: /* Line 1792 of yacc.c */ -#line 1258 "dtool/src/cppparser/cppBison.yxx" +#line 1268 "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 @@ -4663,96 +4763,115 @@ yyreduce: case 144: /* Line 1792 of yacc.c */ -#line 1272 "dtool/src/cppparser/cppBison.yxx" +#line 1282 "dtool/src/cppparser/cppBison.yxx" + { + // A C++11 literal operator. + if (!(yyvsp[(2) - (3)].str).empty()) { + yyerror("expected empty string", (yylsp[(2) - (3)])); + } + CPPIdentifier *ident = (yyvsp[(1) - (3)].u.identifier); + if (ident == NULL) { + ident = new CPPIdentifier("operator \"\" "+(yyvsp[(3) - (3)].u.identifier)->get_simple_name(), (yylsp[(3) - (3)])); + } else { + ident->_names.push_back("operator \"\" "+(yyvsp[(3) - (3)].u.identifier)->get_simple_name()); + } + + (yyval.u.inst_ident) = new CPPInstanceIdentifier(ident); +} + break; + + case 145: +/* Line 1792 of yacc.c */ +#line 1297 "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 145: + case 146: /* Line 1792 of yacc.c */ -#line 1277 "dtool/src/cppparser/cppBison.yxx" +#line 1302 "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 146: + case 147: /* Line 1792 of yacc.c */ -#line 1282 "dtool/src/cppparser/cppBison.yxx" +#line 1307 "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 147: + case 148: /* Line 1792 of yacc.c */ -#line 1287 "dtool/src/cppparser/cppBison.yxx" +#line 1312 "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 148: + case 149: /* Line 1792 of yacc.c */ -#line 1292 "dtool/src/cppparser/cppBison.yxx" +#line 1317 "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 149: + case 150: /* Line 1792 of yacc.c */ -#line 1297 "dtool/src/cppparser/cppBison.yxx" +#line 1322 "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 150: + case 151: /* Line 1792 of yacc.c */ -#line 1302 "dtool/src/cppparser/cppBison.yxx" +#line 1327 "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 151: + case 152: /* Line 1792 of yacc.c */ -#line 1307 "dtool/src/cppparser/cppBison.yxx" +#line 1332 "dtool/src/cppparser/cppBison.yxx" { // bitfield definition. We ignore the bitfield for now. (yyval.u.inst_ident) = (yyvsp[(1) - (3)].u.inst_ident); } break; - case 152: + case 153: /* Line 1792 of yacc.c */ -#line 1312 "dtool/src/cppparser/cppBison.yxx" +#line 1337 "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 153: + case 154: /* Line 1792 of yacc.c */ -#line 1317 "dtool/src/cppparser/cppBison.yxx" +#line 1342 "dtool/src/cppparser/cppBison.yxx" { push_scope((yyvsp[(1) - (2)].u.inst_ident)->get_scope(current_scope, global_scope)); } break; - case 154: + case 155: /* Line 1792 of yacc.c */ -#line 1321 "dtool/src/cppparser/cppBison.yxx" +#line 1346 "dtool/src/cppparser/cppBison.yxx" { pop_scope(); (yyval.u.inst_ident) = (yyvsp[(1) - (6)].u.inst_ident); @@ -4768,110 +4887,102 @@ yyreduce: } break; - case 155: -/* Line 1792 of yacc.c */ -#line 1339 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.param_list) = new CPPParameterList; -} - break; - case 156: /* Line 1792 of yacc.c */ -#line 1343 "dtool/src/cppparser/cppBison.yxx" +#line 1364 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.param_list) = new CPPParameterList; - (yyval.u.param_list)->_includes_ellipsis = true; } break; case 157: /* Line 1792 of yacc.c */ -#line 1348 "dtool/src/cppparser/cppBison.yxx" +#line 1368 "dtool/src/cppparser/cppBison.yxx" { - (yyval.u.param_list) = (yyvsp[(1) - (1)].u.param_list); + (yyval.u.param_list) = new CPPParameterList; + (yyval.u.param_list)->_includes_ellipsis = true; } break; case 158: /* Line 1792 of yacc.c */ -#line 1352 "dtool/src/cppparser/cppBison.yxx" +#line 1373 "dtool/src/cppparser/cppBison.yxx" { - (yyval.u.param_list) = (yyvsp[(1) - (3)].u.param_list); - (yyval.u.param_list)->_includes_ellipsis = true; + (yyval.u.param_list) = (yyvsp[(1) - (1)].u.param_list); } break; case 159: /* Line 1792 of yacc.c */ -#line 1357 "dtool/src/cppparser/cppBison.yxx" +#line 1377 "dtool/src/cppparser/cppBison.yxx" { - (yyval.u.param_list) = (yyvsp[(1) - (2)].u.param_list); + (yyval.u.param_list) = (yyvsp[(1) - (3)].u.param_list); (yyval.u.param_list)->_includes_ellipsis = true; } break; case 160: /* Line 1792 of yacc.c */ -#line 1365 "dtool/src/cppparser/cppBison.yxx" +#line 1382 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.param_list) = (yyvsp[(1) - (2)].u.param_list); + (yyval.u.param_list)->_includes_ellipsis = true; +} + break; + + case 161: +/* Line 1792 of yacc.c */ +#line 1390 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.param_list) = new CPPParameterList; (yyval.u.param_list)->_parameters.push_back((yyvsp[(1) - (1)].u.instance)); } break; - case 161: + case 162: /* Line 1792 of yacc.c */ -#line 1370 "dtool/src/cppparser/cppBison.yxx" +#line 1395 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.param_list) = (yyvsp[(1) - (3)].u.param_list); (yyval.u.param_list)->_parameters.push_back((yyvsp[(3) - (3)].u.instance)); } break; - case 162: -/* Line 1792 of yacc.c */ -#line 1378 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (CPPExpression *)NULL; -} - break; - case 163: /* Line 1792 of yacc.c */ -#line 1382 "dtool/src/cppparser/cppBison.yxx" +#line 1403 "dtool/src/cppparser/cppBison.yxx" { - (yyval.u.expr) = (yyvsp[(2) - (2)].u.expr); + (yyval.u.expr) = (CPPExpression *)NULL; } break; case 164: /* Line 1792 of yacc.c */ -#line 1389 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (CPPExpression *)NULL; -} - break; - - case 165: -/* Line 1792 of yacc.c */ -#line 1393 "dtool/src/cppparser/cppBison.yxx" +#line 1407 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (yyvsp[(2) - (2)].u.expr); } break; - case 166: + case 165: /* Line 1792 of yacc.c */ -#line 1400 "dtool/src/cppparser/cppBison.yxx" +#line 1414 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (CPPExpression *)NULL; } break; + case 166: +/* Line 1792 of yacc.c */ +#line 1418 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = (yyvsp[(2) - (2)].u.expr); +} + break; + case 167: /* Line 1792 of yacc.c */ -#line 1404 "dtool/src/cppparser/cppBison.yxx" +#line 1425 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (CPPExpression *)NULL; } @@ -4879,7 +4990,7 @@ yyreduce: case 168: /* Line 1792 of yacc.c */ -#line 1408 "dtool/src/cppparser/cppBison.yxx" +#line 1429 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (CPPExpression *)NULL; } @@ -4887,39 +4998,47 @@ yyreduce: case 169: /* Line 1792 of yacc.c */ -#line 1412 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (yyvsp[(2) - (3)].u.expr); -} - break; - - case 170: -/* Line 1792 of yacc.c */ -#line 1416 "dtool/src/cppparser/cppBison.yxx" +#line 1433 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (CPPExpression *)NULL; } break; - case 174: + case 170: /* Line 1792 of yacc.c */ -#line 1429 "dtool/src/cppparser/cppBison.yxx" +#line 1437 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = (yyvsp[(2) - (3)].u.expr); +} + break; + + case 171: +/* Line 1792 of yacc.c */ +#line 1441 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = (CPPExpression *)NULL; +} + break; + + case 175: +/* Line 1792 of yacc.c */ +#line 1454 "dtool/src/cppparser/cppBison.yxx" { } break; - case 178: + case 179: /* Line 1792 of yacc.c */ -#line 1438 "dtool/src/cppparser/cppBison.yxx" +#line 1463 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.instance) = new CPPInstance((yyvsp[(1) - (3)].u.type), (yyvsp[(2) - (3)].u.inst_ident), 0, (yylsp[(2) - (3)]).file); (yyval.u.instance)->set_initializer((yyvsp[(3) - (3)].u.expr)); } break; - case 179: + case 180: /* Line 1792 of yacc.c */ -#line 1443 "dtool/src/cppparser/cppBison.yxx" +#line 1468 "dtool/src/cppparser/cppBison.yxx" { yywarning("Not a type: " + (yyvsp[(1) - (3)].u.identifier)->get_fully_scoped_name(), (yylsp[(1) - (3)])); CPPType *type = @@ -4929,9 +5048,9 @@ yyreduce: } break; - case 180: + case 181: /* Line 1792 of yacc.c */ -#line 1451 "dtool/src/cppparser/cppBison.yxx" +#line 1476 "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); @@ -4939,9 +5058,9 @@ yyreduce: } break; - case 181: + case 182: /* Line 1792 of yacc.c */ -#line 1457 "dtool/src/cppparser/cppBison.yxx" +#line 1482 "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); @@ -4949,17 +5068,17 @@ yyreduce: } break; - case 182: + case 183: /* Line 1792 of yacc.c */ -#line 1463 "dtool/src/cppparser/cppBison.yxx" +#line 1488 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.instance) = (yyvsp[(2) - (2)].u.instance); } break; - case 183: + case 184: /* Line 1792 of yacc.c */ -#line 1467 "dtool/src/cppparser/cppBison.yxx" +#line 1492 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_parameter)); @@ -4968,25 +5087,17 @@ yyreduce: } break; - case 184: + case 185: /* Line 1792 of yacc.c */ -#line 1477 "dtool/src/cppparser/cppBison.yxx" +#line 1502 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = new CPPInstanceIdentifier((CPPIdentifier *)NULL); } break; - case 185: -/* Line 1792 of yacc.c */ -#line 1481 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[(1) - (1)].u.identifier)); -} - break; - case 186: /* Line 1792 of yacc.c */ -#line 1485 "dtool/src/cppparser/cppBison.yxx" +#line 1506 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[(1) - (1)].u.identifier)); } @@ -4994,86 +5105,86 @@ yyreduce: case 187: /* Line 1792 of yacc.c */ -#line 1489 "dtool/src/cppparser/cppBison.yxx" +#line 1510 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[(1) - (1)].u.identifier)); +} + break; + + case 188: +/* Line 1792 of yacc.c */ +#line 1514 "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 188: + case 189: /* Line 1792 of yacc.c */ -#line 1494 "dtool/src/cppparser/cppBison.yxx" +#line 1519 "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 189: + case 190: /* Line 1792 of yacc.c */ -#line 1499 "dtool/src/cppparser/cppBison.yxx" +#line 1524 "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 190: + case 191: /* Line 1792 of yacc.c */ -#line 1504 "dtool/src/cppparser/cppBison.yxx" +#line 1529 "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 191: + case 192: /* Line 1792 of yacc.c */ -#line 1509 "dtool/src/cppparser/cppBison.yxx" +#line 1534 "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 192: + case 193: /* Line 1792 of yacc.c */ -#line 1514 "dtool/src/cppparser/cppBison.yxx" +#line 1539 "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 193: + case 194: /* Line 1792 of yacc.c */ -#line 1519 "dtool/src/cppparser/cppBison.yxx" +#line 1544 "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 194: + case 195: /* Line 1792 of yacc.c */ -#line 1527 "dtool/src/cppparser/cppBison.yxx" +#line 1552 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = new CPPInstanceIdentifier((CPPIdentifier *)NULL); } break; - case 195: -/* Line 1792 of yacc.c */ -#line 1531 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[(1) - (1)].u.identifier)); -} - break; - case 196: /* Line 1792 of yacc.c */ -#line 1535 "dtool/src/cppparser/cppBison.yxx" +#line 1556 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[(1) - (1)].u.identifier)); } @@ -5081,70 +5192,78 @@ yyreduce: case 197: /* Line 1792 of yacc.c */ -#line 1539 "dtool/src/cppparser/cppBison.yxx" +#line 1560 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[(1) - (1)].u.identifier)); +} + break; + + case 198: +/* Line 1792 of yacc.c */ +#line 1564 "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 198: + case 199: /* Line 1792 of yacc.c */ -#line 1544 "dtool/src/cppparser/cppBison.yxx" +#line 1569 "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 199: + case 200: /* Line 1792 of yacc.c */ -#line 1549 "dtool/src/cppparser/cppBison.yxx" +#line 1574 "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 200: + case 201: /* Line 1792 of yacc.c */ -#line 1554 "dtool/src/cppparser/cppBison.yxx" +#line 1579 "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 201: + case 202: /* Line 1792 of yacc.c */ -#line 1559 "dtool/src/cppparser/cppBison.yxx" +#line 1584 "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 202: + case 203: /* Line 1792 of yacc.c */ -#line 1564 "dtool/src/cppparser/cppBison.yxx" +#line 1589 "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 203: + case 204: /* Line 1792 of yacc.c */ -#line 1569 "dtool/src/cppparser/cppBison.yxx" +#line 1594 "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 204: + case 205: /* Line 1792 of yacc.c */ -#line 1574 "dtool/src/cppparser/cppBison.yxx" +#line 1599 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[(2) - (7)].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_paren); @@ -5152,89 +5271,89 @@ yyreduce: } break; - case 205: + case 206: /* Line 1792 of yacc.c */ -#line 1580 "dtool/src/cppparser/cppBison.yxx" +#line 1605 "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 206: + case 207: /* Line 1792 of yacc.c */ -#line 1588 "dtool/src/cppparser/cppBison.yxx" +#line 1613 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = new CPPInstanceIdentifier((CPPIdentifier *)NULL); } break; - case 207: + case 208: /* Line 1792 of yacc.c */ -#line 1592 "dtool/src/cppparser/cppBison.yxx" +#line 1617 "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 208: + case 209: /* Line 1792 of yacc.c */ -#line 1597 "dtool/src/cppparser/cppBison.yxx" +#line 1622 "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 209: + case 210: /* Line 1792 of yacc.c */ -#line 1602 "dtool/src/cppparser/cppBison.yxx" +#line 1627 "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 210: + case 211: /* Line 1792 of yacc.c */ -#line 1607 "dtool/src/cppparser/cppBison.yxx" +#line 1632 "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 211: + case 212: /* Line 1792 of yacc.c */ -#line 1612 "dtool/src/cppparser/cppBison.yxx" +#line 1637 "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 212: + case 213: /* Line 1792 of yacc.c */ -#line 1617 "dtool/src/cppparser/cppBison.yxx" +#line 1642 "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 213: + case 214: /* Line 1792 of yacc.c */ -#line 1622 "dtool/src/cppparser/cppBison.yxx" +#line 1647 "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 214: + case 215: /* Line 1792 of yacc.c */ -#line 1627 "dtool/src/cppparser/cppBison.yxx" +#line 1652 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.inst_ident) = (yyvsp[(2) - (7)].u.inst_ident); (yyval.u.inst_ident)->add_modifier(IIT_paren); @@ -5242,17 +5361,17 @@ yyreduce: } break; - case 215: + case 216: /* Line 1792 of yacc.c */ -#line 1636 "dtool/src/cppparser/cppBison.yxx" +#line 1661 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type((yyvsp[(1) - (1)].u.simple_type)); } break; - case 216: + case 217: /* Line 1792 of yacc.c */ -#line 1640 "dtool/src/cppparser/cppBison.yxx" +#line 1665 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = (yyvsp[(1) - (1)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if ((yyval.u.type) == NULL) { @@ -5262,25 +5381,17 @@ yyreduce: } break; - case 217: + case 218: /* Line 1792 of yacc.c */ -#line 1648 "dtool/src/cppparser/cppBison.yxx" +#line 1673 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[(2) - (2)].u.identifier))); } break; - case 218: -/* Line 1792 of yacc.c */ -#line 1652 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.type) = CPPType::new_type((yyvsp[(1) - (1)].u.struct_type)); -} - break; - case 219: /* Line 1792 of yacc.c */ -#line 1656 "dtool/src/cppparser/cppBison.yxx" +#line 1677 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type((yyvsp[(1) - (1)].u.struct_type)); } @@ -5288,15 +5399,23 @@ yyreduce: case 220: /* Line 1792 of yacc.c */ -#line 1660 "dtool/src/cppparser/cppBison.yxx" +#line 1681 "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 221: /* Line 1792 of yacc.c */ -#line 1664 "dtool/src/cppparser/cppBison.yxx" +#line 1685 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.type) = CPPType::new_type((yyvsp[(1) - (1)].u.enum_type)); +} + break; + + case 222: +/* Line 1792 of yacc.c */ +#line 1689 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = (yyvsp[(2) - (2)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != NULL) { @@ -5314,37 +5433,50 @@ yyreduce: } break; - case 222: -/* Line 1792 of yacc.c */ -#line 1680 "dtool/src/cppparser/cppBison.yxx" - { - CPPType *type = (yyvsp[(2) - (4)].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) - (4)].u.extension_enum), (yyvsp[(2) - (4)].u.identifier), current_scope, (yylsp[(1) - (4)]).file)) - ->as_extension_type(); - CPPScope *scope = (yyvsp[(2) - (4)].u.identifier)->get_scope(current_scope, global_scope); - if (scope != NULL) { - scope->define_extension_type(et); - } - (yyval.u.type) = et; - } -} - break; - case 223: /* Line 1792 of yacc.c */ -#line 1699 "dtool/src/cppparser/cppBison.yxx" +#line 1705 "dtool/src/cppparser/cppBison.yxx" { - (yyval.u.decl) = CPPType::new_type((yyvsp[(1) - (1)].u.simple_type)); + CPPType *type = (yyvsp[(2) - (4)].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) - (4)].u.extension_enum), (yyvsp[(2) - (4)].u.identifier), current_scope, (yylsp[(1) - (4)]).file)) + ->as_extension_type(); + CPPScope *scope = (yyvsp[(2) - (4)].u.identifier)->get_scope(current_scope, global_scope); + if (scope != NULL) { + scope->define_extension_type(et); + } + (yyval.u.type) = et; + } } break; case 224: /* Line 1792 of yacc.c */ -#line 1703 "dtool/src/cppparser/cppBison.yxx" +#line 1721 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.type) = (yyvsp[(3) - (4)].u.expr)->determine_type(); + if ((yyval.u.type) == (CPPType *)NULL) { + stringstream str; + str << *(yyvsp[(3) - (4)].u.expr); + yyerror("could not determine type of " + str.str(), (yylsp[(3) - (4)])); + } +} + break; + + case 225: +/* Line 1792 of yacc.c */ +#line 1733 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.decl) = CPPType::new_type((yyvsp[(1) - (1)].u.simple_type)); +} + break; + + case 226: +/* Line 1792 of yacc.c */ +#line 1737 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = (yyvsp[(1) - (1)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if ((yyval.u.decl) == NULL) { @@ -5354,41 +5486,41 @@ yyreduce: } break; - case 225: + case 227: /* Line 1792 of yacc.c */ -#line 1711 "dtool/src/cppparser/cppBison.yxx" +#line 1745 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = CPPType::new_type(new CPPTBDType((yyvsp[(2) - (2)].u.identifier))); } break; - case 226: + case 228: /* Line 1792 of yacc.c */ -#line 1715 "dtool/src/cppparser/cppBison.yxx" +#line 1749 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = CPPType::new_type((yyvsp[(1) - (1)].u.struct_type)); } break; - case 227: + case 229: /* Line 1792 of yacc.c */ -#line 1719 "dtool/src/cppparser/cppBison.yxx" +#line 1753 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = new CPPTypeDeclaration(CPPType::new_type((yyvsp[(1) - (1)].u.struct_type))); } break; - case 228: + case 230: /* Line 1792 of yacc.c */ -#line 1723 "dtool/src/cppparser/cppBison.yxx" +#line 1757 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.decl) = new CPPTypeDeclaration(CPPType::new_type((yyvsp[(1) - (1)].u.enum_type))); } break; - case 229: + case 231: /* Line 1792 of yacc.c */ -#line 1727 "dtool/src/cppparser/cppBison.yxx" +#line 1761 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = (yyvsp[(2) - (2)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != NULL) { @@ -5406,9 +5538,9 @@ yyreduce: } break; - case 230: + case 232: /* Line 1792 of yacc.c */ -#line 1743 "dtool/src/cppparser/cppBison.yxx" +#line 1777 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = (yyvsp[(2) - (4)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != NULL) { @@ -5426,9 +5558,9 @@ yyreduce: } break; - case 231: + case 233: /* Line 1792 of yacc.c */ -#line 1759 "dtool/src/cppparser/cppBison.yxx" +#line 1793 "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)])); @@ -5448,17 +5580,30 @@ yyreduce: } break; - case 232: + case 234: /* Line 1792 of yacc.c */ -#line 1780 "dtool/src/cppparser/cppBison.yxx" +#line 1811 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.decl) = (yyvsp[(3) - (4)].u.expr)->determine_type(); + if ((yyval.u.decl) == (CPPType *)NULL) { + stringstream str; + str << *(yyvsp[(3) - (4)].u.expr); + yyerror("could not determine type of " + str.str(), (yylsp[(3) - (4)])); + } +} + break; + + case 235: +/* Line 1792 of yacc.c */ +#line 1823 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type((yyvsp[(1) - (1)].u.simple_type)); } break; - case 233: + case 236: /* Line 1792 of yacc.c */ -#line 1784 "dtool/src/cppparser/cppBison.yxx" +#line 1827 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = (yyvsp[(1) - (1)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if ((yyval.u.type) == NULL) { @@ -5468,17 +5613,17 @@ yyreduce: } break; - case 234: + case 237: /* Line 1792 of yacc.c */ -#line 1792 "dtool/src/cppparser/cppBison.yxx" +#line 1835 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[(2) - (2)].u.identifier))); } break; - case 235: + case 238: /* Line 1792 of yacc.c */ -#line 1796 "dtool/src/cppparser/cppBison.yxx" +#line 1839 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = (yyvsp[(2) - (2)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != NULL) { @@ -5496,9 +5641,9 @@ yyreduce: } break; - case 236: + case 239: /* Line 1792 of yacc.c */ -#line 1812 "dtool/src/cppparser/cppBison.yxx" +#line 1855 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = (yyvsp[(2) - (2)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != NULL) { @@ -5516,9 +5661,9 @@ yyreduce: } break; - case 237: + case 240: /* Line 1792 of yacc.c */ -#line 1831 "dtool/src/cppparser/cppBison.yxx" +#line 1874 "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; @@ -5526,9 +5671,9 @@ yyreduce: } break; - case 238: + case 241: /* Line 1792 of yacc.c */ -#line 1837 "dtool/src/cppparser/cppBison.yxx" +#line 1880 "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); @@ -5537,9 +5682,9 @@ yyreduce: } break; - case 239: + case 242: /* Line 1792 of yacc.c */ -#line 1847 "dtool/src/cppparser/cppBison.yxx" +#line 1890 "dtool/src/cppparser/cppBison.yxx" { CPPVisibility starting_vis = ((yyvsp[(1) - (2)].u.extension_enum) == CPPExtensionType::T_class) ? V_private : V_public; @@ -5555,9 +5700,9 @@ yyreduce: } break; - case 240: + case 243: /* Line 1792 of yacc.c */ -#line 1861 "dtool/src/cppparser/cppBison.yxx" +#line 1904 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.struct_type) = current_struct; current_struct->_incomplete = false; @@ -5566,9 +5711,9 @@ yyreduce: } break; - case 241: + case 244: /* Line 1792 of yacc.c */ -#line 1871 "dtool/src/cppparser/cppBison.yxx" +#line 1914 "dtool/src/cppparser/cppBison.yxx" { CPPVisibility starting_vis = ((yyvsp[(1) - (2)].u.extension_enum) == CPPExtensionType::T_class) ? V_private : V_public; @@ -5590,9 +5735,9 @@ yyreduce: } break; - case 242: + case 245: /* Line 1792 of yacc.c */ -#line 1891 "dtool/src/cppparser/cppBison.yxx" +#line 1934 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.struct_type) = current_struct; current_struct->_incomplete = false; @@ -5601,57 +5746,33 @@ yyreduce: } break; - case 247: + case 250: /* Line 1792 of yacc.c */ -#line 1911 "dtool/src/cppparser/cppBison.yxx" +#line 1954 "dtool/src/cppparser/cppBison.yxx" { current_struct->append_derivation((yyvsp[(2) - (2)].u.type), V_public, false); } break; - case 248: + case 251: /* Line 1792 of yacc.c */ -#line 1915 "dtool/src/cppparser/cppBison.yxx" +#line 1958 "dtool/src/cppparser/cppBison.yxx" { current_struct->append_derivation((yyvsp[(2) - (2)].u.type), V_protected, false); } break; - case 249: + case 252: /* Line 1792 of yacc.c */ -#line 1919 "dtool/src/cppparser/cppBison.yxx" +#line 1962 "dtool/src/cppparser/cppBison.yxx" { current_struct->append_derivation((yyvsp[(2) - (2)].u.type), V_private, false); } break; - case 250: -/* Line 1792 of yacc.c */ -#line 1923 "dtool/src/cppparser/cppBison.yxx" - { - current_struct->append_derivation((yyvsp[(3) - (3)].u.type), V_public, true); -} - break; - - case 251: -/* Line 1792 of yacc.c */ -#line 1927 "dtool/src/cppparser/cppBison.yxx" - { - current_struct->append_derivation((yyvsp[(3) - (3)].u.type), V_protected, true); -} - break; - - case 252: -/* Line 1792 of yacc.c */ -#line 1931 "dtool/src/cppparser/cppBison.yxx" - { - current_struct->append_derivation((yyvsp[(3) - (3)].u.type), V_private, true); -} - break; - case 253: /* Line 1792 of yacc.c */ -#line 1935 "dtool/src/cppparser/cppBison.yxx" +#line 1966 "dtool/src/cppparser/cppBison.yxx" { current_struct->append_derivation((yyvsp[(3) - (3)].u.type), V_public, true); } @@ -5659,7 +5780,7 @@ yyreduce: case 254: /* Line 1792 of yacc.c */ -#line 1939 "dtool/src/cppparser/cppBison.yxx" +#line 1970 "dtool/src/cppparser/cppBison.yxx" { current_struct->append_derivation((yyvsp[(3) - (3)].u.type), V_protected, true); } @@ -5667,7 +5788,7 @@ yyreduce: case 255: /* Line 1792 of yacc.c */ -#line 1943 "dtool/src/cppparser/cppBison.yxx" +#line 1974 "dtool/src/cppparser/cppBison.yxx" { current_struct->append_derivation((yyvsp[(3) - (3)].u.type), V_private, true); } @@ -5675,64 +5796,88 @@ yyreduce: case 256: /* Line 1792 of yacc.c */ -#line 1950 "dtool/src/cppparser/cppBison.yxx" +#line 1978 "dtool/src/cppparser/cppBison.yxx" + { + current_struct->append_derivation((yyvsp[(3) - (3)].u.type), V_public, true); +} + break; + + case 257: +/* Line 1792 of yacc.c */ +#line 1982 "dtool/src/cppparser/cppBison.yxx" + { + current_struct->append_derivation((yyvsp[(3) - (3)].u.type), V_protected, true); +} + break; + + case 258: +/* Line 1792 of yacc.c */ +#line 1986 "dtool/src/cppparser/cppBison.yxx" + { + current_struct->append_derivation((yyvsp[(3) - (3)].u.type), V_private, true); +} + break; + + case 259: +/* Line 1792 of yacc.c */ +#line 1993 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.enum_type) = current_enum; current_enum = NULL; } break; - case 257: + case 260: /* Line 1792 of yacc.c */ -#line 1958 "dtool/src/cppparser/cppBison.yxx" +#line 2001 "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 258: + case 261: /* Line 1792 of yacc.c */ -#line 1962 "dtool/src/cppparser/cppBison.yxx" +#line 2005 "dtool/src/cppparser/cppBison.yxx" { current_enum = new CPPEnumType((yyvsp[(2) - (2)].u.identifier), current_scope, (yylsp[(1) - (2)]).file); } break; - case 259: + case 262: /* Line 1792 of yacc.c */ -#line 1966 "dtool/src/cppparser/cppBison.yxx" +#line 2009 "dtool/src/cppparser/cppBison.yxx" { current_enum = new CPPEnumType(NULL, (yyvsp[(3) - (3)].u.type), current_scope, (yylsp[(1) - (3)]).file); } break; - case 260: + case 263: /* Line 1792 of yacc.c */ -#line 1970 "dtool/src/cppparser/cppBison.yxx" +#line 2013 "dtool/src/cppparser/cppBison.yxx" { current_enum = new CPPEnumType(NULL, current_scope, (yylsp[(1) - (1)]).file); } break; - case 261: + case 264: /* Line 1792 of yacc.c */ -#line 1977 "dtool/src/cppparser/cppBison.yxx" +#line 2020 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type((yyvsp[(1) - (1)].u.simple_type)); } break; - case 262: + case 265: /* Line 1792 of yacc.c */ -#line 1981 "dtool/src/cppparser/cppBison.yxx" +#line 2024 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = (yyvsp[(1) - (1)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); } break; - case 264: + case 267: /* Line 1792 of yacc.c */ -#line 1989 "dtool/src/cppparser/cppBison.yxx" +#line 2032 "dtool/src/cppparser/cppBison.yxx" { assert(current_enum != NULL); CPPInstance *inst = current_enum->add_element((yyvsp[(2) - (3)].u.identifier)->get_simple_name()); @@ -5740,9 +5885,9 @@ yyreduce: } break; - case 265: + case 268: /* Line 1792 of yacc.c */ -#line 1995 "dtool/src/cppparser/cppBison.yxx" +#line 2038 "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)); @@ -5750,9 +5895,9 @@ yyreduce: } break; - case 267: + case 270: /* Line 1792 of yacc.c */ -#line 2004 "dtool/src/cppparser/cppBison.yxx" +#line 2047 "dtool/src/cppparser/cppBison.yxx" { assert(current_enum != NULL); CPPInstance *inst = current_enum->add_element((yyvsp[(2) - (2)].u.identifier)->get_simple_name()); @@ -5760,9 +5905,9 @@ yyreduce: } break; - case 268: + case 271: /* Line 1792 of yacc.c */ -#line 2010 "dtool/src/cppparser/cppBison.yxx" +#line 2053 "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)); @@ -5770,41 +5915,41 @@ yyreduce: } break; - case 269: + case 272: /* Line 1792 of yacc.c */ -#line 2019 "dtool/src/cppparser/cppBison.yxx" +#line 2062 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.extension_enum) = CPPExtensionType::T_enum; } break; - case 270: + case 273: /* Line 1792 of yacc.c */ -#line 2026 "dtool/src/cppparser/cppBison.yxx" +#line 2069 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.extension_enum) = CPPExtensionType::T_class; } break; - case 271: + case 274: /* Line 1792 of yacc.c */ -#line 2030 "dtool/src/cppparser/cppBison.yxx" +#line 2073 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.extension_enum) = CPPExtensionType::T_struct; } break; - case 272: + case 275: /* Line 1792 of yacc.c */ -#line 2034 "dtool/src/cppparser/cppBison.yxx" +#line 2077 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.extension_enum) = CPPExtensionType::T_union; } break; - case 273: + case 276: /* Line 1792 of yacc.c */ -#line 2041 "dtool/src/cppparser/cppBison.yxx" +#line 2084 "dtool/src/cppparser/cppBison.yxx" { CPPScope *scope = (yyvsp[(2) - (3)].u.identifier)->find_scope(current_scope, global_scope, current_lexer); if (scope == NULL) { @@ -5824,17 +5969,17 @@ yyreduce: } break; - case 274: + case 277: /* Line 1792 of yacc.c */ -#line 2059 "dtool/src/cppparser/cppBison.yxx" +#line 2102 "dtool/src/cppparser/cppBison.yxx" { pop_scope(); } break; - case 276: + case 279: /* Line 1792 of yacc.c */ -#line 2067 "dtool/src/cppparser/cppBison.yxx" +#line 2110 "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)])); @@ -5842,9 +5987,9 @@ yyreduce: } break; - case 277: + case 280: /* Line 1792 of yacc.c */ -#line 2073 "dtool/src/cppparser/cppBison.yxx" +#line 2116 "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)])); @@ -5852,111 +5997,111 @@ yyreduce: } break; - case 281: + case 284: /* Line 1792 of yacc.c */ -#line 2088 "dtool/src/cppparser/cppBison.yxx" +#line 2131 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_bool); } break; - case 282: + case 285: /* Line 1792 of yacc.c */ -#line 2092 "dtool/src/cppparser/cppBison.yxx" +#line 2135 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_char); } break; - case 283: + case 286: /* Line 1792 of yacc.c */ -#line 2096 "dtool/src/cppparser/cppBison.yxx" +#line 2139 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_wchar_t); } break; - case 284: + case 287: /* Line 1792 of yacc.c */ -#line 2100 "dtool/src/cppparser/cppBison.yxx" +#line 2143 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_char16_t); } break; - case 285: + case 288: /* Line 1792 of yacc.c */ -#line 2104 "dtool/src/cppparser/cppBison.yxx" +#line 2147 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_char32_t); } break; - case 286: + case 289: /* Line 1792 of yacc.c */ -#line 2108 "dtool/src/cppparser/cppBison.yxx" +#line 2151 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_short); } break; - case 287: + case 290: /* Line 1792 of yacc.c */ -#line 2113 "dtool/src/cppparser/cppBison.yxx" +#line 2156 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_long); } break; - case 288: + case 291: /* Line 1792 of yacc.c */ -#line 2118 "dtool/src/cppparser/cppBison.yxx" +#line 2161 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_longlong); } break; - case 289: + case 292: /* Line 1792 of yacc.c */ -#line 2123 "dtool/src/cppparser/cppBison.yxx" +#line 2166 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_unsigned); } break; - case 290: + case 293: /* Line 1792 of yacc.c */ -#line 2128 "dtool/src/cppparser/cppBison.yxx" +#line 2171 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_signed); } break; - case 291: + case 294: /* Line 1792 of yacc.c */ -#line 2133 "dtool/src/cppparser/cppBison.yxx" +#line 2176 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int); } break; - case 292: + case 295: /* Line 1792 of yacc.c */ -#line 2137 "dtool/src/cppparser/cppBison.yxx" +#line 2180 "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 293: + case 296: /* Line 1792 of yacc.c */ -#line 2142 "dtool/src/cppparser/cppBison.yxx" +#line 2185 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = (yyvsp[(2) - (2)].u.simple_type); if ((yyval.u.simple_type)->_flags & CPPSimpleType::F_long) { @@ -5967,203 +6112,107 @@ yyreduce: } break; - case 294: + case 297: /* Line 1792 of yacc.c */ -#line 2151 "dtool/src/cppparser/cppBison.yxx" +#line 2194 "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 295: + case 298: /* Line 1792 of yacc.c */ -#line 2156 "dtool/src/cppparser/cppBison.yxx" +#line 2199 "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 296: + case 299: /* Line 1792 of yacc.c */ -#line 2164 "dtool/src/cppparser/cppBison.yxx" +#line 2207 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_float); } break; - case 297: -/* Line 1792 of yacc.c */ -#line 2168 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_float, - CPPSimpleType::F_long); -} - break; - - case 298: -/* Line 1792 of yacc.c */ -#line 2173 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_double); -} - break; - - case 299: -/* Line 1792 of yacc.c */ -#line 2177 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_float, - CPPSimpleType::F_longlong); -} - break; - case 300: /* Line 1792 of yacc.c */ -#line 2182 "dtool/src/cppparser/cppBison.yxx" +#line 2211 "dtool/src/cppparser/cppBison.yxx" { - (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_double, + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_float, CPPSimpleType::F_long); } break; case 301: /* Line 1792 of yacc.c */ -#line 2190 "dtool/src/cppparser/cppBison.yxx" +#line 2216 "dtool/src/cppparser/cppBison.yxx" { - (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_void); + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_double); } break; case 302: /* Line 1792 of yacc.c */ -#line 2199 "dtool/src/cppparser/cppBison.yxx" +#line 2220 "dtool/src/cppparser/cppBison.yxx" { - current_lexer->_resolve_identifiers = false; + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_float, + CPPSimpleType::F_longlong); } break; case 303: /* Line 1792 of yacc.c */ -#line 2203 "dtool/src/cppparser/cppBison.yxx" +#line 2225 "dtool/src/cppparser/cppBison.yxx" { - current_lexer->_resolve_identifiers = true; + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_double, + CPPSimpleType::F_long); +} + break; + + case 304: +/* Line 1792 of yacc.c */ +#line 2233 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_void); +} + break; + + case 305: +/* Line 1792 of yacc.c */ +#line 2242 "dtool/src/cppparser/cppBison.yxx" + { + current_lexer->_resolve_identifiers = false; } break; case 306: /* Line 1792 of yacc.c */ -#line 2215 "dtool/src/cppparser/cppBison.yxx" +#line 2246 "dtool/src/cppparser/cppBison.yxx" + { + current_lexer->_resolve_identifiers = true; +} + break; + + case 401: +/* Line 1792 of yacc.c */ +#line 2286 "dtool/src/cppparser/cppBison.yxx" { } break; - case 307: + case 425: /* Line 1792 of yacc.c */ -#line 2218 "dtool/src/cppparser/cppBison.yxx" - { -} - break; - - case 308: -/* Line 1792 of yacc.c */ -#line 2221 "dtool/src/cppparser/cppBison.yxx" - { -} - break; - - case 309: -/* Line 1792 of yacc.c */ -#line 2224 "dtool/src/cppparser/cppBison.yxx" - { -} - break; - - case 310: -/* Line 1792 of yacc.c */ -#line 2227 "dtool/src/cppparser/cppBison.yxx" - { -} - break; - - case 311: -/* Line 1792 of yacc.c */ -#line 2230 "dtool/src/cppparser/cppBison.yxx" - { -} - break; - - case 312: -/* Line 1792 of yacc.c */ -#line 2233 "dtool/src/cppparser/cppBison.yxx" - { -} - break; - - case 313: -/* Line 1792 of yacc.c */ -#line 2236 "dtool/src/cppparser/cppBison.yxx" - { -} - break; - - case 388: -/* Line 1792 of yacc.c */ -#line 2257 "dtool/src/cppparser/cppBison.yxx" - { -} - break; - - case 412: -/* Line 1792 of yacc.c */ -#line 2266 "dtool/src/cppparser/cppBison.yxx" +#line 2295 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (CPPExpression *)NULL; } break; - case 413: -/* Line 1792 of yacc.c */ -#line 2270 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); -} - break; - - case 414: -/* Line 1792 of yacc.c */ -#line 2277 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (CPPExpression *)NULL; -} - break; - - case 415: -/* Line 1792 of yacc.c */ -#line 2281 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); -} - break; - - case 416: -/* Line 1792 of yacc.c */ -#line 2288 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); -} - break; - - case 417: -/* Line 1792 of yacc.c */ -#line 2292 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(',', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 418: + case 426: /* Line 1792 of yacc.c */ #line 2299 "dtool/src/cppparser/cppBison.yxx" { @@ -6171,305 +6220,345 @@ yyreduce: } break; - case 419: -/* Line 1792 of yacc.c */ -#line 2303 "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 420: -/* Line 1792 of yacc.c */ -#line 2307 "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 421: -/* Line 1792 of yacc.c */ -#line 2311 "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 422: -/* Line 1792 of yacc.c */ -#line 2315 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[(3) - (4)].u.type))); -} - break; - - case 423: -/* Line 1792 of yacc.c */ -#line 2319 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[(2) - (2)].u.expr)); -} - break; - - case 424: -/* Line 1792 of yacc.c */ -#line 2323 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[(2) - (2)].u.expr)); -} - break; - - case 425: -/* Line 1792 of yacc.c */ -#line 2327 "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 426: -/* Line 1792 of yacc.c */ -#line 2339 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(UNARY_STAR, (yyvsp[(2) - (2)].u.expr)); -} - break; - case 427: /* Line 1792 of yacc.c */ -#line 2343 "dtool/src/cppparser/cppBison.yxx" +#line 2306 "dtool/src/cppparser/cppBison.yxx" { - (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[(2) - (2)].u.expr)); + (yyval.u.expr) = (CPPExpression *)NULL; } break; case 428: /* Line 1792 of yacc.c */ -#line 2347 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('*', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 429: -/* Line 1792 of yacc.c */ -#line 2351 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('/', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 430: -/* Line 1792 of yacc.c */ -#line 2355 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('%', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 431: -/* Line 1792 of yacc.c */ -#line 2359 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('+', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 432: -/* Line 1792 of yacc.c */ -#line 2363 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('-', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 433: -/* Line 1792 of yacc.c */ -#line 2367 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('|', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 434: -/* Line 1792 of yacc.c */ -#line 2371 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('^', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 435: -/* Line 1792 of yacc.c */ -#line 2375 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('&', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 436: -/* Line 1792 of yacc.c */ -#line 2379 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 437: -/* Line 1792 of yacc.c */ -#line 2383 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 438: -/* Line 1792 of yacc.c */ -#line 2387 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 439: -/* Line 1792 of yacc.c */ -#line 2391 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 440: -/* Line 1792 of yacc.c */ -#line 2395 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 441: -/* Line 1792 of yacc.c */ -#line 2399 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 442: -/* Line 1792 of yacc.c */ -#line 2403 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 443: -/* Line 1792 of yacc.c */ -#line 2407 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 444: -/* Line 1792 of yacc.c */ -#line 2411 "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 445: -/* Line 1792 of yacc.c */ -#line 2415 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('[', (yyvsp[(1) - (4)].u.expr), (yyvsp[(3) - (4)].u.expr)); -} - break; - - case 446: -/* Line 1792 of yacc.c */ -#line 2419 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('f', (yyvsp[(1) - (4)].u.expr), (yyvsp[(3) - (4)].u.expr)); -} - break; - - case 447: -/* Line 1792 of yacc.c */ -#line 2423 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('f', (yyvsp[(1) - (3)].u.expr)); -} - break; - - case 448: -/* Line 1792 of yacc.c */ -#line 2427 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('.', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 449: -/* Line 1792 of yacc.c */ -#line 2431 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 450: -/* Line 1792 of yacc.c */ -#line 2435 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (yyvsp[(2) - (3)].u.expr); -} - break; - - case 451: -/* Line 1792 of yacc.c */ -#line 2443 "dtool/src/cppparser/cppBison.yxx" +#line 2310 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); } break; - case 452: + case 429: /* Line 1792 of yacc.c */ -#line 2447 "dtool/src/cppparser/cppBison.yxx" +#line 2317 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); +} + break; + + case 430: +/* Line 1792 of yacc.c */ +#line 2321 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(',', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 431: +/* Line 1792 of yacc.c */ +#line 2328 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); +} + break; + + case 432: +/* Line 1792 of yacc.c */ +#line 2332 "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 453: + case 433: /* Line 1792 of yacc.c */ -#line 2451 "dtool/src/cppparser/cppBison.yxx" +#line 2336 "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 434: +/* Line 1792 of yacc.c */ +#line 2340 "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 435: +/* Line 1792 of yacc.c */ +#line 2344 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[(3) - (4)].u.type))); +} + break; + + case 436: +/* Line 1792 of yacc.c */ +#line 2348 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(CPPExpression::alignof_func((yyvsp[(3) - (4)].u.type))); +} + break; + + case 437: +/* Line 1792 of yacc.c */ +#line 2352 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[(2) - (2)].u.expr)); +} + break; + + case 438: +/* Line 1792 of yacc.c */ +#line 2356 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[(2) - (2)].u.expr)); +} + break; + + case 439: +/* Line 1792 of yacc.c */ +#line 2360 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[(2) - (2)].u.expr)); +} + break; + + case 440: +/* Line 1792 of yacc.c */ +#line 2364 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(UNARY_STAR, (yyvsp[(2) - (2)].u.expr)); +} + break; + + case 441: +/* Line 1792 of yacc.c */ +#line 2368 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[(2) - (2)].u.expr)); +} + break; + + case 442: +/* Line 1792 of yacc.c */ +#line 2372 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('*', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 443: +/* Line 1792 of yacc.c */ +#line 2376 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('/', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 444: +/* Line 1792 of yacc.c */ +#line 2380 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('%', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 445: +/* Line 1792 of yacc.c */ +#line 2384 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('+', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 446: +/* Line 1792 of yacc.c */ +#line 2388 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('-', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 447: +/* Line 1792 of yacc.c */ +#line 2392 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('|', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 448: +/* Line 1792 of yacc.c */ +#line 2396 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('^', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 449: +/* Line 1792 of yacc.c */ +#line 2400 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('&', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 450: +/* Line 1792 of yacc.c */ +#line 2404 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 451: +/* Line 1792 of yacc.c */ +#line 2408 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 452: +/* Line 1792 of yacc.c */ +#line 2412 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 453: +/* Line 1792 of yacc.c */ +#line 2416 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + case 454: /* Line 1792 of yacc.c */ -#line 2455 "dtool/src/cppparser/cppBison.yxx" +#line 2420 "dtool/src/cppparser/cppBison.yxx" { - (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[(3) - (7)].u.type), (yyvsp[(6) - (7)].u.expr))); + (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; case 455: /* Line 1792 of yacc.c */ -#line 2459 "dtool/src/cppparser/cppBison.yxx" +#line 2424 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 456: +/* Line 1792 of yacc.c */ +#line 2428 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 457: +/* Line 1792 of yacc.c */ +#line 2432 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 458: +/* Line 1792 of yacc.c */ +#line 2436 "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 459: +/* Line 1792 of yacc.c */ +#line 2440 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('[', (yyvsp[(1) - (4)].u.expr), (yyvsp[(3) - (4)].u.expr)); +} + break; + + case 460: +/* Line 1792 of yacc.c */ +#line 2444 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('f', (yyvsp[(1) - (4)].u.expr), (yyvsp[(3) - (4)].u.expr)); +} + break; + + case 461: +/* Line 1792 of yacc.c */ +#line 2448 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('f', (yyvsp[(1) - (3)].u.expr)); +} + break; + + case 462: +/* Line 1792 of yacc.c */ +#line 2452 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('.', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 463: +/* Line 1792 of yacc.c */ +#line 2456 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 464: +/* Line 1792 of yacc.c */ +#line 2460 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = (yyvsp[(2) - (3)].u.expr); +} + break; + + case 465: +/* Line 1792 of yacc.c */ +#line 2468 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); +} + break; + + case 466: +/* Line 1792 of yacc.c */ +#line 2472 "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 467: +/* Line 1792 of yacc.c */ +#line 2476 "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 468: +/* Line 1792 of yacc.c */ +#line 2480 "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 469: +/* Line 1792 of yacc.c */ +#line 2484 "dtool/src/cppparser/cppBison.yxx" { // A constructor call. CPPType *type = (yyvsp[(1) - (4)].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); @@ -6481,9 +6570,9 @@ yyreduce: } break; - case 456: + case 470: /* Line 1792 of yacc.c */ -#line 2469 "dtool/src/cppparser/cppBison.yxx" +#line 2494 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_int)); @@ -6491,9 +6580,9 @@ yyreduce: } break; - case 457: + case 471: /* Line 1792 of yacc.c */ -#line 2475 "dtool/src/cppparser/cppBison.yxx" +#line 2500 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_char)); @@ -6501,9 +6590,9 @@ yyreduce: } break; - case 458: + case 472: /* Line 1792 of yacc.c */ -#line 2481 "dtool/src/cppparser/cppBison.yxx" +#line 2506 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_wchar_t)); @@ -6511,9 +6600,9 @@ yyreduce: } break; - case 459: + case 473: /* Line 1792 of yacc.c */ -#line 2487 "dtool/src/cppparser/cppBison.yxx" +#line 2512 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_char16_t)); @@ -6521,9 +6610,9 @@ yyreduce: } break; - case 460: + case 474: /* Line 1792 of yacc.c */ -#line 2493 "dtool/src/cppparser/cppBison.yxx" +#line 2518 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_char32_t)); @@ -6531,9 +6620,9 @@ yyreduce: } break; - case 461: + case 475: /* Line 1792 of yacc.c */ -#line 2499 "dtool/src/cppparser/cppBison.yxx" +#line 2524 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_bool)); @@ -6541,9 +6630,9 @@ yyreduce: } break; - case 462: + case 476: /* Line 1792 of yacc.c */ -#line 2505 "dtool/src/cppparser/cppBison.yxx" +#line 2530 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_int, @@ -6552,9 +6641,9 @@ yyreduce: } break; - case 463: + case 477: /* Line 1792 of yacc.c */ -#line 2512 "dtool/src/cppparser/cppBison.yxx" +#line 2537 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_int, @@ -6563,9 +6652,9 @@ yyreduce: } break; - case 464: + case 478: /* Line 1792 of yacc.c */ -#line 2519 "dtool/src/cppparser/cppBison.yxx" +#line 2544 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_int, @@ -6574,9 +6663,9 @@ yyreduce: } break; - case 465: + case 479: /* Line 1792 of yacc.c */ -#line 2526 "dtool/src/cppparser/cppBison.yxx" +#line 2551 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_int, @@ -6585,9 +6674,9 @@ yyreduce: } break; - case 466: + case 480: /* Line 1792 of yacc.c */ -#line 2533 "dtool/src/cppparser/cppBison.yxx" +#line 2558 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_float)); @@ -6595,9 +6684,9 @@ yyreduce: } break; - case 467: + case 481: /* Line 1792 of yacc.c */ -#line 2539 "dtool/src/cppparser/cppBison.yxx" +#line 2564 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_double)); @@ -6605,681 +6694,713 @@ yyreduce: } break; - case 468: -/* Line 1792 of yacc.c */ -#line 2545 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[(3) - (4)].u.type))); -} - break; - - case 469: -/* Line 1792 of yacc.c */ -#line 2549 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[(2) - (2)].u.type))); -} - break; - - case 470: -/* Line 1792 of yacc.c */ -#line 2553 "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 471: -/* Line 1792 of yacc.c */ -#line 2557 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[(2) - (2)].u.expr)); -} - break; - - case 472: -/* Line 1792 of yacc.c */ -#line 2561 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[(2) - (2)].u.expr)); -} - break; - - case 473: -/* Line 1792 of yacc.c */ -#line 2565 "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 474: -/* Line 1792 of yacc.c */ -#line 2577 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(UNARY_STAR, (yyvsp[(2) - (2)].u.expr)); -} - break; - - case 475: -/* Line 1792 of yacc.c */ -#line 2581 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[(2) - (2)].u.expr)); -} - break; - - case 476: -/* 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 477: -/* Line 1792 of yacc.c */ -#line 2589 "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 2593 "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 2597 "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 2601 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('-', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 481: -/* Line 1792 of yacc.c */ -#line 2605 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('|', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - case 482: /* Line 1792 of yacc.c */ -#line 2609 "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)); + (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[(3) - (4)].u.type))); } break; case 483: /* Line 1792 of yacc.c */ -#line 2613 "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)); + (yyval.u.expr) = new CPPExpression(CPPExpression::alignof_func((yyvsp[(3) - (4)].u.type))); } break; case 484: /* Line 1792 of yacc.c */ -#line 2617 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 485: -/* Line 1792 of yacc.c */ -#line 2621 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 486: -/* Line 1792 of yacc.c */ -#line 2625 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 487: -/* Line 1792 of yacc.c */ -#line 2629 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 488: -/* Line 1792 of yacc.c */ -#line 2633 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 489: -/* Line 1792 of yacc.c */ -#line 2637 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 490: -/* Line 1792 of yacc.c */ -#line 2641 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('<', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 491: -/* Line 1792 of yacc.c */ -#line 2645 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('>', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 492: -/* Line 1792 of yacc.c */ -#line 2649 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 493: -/* Line 1792 of yacc.c */ -#line 2653 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 494: -/* Line 1792 of yacc.c */ -#line 2657 "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 495: -/* Line 1792 of yacc.c */ -#line 2661 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('[', (yyvsp[(1) - (4)].u.expr), (yyvsp[(3) - (4)].u.expr)); -} - break; - - case 496: -/* Line 1792 of yacc.c */ -#line 2665 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('f', (yyvsp[(1) - (4)].u.expr), (yyvsp[(3) - (4)].u.expr)); -} - break; - - case 497: -/* Line 1792 of yacc.c */ -#line 2669 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('f', (yyvsp[(1) - (3)].u.expr)); -} - break; - - case 498: -/* Line 1792 of yacc.c */ -#line 2673 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression('.', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 499: -/* Line 1792 of yacc.c */ -#line 2677 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); -} - break; - - case 500: -/* Line 1792 of yacc.c */ -#line 2681 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (yyvsp[(2) - (3)].u.expr); -} - break; - - case 501: -/* Line 1792 of yacc.c */ -#line 2688 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.integer)); -} - break; - - case 502: -/* Line 1792 of yacc.c */ -#line 2692 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(true); -} - break; - - case 503: -/* Line 1792 of yacc.c */ -#line 2696 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(false); -} - break; - - case 504: -/* Line 1792 of yacc.c */ -#line 2700 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.integer)); -} - break; - - case 505: -/* Line 1792 of yacc.c */ -#line 2704 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.real)); -} - break; - - case 506: -/* Line 1792 of yacc.c */ -#line 2708 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].str)); -} - break; - - case 507: -/* Line 1792 of yacc.c */ -#line 2712 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.identifier), current_scope, global_scope, current_lexer); -} - break; - - case 508: -/* Line 1792 of yacc.c */ -#line 2726 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); -} - break; - - case 509: -/* Line 1792 of yacc.c */ -#line 2730 "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 510: -/* Line 1792 of yacc.c */ -#line 2734 "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 511: -/* Line 1792 of yacc.c */ -#line 2738 "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 512: -/* Line 1792 of yacc.c */ -#line 2742 "dtool/src/cppparser/cppBison.yxx" - { - (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[(3) - (4)].u.type))); -} - break; - - case 513: -/* Line 1792 of yacc.c */ -#line 2746 "dtool/src/cppparser/cppBison.yxx" +#line 2578 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[(2) - (2)].u.type))); } break; - case 514: + case 485: /* Line 1792 of yacc.c */ -#line 2750 "dtool/src/cppparser/cppBison.yxx" +#line 2582 "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 515: + case 486: /* Line 1792 of yacc.c */ -#line 2754 "dtool/src/cppparser/cppBison.yxx" +#line 2586 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[(2) - (2)].u.expr)); } break; - case 516: + case 487: /* Line 1792 of yacc.c */ -#line 2758 "dtool/src/cppparser/cppBison.yxx" +#line 2590 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[(2) - (2)].u.expr)); } break; - case 517: + case 488: /* Line 1792 of yacc.c */ -#line 2762 "dtool/src/cppparser/cppBison.yxx" +#line 2594 "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)); - } + (yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[(2) - (2)].u.expr)); } break; - case 518: + case 489: /* Line 1792 of yacc.c */ -#line 2774 "dtool/src/cppparser/cppBison.yxx" +#line 2598 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(UNARY_STAR, (yyvsp[(2) - (2)].u.expr)); +} + break; + + case 490: +/* Line 1792 of yacc.c */ +#line 2602 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[(2) - (2)].u.expr)); } break; - case 519: + case 491: /* 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 520: + case 492: /* Line 1792 of yacc.c */ -#line 2782 "dtool/src/cppparser/cppBison.yxx" +#line 2610 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('/', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 521: + case 493: /* Line 1792 of yacc.c */ -#line 2786 "dtool/src/cppparser/cppBison.yxx" +#line 2614 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('%', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 522: + case 494: /* 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) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 523: + case 495: /* 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) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 524: + case 496: /* Line 1792 of yacc.c */ -#line 2798 "dtool/src/cppparser/cppBison.yxx" +#line 2626 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('|', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 525: + case 497: /* Line 1792 of yacc.c */ -#line 2802 "dtool/src/cppparser/cppBison.yxx" +#line 2630 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('^', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 526: + case 498: /* 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 527: + case 499: /* Line 1792 of yacc.c */ -#line 2810 "dtool/src/cppparser/cppBison.yxx" +#line 2638 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 528: + case 500: /* Line 1792 of yacc.c */ -#line 2814 "dtool/src/cppparser/cppBison.yxx" +#line 2642 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 529: + case 501: /* Line 1792 of yacc.c */ -#line 2818 "dtool/src/cppparser/cppBison.yxx" +#line 2646 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 530: + case 502: /* Line 1792 of yacc.c */ -#line 2822 "dtool/src/cppparser/cppBison.yxx" +#line 2650 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 531: + case 503: /* Line 1792 of yacc.c */ -#line 2826 "dtool/src/cppparser/cppBison.yxx" +#line 2654 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 532: + case 504: /* Line 1792 of yacc.c */ -#line 2830 "dtool/src/cppparser/cppBison.yxx" +#line 2658 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 533: + case 505: /* Line 1792 of yacc.c */ -#line 2834 "dtool/src/cppparser/cppBison.yxx" +#line 2662 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('<', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 534: + case 506: /* Line 1792 of yacc.c */ -#line 2838 "dtool/src/cppparser/cppBison.yxx" +#line 2666 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('>', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 535: + case 507: /* Line 1792 of yacc.c */ -#line 2842 "dtool/src/cppparser/cppBison.yxx" +#line 2670 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 536: + case 508: /* Line 1792 of yacc.c */ -#line 2846 "dtool/src/cppparser/cppBison.yxx" +#line 2674 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 537: + case 509: /* Line 1792 of yacc.c */ -#line 2850 "dtool/src/cppparser/cppBison.yxx" +#line 2678 "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 538: + case 510: /* Line 1792 of yacc.c */ -#line 2854 "dtool/src/cppparser/cppBison.yxx" +#line 2682 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('[', (yyvsp[(1) - (4)].u.expr), (yyvsp[(3) - (4)].u.expr)); } break; - case 539: + case 511: /* Line 1792 of yacc.c */ -#line 2858 "dtool/src/cppparser/cppBison.yxx" +#line 2686 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('f', (yyvsp[(1) - (4)].u.expr), (yyvsp[(3) - (4)].u.expr)); } break; - case 540: + case 512: /* Line 1792 of yacc.c */ -#line 2862 "dtool/src/cppparser/cppBison.yxx" +#line 2690 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('f', (yyvsp[(1) - (3)].u.expr)); } break; - case 541: + case 513: /* Line 1792 of yacc.c */ -#line 2866 "dtool/src/cppparser/cppBison.yxx" +#line 2694 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression('.', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 542: + case 514: /* Line 1792 of yacc.c */ -#line 2870 "dtool/src/cppparser/cppBison.yxx" +#line 2698 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; - case 543: + case 515: /* Line 1792 of yacc.c */ -#line 2874 "dtool/src/cppparser/cppBison.yxx" +#line 2702 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = (yyvsp[(2) - (3)].u.expr); } break; - case 544: + case 516: /* Line 1792 of yacc.c */ -#line 2881 "dtool/src/cppparser/cppBison.yxx" +#line 2709 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.integer)); } break; - case 545: + case 517: /* Line 1792 of yacc.c */ -#line 2885 "dtool/src/cppparser/cppBison.yxx" +#line 2713 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(true); } break; - case 546: + case 518: /* Line 1792 of yacc.c */ -#line 2889 "dtool/src/cppparser/cppBison.yxx" +#line 2717 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression(false); } break; - case 547: + case 519: /* Line 1792 of yacc.c */ -#line 2893 "dtool/src/cppparser/cppBison.yxx" +#line 2721 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.integer)); } break; - case 548: + case 520: /* Line 1792 of yacc.c */ -#line 2897 "dtool/src/cppparser/cppBison.yxx" +#line 2725 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.real)); } break; + case 521: +/* Line 1792 of yacc.c */ +#line 2729 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); +} + break; + + case 522: +/* Line 1792 of yacc.c */ +#line 2733 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); +} + break; + + case 523: +/* Line 1792 of yacc.c */ +#line 2737 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.identifier), current_scope, global_scope, current_lexer); +} + break; + + case 524: +/* Line 1792 of yacc.c */ +#line 2741 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(CPPExpression::get_nullptr()); +} + break; + + case 525: +/* Line 1792 of yacc.c */ +#line 2755 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); +} + break; + + case 526: +/* Line 1792 of yacc.c */ +#line 2759 "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 527: +/* Line 1792 of yacc.c */ +#line 2763 "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 528: +/* Line 1792 of yacc.c */ +#line 2767 "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 529: +/* Line 1792 of yacc.c */ +#line 2771 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[(3) - (4)].u.type))); +} + break; + + case 530: +/* Line 1792 of yacc.c */ +#line 2775 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(CPPExpression::alignof_func((yyvsp[(3) - (4)].u.type))); +} + break; + + case 531: +/* Line 1792 of yacc.c */ +#line 2779 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[(2) - (2)].u.type))); +} + break; + + case 532: +/* Line 1792 of yacc.c */ +#line 2783 "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 533: +/* Line 1792 of yacc.c */ +#line 2787 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[(2) - (2)].u.expr)); +} + break; + + case 534: +/* Line 1792 of yacc.c */ +#line 2791 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[(2) - (2)].u.expr)); +} + break; + + case 535: +/* Line 1792 of yacc.c */ +#line 2795 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[(2) - (2)].u.expr)); +} + break; + + case 536: +/* Line 1792 of yacc.c */ +#line 2799 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[(2) - (2)].u.expr)); +} + break; + + case 537: +/* Line 1792 of yacc.c */ +#line 2803 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('*', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 538: +/* Line 1792 of yacc.c */ +#line 2807 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('/', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 539: +/* Line 1792 of yacc.c */ +#line 2811 "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 2815 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('+', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 541: +/* Line 1792 of yacc.c */ +#line 2819 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('-', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 542: +/* Line 1792 of yacc.c */ +#line 2823 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('|', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 543: +/* 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 544: +/* Line 1792 of yacc.c */ +#line 2831 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('&', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 545: +/* Line 1792 of yacc.c */ +#line 2835 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 546: +/* Line 1792 of yacc.c */ +#line 2839 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 547: +/* Line 1792 of yacc.c */ +#line 2843 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 548: +/* Line 1792 of yacc.c */ +#line 2847 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + case 549: /* Line 1792 of yacc.c */ -#line 2901 "dtool/src/cppparser/cppBison.yxx" +#line 2851 "dtool/src/cppparser/cppBison.yxx" { - (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].str)); + (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); } break; case 550: /* Line 1792 of yacc.c */ -#line 2908 "dtool/src/cppparser/cppBison.yxx" +#line 2855 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 551: +/* Line 1792 of yacc.c */ +#line 2859 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('<', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 552: +/* Line 1792 of yacc.c */ +#line 2863 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('>', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 553: +/* Line 1792 of yacc.c */ +#line 2867 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 554: +/* Line 1792 of yacc.c */ +#line 2871 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 555: +/* Line 1792 of yacc.c */ +#line 2875 "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 556: +/* Line 1792 of yacc.c */ +#line 2879 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('[', (yyvsp[(1) - (4)].u.expr), (yyvsp[(3) - (4)].u.expr)); +} + break; + + case 557: +/* Line 1792 of yacc.c */ +#line 2883 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('f', (yyvsp[(1) - (4)].u.expr), (yyvsp[(3) - (4)].u.expr)); +} + break; + + case 558: +/* Line 1792 of yacc.c */ +#line 2887 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('f', (yyvsp[(1) - (3)].u.expr)); +} + break; + + case 559: +/* Line 1792 of yacc.c */ +#line 2891 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('.', (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 560: +/* Line 1792 of yacc.c */ +#line 2895 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); +} + break; + + case 561: +/* Line 1792 of yacc.c */ +#line 2899 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = (yyvsp[(2) - (3)].u.expr); +} + break; + + case 562: +/* Line 1792 of yacc.c */ +#line 2906 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.integer)); +} + break; + + case 563: +/* Line 1792 of yacc.c */ +#line 2910 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(true); +} + break; + + case 564: +/* Line 1792 of yacc.c */ +#line 2914 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(false); +} + break; + + case 565: +/* Line 1792 of yacc.c */ +#line 2918 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.integer)); +} + break; + + case 566: +/* Line 1792 of yacc.c */ +#line 2922 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].u.real)); +} + break; + + case 567: +/* Line 1792 of yacc.c */ +#line 2926 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); +} + break; + + case 568: +/* Line 1792 of yacc.c */ +#line 2930 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); +} + break; + + case 569: +/* Line 1792 of yacc.c */ +#line 2934 "dtool/src/cppparser/cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(CPPExpression::get_nullptr()); +} + break; + + case 570: +/* Line 1792 of yacc.c */ +#line 2941 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = (yyvsp[(1) - (1)].u.identifier)->find_type(current_scope, global_scope, true); if (type == NULL) { @@ -7289,9 +7410,9 @@ yyreduce: } break; - case 551: + case 571: /* Line 1792 of yacc.c */ -#line 2916 "dtool/src/cppparser/cppBison.yxx" +#line 2949 "dtool/src/cppparser/cppBison.yxx" { CPPType *type = (yyvsp[(2) - (2)].u.identifier)->find_type(current_scope, global_scope, true, current_lexer); if (type == NULL) { @@ -7301,49 +7422,72 @@ yyreduce: } break; - case 552: + case 572: /* Line 1792 of yacc.c */ -#line 2924 "dtool/src/cppparser/cppBison.yxx" +#line 2957 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[(2) - (2)].u.identifier))); } break; - case 553: + case 573: /* Line 1792 of yacc.c */ -#line 2950 "dtool/src/cppparser/cppBison.yxx" +#line 2983 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.identifier) = (yyvsp[(1) - (1)].u.identifier); } break; - case 554: + case 574: /* Line 1792 of yacc.c */ -#line 2954 "dtool/src/cppparser/cppBison.yxx" +#line 2987 "dtool/src/cppparser/cppBison.yxx" { (yyval.u.identifier) = (yyvsp[(1) - (1)].u.identifier); } break; - case 555: + case 575: /* Line 1792 of yacc.c */ -#line 2961 "dtool/src/cppparser/cppBison.yxx" +#line 2994 "dtool/src/cppparser/cppBison.yxx" { - (yyval.str) = (yyvsp[(1) - (1)].str); + (yyval.u.expr) = new CPPExpression((yyvsp[(1) - (1)].str)); } break; - case 556: + case 576: /* Line 1792 of yacc.c */ -#line 2965 "dtool/src/cppparser/cppBison.yxx" +#line 2998 "dtool/src/cppparser/cppBison.yxx" { - (yyval.str) = (yyvsp[(1) - (2)].str) + (yyvsp[(2) - (2)].str); + (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); +} + break; + + case 577: +/* Line 1792 of yacc.c */ +#line 3002 "dtool/src/cppparser/cppBison.yxx" + { + // The right string takes on the literal type of the left. + (yyval.u.expr) = (yyvsp[(1) - (2)].u.expr); + (yyval.u.expr)->_str += (yyvsp[(2) - (2)].str); +} + break; + + case 578: +/* Line 1792 of yacc.c */ +#line 3008 "dtool/src/cppparser/cppBison.yxx" + { + // We have to check that the two literal types match up. + (yyval.u.expr) = (yyvsp[(1) - (2)].u.expr); + if ((yyvsp[(2) - (2)].u.expr)->_type != CPPExpression::T_string && (yyvsp[(2) - (2)].u.expr)->_type != (yyvsp[(1) - (2)].u.expr)->_type) { + yywarning("cannot concatenate two string literals of different types", (yyloc)); + } + (yyval.u.expr)->_str += (yyvsp[(2) - (2)].u.expr)->_str; } break; /* Line 1792 of yacc.c */ -#line 7347 "built/tmp/cppBison.yxx.c" +#line 7491 "built/tmp/cppBison.yxx.c" default: break; } /* User semantic actions sometimes alter yychar, and that requires diff --git a/dtool/src/cppparser/cppBison.h.prebuilt b/dtool/src/cppparser/cppBison.h.prebuilt index 6c1aac48d8..2799f4873f 100644 --- a/dtool/src/cppparser/cppBison.h.prebuilt +++ b/dtool/src/cppparser/cppBison.h.prebuilt @@ -49,216 +49,234 @@ extern int cppyydebug; REAL = 258, INTEGER = 259, CHAR_TOK = 260, - STRING = 261, + SIMPLE_STRING = 261, SIMPLE_IDENTIFIER = 262, - IDENTIFIER = 263, - TYPENAME_IDENTIFIER = 264, - SCOPING = 265, - TYPEDEFNAME = 266, - ELLIPSIS = 267, - OROR = 268, - ANDAND = 269, - EQCOMPARE = 270, - NECOMPARE = 271, - LECOMPARE = 272, - GECOMPARE = 273, - LSHIFT = 274, - RSHIFT = 275, - POINTSAT_STAR = 276, - DOT_STAR = 277, - UNARY = 278, - UNARY_NOT = 279, - UNARY_NEGATE = 280, - UNARY_MINUS = 281, - UNARY_STAR = 282, - UNARY_REF = 283, - POINTSAT = 284, - SCOPE = 285, - PLUSPLUS = 286, - MINUSMINUS = 287, - TIMESEQUAL = 288, - DIVIDEEQUAL = 289, - MODEQUAL = 290, - PLUSEQUAL = 291, - MINUSEQUAL = 292, - OREQUAL = 293, - ANDEQUAL = 294, - XOREQUAL = 295, - LSHIFTEQUAL = 296, - RSHIFTEQUAL = 297, - KW_BEGIN_PUBLISH = 298, - KW_BLOCKING = 299, - KW_BOOL = 300, - KW_CATCH = 301, - KW_CHAR = 302, - KW_CHAR16_T = 303, - KW_CHAR32_T = 304, - KW_CLASS = 305, - KW_CONST = 306, - KW_DELETE = 307, - KW_DOUBLE = 308, - KW_DYNAMIC_CAST = 309, - KW_ELSE = 310, - KW_END_PUBLISH = 311, - KW_ENUM = 312, - KW_EXTENSION = 313, - KW_EXTERN = 314, - KW_EXPLICIT = 315, - KW_PUBLISHED = 316, - KW_FALSE = 317, - KW_FLOAT = 318, - KW_FRIEND = 319, - KW_FOR = 320, - KW_GOTO = 321, - KW_IF = 322, - KW_INLINE = 323, - KW_INT = 324, - KW_LONG = 325, - KW_LONGLONG = 326, - KW_MAKE_PROPERTY = 327, - KW_MAKE_SEQ = 328, - KW_MUTABLE = 329, - KW_NAMESPACE = 330, - KW_NEW = 331, - KW_NOEXCEPT = 332, - KW_OPERATOR = 333, - KW_PRIVATE = 334, - KW_PROTECTED = 335, - KW_PUBLIC = 336, - KW_REGISTER = 337, - KW_RETURN = 338, - KW_SHORT = 339, - KW_SIGNED = 340, - KW_SIZEOF = 341, - KW_STATIC = 342, - KW_STATIC_ASSERT = 343, - KW_STATIC_CAST = 344, - KW_STRUCT = 345, - KW_TEMPLATE = 346, - KW_THROW = 347, - KW_TRUE = 348, - KW_TRY = 349, - KW_TYPEDEF = 350, - KW_TYPENAME = 351, - KW_UNION = 352, - KW_UNSIGNED = 353, - KW_USING = 354, - KW_VIRTUAL = 355, - KW_VOID = 356, - KW_VOLATILE = 357, - KW_WCHAR_T = 358, - KW_WHILE = 359, - START_CPP = 360, - START_CONST_EXPR = 361, - START_TYPE = 362 + STRING_LITERAL = 263, + CUSTOM_LITERAL = 264, + IDENTIFIER = 265, + TYPENAME_IDENTIFIER = 266, + SCOPING = 267, + TYPEDEFNAME = 268, + ELLIPSIS = 269, + OROR = 270, + ANDAND = 271, + EQCOMPARE = 272, + NECOMPARE = 273, + LECOMPARE = 274, + GECOMPARE = 275, + LSHIFT = 276, + RSHIFT = 277, + POINTSAT_STAR = 278, + DOT_STAR = 279, + UNARY = 280, + UNARY_NOT = 281, + UNARY_NEGATE = 282, + UNARY_MINUS = 283, + UNARY_STAR = 284, + UNARY_REF = 285, + POINTSAT = 286, + SCOPE = 287, + PLUSPLUS = 288, + MINUSMINUS = 289, + TIMESEQUAL = 290, + DIVIDEEQUAL = 291, + MODEQUAL = 292, + PLUSEQUAL = 293, + MINUSEQUAL = 294, + OREQUAL = 295, + ANDEQUAL = 296, + XOREQUAL = 297, + LSHIFTEQUAL = 298, + RSHIFTEQUAL = 299, + KW_ALIGNAS = 300, + KW_ALIGNOF = 301, + KW_AUTO = 302, + KW_BEGIN_PUBLISH = 303, + KW_BLOCKING = 304, + KW_BOOL = 305, + KW_CATCH = 306, + KW_CHAR = 307, + KW_CHAR16_T = 308, + KW_CHAR32_T = 309, + KW_CLASS = 310, + KW_CONST = 311, + KW_CONSTEXPR = 312, + KW_DECLTYPE = 313, + KW_DEFAULT = 314, + KW_DELETE = 315, + KW_DOUBLE = 316, + KW_DYNAMIC_CAST = 317, + KW_ELSE = 318, + KW_END_PUBLISH = 319, + KW_ENUM = 320, + KW_EXTENSION = 321, + KW_EXTERN = 322, + KW_EXPLICIT = 323, + KW_PUBLISHED = 324, + KW_FALSE = 325, + KW_FLOAT = 326, + KW_FRIEND = 327, + KW_FOR = 328, + KW_GOTO = 329, + KW_IF = 330, + KW_INLINE = 331, + KW_INT = 332, + KW_LONG = 333, + KW_LONGLONG = 334, + KW_MAKE_PROPERTY = 335, + KW_MAKE_SEQ = 336, + KW_MUTABLE = 337, + KW_NAMESPACE = 338, + KW_NEW = 339, + KW_NOEXCEPT = 340, + KW_NULLPTR = 341, + KW_OPERATOR = 342, + KW_PRIVATE = 343, + KW_PROTECTED = 344, + KW_PUBLIC = 345, + KW_REGISTER = 346, + KW_RETURN = 347, + KW_SHORT = 348, + KW_SIGNED = 349, + KW_SIZEOF = 350, + KW_STATIC = 351, + KW_STATIC_ASSERT = 352, + KW_STATIC_CAST = 353, + KW_STRUCT = 354, + KW_TEMPLATE = 355, + KW_THROW = 356, + KW_TRUE = 357, + KW_TRY = 358, + KW_TYPEDEF = 359, + KW_TYPENAME = 360, + KW_UNION = 361, + KW_UNSIGNED = 362, + KW_USING = 363, + KW_VIRTUAL = 364, + KW_VOID = 365, + KW_VOLATILE = 366, + KW_WCHAR_T = 367, + KW_WHILE = 368, + START_CPP = 369, + START_CONST_EXPR = 370, + START_TYPE = 371 }; #endif /* Tokens. */ #define REAL 258 #define INTEGER 259 #define CHAR_TOK 260 -#define STRING 261 +#define SIMPLE_STRING 261 #define SIMPLE_IDENTIFIER 262 -#define IDENTIFIER 263 -#define TYPENAME_IDENTIFIER 264 -#define SCOPING 265 -#define TYPEDEFNAME 266 -#define ELLIPSIS 267 -#define OROR 268 -#define ANDAND 269 -#define EQCOMPARE 270 -#define NECOMPARE 271 -#define LECOMPARE 272 -#define GECOMPARE 273 -#define LSHIFT 274 -#define RSHIFT 275 -#define POINTSAT_STAR 276 -#define DOT_STAR 277 -#define UNARY 278 -#define UNARY_NOT 279 -#define UNARY_NEGATE 280 -#define UNARY_MINUS 281 -#define UNARY_STAR 282 -#define UNARY_REF 283 -#define POINTSAT 284 -#define SCOPE 285 -#define PLUSPLUS 286 -#define MINUSMINUS 287 -#define TIMESEQUAL 288 -#define DIVIDEEQUAL 289 -#define MODEQUAL 290 -#define PLUSEQUAL 291 -#define MINUSEQUAL 292 -#define OREQUAL 293 -#define ANDEQUAL 294 -#define XOREQUAL 295 -#define LSHIFTEQUAL 296 -#define RSHIFTEQUAL 297 -#define KW_BEGIN_PUBLISH 298 -#define KW_BLOCKING 299 -#define KW_BOOL 300 -#define KW_CATCH 301 -#define KW_CHAR 302 -#define KW_CHAR16_T 303 -#define KW_CHAR32_T 304 -#define KW_CLASS 305 -#define KW_CONST 306 -#define KW_DELETE 307 -#define KW_DOUBLE 308 -#define KW_DYNAMIC_CAST 309 -#define KW_ELSE 310 -#define KW_END_PUBLISH 311 -#define KW_ENUM 312 -#define KW_EXTENSION 313 -#define KW_EXTERN 314 -#define KW_EXPLICIT 315 -#define KW_PUBLISHED 316 -#define KW_FALSE 317 -#define KW_FLOAT 318 -#define KW_FRIEND 319 -#define KW_FOR 320 -#define KW_GOTO 321 -#define KW_IF 322 -#define KW_INLINE 323 -#define KW_INT 324 -#define KW_LONG 325 -#define KW_LONGLONG 326 -#define KW_MAKE_PROPERTY 327 -#define KW_MAKE_SEQ 328 -#define KW_MUTABLE 329 -#define KW_NAMESPACE 330 -#define KW_NEW 331 -#define KW_NOEXCEPT 332 -#define KW_OPERATOR 333 -#define KW_PRIVATE 334 -#define KW_PROTECTED 335 -#define KW_PUBLIC 336 -#define KW_REGISTER 337 -#define KW_RETURN 338 -#define KW_SHORT 339 -#define KW_SIGNED 340 -#define KW_SIZEOF 341 -#define KW_STATIC 342 -#define KW_STATIC_ASSERT 343 -#define KW_STATIC_CAST 344 -#define KW_STRUCT 345 -#define KW_TEMPLATE 346 -#define KW_THROW 347 -#define KW_TRUE 348 -#define KW_TRY 349 -#define KW_TYPEDEF 350 -#define KW_TYPENAME 351 -#define KW_UNION 352 -#define KW_UNSIGNED 353 -#define KW_USING 354 -#define KW_VIRTUAL 355 -#define KW_VOID 356 -#define KW_VOLATILE 357 -#define KW_WCHAR_T 358 -#define KW_WHILE 359 -#define START_CPP 360 -#define START_CONST_EXPR 361 -#define START_TYPE 362 +#define STRING_LITERAL 263 +#define CUSTOM_LITERAL 264 +#define IDENTIFIER 265 +#define TYPENAME_IDENTIFIER 266 +#define SCOPING 267 +#define TYPEDEFNAME 268 +#define ELLIPSIS 269 +#define OROR 270 +#define ANDAND 271 +#define EQCOMPARE 272 +#define NECOMPARE 273 +#define LECOMPARE 274 +#define GECOMPARE 275 +#define LSHIFT 276 +#define RSHIFT 277 +#define POINTSAT_STAR 278 +#define DOT_STAR 279 +#define UNARY 280 +#define UNARY_NOT 281 +#define UNARY_NEGATE 282 +#define UNARY_MINUS 283 +#define UNARY_STAR 284 +#define UNARY_REF 285 +#define POINTSAT 286 +#define SCOPE 287 +#define PLUSPLUS 288 +#define MINUSMINUS 289 +#define TIMESEQUAL 290 +#define DIVIDEEQUAL 291 +#define MODEQUAL 292 +#define PLUSEQUAL 293 +#define MINUSEQUAL 294 +#define OREQUAL 295 +#define ANDEQUAL 296 +#define XOREQUAL 297 +#define LSHIFTEQUAL 298 +#define RSHIFTEQUAL 299 +#define KW_ALIGNAS 300 +#define KW_ALIGNOF 301 +#define KW_AUTO 302 +#define KW_BEGIN_PUBLISH 303 +#define KW_BLOCKING 304 +#define KW_BOOL 305 +#define KW_CATCH 306 +#define KW_CHAR 307 +#define KW_CHAR16_T 308 +#define KW_CHAR32_T 309 +#define KW_CLASS 310 +#define KW_CONST 311 +#define KW_CONSTEXPR 312 +#define KW_DECLTYPE 313 +#define KW_DEFAULT 314 +#define KW_DELETE 315 +#define KW_DOUBLE 316 +#define KW_DYNAMIC_CAST 317 +#define KW_ELSE 318 +#define KW_END_PUBLISH 319 +#define KW_ENUM 320 +#define KW_EXTENSION 321 +#define KW_EXTERN 322 +#define KW_EXPLICIT 323 +#define KW_PUBLISHED 324 +#define KW_FALSE 325 +#define KW_FLOAT 326 +#define KW_FRIEND 327 +#define KW_FOR 328 +#define KW_GOTO 329 +#define KW_IF 330 +#define KW_INLINE 331 +#define KW_INT 332 +#define KW_LONG 333 +#define KW_LONGLONG 334 +#define KW_MAKE_PROPERTY 335 +#define KW_MAKE_SEQ 336 +#define KW_MUTABLE 337 +#define KW_NAMESPACE 338 +#define KW_NEW 339 +#define KW_NOEXCEPT 340 +#define KW_NULLPTR 341 +#define KW_OPERATOR 342 +#define KW_PRIVATE 343 +#define KW_PROTECTED 344 +#define KW_PUBLIC 345 +#define KW_REGISTER 346 +#define KW_RETURN 347 +#define KW_SHORT 348 +#define KW_SIGNED 349 +#define KW_SIZEOF 350 +#define KW_STATIC 351 +#define KW_STATIC_ASSERT 352 +#define KW_STATIC_CAST 353 +#define KW_STRUCT 354 +#define KW_TEMPLATE 355 +#define KW_THROW 356 +#define KW_TRUE 357 +#define KW_TRY 358 +#define KW_TYPEDEF 359 +#define KW_TYPENAME 360 +#define KW_UNION 361 +#define KW_UNSIGNED 362 +#define KW_USING 363 +#define KW_VIRTUAL 364 +#define KW_VOID 365 +#define KW_VOLATILE 366 +#define KW_WCHAR_T 367 +#define KW_WHILE 368 +#define START_CPP 369 +#define START_CONST_EXPR 370 +#define START_TYPE 371 diff --git a/dtool/src/cppparser/cppBison.yxx b/dtool/src/cppparser/cppBison.yxx index 5ca786f485..6221bd8507 100644 --- a/dtool/src/cppparser/cppBison.yxx +++ b/dtool/src/cppparser/cppBison.yxx @@ -209,7 +209,8 @@ pop_struct() { %token REAL %token INTEGER %token CHAR_TOK -%token STRING SIMPLE_IDENTIFIER +%token SIMPLE_STRING SIMPLE_IDENTIFIER +%token STRING_LITERAL CUSTOM_LITERAL %token IDENTIFIER TYPENAME_IDENTIFIER SCOPING %token TYPEDEFNAME @@ -245,6 +246,9 @@ pop_struct() { %token LSHIFTEQUAL %token RSHIFTEQUAL +%token KW_ALIGNAS +%token KW_ALIGNOF +%token KW_AUTO %token KW_BEGIN_PUBLISH %token KW_BLOCKING %token KW_BOOL @@ -254,6 +258,9 @@ pop_struct() { %token KW_CHAR32_T %token KW_CLASS %token KW_CONST +%token KW_CONSTEXPR +%token KW_DECLTYPE +%token KW_DEFAULT %token KW_DELETE %token KW_DOUBLE %token KW_DYNAMIC_CAST @@ -280,6 +287,7 @@ pop_struct() { %token KW_NAMESPACE %token KW_NEW %token KW_NOEXCEPT +%token KW_NULLPTR %token KW_OPERATOR %token KW_PRIVATE %token KW_PROTECTED @@ -348,7 +356,7 @@ pop_struct() { %type enum_element_type /*%type typedefname*/ %type name -%type string +%type string_literal /* We need to treat KW_OPERATOR as a scopable keyword. */ %type KW_OPERATOR @@ -526,13 +534,15 @@ declaration: CPPMakeSeq *make_seq = new CPPMakeSeq($3->get_simple_name(), $5->get_simple_name(), $7->get_simple_name(), @1.file); current_scope->add_declaration(make_seq, global_scope, current_lexer, @1); } - | KW_STATIC_ASSERT '(' const_expr ',' string ')' + | KW_STATIC_ASSERT '(' const_expr ',' string_literal ')' { CPPExpression::Result result = $3->evaluate(); if (result._type == CPPExpression::RT_error) { yywarning("static_assert requires a constant expression", @3); } else if (!result.as_boolean()) { - yywarning("static_assert failed: " + $5, @3); + stringstream str; + str << *$5; + yywarning("static_assert failed: " + str.str(), @3); } } | KW_STATIC_ASSERT '(' const_expr ')' @@ -571,7 +581,7 @@ storage_class: { $$ = $1 | (int)CPPInstance::SC_extern; } - | storage_class KW_EXTERN string + | storage_class KW_EXTERN SIMPLE_STRING { $$ = $1 | (int)CPPInstance::SC_extern; if ($3 == "C") { @@ -1266,6 +1276,21 @@ instance_identifier: ident->_names.push_back("operator "+$2); } + $$ = new CPPInstanceIdentifier(ident); +} + | KW_OPERATOR SIMPLE_STRING IDENTIFIER +{ + // A C++11 literal operator. + if (!$2.empty()) { + yyerror("expected empty string", @2); + } + CPPIdentifier *ident = $1; + if (ident == NULL) { + ident = new CPPIdentifier("operator \"\" "+$3->get_simple_name(), @3); + } else { + ident->_names.push_back("operator \"\" "+$3->get_simple_name()); + } + $$ = new CPPInstanceIdentifier(ident); } | KW_CONST instance_identifier %prec UNARY @@ -1691,6 +1716,15 @@ type: } $$ = et; } +} + | KW_DECLTYPE '(' const_expr ')' +{ + $$ = $3->determine_type(); + if ($$ == (CPPType *)NULL) { + stringstream str; + str << *$3; + yyerror("could not determine type of " + str.str(), @3); + } } ; @@ -1772,6 +1806,15 @@ type_decl: } $$ = et; } +} + | KW_DECLTYPE '(' const_expr ')' +{ + $$ = $3->determine_type(); + if ($$ == (CPPType *)NULL) { + stringstream str; + str << *$3; + yyerror("could not determine type of " + str.str(), @3); + } } ; @@ -2212,48 +2255,34 @@ code_block: element: REAL -{ -} | INTEGER -{ -} - | STRING -{ -} + | SIMPLE_STRING + | STRING_LITERAL + | CUSTOM_LITERAL | CHAR_TOK -{ -} | IDENTIFIER -{ -} | TYPENAME_IDENTIFIER -{ -} | SCOPING -{ -} | SIMPLE_IDENTIFIER -{ -} | ELLIPSIS | OROR | ANDAND | EQCOMPARE | NECOMPARE | LECOMPARE | GECOMPARE | LSHIFT | RSHIFT | POINTSAT_STAR | DOT_STAR | POINTSAT | SCOPE | PLUSPLUS | MINUSMINUS | TIMESEQUAL | DIVIDEEQUAL | MODEQUAL | PLUSEQUAL | MINUSEQUAL | OREQUAL | ANDEQUAL | XOREQUAL | LSHIFTEQUAL | RSHIFTEQUAL - | KW_BOOL | KW_CATCH | KW_CHAR | KW_CHAR16_T | KW_CHAR32_T - | KW_WCHAR_T | KW_CLASS | KW_CONST + | KW_ALIGNAS | KW_ALIGNOF | KW_AUTO | KW_BOOL | KW_CATCH + | KW_CHAR | KW_CHAR16_T | KW_CHAR32_T + | KW_CLASS | KW_CONST | KW_CONSTEXPR | KW_DECLTYPE | KW_DEFAULT | KW_DELETE | KW_DOUBLE | KW_DYNAMIC_CAST | KW_ELSE | KW_ENUM | KW_EXTERN | KW_EXPLICIT | KW_FALSE | KW_FLOAT | KW_FRIEND | KW_FOR | KW_GOTO - | KW_IF | KW_INLINE | KW_INT - | KW_LONG | KW_MUTABLE | KW_NEW | KW_PRIVATE | KW_PROTECTED + | KW_IF | KW_INLINE | KW_INT | KW_LONG | KW_MUTABLE + | KW_NEW | KW_NULLPTR | KW_OPERATOR | KW_PRIVATE | KW_PROTECTED | KW_PUBLIC | KW_PUBLISHED | KW_REGISTER | KW_RETURN - | KW_SHORT | KW_SIGNED | KW_SIZEOF | KW_STATIC | KW_STATIC_CAST - | KW_STRUCT | KW_THROW | KW_TRUE | KW_TRY | KW_TYPEDEF | KW_TYPENAME - | KW_UNION | KW_UNSIGNED | KW_VIRTUAL | KW_VOID | KW_VOLATILE - | KW_WHILE - | KW_OPERATOR + | KW_SHORT | KW_SIGNED | KW_SIZEOF | KW_STATIC | KW_STATIC_ASSERT + | KW_STATIC_CAST | KW_STRUCT | KW_THROW | KW_TRUE | KW_TRY + | KW_TYPEDEF | KW_TYPENAME | KW_UNION | KW_UNSIGNED | KW_VIRTUAL + | KW_VOID | KW_VOLATILE | KW_WCHAR_T | KW_WHILE { } | '+' | '-' | '*' | '/' | '&' | '|' | '^' | '!' | '~' | '=' | '%' @@ -2314,6 +2343,10 @@ no_angle_bracket_const_expr: | KW_SIZEOF '(' full_type ')' %prec UNARY { $$ = new CPPExpression(CPPExpression::sizeof_func($3)); +} + | KW_ALIGNOF '(' full_type ')' %prec UNARY +{ + $$ = new CPPExpression(CPPExpression::alignof_func($3)); } | '!' no_angle_bracket_const_expr %prec UNARY { @@ -2325,15 +2358,7 @@ no_angle_bracket_const_expr: } | '-' no_angle_bracket_const_expr %prec UNARY { - if ($2->_type == CPPExpression::T_integer) { - $$ = $2; - $$->_u._integer = -$$->_u._integer; - } else if ($2->_type == CPPExpression::T_real) { - $$ = $2; - $$->_u._real = -$$->_u._real; - } else { - $$ = new CPPExpression(UNARY_MINUS, $2); - } + $$ = new CPPExpression(UNARY_MINUS, $2); } | '*' no_angle_bracket_const_expr %prec UNARY { @@ -2544,6 +2569,10 @@ const_expr: | KW_SIZEOF '(' full_type ')' %prec UNARY { $$ = new CPPExpression(CPPExpression::sizeof_func($3)); +} + | KW_ALIGNOF '(' full_type ')' %prec UNARY +{ + $$ = new CPPExpression(CPPExpression::alignof_func($3)); } | KW_NEW predefined_type %prec UNARY { @@ -2563,15 +2592,7 @@ const_expr: } | '-' const_expr %prec UNARY { - if ($2->_type == CPPExpression::T_integer) { - $$ = $2; - $$->_u._integer = -$$->_u._integer; - } else if ($2->_type == CPPExpression::T_real) { - $$ = $2; - $$->_u._real = -$$->_u._real; - } else { - $$ = new CPPExpression(UNARY_MINUS, $2); - } + $$ = new CPPExpression(UNARY_MINUS, $2); } | '*' const_expr %prec UNARY { @@ -2704,13 +2725,21 @@ const_operand: { $$ = new CPPExpression($1); } - | string + | string_literal { - $$ = new CPPExpression($1); + $$ = $1; +} + | CUSTOM_LITERAL +{ + $$ = $1; } | IDENTIFIER { $$ = new CPPExpression($1, current_scope, global_scope, current_lexer); +} + | KW_NULLPTR +{ + $$ = new CPPExpression(CPPExpression::get_nullptr()); } ; @@ -2741,6 +2770,10 @@ formal_const_expr: | KW_SIZEOF '(' full_type ')' %prec UNARY { $$ = new CPPExpression(CPPExpression::sizeof_func($3)); +} + | KW_ALIGNOF '(' full_type ')' %prec UNARY +{ + $$ = new CPPExpression(CPPExpression::alignof_func($3)); } | KW_NEW predefined_type %prec UNARY { @@ -2760,15 +2793,7 @@ formal_const_expr: } | '-' const_expr %prec UNARY { - if ($2->_type == CPPExpression::T_integer) { - $$ = $2; - $$->_u._integer = -$$->_u._integer; - } else if ($2->_type == CPPExpression::T_real) { - $$ = $2; - $$->_u._real = -$$->_u._real; - } else { - $$ = new CPPExpression(UNARY_MINUS, $2); - } + $$ = new CPPExpression(UNARY_MINUS, $2); } | '&' const_expr %prec UNARY { @@ -2897,9 +2922,17 @@ formal_const_operand: { $$ = new CPPExpression($1); } - | string + | string_literal { - $$ = new CPPExpression($1); + $$ = $1; +} + | CUSTOM_LITERAL +{ + $$ = $1; +} + | KW_NULLPTR +{ + $$ = new CPPExpression(CPPExpression::get_nullptr()); } ; @@ -2956,14 +2989,29 @@ name: } ; -string: - STRING +string_literal: + SIMPLE_STRING +{ + $$ = new CPPExpression($1); +} + | STRING_LITERAL { $$ = $1; } - | string STRING + | string_literal SIMPLE_STRING { - $$ = $1 + $2; + // The right string takes on the literal type of the left. + $$ = $1; + $$->_str += $2; +} + | string_literal STRING_LITERAL +{ + // We have to check that the two literal types match up. + $$ = $1; + if ($2->_type != CPPExpression::T_string && $2->_type != $1->_type) { + yywarning("cannot concatenate two string literals of different types", @$); + } + $$->_str += $2->_str; } ; diff --git a/dtool/src/cppparser/cppBisonDefs.h b/dtool/src/cppparser/cppBisonDefs.h index eb5253455d..ae1fc477d7 100644 --- a/dtool/src/cppparser/cppBisonDefs.h +++ b/dtool/src/cppparser/cppBisonDefs.h @@ -68,8 +68,8 @@ class cppyystype { public: string str; union { - int integer; - double real; + unsigned long long integer; + long double real; CPPScope *scope; CPPDeclaration *decl; CPPInstance *instance; diff --git a/dtool/src/cppparser/cppExpression.cxx b/dtool/src/cppparser/cppExpression.cxx index 25bb2140f7..fe28c3a044 100644 --- a/dtool/src/cppparser/cppExpression.cxx +++ b/dtool/src/cppparser/cppExpression.cxx @@ -201,6 +201,19 @@ output(ostream &out) const { } } +//////////////////////////////////////////////////////////////////// +// Function: CPPExpression::Constructor +// Access: Public +// Description: +//////////////////////////////////////////////////////////////////// +CPPExpression:: +CPPExpression(unsigned long long value) : + CPPDeclaration(CPPFile()) +{ + _type = T_integer; + _u._integer = value; +} + //////////////////////////////////////////////////////////////////// // Function: CPPExpression::Constructor // Access: Public @@ -220,7 +233,7 @@ CPPExpression(int value) : // Description: //////////////////////////////////////////////////////////////////// CPPExpression:: -CPPExpression(double value) : +CPPExpression(long double value) : CPPDeclaration(CPPFile()) { _type = T_real; @@ -397,6 +410,89 @@ sizeof_func(CPPType *type) { return expr; } +//////////////////////////////////////////////////////////////////// +// Function: CPPExpression::named alignof_func constructor +// Access: Public, Static +// Description: +//////////////////////////////////////////////////////////////////// +CPPExpression CPPExpression:: +alignof_func(CPPType *type) { + CPPExpression expr(0); + expr._type = T_alignof; + expr._u._typecast._to = type; + expr._u._typecast._op1 = NULL; + return expr; +} + +//////////////////////////////////////////////////////////////////// +// Function: CPPExpression::named literal constructor +// Access: Public, Static +// Description: +//////////////////////////////////////////////////////////////////// +CPPExpression CPPExpression:: +literal(unsigned long long value, CPPInstance *lit_op) { + CPPExpression expr(0); + expr._type = T_literal; + expr._u._literal._value = new CPPExpression(value); + expr._u._literal._operator = lit_op; + return expr; +} + +//////////////////////////////////////////////////////////////////// +// Function: CPPExpression::named literal constructor +// Access: Public, Static +// Description: +//////////////////////////////////////////////////////////////////// +CPPExpression CPPExpression:: +literal(long double value, CPPInstance *lit_op) { + CPPExpression expr(0); + expr._type = T_literal; + expr._u._literal._value = new CPPExpression(value); + expr._u._literal._operator = lit_op; + return expr; +} + +//////////////////////////////////////////////////////////////////// +// Function: CPPExpression::named literal constructor +// Access: Public, Static +// Description: +//////////////////////////////////////////////////////////////////// +CPPExpression CPPExpression:: +literal(CPPExpression *value, CPPInstance *lit_op) { + CPPExpression expr(0); + expr._type = T_literal; + expr._u._literal._value = value; + expr._u._literal._operator = lit_op; + return expr; +} + +//////////////////////////////////////////////////////////////////// +// Function: CPPExpression::named raw_literal constructor +// Access: Public, Static +// Description: +//////////////////////////////////////////////////////////////////// +CPPExpression CPPExpression:: +raw_literal(const string &raw, CPPInstance *lit_op) { + CPPExpression expr(0); + expr._type = T_raw_literal; + expr._str = raw; + expr._u._literal._value = (CPPExpression *)NULL; + expr._u._literal._operator = lit_op; + return expr; +} + +//////////////////////////////////////////////////////////////////// +// Function: CPPExpression::get_nullptr +// Access: Public, Static +// Description: +//////////////////////////////////////////////////////////////////// +const CPPExpression &CPPExpression:: +get_nullptr() { + static CPPExpression expr(0); + expr._type = T_nullptr; + return expr; +} + //////////////////////////////////////////////////////////////////// // Function: CPPExpression::Destructor // Access: Public @@ -416,13 +512,20 @@ evaluate() const { Result r1, r2; switch (_type) { + case T_nullptr: + return Result((void *)0); + case T_integer: - return Result(_u._integer); + return Result((int)_u._integer); case T_real: - return Result(_u._real); + return Result((double)_u._real); case T_string: + case T_wstring: + case T_u8string: + case T_u16string: + case T_u32string: return Result(); case T_variable: @@ -468,6 +571,17 @@ evaluate() const { case T_sizeof: return Result(); + case T_alignof: + if (_u._typecast._to != NULL) { + // Check if the type is defined with an alignas. TODO: this should + // probably be moved to a virtual getter on CPPType. + CPPExtensionType *etype = _u._typecast._to->as_extension_type(); + if (etype != NULL && etype->_alignment != NULL) { + return etype->_alignment->evaluate(); + } + } + return Result(); + case T_binary_operation: assert(_u._op._op2 != NULL); r2 = _u._op._op2->evaluate(); @@ -652,6 +766,10 @@ evaluate() const { abort(); } + case T_literal: + case T_raw_literal: + return Result(); + default: cerr << "**invalid operand**\n"; abort(); @@ -671,25 +789,51 @@ determine_type() const { CPPType *t1 = (CPPType *)NULL; CPPType *t2 = (CPPType *)NULL; - CPPType *int_type = + static CPPType *nullptr_type = + CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_nullptr)); + + static CPPType *int_type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_int)); - CPPType *bool_type = + static CPPType *unsigned_long_type = + CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_int, + CPPSimpleType::F_unsigned | + CPPSimpleType::F_long)); + + static CPPType *bool_type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_bool)); - CPPType *float_type = + static CPPType *float_type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_double)); - CPPType *char_type = + static CPPType *char_type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_char)); - CPPType *const_char_type = - CPPType::new_type(new CPPConstType(char_type)); + static CPPType *wchar_type = + CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_wchar_t)); - CPPType *char_star_type = - CPPType::new_type(new CPPPointerType(const_char_type)); + static CPPType *char16_type = + CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_char16_t)); + + static CPPType *char32_type = + CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_char32_t)); + + static CPPType *char_str_type = CPPType::new_type( + new CPPPointerType(CPPType::new_type(new CPPConstType(char_type)))); + + static CPPType *wchar_str_type = CPPType::new_type( + new CPPPointerType(CPPType::new_type(new CPPConstType(wchar_type)))); + + static CPPType *char16_str_type = CPPType::new_type( + new CPPPointerType(CPPType::new_type(new CPPConstType(char16_type)))); + + static CPPType *char32_str_type = CPPType::new_type( + new CPPPointerType(CPPType::new_type(new CPPConstType(char32_type)))); switch (_type) { + case T_nullptr: + return nullptr_type; + case T_integer: return int_type; @@ -697,7 +841,19 @@ determine_type() const { return float_type; case T_string: - return char_star_type; + return char_str_type; + + case T_wstring: + return wchar_str_type; + + case T_u8string: + return char_str_type; + + case T_u16string: + return char16_str_type; + + case T_u32string: + return char32_str_type; case T_variable: return _u._variable->_type; @@ -725,7 +881,11 @@ determine_type() const { return CPPType::new_type(new CPPPointerType(_u._typecast._to)); case T_sizeof: - return int_type; + case T_alignof: + // Note: this should actually be size_t, but that is defined as a + // typedef in parser-inc. We could try to resolve it, but that's + // hacky. Eh, it's probably not worth the effort to get this right. + return unsigned_long_type; case T_binary_operation: case T_trinary_operation: @@ -819,6 +979,18 @@ determine_type() const { abort(); } + case T_literal: + case T_raw_literal: + if (_u._literal._operator != NULL) { + CPPType *type = _u._literal._operator->_type; + + CPPFunctionType *ftype = type->as_function_type(); + if (ftype != (CPPFunctionType *)NULL) { + return ftype->_return_type; + } + } + return NULL; + default: cerr << "**invalid operand**\n"; abort(); @@ -842,9 +1014,14 @@ is_fully_specified() const { } switch (_type) { + case T_nullptr: case T_integer: case T_real: case T_string: + case T_wstring: + case T_u8string: + case T_u16string: + case T_u32string: return false; case T_variable: @@ -865,6 +1042,7 @@ is_fully_specified() const { case T_default_construct: case T_default_new: case T_sizeof: + case T_alignof: return _u._typecast._to->is_fully_specified(); case T_trinary_operation: @@ -882,6 +1060,13 @@ is_fully_specified() const { case T_unary_operation: return _u._op._op1->is_fully_specified(); + case T_literal: + return _u._literal._value->is_fully_specified() && + _u._literal._operator->is_fully_specified(); + + case T_raw_literal: + return _u._literal._value->is_fully_specified(); + default: return true; } @@ -972,6 +1157,7 @@ substitute_decl(CPPDeclaration::SubstDecl &subst, case T_default_construct: case T_default_new: case T_sizeof: + case T_alignof: rep->_u._typecast._to = _u._typecast._to->substitute_decl(subst, current_scope, global_scope) ->as_type(); @@ -1042,6 +1228,7 @@ is_tbd() const { case T_default_construct: case T_default_new: case T_sizeof: + case T_alignof: return _u._typecast._to->is_tbd(); case T_trinary_operation: @@ -1075,6 +1262,10 @@ is_tbd() const { void CPPExpression:: output(ostream &out, int indent_level, CPPScope *scope, bool) const { switch (_type) { + case T_nullptr: + out << "nullptr"; + break; + case T_integer: out << _u._integer; break; @@ -1090,8 +1281,29 @@ output(ostream &out, int indent_level, CPPScope *scope, bool) const { break; case T_string: - out << '"'; + case T_wstring: + case T_u8string: + case T_u16string: + case T_u32string: { + switch (_type) { + case T_wstring: + out << 'L'; + break; + case T_u8string: + out << "u8"; + break; + case T_u16string: + out << "u"; + break; + case T_u32string: + out << "U"; + break; + default: + break; + } + // We don't really care about preserving the encoding for now. + out << '"'; string::const_iterator si; for (si = _str.begin(); si != _str.end(); ++si) { switch (*si) { @@ -1193,6 +1405,12 @@ output(ostream &out, int indent_level, CPPScope *scope, bool) const { out << ")"; break; + case T_alignof: + out << "alignof("; + _u._typecast._to->output(out, indent_level, scope, false); + out << ")"; + break; + case T_unary_operation: switch (_u._op._operator) { case UNARY_NOT: @@ -1208,9 +1426,8 @@ output(ostream &out, int indent_level, CPPScope *scope, bool) const { break; case UNARY_MINUS: - out << "(- "; + out << '-'; _u._op._op1->output(out, indent_level, scope, false); - out << ")"; break; case UNARY_STAR: @@ -1362,6 +1579,24 @@ output(ostream &out, int indent_level, CPPScope *scope, bool) const { out << ")"; break; + case T_literal: + _u._literal._value->output(out, indent_level, scope, false); + if (_u._literal._operator != NULL) { + string name = _u._literal._operator->get_simple_name(); + assert(name.substr(0, 12) == "operator \"\" "); + out << name.substr(12); + } + break; + + case T_raw_literal: + out << _str; + if (_u._literal._operator != NULL) { + string name = _u._literal._operator->get_simple_name(); + assert(name.substr(0, 12) == "operator \"\" "); + out << name.substr(12); + } + break; + default: out << "(** invalid operand type " << (int)_type << " **)"; } @@ -1456,6 +1691,9 @@ is_equal(const CPPDeclaration *other) const { } switch (_type) { + case T_nullptr: + return true; + case T_integer: return _u._integer == ot->_u._integer; @@ -1463,6 +1701,10 @@ is_equal(const CPPDeclaration *other) const { return _u._real == ot->_u._real; case T_string: + case T_wstring: + case T_u8string: + case T_u16string: + case T_u32string: return _str == ot->_str; case T_variable: @@ -1483,6 +1725,7 @@ is_equal(const CPPDeclaration *other) const { case T_default_construct: case T_default_new: case T_sizeof: + case T_alignof: return _u._typecast._to == ot->_u._typecast._to; case T_unary_operation: @@ -1496,6 +1739,14 @@ is_equal(const CPPDeclaration *other) const { return *_u._op._op1 == *ot->_u._op._op1 && *_u._op._op2 == *ot->_u._op._op2; + case T_literal: + return *_u._literal._value == *ot->_u._literal._value && + _u._literal._operator == ot->_u._literal._operator; + + case T_raw_literal: + return _str == ot->_str && + _u._literal._operator == ot->_u._literal._operator; + default: cerr << "(** invalid operand type " << (int)_type << " **)"; } @@ -1520,6 +1771,9 @@ is_less(const CPPDeclaration *other) const { } switch (_type) { + case T_nullptr: + return false; + case T_integer: return _u._integer < ot->_u._integer; @@ -1527,6 +1781,10 @@ is_less(const CPPDeclaration *other) const { return _u._real < ot->_u._real; case T_string: + case T_wstring: + case T_u8string: + case T_u16string: + case T_u32string: return _str < ot->_str; case T_variable: @@ -1549,6 +1807,7 @@ is_less(const CPPDeclaration *other) const { case T_default_construct: case T_default_new: case T_sizeof: + case T_alignof: return _u._typecast._to < ot->_u._typecast._to; case T_trinary_operation: @@ -1566,6 +1825,18 @@ is_less(const CPPDeclaration *other) const { case T_unary_operation: return *_u._op._op1 < *ot->_u._op._op1; + case T_literal: + if (_u._literal._operator != ot->_u._literal._operator) { + return _u._literal._operator < ot->_u._literal._operator; + } + return *_u._literal._value < *ot->_u._literal._value; + + case T_raw_literal: + if (_u._literal._operator != ot->_u._literal._operator) { + return _u._literal._operator < ot->_u._literal._operator; + } + return _str < ot->_str; + default: cerr << "(** invalid operand type " << (int)_type << " **)"; } diff --git a/dtool/src/cppparser/cppExpression.h b/dtool/src/cppparser/cppExpression.h index cd535b7320..44e72baf5c 100644 --- a/dtool/src/cppparser/cppExpression.h +++ b/dtool/src/cppparser/cppExpression.h @@ -30,9 +30,10 @@ class CPPFunctionGroup; //////////////////////////////////////////////////////////////////// class CPPExpression : public CPPDeclaration { public: + CPPExpression(unsigned long long value); CPPExpression(int value); CPPExpression(const string &value); - CPPExpression(double value); + CPPExpression(long double value); CPPExpression(CPPIdentifier *ident, CPPScope *current_scope, CPPScope *global_scope, CPPPreprocessor *error_sink = NULL); CPPExpression(int unary_operator, CPPExpression *op1); @@ -43,6 +44,14 @@ public: static CPPExpression construct_op(CPPType *type, CPPExpression *op1); static CPPExpression new_op(CPPType *type, CPPExpression *op1 = NULL); static CPPExpression sizeof_func(CPPType *type); + static CPPExpression alignof_func(CPPType *type); + + static CPPExpression literal(unsigned long long value, CPPInstance *lit_op); + static CPPExpression literal(long double value, CPPInstance *lit_op); + static CPPExpression literal(CPPExpression *value, CPPInstance *lit_op); + static CPPExpression raw_literal(const string &raw, CPPInstance *lit_op); + + static const CPPExpression &get_nullptr(); ~CPPExpression(); @@ -92,9 +101,14 @@ public: enum Type { + T_nullptr, T_integer, T_real, T_string, + T_wstring, + T_u8string, + T_u16string, + T_u32string, T_variable, T_function, T_unknown_ident, @@ -104,16 +118,19 @@ public: T_new, T_default_new, T_sizeof, + T_alignof, T_unary_operation, T_binary_operation, T_trinary_operation, + T_literal, + T_raw_literal, }; Type _type; string _str; union { - int _integer; - double _real; + unsigned long long _integer; + long double _real; CPPInstance *_variable; CPPFunctionGroup *_fgroup; CPPIdentifier *_ident; @@ -131,6 +148,11 @@ public: CPPExpression *_op2; CPPExpression *_op3; } _op; + class { + public: + CPPInstance *_operator; + CPPExpression *_value; + } _literal; } _u; protected: @@ -146,5 +168,3 @@ operator << (ostream &out, const CPPExpression::Result &result) { } #endif - - diff --git a/dtool/src/cppparser/cppExtensionType.cxx b/dtool/src/cppparser/cppExtensionType.cxx index 3056b8b6d4..6060bb4b0d 100644 --- a/dtool/src/cppparser/cppExtensionType.cxx +++ b/dtool/src/cppparser/cppExtensionType.cxx @@ -29,7 +29,8 @@ CPPExtensionType(CPPExtensionType::Type type, CPPIdentifier *ident, CPPScope *current_scope, const CPPFile &file) : CPPType(file), - _type(type), _ident(ident) + _type(type), _ident(ident), + _alignment(NULL) { if (_ident != NULL) { _ident->_native_scope = current_scope; diff --git a/dtool/src/cppparser/cppExtensionType.h b/dtool/src/cppparser/cppExtensionType.h index d4201dc4e2..f70a4e99a5 100644 --- a/dtool/src/cppparser/cppExtensionType.h +++ b/dtool/src/cppparser/cppExtensionType.h @@ -65,9 +65,9 @@ public: virtual CPPExtensionType *as_extension_type(); - Type _type; CPPIdentifier *_ident; + CPPExpression *_alignment; }; ostream &operator << (ostream &out, CPPExtensionType::Type type); diff --git a/dtool/src/cppparser/cppInstance.cxx b/dtool/src/cppparser/cppInstance.cxx index 32790e0cde..7e969dfad2 100644 --- a/dtool/src/cppparser/cppInstance.cxx +++ b/dtool/src/cppparser/cppInstance.cxx @@ -38,7 +38,8 @@ CPPInstance(CPPType *type, const string &name, int storage_class) : CPPDeclaration(CPPFile()), _type(type), _ident(new CPPIdentifier(name)), - _storage_class(storage_class) + _storage_class(storage_class), + _alignment(NULL) { _initializer = NULL; } @@ -53,7 +54,8 @@ CPPInstance(CPPType *type, CPPIdentifier *ident, int storage_class) : CPPDeclaration(CPPFile()), _type(type), _ident(ident), - _storage_class(storage_class) + _storage_class(storage_class), + _alignment(NULL) { _initializer = NULL; } @@ -69,7 +71,8 @@ CPPInstance(CPPType *type, CPPIdentifier *ident, int storage_class) : CPPInstance:: CPPInstance(CPPType *type, CPPInstanceIdentifier *ii, int storage_class, const CPPFile &file) : - CPPDeclaration(file) + CPPDeclaration(file), + _alignment(NULL) { _type = ii->unroll_type(type); _ident = ii->_ident; @@ -102,7 +105,8 @@ CPPInstance(const CPPInstance ©) : _type(copy._type), _ident(copy._ident), _initializer(copy._initializer), - _storage_class(copy._storage_class) + _storage_class(copy._storage_class), + _alignment(copy._alignment) { assert(_type != NULL); } @@ -153,6 +157,9 @@ operator == (const CPPInstance &other) const { if (_storage_class != other._storage_class) { return false; } + if (_alignment != other._alignment) { + return false; + } // We *do* care about the identifier. We need to differentiate // types of function variables, among possibly other things, based @@ -199,6 +206,9 @@ operator < (const CPPInstance &other) const { if (_storage_class != other._storage_class) { return _storage_class < other._storage_class; } + if (_alignment != other._alignment) { + return _alignment < other._alignment; + } // We *do* care about the identifier. We need to differentiate // types of function variables, among possibly other things, based @@ -252,6 +262,29 @@ set_initializer(CPPExpression *initializer) { } } +//////////////////////////////////////////////////////////////////// +// Function: CPPInstance::set_alignment +// Access: Public +// Description: Sets the number of bytes to align this instance to. +//////////////////////////////////////////////////////////////////// +void CPPInstance:: +set_alignment(int align) { + _alignment = new CPPExpression(align); +} + +//////////////////////////////////////////////////////////////////// +// Function: CPPInstance::set_alignment +// Access: Public +// Description: Sets the expression that is used to determine the +// required alignment for the variable. This should +// be a constant expression, but we don't presently +// verify that it is. +//////////////////////////////////////////////////////////////////// +void CPPInstance:: +set_alignment(CPPExpression *const_expr) { + _alignment = const_expr; +} + //////////////////////////////////////////////////////////////////// // Function: CPPInstance::is_scoped // Access: Public @@ -536,6 +569,11 @@ output(ostream &out, int indent_level, CPPScope *scope, bool complete, get_template_scope()->_parameters.write_formal(out, scope); indent(out, indent_level); } + + if (_alignment != NULL) { + out << "alignas(" << *_alignment << ") "; + } + if (_storage_class & SC_static) { out << "static "; } diff --git a/dtool/src/cppparser/cppInstance.h b/dtool/src/cppparser/cppInstance.h index 9a8144fdd2..bf5843196f 100644 --- a/dtool/src/cppparser/cppInstance.h +++ b/dtool/src/cppparser/cppInstance.h @@ -77,6 +77,8 @@ public: bool operator < (const CPPInstance &other) const; void set_initializer(CPPExpression *initializer); + void set_alignment(int align); + void set_alignment(CPPExpression *const_expr); bool is_scoped() const; CPPScope *get_scope(CPPScope *current_scope, CPPScope *global_scope, @@ -111,6 +113,7 @@ public: CPPExpression *_initializer; int _storage_class; + CPPExpression *_alignment; private: typedef map Instantiations; diff --git a/dtool/src/cppparser/cppPreprocessor.cxx b/dtool/src/cppparser/cppPreprocessor.cxx index 4a52bde6ec..e09c7bfeec 100644 --- a/dtool/src/cppparser/cppPreprocessor.cxx +++ b/dtool/src/cppparser/cppPreprocessor.cxx @@ -26,6 +26,7 @@ #include "cppBison.h" #include "indent.h" #include "pstrtod.h" +#include "string_utils.h" #include #include @@ -404,6 +405,7 @@ get_next_token0() { // keyword. We make a special case for this, because it's // occasionally scoped in normal use. token._lval = result; + _last_token_loc = token._lloc; return token; } _saved_tokens.push_back(token); @@ -1803,9 +1805,7 @@ get_quoted_char(int c) { result.u.integer = 0; } - loc.last_line = get_line_number(); - loc.last_column = get_col_number(); - return CPPToken(CHAR_TOK, loc, str, result); + return get_literal(CHAR_TOK, loc, str, result); } //////////////////////////////////////////////////////////////////// @@ -1822,9 +1822,7 @@ get_quoted_string(int c) { string str = scan_quoted(c); - loc.last_line = get_line_number(); - loc.last_column = get_col_number(); - return CPPToken(STRING, loc, str); + return get_literal(SIMPLE_STRING, loc, str); } //////////////////////////////////////////////////////////////////// @@ -1848,25 +1846,51 @@ get_identifier(int c) { 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 = loc.first_column; - return token; - } loc.last_line = get_line_number(); loc.last_column = get_col_number(); + if ((c == '\'' || c == '"') && name != "operator") { + // This is actually a wide-character or wide-string literal or + // some such. Figure out the correct character type to use. + // We had to add in an exception in order to support operator"". + + CPPExpression::Type type; + if (name == "L") { + type = CPPExpression::T_wstring; + } else if (name == "u8") { + type = CPPExpression::T_u8string; + } else if (name == "u") { + type = CPPExpression::T_u16string; + } else if (name == "U") { + type = CPPExpression::T_u32string; + } else { + type = CPPExpression::T_string; + warning("unrecognized literal prefix " + name, loc); + } + + get(); + string str = scan_quoted(c); + + loc.last_line = get_line_number(); + loc.last_column = get_col_number(); + + YYSTYPE result; + if (c == '\'') { + // We don't really care about the type for now. + if (!str.empty()) { + result.u.integer = (int)str[0]; + } else { + result.u.integer = 0; + } + return get_literal(CHAR_TOK, loc, str, result); + } else { + result.u.expr = new CPPExpression(str); + result.u.expr->_type = type; + return get_literal(STRING_LITERAL, loc, str, result); + } + } + _last_c = 0; // Is it a manifest? @@ -1898,6 +1922,171 @@ get_identifier(int c) { return CPPToken(SIMPLE_IDENTIFIER, loc, name); } +//////////////////////////////////////////////////////////////////// +// Function: CPPPreprocessor::get_literal +// Access: Private +// Description: Under the assumption that we've just parsed a +// string or real constant, parse a following custom +// literal, and returns a token for it. +//////////////////////////////////////////////////////////////////// +CPPToken CPPPreprocessor:: +get_literal(int token, YYLTYPE loc, const string &str, const YYSTYPE &value) { + string suffix; + + int c = peek(); + if (isalpha(c) || c == '_') { + // A literal seems to be following directly. + while (c != EOF && (isalnum(c) || c == '_')) { + suffix += get(); + c = peek(); + } + } + loc.last_line = get_line_number(); + loc.last_column = get_col_number(); + + if (suffix.empty()) { + // There is no suffix. + return CPPToken(token, loc, str, value); + } + + // Handle built-in literal suffixes. + if (token == INTEGER) { + if (cmp_nocase(suffix, "u") == 0 || + cmp_nocase(suffix, "l") == 0 || + cmp_nocase(suffix, "ul") == 0 || cmp_nocase(suffix, "lu") == 0 || + cmp_nocase(suffix, "ll") == 0 || + cmp_nocase(suffix, "ull") == 0 || cmp_nocase(suffix, "llu") == 0) { + // These are built-in integer suffixes. Right now, we don't try to + // distinguish between them. + return CPPToken(INTEGER, loc, str, value); + } + } else if (token == REAL) { + if (suffix == "f" || suffix == "F" || + suffix == "l" || suffix == "L") { + return CPPToken(REAL, loc, str, value); + } + } + + // Find the literal operator for this literal. + CPPIdentifier *ident = new CPPIdentifier("operator \"\" " + suffix); + CPPDeclaration *decl = ident->find_symbol(current_scope, global_scope, this); + + if (decl == NULL || decl->get_subtype() != CPPDeclaration::ST_function_group) { + error("unknown literal suffix " + suffix, loc); + return CPPToken(token, loc, str, value); + } + + // Find the overload with the appropriate signature. + CPPExpression *expr = NULL; + CPPInstance *instance = NULL; + CPPInstance *raw_instance = NULL; + CPPFunctionGroup *fgroup = decl->as_function_group(); + CPPFunctionGroup::Instances::iterator it; + for (it = fgroup->_instances.begin(); it != fgroup->_instances.end(); ++it) { + if ((*it)->_type == NULL) { + continue; + } + + CPPFunctionType *ftype = (*it)->_type->as_function_type(); + if (ftype == NULL || ftype->_parameters == NULL) { + continue; + } + + CPPParameterList::Parameters ¶ms = ftype->_parameters->_parameters; + if (token == STRING_LITERAL || token == SIMPLE_STRING) { + // A custom string literal must take a second size_t argument. + if (params.size() != 2) continue; + } else { + if (params.size() != 1) continue; + } + + CPPInstance *param = params[0]; + if (param == NULL || param->_type == NULL) { + continue; + } + + CPPType *type = param->_type; + while (type->get_subtype() == CPPDeclaration::ST_const) { + type = type->as_const_type()->_wrapped_around; + } + if (type->get_subtype() == CPPDeclaration::ST_simple) { + // It's a primitive type. Check that it matches the appropriate token. + CPPSimpleType::Type simple = type->as_simple_type()->_type; + + if (token == INTEGER && simple == CPPSimpleType::T_int) { + expr = new CPPExpression(value.u.integer); + instance = (*it); + break; + } else if (token == REAL && simple == CPPSimpleType::T_double) { + expr = new CPPExpression(value.u.real); + instance = (*it); + break; + } else if (token == CHAR_TOK && (simple == CPPSimpleType::T_char || + simple == CPPSimpleType::T_wchar_t || + simple == CPPSimpleType::T_char16_t || + simple == CPPSimpleType::T_char32_t)) { + // We currently don't have the means to check the exact character type. + expr = new CPPExpression(value.u.integer); + instance = (*it); + break; + } + + } else if (type->get_subtype() == CPPDeclaration::ST_pointer) { + // Must be a const pointer. Unwrap it. + type = type->as_pointer_type()->_pointing_at; + if (type == NULL || type->get_subtype() != CPPDeclaration::ST_const) { + continue; + } + type = type->as_const_type()->_wrapped_around; + if (type == NULL || type->get_subtype() != CPPDeclaration::ST_simple) { + continue; + } + + CPPSimpleType::Type simple = type->as_simple_type()->_type; + if (simple == CPPSimpleType::T_char && params.size() == 1) { + // This is the raw literal operator. Store it, but don't break; + // a non-raw version of the operator might follow, which we'd prefer. + raw_instance = (*it); + + } else if (token == SIMPLE_STRING && simple == CPPSimpleType::T_char) { + expr = new CPPExpression(str); + instance = (*it); + break; + + } else if (token == STRING_LITERAL) { + // Verify that the character type of the string literal matches + // the character type of the parameter. + CPPExpression::Type str_type = value.u.expr->_type; + if ((str_type == CPPExpression::T_string && simple == CPPSimpleType::T_char) || + (str_type == CPPExpression::T_wstring && simple == CPPSimpleType::T_wchar_t) || + (str_type == CPPExpression::T_u8string && simple == CPPSimpleType::T_char) || + (str_type == CPPExpression::T_u16string && simple == CPPSimpleType::T_char16_t) || + (str_type == CPPExpression::T_u32string && simple == CPPSimpleType::T_char32_t)) { + expr = value.u.expr; + instance = (*it); + break; + } + } + } + } + + YYSTYPE result; + if (instance != NULL) { + result.u.expr = new CPPExpression(CPPExpression::literal(expr, instance)); + return CPPToken(CUSTOM_LITERAL, loc, str, result); + } + + if ((token == REAL || token == INTEGER) && raw_instance != NULL) { + // For numeric constants, we can fall back to a raw literal operator. + result.u.expr = new CPPExpression(CPPExpression::raw_literal(str, instance)); + return CPPToken(CUSTOM_LITERAL, loc, str, result); + } + + error(fgroup->_name + " has no suitable overload for literal of this type", loc); + result.u.expr = NULL; + return CPPToken(CUSTOM_LITERAL, loc, str, result); +} + //////////////////////////////////////////////////////////////////// // Function: CPPPreprocessor::expand_manifest // Access: Private @@ -2196,20 +2385,13 @@ get_number(int c) { c = peek(); } - while (c == 'L' || c == 'U' || c == 'l' || c == 'u') { - // We allow (and ignore) an 'L' and/or 'U' following the number. - get(); - c = peek(); - } - 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, loc, num, result); + + return get_literal(INTEGER, loc, num, result); } while (c != EOF && isdigit(c)) { @@ -2229,7 +2411,7 @@ get_number(int c) { } } - if (decimal_point) { + if (decimal_point || c == 'e' || c == 'E') { if (tolower(c) == 'e') { // An exponent is allowed. num += get(); @@ -2244,28 +2426,17 @@ get_number(int c) { } } - if (c == 'f') { - // We allow (and ignore) an 'f' following the number. - get(); - c = peek(); - } - 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, loc, num, result); + + return get_literal(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. - get(); - c = peek(); - } - loc.last_line = get_line_number(); loc.last_column = get_col_number(); @@ -2282,7 +2453,7 @@ get_number(int c) { result.u.integer = strtol(num.c_str(), (char **)NULL, 10); } - return CPPToken(INTEGER, loc, num, result); + return get_literal(INTEGER, loc, num, result); } //////////////////////////////////////////////////////////////////// @@ -2292,6 +2463,11 @@ get_number(int c) { //////////////////////////////////////////////////////////////////// int CPPPreprocessor:: check_keyword(const string &name) { + if (name == "alignas") return KW_ALIGNAS; + if (name == "alignof") return KW_ALIGNOF; + if (name == "__alignof") return KW_ALIGNOF; + if (name == "__alignof__") return KW_ALIGNOF; + if (name == "auto") return KW_AUTO; if (name == "__begin_publish") return KW_BEGIN_PUBLISH; if (name == "__blocking") return KW_BLOCKING; if (name == "bool") return KW_BOOL; @@ -2303,6 +2479,9 @@ check_keyword(const string &name) { if (name == "const") return KW_CONST; if (name == "__const") return KW_CONST; if (name == "__const__") return KW_CONST; + if (name == "constexpr") return KW_CONSTEXPR; + if (name == "decltype") return KW_DECLTYPE; + if (name == "default") return KW_DEFAULT; if (name == "delete") return KW_DELETE; if (name == "double") return KW_DOUBLE; if (name == "dynamic_cast") return KW_DYNAMIC_CAST; @@ -2329,6 +2508,7 @@ check_keyword(const string &name) { if (name == "mutable") return KW_MUTABLE; if (name == "namespace") return KW_NAMESPACE; if (name == "noexcept") return KW_NOEXCEPT; + if (name == "nullptr") return KW_NULLPTR; if (name == "new") return KW_NEW; if (name == "operator") return KW_OPERATOR; if (name == "private") return KW_PRIVATE; diff --git a/dtool/src/cppparser/cppPreprocessor.h b/dtool/src/cppparser/cppPreprocessor.h index 4d8e025682..6e9ef54f7d 100644 --- a/dtool/src/cppparser/cppPreprocessor.h +++ b/dtool/src/cppparser/cppPreprocessor.h @@ -142,6 +142,8 @@ private: CPPToken get_quoted_char(int c); CPPToken get_quoted_string(int c); CPPToken get_identifier(int c); + CPPToken get_literal(int token, YYLTYPE loc, const string &str, + const YYSTYPE &result = YYSTYPE()); CPPToken expand_manifest(const CPPManifest *manifest); void extract_manifest_args(const string &name, int num_args, int va_arg, vector_string &args); diff --git a/dtool/src/cppparser/cppScope.cxx b/dtool/src/cppparser/cppScope.cxx index e365c3e6d6..3a514a4648 100644 --- a/dtool/src/cppparser/cppScope.cxx +++ b/dtool/src/cppparser/cppScope.cxx @@ -313,7 +313,7 @@ add_using(CPPUsing *using_decl, CPPScope *global_scope, _using.insert(scope); } else { if (error_sink != NULL) { - error_sink->warning("Attempt to use undefined namespace: " + using_decl->_ident->get_fully_scoped_name()); + error_sink->warning("Attempt to use undefined namespace: " + using_decl->_ident->get_fully_scoped_name(), using_decl->_ident->_loc); } } } else { @@ -322,7 +322,7 @@ add_using(CPPUsing *using_decl, CPPScope *global_scope, handle_declaration(decl, global_scope, error_sink); } else { if (error_sink != NULL) { - error_sink->warning("Attempt to use unknown symbol: " + using_decl->_ident->get_fully_scoped_name()); + error_sink->warning("Attempt to use unknown symbol: " + using_decl->_ident->get_fully_scoped_name(), using_decl->_ident->_loc); } } } diff --git a/dtool/src/cppparser/cppSimpleType.cxx b/dtool/src/cppparser/cppSimpleType.cxx index ac4e633d6d..d104c98881 100644 --- a/dtool/src/cppparser/cppSimpleType.cxx +++ b/dtool/src/cppparser/cppSimpleType.cxx @@ -150,6 +150,10 @@ output(ostream &out, int, CPPScope *, bool) const { out << "void"; break; + case T_nullptr: + out << "decltype(nullptr)"; + break; + case T_parameter: out << "parameter"; break; diff --git a/dtool/src/cppparser/cppSimpleType.h b/dtool/src/cppparser/cppSimpleType.h index 27a1b89206..eceb8afe26 100644 --- a/dtool/src/cppparser/cppSimpleType.h +++ b/dtool/src/cppparser/cppSimpleType.h @@ -37,6 +37,11 @@ public: T_double, T_void, + // We need something to represent the type of nullptr so that we + // can return it from decltype(nullptr). Note that this is not + // the same as nullptr_t, which is a typedef of decltype(nullptr). + T_nullptr, + // T_parameter is a special type which is assigned to expressions // that are discovered where a formal parameter was expected. // This is a special case for handling cases like this: diff --git a/dtool/src/cppparser/cppToken.cxx b/dtool/src/cppparser/cppToken.cxx index cfaf4057ed..56b215ad22 100644 --- a/dtool/src/cppparser/cppToken.cxx +++ b/dtool/src/cppparser/cppToken.cxx @@ -119,8 +119,12 @@ output(ostream &out) const { out << "CHAR_TOK " << _lval.u.integer << " = " << _lval.str; break; - case STRING: - out << "STRING " << _lval.str; + case SIMPLE_STRING: + out << "SIMPLE_STRING " << _lval.str; + break; + + case STRING_LITERAL: + out << "STRING_LITERAL " << *_lval.u.expr; break; case SIMPLE_IDENTIFIER: diff --git a/dtool/src/parser-inc/stddef.h b/dtool/src/parser-inc/stddef.h index fe0fec599d..a1b0f59c31 100644 --- a/dtool/src/parser-inc/stddef.h +++ b/dtool/src/parser-inc/stddef.h @@ -22,5 +22,9 @@ #include +#define offsetof(type,member) ((size_t) &(((type*)0)->member)) + +typedef decltype(nullptr) nullptr_t; + #endif diff --git a/dtool/src/parser-inc/string b/dtool/src/parser-inc/string index 0ec8e184ba..52098c3f51 100644 --- a/dtool/src/parser-inc/string +++ b/dtool/src/parser-inc/string @@ -44,5 +44,26 @@ public: typedef basic_string string; typedef basic_string wstring; +typedef basic_string u16string; +typedef basic_string u32string; + +namespace std { + template struct hash; + template<> struct hash; + template<> struct hash; + template<> struct hash; + template<> struct hash; + + namespace string_literals { + string operator "" s(const char *str, size_t len); + wstring operator "" s(const wchar_t *str, size_t len); + u16string operator "" s(const char16_t *str, size_t len); + u32string operator "" s(const char32_t *str, size_t len); + } + + namespace literals { + using namespace string_literals; + } +} #endif