diff options
author | David Tolnay <dtolnay@gmail.com> | 2015-07-18 23:44:06 -0700 |
---|---|---|
committer | David Tolnay <dtolnay@gmail.com> | 2015-07-19 09:43:10 -0700 |
commit | f5a7bba986d82e0dfc5fd7bce2b8ed78a5b970b5 (patch) | |
tree | a44b961104d70aad703d508278a835f798c5702b | |
parent | 66ef8e2c243207bb4edd88c409ce90fc95e0dffe (diff) |
Resolve remaining shift/reduce conflicts involving '?'
By lowering the precedence of rules that should never use
the generic Exp '?' rule.
-rw-r--r-- | parser.c | 1622 | ||||
-rw-r--r-- | parser.h | 6 | ||||
-rw-r--r-- | parser.y | 30 |
3 files changed, 850 insertions, 808 deletions
@@ -169,7 +169,8 @@ struct lexer_param; QQSTRING_INTERP_START = 297, QQSTRING_INTERP_END = 298, QQSTRING_END = 299, - FUNCDEF = 300 + FUNCDEF = 300, + NONOPT = 301 }; #endif /* Tokens. */ @@ -216,6 +217,7 @@ struct lexer_param; #define QQSTRING_INTERP_END 298 #define QQSTRING_END 299 #define FUNCDEF 300 +#define NONOPT 301 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@ -227,7 +229,7 @@ union YYSTYPE jv literal; block blk; -#line 231 "parser.c" /* yacc.c:355 */ +#line 233 "parser.c" /* yacc.c:355 */ }; # define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_DECLARED 1 @@ -254,7 +256,7 @@ int yyparse (block* answer, int* errors, struct locfile* locations, struct lexer #endif /* !YY_YY_PARSER_H_INCLUDED */ /* Copy the second part of user declarations. */ -#line 115 "parser.y" /* yacc.c:358 */ +#line 118 "parser.y" /* yacc.c:358 */ #include "lexer.h" struct lexer_param { @@ -410,7 +412,7 @@ static block gen_update(block object, block val, int optype) { } -#line 414 "parser.c" /* yacc.c:358 */ +#line 416 "parser.c" /* yacc.c:358 */ #ifdef short # undef short @@ -654,10 +656,10 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 27 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 1919 +#define YYLAST 2110 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 67 +#define YYNTOKENS 68 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 26 /* YYNRULES -- Number of rules. */ @@ -668,7 +670,7 @@ union yyalloc /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 300 +#define YYMAXUTOK 301 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -680,16 +682,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, 2, 2, 2, 60, 55, 2, 2, - 58, 59, 53, 51, 47, 52, 62, 54, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 61, 57, - 49, 48, 50, 56, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 61, 55, 2, 2, + 59, 60, 53, 51, 47, 52, 63, 54, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 62, 58, + 49, 48, 50, 57, 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, 63, 2, 64, 2, 2, 2, 2, 2, 2, + 2, 64, 2, 65, 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, 65, 46, 66, 2, 2, 2, 2, + 2, 2, 2, 66, 46, 67, 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, 2, @@ -707,29 +709,29 @@ static const yytype_uint8 yytranslate[] = 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45 + 45, 56 }; #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 273, 273, 276, 281, 284, 294, 297, 302, 305, - 310, 314, 318, 322, 326, 330, 333, 338, 342, 346, - 351, 363, 367, 371, 375, 379, 383, 387, 391, 395, - 399, 403, 407, 411, 415, 419, 423, 427, 433, 439, - 443, 447, 451, 455, 459, 463, 467, 471, 476, 485, - 492, 498, 510, 521, 535, 540, 546, 549, 554, 559, - 566, 566, 570, 570, 577, 580, 583, 589, 592, 597, - 600, 603, 609, 612, 615, 623, 627, 630, 633, 636, - 639, 642, 645, 648, 651, 655, 661, 664, 667, 670, - 673, 676, 679, 682, 685, 688, 691, 694, 697, 700, - 703, 706, 709, 716, 720, 724, 736, 741, 742, 743, - 744, 747, 750, 755, 760, 764, 767, 772, 775, 780, - 783, 788, 791, 794, 797, 800, 805, 808, 811, 814, - 817, 820, 823, 826, 829, 832, 835, 838, 841, 844, - 847, 850, 853, 856, 859, 864, 867, 868, 869, 872, - 875, 878, 881, 885, 889, 893, 896 + 0, 276, 276, 279, 284, 287, 297, 300, 305, 308, + 313, 317, 321, 325, 329, 333, 336, 341, 345, 349, + 354, 361, 365, 369, 373, 377, 381, 385, 389, 393, + 397, 401, 405, 409, 413, 417, 421, 425, 431, 437, + 441, 445, 449, 453, 457, 461, 465, 469, 474, 483, + 490, 496, 508, 519, 533, 538, 544, 547, 552, 557, + 564, 564, 568, 568, 575, 578, 581, 587, 590, 595, + 598, 601, 607, 610, 613, 621, 625, 628, 631, 634, + 637, 640, 643, 646, 649, 653, 659, 662, 665, 668, + 671, 674, 677, 680, 683, 686, 689, 692, 695, 698, + 701, 704, 707, 714, 718, 722, 734, 739, 740, 741, + 742, 745, 748, 753, 758, 762, 765, 770, 773, 778, + 781, 786, 789, 792, 795, 798, 803, 806, 809, 812, + 815, 818, 821, 824, 827, 830, 833, 836, 839, 842, + 845, 848, 851, 854, 857, 862, 865, 866, 867, 870, + 873, 876, 879, 883, 887, 891, 894 }; #endif @@ -747,12 +749,12 @@ static const char *const yytname[] = "\"/=\"", "\"//=\"", "\"<=\"", "\">=\"", "QQSTRING_START", "QQSTRING_TEXT", "QQSTRING_INTERP_START", "QQSTRING_INTERP_END", "QQSTRING_END", "FUNCDEF", "'|'", "','", "'='", "'<'", "'>'", "'+'", - "'-'", "'*'", "'/'", "'%'", "'?'", "';'", "'('", "')'", "'$'", "':'", - "'.'", "'['", "']'", "'{'", "'}'", "$accept", "TopLevel", "Module", - "Imports", "FuncDefs", "Exp", "Import", "FuncDef", "Params", "Param", - "String", "@1", "@2", "QQString", "ElseBody", "ExpD", "Term", "Args", - "Arg", "Pattern", "ArrayPats", "ObjPats", "ObjPat", "Keyword", "MkDict", - "MkDictPair", YY_NULLPTR + "'-'", "'*'", "'/'", "'%'", "NONOPT", "'?'", "';'", "'('", "')'", "'$'", + "':'", "'.'", "'['", "']'", "'{'", "'}'", "$accept", "TopLevel", + "Module", "Imports", "FuncDefs", "Exp", "Import", "FuncDef", "Params", + "Param", "String", "@1", "@2", "QQString", "ElseBody", "ExpD", "Term", + "Args", "Arg", "Pattern", "ArrayPats", "ObjPats", "ObjPat", "Keyword", + "MkDict", "MkDictPair", YY_NULLPTR }; #endif @@ -766,8 +768,8 @@ static const yytype_uint16 yytoknum[] = 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 124, 44, 61, 60, - 62, 43, 45, 42, 47, 37, 63, 59, 40, 41, - 36, 58, 46, 91, 93, 123, 125 + 62, 43, 45, 42, 47, 37, 301, 63, 59, 40, + 41, 36, 58, 46, 91, 93, 123, 125 }; # endif @@ -785,37 +787,37 @@ static const yytype_uint16 yytoknum[] = STATE-NUM. */ static const yytype_int16 yypact[] = { - 27, 856, 38, 36, 7, 5, -152, 22, -152, 41, - 856, 835, 835, 856, 20, 0, -152, 856, 463, 23, - 276, 436, 340, 1292, 856, -152, 1, -152, 3, 3, - 856, 36, 856, -152, -152, -21, 1620, 6, 8, 31, - 63, -152, 77, -152, 2, 56, 1132, -152, -152, -152, - 116, 22, 66, 62, -152, 982, -19, 69, -152, -152, + 22, 828, 42, 46, 9, -2, -152, 27, -152, 55, + 828, 871, 871, 828, 20, 0, -152, 828, 466, 23, + 276, 439, 341, 1374, 828, -152, 1, -152, 3, 3, + 828, 46, 828, -152, -152, -18, 1823, 6, 8, 50, + 107, -152, 109, -152, -8, 57, 1209, -152, -152, -152, + 114, 27, 65, 61, -152, 1010, -19, 68, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, - -152, -152, -152, -152, -152, -152, -152, 526, 127, 73, - 75, 72, 92, 856, 856, 856, 856, 856, 856, 856, - 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, - 856, 856, 856, 856, 856, 856, 856, -152, -152, 1780, - 84, -24, 3, 190, 131, 643, -152, 1780, 856, -152, - 1780, -11, -152, -152, 18, 856, 553, -24, -24, 616, - 99, -152, 33, -152, -152, -152, -152, -152, -152, 395, - -152, 773, 89, 1164, -152, 773, 773, -152, 395, 1844, - 335, 335, 1812, 1863, 108, 1844, 1844, 1844, 1844, 1844, - 1844, 335, 335, 1780, 1812, 1844, 335, 335, 2, 2, - 93, 93, 93, -152, 146, -24, 913, 105, 97, 90, - 856, 100, 949, 19, -152, 1325, -152, 856, -152, 79, - -152, 151, 54, -152, 1358, -152, 1572, 107, 109, -152, - -152, 856, -152, 856, -152, 119, -152, 773, 122, 10, - 111, 112, 122, 122, -152, -152, -152, -13, 113, 856, - 165, 114, -17, -152, 115, 856, -152, -152, 1015, -152, - 705, 121, 732, 166, -152, -152, -152, -152, 18, 117, - -152, 856, 856, -152, 856, 856, 1780, 1652, -152, 773, - 773, 773, -24, -152, -24, 1196, -152, -24, 913, -152, - -24, 1780, 125, 126, 1048, -152, -152, 1391, 794, -152, - 856, 1700, 1748, 1424, 1457, -152, 122, 122, 122, -152, - -152, 123, -152, -152, -152, -152, -152, 129, -152, -152, - 1490, 1523, -152, 856, 856, 856, -24, -152, -152, -152, - 1572, 1228, 1081, -152, -152, -152, 856, -152, 1260, -152 + -152, -152, -152, -152, -152, -152, -152, 530, 127, 72, + 74, 71, 92, 828, 828, 828, 828, 828, 828, 828, + 828, 828, 828, 828, 828, 828, 828, 828, 828, 828, + 828, 828, 828, 828, 828, 828, 828, -152, -152, 1987, + 83, -26, 3, 190, 131, 648, -152, 1987, 828, -152, + 1987, -7, -152, -152, 18, 828, 557, -26, -26, 621, + 99, -152, 16, -152, -152, -152, -152, -152, -152, 397, + -152, 865, 88, 1242, -152, 865, 865, -152, 397, 2053, + 336, 336, 2020, 928, 108, 2053, 2053, 2053, 2053, 2053, + 2053, 336, 336, 1987, 2020, 2053, 336, 336, -8, -8, + 93, 93, 93, -152, 145, -26, 929, 105, 96, 89, + 828, 98, 961, 19, -152, 1424, -152, 828, -152, 79, + -152, 152, 17, -152, 1474, -152, 1774, 110, 111, -152, + -152, 828, -152, 828, -152, 117, -152, 865, 120, 10, + 106, 112, 120, 120, -152, -152, -152, -13, 113, 828, + 163, 115, -11, -152, 116, 828, -152, -152, 1059, -152, + 711, 119, 738, 168, -152, -152, -152, -152, 18, 121, + -152, 828, 828, -152, 828, 828, 1987, 1856, -152, 865, + 865, 865, -26, -152, -26, 1275, -152, -26, 929, -152, + -26, 1987, 124, 125, 1108, -152, -152, 1524, 801, -152, + 828, 1905, 1954, 1574, 1624, -152, 120, 120, 120, -152, + -152, 122, -152, -152, -152, -152, -152, 128, -152, -152, + 1674, 1724, -152, 828, 828, 828, -26, -152, -152, -152, + 1774, 1308, 1157, -152, -152, -152, 828, -152, 1341, -152 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -859,9 +861,9 @@ static const yytype_uint8 yydefact[] = /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -152, -152, -152, 152, 70, -1, -152, -12, -152, -51, - 4, -152, -152, 67, -111, -141, -4, -152, 12, -125, - -152, -152, -66, -151, -104, -152 + -152, -152, -152, 142, 69, -1, -152, -12, -152, -50, + 4, -152, -152, 66, -110, -141, -4, -152, 5, -125, + -152, -152, -65, -151, -109, -152 }; /* YYDEFGOTO[NTERM-NUM]. */ @@ -880,29 +882,29 @@ static const yytype_int16 yytable[] = 23, 41, 197, 198, 212, 213, 110, 37, 38, 36, 51, 110, 39, 110, 111, 110, 44, 46, 118, 127, 55, 128, 190, 232, 52, 224, 79, 47, 139, 117, - 258, 120, 114, 115, 252, 206, 174, 124, 27, 175, - 125, 176, 1, 16, 214, 35, 187, 140, 188, 259, - 216, 253, 28, 29, 48, 104, 105, 106, 107, 129, - 42, 33, 34, 112, 113, 32, 248, 130, 112, 113, - 112, 113, 112, 113, 202, 203, 143, 204, 191, 233, - 40, 131, 149, 150, 151, 152, 153, 154, 155, 156, + 206, 120, 114, 115, 252, 174, 258, 1, 175, 214, + 176, 124, 27, 16, 125, 104, 105, 106, 140, 107, + 216, 187, 253, 188, 48, 33, 259, 202, 203, 35, + 204, 42, 28, 29, 112, 113, 248, 34, 32, 112, + 113, 112, 113, 112, 113, 238, 143, 239, 129, 191, + 233, 40, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 118, 224, 276, 277, - 278, 238, 182, 239, 185, 133, 178, 135, 84, 85, + 278, 130, 182, 131, 185, 135, 178, 133, 84, 85, 202, 203, 136, 236, 194, 196, 137, 279, 200, 280, 141, 144, 282, 87, 145, 284, 146, 209, 147, 148, - 173, 209, 209, 79, 183, 201, 95, 96, 210, 107, - 215, 225, 79, 226, 227, 237, 229, 100, 101, 102, - 103, 104, 105, 106, 107, 244, 139, 245, 249, 256, - 268, 303, 250, 251, 254, 257, 260, 265, 270, 228, - 221, 285, 286, 119, 296, 297, 120, 269, 186, 304, - 189, 179, 283, 0, 4, 5, 6, 7, 8, 235, + 173, 209, 209, 79, 183, 201, 95, 96, 210, 215, + 107, 225, 79, 226, 227, 229, 237, 100, 101, 102, + 103, 104, 105, 106, 139, 107, 249, 256, 250, 244, + 245, 303, 268, 119, 251, 254, 265, 257, 260, 228, + 221, 285, 286, 270, 296, 297, 120, 186, 269, 189, + 304, 179, 235, 283, 4, 5, 6, 7, 8, 0, 246, 0, 247, 209, 9, 0, 0, 0, 10, 0, 0, 0, 11, 12, 0, 0, 0, 13, 255, 14, 15, 0, 0, 0, 261, 0, 0, 0, 0, 264, 16, 267, 0, 0, 0, 0, 0, 0, 0, 0, - 271, 272, 17, 273, 274, 209, 209, 209, 18, 0, - 19, 180, 20, 21, 181, 22, 0, 0, 0, 0, + 271, 272, 17, 273, 274, 209, 209, 209, 0, 18, + 0, 19, 180, 20, 21, 181, 22, 0, 0, 0, 0, 0, 221, 0, 0, 0, 0, 290, 0, 291, 0, 0, 0, 0, 0, 0, -72, 49, 0, 0, 50, -72, 0, 51, 0, -72, -72, -72, -72, -72, @@ -910,165 +912,185 @@ static const yytype_int16 yytable[] = -72, -72, -72, 0, -72, 308, 0, 0, -72, -72, -72, -72, -72, -72, -72, -72, 16, 0, 0, -72, 0, 0, -72, -72, -72, -72, -72, -72, -72, -72, - -72, -72, -72, -72, 0, -72, 0, -72, -72, -72, - -72, 56, -72, 0, 57, -146, -146, 51, 0, 0, - 0, 0, 0, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 0, -146, -146, 0, 0, 0, 0, 0, - 16, 0, 0, 0, -146, -146, 102, 103, 104, 105, - 106, 107, 0, 0, 0, 0, 205, 0, 77, 57, - 78, 0, 51, 0, 0, 0, -145, 0, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 0, 0, 0, - 0, 0, 0, 0, 0, 16, 0, 53, 0, 0, - 4, 5, 6, 7, 8, 0, 0, 0, 0, 0, - 9, 0, 0, 77, 10, 78, 0, 0, 11, 12, - 0, -145, 0, 13, 45, 14, 15, 4, 5, 6, - 7, 8, 0, 0, 0, 0, 16, 9, 0, 0, - 0, 10, 0, 0, 0, 11, 12, 0, 17, 0, - 13, 0, 14, 15, 18, 0, 19, 0, 20, 21, - 54, 22, 0, 16, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, - 0, 18, 0, 19, 0, 20, 21, 142, 22, 0, - 4, 5, 6, 7, 8, 0, 0, 0, 0, 0, + -72, -72, 0, -72, -72, 0, -72, 0, -72, -72, + -72, -72, 56, -72, 0, 57, -146, -146, 51, 0, + 0, 0, 0, 0, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 0, -146, -146, 0, 0, 0, 0, + 0, 16, 0, 0, 0, -146, -146, 102, 103, 104, + 105, 106, 0, 107, 0, 0, 0, 0, 205, 0, + 77, 57, 78, 0, 51, 0, 0, 0, -145, 0, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 0, + 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, + 53, 0, 0, 4, 5, 6, 7, 8, 0, 0, + 0, 0, 0, 9, 0, 0, 77, 10, 78, 0, + 0, 11, 12, 0, -145, 0, 13, 45, 14, 15, + 4, 5, 6, 7, 8, 0, 0, 0, 0, 16, 9, 0, 0, 0, 10, 0, 0, 0, 11, 12, - 0, 0, 0, 13, 195, 14, 15, 4, 5, 6, - 7, 8, 0, 0, 0, 0, 16, 9, 0, 0, - 0, 10, 0, 0, 0, 11, 12, 0, 17, 0, - 13, 0, 14, 15, 18, 0, 19, 0, 20, 21, - 0, 22, 0, 16, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, - 0, 18, 0, 19, 0, 20, 21, 199, 22, 0, - 4, 5, 6, 7, 8, 0, 0, 0, 0, 0, - 9, 0, 0, 0, 10, 0, 0, 0, 11, 12, - 0, 0, 0, 13, 0, 14, 15, 4, 5, 6, - 7, 8, 0, 0, 0, 0, 16, 9, 0, 0, - 0, 10, 0, 0, 0, 11, 12, 0, 17, 0, - 13, 0, 14, 15, 18, 0, 19, 0, 20, 21, - 0, 22, 0, 16, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, - 184, 18, 0, 19, 0, 20, 21, 0, 22, 4, - 5, 6, 7, 8, 0, 0, 0, 0, 0, 9, - 0, 0, 0, 10, 0, 0, 0, 11, 12, 0, - 0, 0, 13, 0, 14, 15, 4, 5, 6, 7, - 8, 0, 0, 0, 0, 16, 9, 0, 0, 0, - 10, 0, 0, 0, 11, 12, 0, 17, 0, 13, - 0, 14, 15, 18, 0, 19, 0, 20, 21, 263, - 22, 0, 16, 0, 0, 0, 0, 4, 5, 6, - 7, 8, 0, 0, 17, 0, 0, 0, 0, 266, - 18, 0, 19, 0, 20, 21, 0, 22, 4, 5, - 6, 7, 8, 15, 0, 0, 0, 0, 9, 0, - 0, 0, 10, 16, 0, 0, 11, 12, 0, 0, - 0, 13, 0, 14, 15, 207, 0, 0, 0, 0, - 0, 18, 0, 19, 16, 20, 21, 0, 22, 4, - 5, 6, 7, 8, 0, 0, 17, 0, 0, 0, - 0, 289, 18, 0, 19, 0, 20, 21, 0, 22, - 4, 5, 6, 7, 8, 15, 0, 0, 0, 0, - 9, 0, 0, 0, 10, 16, 0, 0, 11, 12, - 0, 0, 0, 13, 0, 14, 15, 0, 0, 0, - 0, 0, 0, 18, 0, 19, 16, 20, 21, 0, - 22, 0, 0, 0, 0, 0, 0, 0, 17, 0, - 0, 0, 0, 0, 18, 0, 19, 218, 20, 21, - 51, 22, 0, 0, 0, 0, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 0, 0, 0, 0, 0, - 0, 0, 0, 16, 0, 0, 0, 0, 83, 84, + 0, 17, 0, 13, 0, 14, 15, 0, 18, 0, + 19, 0, 20, 21, 54, 22, 16, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, + 0, 0, 0, 0, 0, 18, 0, 19, 0, 20, + 21, 142, 22, 0, 4, 5, 6, 7, 8, 0, + 0, 0, 0, 0, 9, 0, 0, 0, 10, 0, + 0, 0, 11, 12, 0, 0, 0, 13, 195, 14, + 15, 4, 5, 6, 7, 8, 0, 0, 0, 0, + 16, 9, 0, 0, 0, 10, 0, 0, 0, 11, + 12, 0, 17, 0, 13, 0, 14, 15, 0, 18, + 0, 19, 0, 20, 21, 0, 22, 16, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, + 0, 0, 0, 0, 0, 0, 18, 0, 19, 0, + 20, 21, 199, 22, 0, 4, 5, 6, 7, 8, + 0, 0, 0, 0, 0, 9, 0, 0, 0, 10, + 0, 0, 0, 11, 12, 0, 0, 0, 13, 0, + 14, 15, 4, 5, 6, 7, 8, 0, 0, 0, + 0, 16, 9, 0, 0, 0, 10, 0, 0, 0, + 11, 12, 0, 17, 0, 13, 0, 14, 15, 0, + 18, 0, 19, 0, 20, 21, 0, 22, 16, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 184, 18, 0, 19, + 0, 20, 21, 0, 22, 4, 5, 6, 7, 8, + 0, 0, 0, 0, 0, 9, 0, 0, 0, 10, + 0, 0, 0, 11, 12, 0, 0, 0, 13, 0, + 14, 15, 4, 5, 6, 7, 8, 0, 0, 0, + 0, 16, 9, 0, 0, 0, 10, 0, 0, 0, + 11, 12, 0, 17, 0, 13, 0, 14, 15, 0, + 18, 0, 19, 0, 20, 21, 263, 22, 16, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 266, 18, 0, 19, + 0, 20, 21, 0, 22, 4, 5, 6, 7, 8, + 0, 0, 0, 0, 0, 9, 0, 0, 0, 10, + 0, 0, 0, 11, 12, 0, 0, 0, 13, 0, + 14, 15, 4, 5, 6, 7, 8, 0, 0, 0, + 0, 16, 9, 0, 0, 0, 10, 0, 0, 0, + 11, 12, 0, 17, 0, 13, 0, 14, 15, 289, + 18, 0, 19, 0, 20, 21, 0, 22, 16, 4, + 5, 6, 7, 8, 0, 4, 5, 6, 7, 8, + 17, 0, 0, 0, 0, 0, 0, 18, 0, 19, + 0, 20, 21, 0, 22, 15, 0, 0, 0, 0, + 0, 15, 0, 0, 0, 16, 0, 0, 0, 0, + 0, 16, 0, 0, 0, 0, 0, 207, 0, 0, + 0, 0, 0, 0, 18, 0, 19, 0, 20, 21, + 18, 22, 19, 218, 20, 21, 51, 22, 84, 85, + 0, 0, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 0, 0, 0, 0, 0, 95, 96, 0, 16, + 83, 84, 85, 86, 0, 0, 0, 100, 101, 102, + 103, 104, 105, 106, 0, 107, 87, 88, 219, 0, + 220, 0, 0, 89, 90, 91, 92, 93, 94, 95, + 96, 0, 0, 0, 0, 0, 0, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 0, 107, 83, + 84, 85, 86, 230, 0, 0, 231, 0, 0, 0, + 0, 0, 0, 0, 0, 87, 88, 0, 0, 0, + 0, 0, 89, 90, 91, 92, 93, 94, 95, 96, + 0, 0, 0, 0, 0, 0, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 0, 107, 83, 84, + 85, 86, 0, 0, 0, 138, 0, 0, 0, 0, + 0, 0, 0, 0, 87, 88, 0, 0, 0, 0, + 0, 89, 90, 91, 92, 93, 94, 95, 96, 0, + 0, 0, 0, 0, 0, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 0, 107, 83, 84, 85, + 86, 0, 0, 0, 262, 0, 0, 0, 0, 0, + 0, 0, 0, 87, 88, 0, 0, 0, 0, 0, + 89, 90, 91, 92, 93, 94, 95, 96, 0, 0, + 0, 0, 0, 0, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 0, 107, 83, 84, 85, 86, + 0, 0, 0, 287, 0, 0, 0, 0, 0, 0, + 0, 0, 87, 88, 0, 0, 0, 0, 0, 89, + 90, 91, 92, 93, 94, 95, 96, 0, 0, 0, + 0, 0, 0, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 0, 107, 306, 0, 307, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 219, 0, 220, 87, 88, 0, 0, 0, 0, + 0, 0, 0, 0, 87, 88, 0, 0, 0, 0, 0, 89, 90, 91, 92, 93, 94, 95, 96, 0, 0, 83, 84, 85, 86, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 0, 87, 88, 0, - 230, 0, 0, 231, 89, 90, 91, 92, 93, 94, - 95, 96, 0, 0, 83, 84, 85, 86, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 0, - 87, 88, 0, 0, 0, 0, 138, 89, 90, 91, - 92, 93, 94, 95, 96, 0, 0, 83, 84, 85, - 86, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 0, 87, 88, 0, 0, 0, 0, 262, - 89, 90, 91, 92, 93, 94, 95, 96, 0, 0, - 83, 84, 85, 86, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 0, 87, 88, 0, 0, - 0, 0, 287, 89, 90, 91, 92, 93, 94, 95, - 96, 0, 0, 0, 0, 0, 0, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 306, 0, - 307, 83, 84, 85, 86, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 87, 88, 0, - 0, 0, 0, 0, 89, 90, 91, 92, 93, 94, - 95, 96, 0, 83, 84, 85, 86, 0, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 87, - 88, 134, 0, 0, 0, 0, 89, 90, 91, 92, - 93, 94, 95, 96, 0, 83, 84, 85, 86, 0, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 87, 88, 211, 0, 0, 0, 0, 89, 90, - 91, 92, 93, 94, 95, 96, 0, 83, 84, 85, - 86, 0, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 87, 88, 281, 0, 0, 0, 0, - 89, 90, 91, 92, 93, 94, 95, 96, 0, 83, - 84, 85, 86, 0, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 87, 88, 305, 0, 0, - 0, 0, 89, 90, 91, 92, 93, 94, 95, 96, - 0, 83, 84, 85, 86, 0, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 87, 88, 309, + 102, 103, 104, 105, 106, 0, 107, 87, 88, 134, 0, 0, 0, 0, 89, 90, 91, 92, 93, 94, 95, 96, 0, 0, 83, 84, 85, 86, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 87, 88, 0, 0, 0, 0, 0, 89, 90, 91, + 99, 100, 101, 102, 103, 104, 105, 106, 0, 107, + 87, 88, 211, 0, 0, 0, 0, 89, 90, 91, 92, 93, 94, 95, 96, 0, 0, 83, 84, 85, 86, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 234, 87, 88, 0, 0, 0, 0, 0, + 106, 0, 107, 87, 88, 281, 0, 0, 0, 0, 89, 90, 91, 92, 93, 94, 95, 96, 0, 0, 83, 84, 85, 86, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 240, 87, 88, 0, 0, + 103, 104, 105, 106, 0, 107, 87, 88, 305, 0, 0, 0, 0, 89, 90, 91, 92, 93, 94, 95, 96, 0, 0, 83, 84, 85, 86, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 288, 87, + 100, 101, 102, 103, 104, 105, 106, 0, 107, 87, + 88, 309, 0, 0, 0, 0, 89, 90, 91, 92, + 93, 94, 95, 96, 0, 0, 0, 0, 0, 0, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 0, 107, 108, 83, 84, 85, 86, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, + 88, 0, 0, 0, 0, 0, 89, 90, 91, 92, + 93, 94, 95, 96, 0, 0, 0, 0, 0, 0, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 0, 107, 234, 83, 84, 85, 86, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, + 88, 0, 0, 0, 0, 0, 89, 90, 91, 92, + 93, 94, 95, 96, 0, 0, 0, 0, 0, 0, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 0, 107, 240, 83, 84, 85, 86, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, + 88, 0, 0, 0, 0, 0, 89, 90, 91, 92, + 93, 94, 95, 96, 0, 0, 0, 0, 0, 0, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 0, 107, 288, 83, 84, 85, 86, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, + 88, 0, 0, 0, 0, 0, 89, 90, 91, 92, + 93, 94, 95, 96, 0, 0, 0, 0, 0, 0, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 0, 107, 294, 83, 84, 85, 86, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, + 88, 0, 0, 0, 0, 0, 89, 90, 91, 92, + 93, 94, 95, 96, 0, 0, 0, 0, 0, 0, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 0, 107, 295, 83, 84, 85, 86, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, + 88, 0, 0, 0, 0, 0, 89, 90, 91, 92, + 93, 94, 95, 96, 0, 0, 0, 0, 0, 0, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 0, 107, 298, 83, 84, 85, 86, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, + 88, 0, 0, 0, 0, 0, 89, 90, 91, 92, + 93, 94, 95, 96, 0, 0, 0, 0, 0, 0, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 0, 107, 299, 83, 84, 85, 86, 0, 0, 0, + 0, 0, 0, 0, 241, 242, 0, 0, 0, 87, + 88, 0, 0, 0, 0, 0, 89, 90, 91, 92, + 93, 94, 95, 96, 0, 0, 0, 0, 0, 0, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 0, 107, 83, 84, 85, 86, 0, 0, 0, 0, + 0, 0, 126, 0, 0, 0, 0, 0, 87, 88, + 0, 0, 0, 0, 0, 89, 90, 91, 92, 93, + 94, 95, 96, 0, 0, 83, 84, 85, 86, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 0, + 107, 87, 88, 0, 0, 0, 0, 0, 89, 90, + 91, 92, 93, 94, 95, 96, 0, 0, 0, 275, + 0, 0, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 0, 107, 83, 84, 85, 86, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 292, + 87, 88, 0, 0, 0, 0, 0, 89, 90, 91, + 92, 93, 94, 95, 96, 0, 0, 0, 0, 0, + 0, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 0, 107, 83, 84, 85, 86, 0, 0, 0, + 0, 0, 0, 293, 0, 0, 0, 0, 0, 87, 88, 0, 0, 0, 0, 0, 89, 90, 91, 92, 93, 94, 95, 96, 0, 0, 83, 84, 85, 86, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 294, 87, 88, 0, 0, 0, 0, 0, 89, + 0, 107, 87, 88, 0, 0, 0, 0, 0, 89, 90, 91, 92, 93, 94, 95, 96, 0, 0, 83, 84, 85, 86, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 295, 87, 88, 0, 0, 0, - 0, 0, 89, 90, 91, 92, 93, 94, 95, 96, - 0, 0, 83, 84, 85, 86, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 298, 87, 88, - 0, 0, 0, 0, 0, 89, 90, 91, 92, 93, - 94, 95, 96, 0, 0, 0, 0, 0, 0, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 299, 83, 84, 85, 86, 0, 0, 0, 0, 0, - 0, 0, 241, 242, 0, 0, 0, 87, 88, 0, - 0, 0, 0, 0, 89, 90, 91, 92, 93, 94, - 95, 96, 0, 0, 0, 0, 0, 0, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 83, - 84, 85, 86, 0, 0, 0, 0, 0, 0, 126, - 0, 0, 0, 0, 0, 87, 88, 0, 0, 0, - 0, 0, 89, 90, 91, 92, 93, 94, 95, 96, - 0, 83, 84, 85, 86, 0, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 87, 88, 0, - 0, 0, 0, 0, 89, 90, 91, 92, 93, 94, - 95, 96, 0, 0, 0, 275, 0, 0, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 83, - 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 292, 87, 88, 0, 0, 0, - 0, 0, 89, 90, 91, 92, 93, 94, 95, 96, - 0, 0, 0, 0, 0, 0, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 83, 84, 85, - 86, 0, 0, 0, 0, 0, 0, 293, 0, 0, - 0, 0, 0, 87, 88, 0, 0, 0, 0, 0, - 89, 90, 91, 92, 93, 94, 95, 96, 0, 83, - 84, 85, 86, 0, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 87, 88, 0, 0, 0, + 104, 105, 106, 0, 107, 87, 88, 0, 0, 0, 0, 0, 89, 90, 91, 92, 93, 94, 95, 96, - 0, 83, 84, 85, 86, 0, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 87, 88, 0, - 0, 0, 0, 0, 89, 90, 91, 92, 93, 94, - 95, 96, 0, -146, 84, 85, 0, 0, 0, 0, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 87, - 88, 0, 0, 84, 85, 0, -146, -146, -146, -146, - -146, -146, 95, 96, 0, 0, 0, 0, 0, 0, - 0, 0, -146, 100, 101, 102, 103, 104, 105, 106, - 107, 95, 96, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 100, 101, 102, 103, 104, 105, 106, 107 + 0, 0, -146, 84, 85, 0, 0, 0, 99, 100, + 101, 102, 103, 104, 105, 106, 0, 107, 87, 88, + 0, 0, 0, 0, 0, -146, -146, -146, -146, -146, + -146, 95, 96, 0, 0, 0, 0, 0, 0, 0, + 0, -146, 100, 101, 102, 103, 104, 105, 106, 0, + 107 }; static const yytype_int16 yycheck[] = @@ -1076,29 +1098,29 @@ static const yytype_int16 yycheck[] = 1, 1, 127, 128, 145, 146, 5, 11, 12, 10, 7, 5, 13, 5, 13, 5, 17, 18, 30, 13, 21, 13, 4, 4, 20, 176, 22, 4, 47, 30, - 47, 32, 28, 29, 47, 139, 60, 58, 0, 63, - 61, 65, 15, 40, 148, 4, 57, 66, 59, 66, - 175, 64, 16, 17, 31, 53, 54, 55, 56, 28, - 60, 56, 40, 62, 63, 58, 207, 4, 62, 63, - 62, 63, 62, 63, 41, 42, 77, 44, 60, 60, - 60, 4, 83, 84, 85, 86, 87, 88, 89, 90, + 139, 32, 28, 29, 47, 61, 47, 15, 64, 148, + 66, 59, 0, 40, 62, 53, 54, 55, 67, 57, + 175, 58, 65, 60, 31, 57, 67, 41, 42, 4, + 44, 61, 16, 17, 63, 64, 207, 40, 59, 63, + 64, 63, 64, 63, 64, 58, 77, 60, 28, 61, + 61, 61, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 118, 258, 249, 250, - 251, 57, 113, 59, 115, 59, 112, 1, 10, 11, - 41, 42, 56, 44, 125, 126, 64, 252, 129, 254, - 61, 4, 257, 25, 61, 260, 61, 141, 66, 47, - 56, 145, 146, 139, 13, 46, 38, 39, 59, 56, - 4, 46, 148, 56, 64, 4, 56, 49, 50, 51, - 52, 53, 54, 55, 56, 58, 47, 58, 46, 4, - 4, 296, 61, 61, 61, 61, 61, 56, 61, 180, - 176, 56, 56, 31, 61, 56, 187, 238, 118, 300, - 123, 1, 258, -1, 4, 5, 6, 7, 8, 187, + 251, 4, 113, 4, 115, 1, 112, 60, 10, 11, + 41, 42, 57, 44, 125, 126, 65, 252, 129, 254, + 62, 4, 257, 25, 62, 260, 62, 141, 67, 47, + 57, 145, 146, 139, 13, 46, 38, 39, 60, 4, + 57, 46, 148, 57, 65, 57, 4, 49, 50, 51, + 52, 53, 54, 55, 47, 57, 46, 4, 62, 59, |