diff options
author | Nicolas Williams <nico@cryptonector.com> | 2019-03-08 09:59:47 -0600 |
---|---|---|
committer | Nicolas Williams <nico@cryptonector.com> | 2019-03-24 23:23:16 -0500 |
commit | 3e0a11888644fd7660af2ac241cd5c97cf12feb4 (patch) | |
tree | 475f461079e501e5f942bdb6326f7a7752a245b4 | |
parent | c72ed135e4f1b5a02a8fb3f6cd46f27513ecab2a (diff) |
Allow .["foo"].["bar"]
-rw-r--r-- | src/parser.c | 1555 | ||||
-rw-r--r-- | src/parser.y | 6 |
2 files changed, 802 insertions, 759 deletions
diff --git a/src/parser.c b/src/parser.c index d6d4ba05..d9210a98 100644 --- a/src/parser.c +++ b/src/parser.c @@ -678,16 +678,16 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 27 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 2134 +#define YYLAST 2220 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 69 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 30 /* YYNRULES -- Number of rules. */ -#define YYNRULES 167 +#define YYNRULES 169 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 318 +#define YYNSTATES 322 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ @@ -748,13 +748,13 @@ static const yytype_uint16 yyrline[] = 616, 621, 624, 627, 633, 636, 639, 647, 651, 654, 657, 660, 663, 666, 669, 672, 675, 679, 685, 688, 691, 694, 697, 700, 703, 706, 709, 712, 715, 718, - 721, 724, 727, 730, 733, 740, 744, 753, 765, 770, - 771, 772, 773, 776, 779, 784, 789, 792, 797, 800, - 805, 809, 812, 817, 820, 825, 828, 833, 836, 839, - 842, 845, 848, 856, 862, 865, 868, 871, 874, 877, + 721, 724, 727, 730, 733, 736, 739, 746, 750, 759, + 771, 776, 777, 778, 779, 782, 785, 790, 795, 798, + 803, 806, 811, 815, 818, 823, 826, 831, 834, 839, + 842, 845, 848, 851, 854, 862, 868, 871, 874, 877, 880, 883, 886, 889, 892, 895, 898, 901, 904, 907, - 910, 913, 916, 921, 924, 925, 926, 929, 932, 935, - 938, 942, 946, 950, 954, 958, 962, 970 + 910, 913, 916, 919, 922, 927, 930, 931, 932, 935, + 938, 941, 944, 948, 952, 956, 960, 964, 968, 976 }; #endif @@ -797,52 +797,53 @@ static const yytype_uint16 yytoknum[] = }; # endif -#define YYPACT_NINF -154 +#define YYPACT_NINF -157 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-154))) + (!!((Yystate) == (-157))) -#define YYTABLE_NINF -154 +#define YYTABLE_NINF -156 #define yytable_value_is_error(Yytable_value) \ - (!!((Yytable_value) == (-154))) + (!!((Yytable_value) == (-156))) /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ static const yytype_int16 yypact[] = { - 24, 834, 3, 33, -45, -6, -154, 18, -154, 56, - 834, 435, 435, 834, 4, 1, -154, 834, 584, 2047, - 284, 517, 350, 1352, 834, -154, 0, -154, -3, -3, - 834, 33, 742, 834, -154, -154, -9, 1758, 9, 57, - 39, 64, -154, 67, -154, -11, 11, 1182, -154, -154, - -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, - -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, - 74, 18, 49, 10, -154, 979, -38, 47, 834, 2075, - 54, 72, 59, 34, 834, 834, 834, 834, 834, 834, - 834, 834, 834, 834, 834, 834, 834, 834, 834, 834, - 834, 834, 834, 834, 834, 834, 834, 834, -154, -154, - 1926, 79, -25, -3, 450, 125, -154, -154, -154, 1926, - 834, -154, -154, 1403, 1926, 55, -154, -154, 7, 834, - 649, -25, -25, 714, 94, -154, 81, -154, -154, -154, - -154, -154, -154, 407, 170, -154, 170, 1216, 80, -154, - 170, 170, -154, 407, 1994, 207, 207, 1960, 345, 143, - 1994, 1994, 1994, 1994, 1994, 1994, 207, 207, 1926, 1960, - 1994, 207, 207, -11, -11, 86, 86, 86, -154, 141, - -25, 896, 108, 103, 112, 97, 90, 834, 99, 929, - 19, -154, -154, 834, -154, 88, -154, 2103, 75, -154, - 1454, -154, 1658, 98, 100, -154, -154, 834, -154, 834, - -154, -15, -154, 170, 114, 14, 114, 101, 170, 114, - 114, -154, -154, -154, -42, 102, 106, 834, 158, 107, - -27, -154, 109, -25, 834, -154, -154, 1029, -154, 806, - 113, -154, 169, -154, -154, -154, -154, 7, 117, -154, - 834, 834, -154, -154, 834, 834, 1926, 1792, -154, 170, - 170, 114, -25, -154, -25, -25, 1250, 120, -25, 896, - -154, -25, 144, 1926, 127, 130, 1079, -154, -154, -154, - 834, 1842, 1892, 1505, 1556, -154, 114, 114, -154, -154, - -154, 126, -25, -154, -154, -154, -154, -154, 132, 1607, - -154, 834, 834, 834, -25, -154, -154, -154, 1708, 1284, - 1129, -154, -154, -154, 834, -154, 1318, -154 + 43, 838, 75, 28, 16, 22, -157, 66, -157, 108, + 838, 161, 161, 838, 63, 1, -157, 838, 588, 2133, + 288, 521, 354, 1406, 838, -157, 0, -157, 14, 14, + 838, 28, 746, 838, -157, -157, -9, 1812, 17, 55, + 99, 126, -157, 127, -157, -6, 72, 1236, -157, -157, + -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, + -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, + 140, 66, 85, 78, -157, 983, -45, 82, 838, 2161, + 86, 87, 83, 105, 838, 838, 838, 838, 838, 838, + 838, 838, 838, 838, 838, 838, 838, 838, 838, 838, + 838, 838, 838, 838, 838, 838, 838, 838, -157, -157, + 1980, 96, -26, -3, 454, 142, -157, -157, -157, 1980, + 838, -157, -157, 1457, 1980, -19, -157, -157, 10, 838, + 653, -26, -26, 718, 109, -157, 24, -157, -157, -157, + -157, -157, -157, 411, 130, -157, 130, 1270, 94, -157, + 130, 130, -157, 411, 2048, 209, 209, 2014, 349, 2080, + 2048, 2048, 2048, 2048, 2048, 2048, 209, 209, 1980, 2014, + 2048, 209, 209, -6, -6, 101, 101, 101, -157, 157, + -26, 900, 122, 117, 132, 838, 112, 107, 838, 116, + 933, 11, -157, -157, 838, -157, 81, -157, 2189, -2, + -157, 1508, -157, 1712, 115, 118, -157, -157, 838, -157, + 838, -157, -20, -157, 130, 129, 51, 129, 114, 130, + 129, 129, -157, -157, -157, -13, 119, 125, 838, 175, + 133, -22, -157, 135, -26, 838, 1033, -157, -157, 1083, + -157, 810, 123, -157, 181, -157, -157, -157, -157, 10, + 136, -157, 838, 838, -157, -157, 838, 838, 1980, 1846, + -157, 130, 130, 129, -26, -157, -26, -26, 1304, 137, + -26, 900, -157, -26, 149, 1980, 143, 145, 146, 1133, + -157, -157, -157, 838, 1896, 1946, 1559, 1610, -157, 129, + 129, -157, -157, -157, 148, -26, -157, -157, -157, -157, + -157, -157, 147, 1661, -157, 838, 838, 838, -26, -157, + -157, -157, 1762, 1338, 1183, -157, -157, -157, 838, -157, + 1372, -157 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -850,54 +851,55 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 4, 0, 0, 6, 107, 83, 98, 100, 75, 0, + 4, 0, 0, 6, 109, 83, 100, 102, 75, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, - 0, 0, 0, 0, 0, 99, 48, 1, 0, 0, + 0, 0, 0, 0, 0, 101, 48, 1, 0, 0, 8, 6, 0, 0, 79, 64, 0, 0, 0, 0, - 19, 0, 77, 0, 66, 33, 0, 0, 105, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 106, 86, - 0, 0, 85, 0, 103, 0, 0, 164, 0, 0, - 160, 165, 0, 154, 0, 0, 0, 0, 0, 0, + 19, 0, 77, 0, 66, 33, 0, 0, 107, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 108, 86, + 0, 0, 85, 0, 105, 0, 0, 166, 0, 0, + 162, 167, 0, 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 5, 10, 82, 0, 0, 0, 0, 54, 53, 3, 2, - 8, 7, 49, 0, 115, 0, 113, 66, 0, 0, - 0, 0, 0, 0, 0, 76, 0, 109, 101, 87, - 81, 110, 102, 0, 0, 112, 0, 0, 162, 163, - 0, 0, 104, 0, 41, 42, 43, 26, 25, 24, + 8, 7, 49, 0, 117, 0, 115, 66, 0, 0, + 0, 0, 0, 0, 0, 76, 0, 111, 103, 87, + 81, 112, 104, 0, 0, 114, 0, 0, 164, 165, + 0, 0, 106, 0, 41, 42, 43, 26, 25, 24, 28, 32, 35, 37, 40, 27, 46, 47, 29, 30, 23, 44, 45, 31, 34, 36, 38, 39, 78, 0, - 0, 0, 0, 0, 119, 84, 0, 0, 91, 0, - 0, 9, 50, 0, 108, 0, 61, 0, 0, 57, - 0, 17, 0, 0, 0, 20, 18, 0, 67, 0, - 63, 0, 156, 0, 167, 73, 157, 0, 0, 159, - 158, 155, 120, 123, 0, 0, 0, 0, 0, 0, - 0, 125, 0, 0, 0, 80, 111, 0, 90, 0, - 89, 52, 0, 114, 65, 59, 60, 0, 0, 55, - 0, 0, 16, 15, 0, 0, 21, 0, 72, 0, - 0, 161, 0, 121, 0, 0, 0, 127, 0, 0, - 122, 0, 118, 11, 97, 96, 0, 88, 51, 58, - 0, 0, 0, 0, 0, 68, 71, 166, 124, 133, - 129, 0, 0, 131, 126, 130, 94, 93, 95, 0, - 70, 0, 0, 0, 0, 128, 92, 56, 0, 0, - 0, 132, 69, 12, 0, 14, 0, 13 + 0, 0, 0, 0, 121, 0, 84, 0, 0, 93, + 0, 0, 9, 50, 0, 110, 0, 61, 0, 0, + 57, 0, 17, 0, 0, 0, 20, 18, 0, 67, + 0, 63, 0, 158, 0, 169, 73, 159, 0, 0, + 161, 160, 157, 122, 125, 0, 0, 0, 0, 0, + 0, 0, 127, 0, 0, 0, 0, 80, 113, 0, + 92, 0, 89, 52, 0, 116, 65, 59, 60, 0, + 0, 55, 0, 0, 16, 15, 0, 0, 21, 0, + 72, 0, 0, 163, 0, 123, 0, 0, 0, 129, + 0, 0, 124, 0, 120, 11, 91, 99, 98, 0, + 88, 51, 58, 0, 0, 0, 0, 0, 68, 71, + 168, 126, 135, 131, 0, 0, 133, 128, 132, 90, + 96, 95, 97, 0, 70, 0, 0, 0, 0, 130, + 94, 56, 0, 0, 0, 134, 69, 12, 0, 14, + 0, 13 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -154, -154, -154, 160, 82, -1, -154, -154, 174, -12, - -154, -43, 6, -154, -154, 78, -101, -93, -4, -154, - 17, -154, -76, -153, -154, -154, -57, -18, -107, -154 + -157, -157, -157, 177, 92, -1, -157, -157, 184, -11, + -157, -43, 5, -157, -157, 89, -98, -140, -4, -157, + 23, -157, -61, -156, -157, -157, -53, -18, -106, -157 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { -1, 2, 3, 30, 118, 110, 31, 32, 115, 24, - 198, 199, 25, 44, 127, 136, 253, 214, 26, 125, - 126, 182, 183, 184, 224, 230, 231, 81, 82, 83 + 199, 200, 25, 44, 127, 136, 255, 215, 26, 125, + 126, 182, 183, 184, 225, 231, 232, 81, 82, 83 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -905,349 +907,360 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 23, 68, 42, 27, 71, 111, 262, 38, 39, 37, - 143, 196, 40, 112, 111, 33, 45, 47, 120, 111, - 75, 269, 131, 241, 263, 144, 72, 223, 80, 119, - 145, 123, 124, 143, 116, 116, 212, 179, 16, 1, - 180, 270, 181, 105, 106, 107, 221, 108, 144, 28, - 29, 128, 34, 216, 129, 203, 204, 219, 220, 35, - 36, 149, 111, 43, 113, 114, 41, 133, 134, 197, - 132, 135, 137, 113, 114, 139, 141, 147, 113, 114, - 272, 242, 153, 154, 155, 156, 157, 158, 159, 160, + 23, 68, 42, 143, 71, 111, 217, 38, 39, 37, + 220, 221, 40, 112, 197, 243, 45, 47, 144, 120, + 75, 71, 111, 145, 224, 72, 271, 80, 143, 119, + 131, 123, 124, 116, 116, 264, 179, 213, 16, 180, + 194, 181, 195, 144, 28, 29, 272, 222, 105, 106, + 107, 128, 108, 265, 129, 16, 111, 249, 1, 250, + 111, 149, 185, 43, 113, 114, 209, 210, 132, 211, + 204, 205, 198, 244, 260, 27, 33, 147, 274, 263, + 34, 113, 114, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 140, 120, 288, - 146, 289, 290, 189, 193, 293, 194, 150, 295, 185, - 258, 113, 114, 208, 209, 261, 210, 152, 200, 202, - 208, 209, 206, 244, 247, 151, 248, 178, 190, 305, - 215, 207, 215, 218, 108, 222, 215, 215, 233, 80, - 234, 311, -117, 85, 86, 235, 236, 238, 254, 80, - 255, 259, 267, 232, 260, 264, 286, 287, 88, 265, - 268, 277, 271, 278, 4, 5, 6, 7, 8, 246, - 280, 96, 97, 292, -116, 296, 237, 229, 297, 304, - 306, 121, 124, 101, 102, 103, 104, 105, 106, 107, - 15, 108, 191, 117, 279, 195, 256, 312, 257, 215, - 243, 16, 294, 0, 215, 0, 0, -154, -154, 0, - 0, 0, 0, 213, 0, 0, 266, 0, 0, 0, - 18, 0, 19, 273, 20, 21, 0, 22, 276, 0, - 0, 0, 0, 0, 0, -154, -154, 0, 0, 281, - 282, 232, 0, 283, 284, 215, 215, -154, -154, 103, - 104, 105, 106, 107, 0, 108, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 229, 0, 0, 0, 299, - 0, 0, 0, 0, -74, 69, 0, 0, 70, -74, - 0, 71, 0, -74, -74, -74, -74, -74, 0, 0, - 308, 309, 310, -74, -74, -74, 0, 0, -74, -74, - -74, 0, -74, 316, 0, 0, -74, -74, -74, -74, - -74, -74, -74, -74, 0, 16, 0, 0, -74, 0, - 0, -74, -74, -74, -74, -74, -74, -74, -74, -74, - -74, 0, -74, -74, 0, -74, 0, -74, -74, -74, - -74, 76, -74, 0, 77, 85, 86, 71, 0, 0, - 0, 0, 0, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 0, 96, 97, 0, 0, 0, 0, 0, - 0, 16, 0, 0, 0, 101, 102, 103, 104, 105, - 106, 107, 0, 108, 0, 0, 0, 0, 211, 0, - 78, 77, 79, 0, 71, 0, 0, 0, -153, 0, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 4, - 5, 6, 7, 8, 0, 0, 0, 0, 16, 0, - 0, 186, 0, 0, 4, 5, 6, 7, 8, 0, - 0, 0, 0, 0, 9, 15, 0, 78, 10, 79, - 0, 0, 11, 12, 0, -153, 16, 13, 0, 14, - 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 16, 0, 0, 0, 18, 0, 19, 0, 20, - 21, 0, 22, 17, 0, 0, 0, 0, 0, 0, - 18, 0, 19, 187, 20, 21, 188, 22, 73, 0, - 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, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 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, 74, 22, 46, 0, 0, 4, 5, + 171, 172, 173, 174, 175, 176, 177, 35, 291, 120, + 292, 293, 36, 190, 296, 113, 114, 298, 186, 113, + 114, 289, 290, 209, 210, 41, 246, 133, 201, 203, + 134, 135, 207, 137, 4, 5, 6, 7, 8, 309, + 216, 139, 216, 140, 141, 146, 216, 216, 80, 150, + 151, 152, 315, 153, 178, 191, 208, 219, 80, 108, + 15, 223, 234, 233, 235, 4, 5, 6, 7, 8, + 237, 16, -119, 238, 240, 256, 261, 262, 257, 269, + 248, 280, 266, 214, 236, 281, 230, 239, 267, -118, + 18, 15, 19, 124, 20, 21, 270, 22, 273, 283, + 295, 299, 16, 300, 301, 310, 282, 258, 121, 259, + 216, 308, 192, 117, 316, 216, 196, 245, 297, -156, + -156, 18, 0, 19, 0, 20, 21, 268, 22, 0, + 0, 0, 0, 0, 275, 0, 0, 0, 0, 0, + 279, 0, 0, 0, 0, 0, 0, -156, -156, 0, + 0, 284, 285, 233, 0, 286, 287, 216, 216, -156, + -156, 103, 104, 105, 106, 107, 0, 108, 0, 0, + 0, 0, 0, 0, 0, 0, 230, 0, 0, 0, + 0, 0, 303, 0, 0, 0, 0, 0, -74, 69, + 0, 0, 70, -74, 0, 71, 0, -74, -74, -74, + -74, -74, 0, 0, 312, 313, 314, -74, -74, -74, + 0, 0, -74, -74, -74, 0, -74, 320, 0, 0, + -74, -74, -74, -74, -74, -74, -74, -74, 0, 16, + 0, 0, -74, 0, 0, -74, -74, -74, -74, -74, + -74, -74, -74, -74, -74, 0, -74, -74, 0, -74, + 0, -74, -74, -74, -74, 76, -74, 0, 77, 85, + 86, 71, 0, 0, 0, 0, 0, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 0, 96, 97, 0, + 0, 0, 0, 0, 0, 16, 0, 0, 0, 101, + 102, 103, 104, 105, 106, 107, 0, 108, 0, 0, + 0, 0, 212, 0, 78, 77, 79, 0, 71, 0, + 0, 0, -155, 0, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 16, 0, 0, 187, 0, 0, 4, 5, 6, 7, 8, 0, 0, 0, 0, 0, 9, 0, - 0, 0, 10, 0, 0, 0, 11, 12, 0, 0, + 0, 78, 10, 79, 0, 0, 11, 12, 0, -155, 0, 13, 0, 14, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, - 201, 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, + 0, 0, 0, 0, 18, 0, 19, 188, 20, 21, + 189, 22, 73, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 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, 74, 22, 46, + 0, 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, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 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, 205, 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, 0, 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, 0, 16, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, - 0, 122, 18, 0, 19, 0, 20, 21, 0, 22, - 4, 5, 6, 7, 8, 0, 0, 0, 0, 0, + 0, 17, 0, 0, 0, 0, 0, 0, 18, 0, + 19, 0, 20, 21, 202, 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, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 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, 206, + 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, 0, + 4, 5, 6, 7, 8, 0, 0, 0, 0, 16, 9, 0, 0, 0, 10, 0, 0, 0, 11, 12, - 0, 0, 0, 13, 0, 14, 15, 0, 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, 275, 22, 0, 16, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, - 0, 0, 0, 0, 18, 0, 19, 225, 20, 21, - 226, 22, 0, 71, 0, 0, 0, 0, 0, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 16, 84, 85, - 86, 87, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 88, 89, 227, 0, 228, 0, - 0, 90, 91, 92, 93, 94, 95, 96, 97, 0, - 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 0, 108, 84, 85, - 86, 87, 239, 0, 0, 240, 0, 0, 0, 0, - 0, 0, 0, 0, 88, 89, 0, 0, 0, 0, - 0, 90, 91, 92, 93, 94, 95, 96, 97, 0, - 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 0, 108, 84, 85, - 86, 87, 0, 0, 0, 142, 0, 0, 0, 0, - 0, 0, 0, 0, 88, 89, 0, 0, 0, 0, - 0, 90, 91, 92, 93, 94, 95, 96, 97, 0, - 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 0, 108, 84, 85, - 86, 87, 0, 0, 0, 274, 0, 0, 0, 0, - 0, 0, 0, 0, 88, 89, 0, 0, 0, 0, - 0, 90, 91, 92, 93, 94, 95, 96, 97, 0, - 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 0, 108, 84, 85, - 86, 87, 0, 0, 0, 298, 0, 0, 0, 0, - 0, 0, 0, 0, 88, 89, 0, 0, 0, 0, - 0, 90, 91, 92, 93, 94, 95, 96, 97, 0, - 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 0, 108, 314, 0, - 315, 84, 85, 86, 87, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 88, 89, 0, - 0, 0, 0, 0, 90, 91, 92, 93, 94, 95, - 96, 97, 0, 0, 0, 84, 85, 86, 87, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 0, - 108, 88, 89, 138, 0, 0, 0, 0, 90, 91, + 0, 17, 0, 13, 0, 14, 15, 0, 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, 122, 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, 0, 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, 278, 22, 0, 16, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 17, 0, 0, 0, 0, 0, 0, 18, 0, + 19, 226, 20, 21, 227, 22, 0, 71, 0, 0, + 0, 0, 0, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 16, 84, 85, 86, 87, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 88, 89, + 228, 0, 229, 0, 0, 90, 91, 92, 93, 94, + 95, 96, 97, 0, 0, 0, 0, 0, 0, 0, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 0, 108, 84, 85, 86, 87, 241, 0, 0, 242, + 0, 0, 0, 0, 0, 0, 0, 0, 88, 89, + 0, 0, 0, 0, 0, 90, 91, 92, 93, 94, + 95, 96, 97, 0, 0, 0, 0, 0, 0, 0, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 0, 108, 84, 85, 86, 87, 0, 0, 0, 142, + 0, 0, 0, 0, 0, 0, 0, 0, 88, 89, + 0, 0, 0, 0, 0, 90, 91, 92, 93, 94, + 95, 96, 97, 0, 0, 0, 0, 0, 0, 0, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 0, 108, 84, 85, 86, 87, 0, 0, 0, 276, + 0, 0, 0, 0, 0, 0, 0, 0, 88, 89, + 0, 0, 0, 0, 0, 90, 91, 92, 93, 94, + 95, 96, 97, 0, 0, 0, 0, 0, 0, 0, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 0, 108, 84, 85, 86, 87, 0, 0, 0, 277, + 0, 0, 0, 0, 0, 0, 0, 0, 88, 89, + 0, 0, 0, 0, 0, 90, 91, 92, 93, 94, + 95, 96, 97, 0, 0, 0, 0, 0, 0, 0, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 0, 108, 84, 85, 86, 87, 0, 0, 0, 302, + 0, 0, 0, 0, 0, 0, 0, 0, 88, 89, + 0, 0, 0, 0, 0, 90, 91, 92, 93, 94, + 95, 96, 97, 0, 0, 0, 0, 0, 0, 0, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 0, 108, 318, 0, 319, 84, 85, 86, 87, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 88, 89, 0, 0, 0, 0, 0, 90, 91, 92, 93, 94, 95, 96, 97, 0, 0, 0, 84, 85, 86, 87, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 0, 108, 88, 89, 217, 0, 0, + 105, 106, 107, 0, 108, 88, 89, 138, 0, 0, 0, 0, 90, 91, 92, 93, 94, 95, 96, 97, 0, 0, 0, 84, 85, 86, 87, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 0, 108, 88, - 89, 291, 0, 0, 0, 0, 90, 91, 92, 93, + 89, 218, 0, 0, 0, 0, 90, 91, 92, 93, 94, 95, 96, 97, 0, 0, 0, 84, 85, 86, 87, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 0, 108, 88, 89, 313, 0, 0, 0, 0, + 107, 0, 108, 88, 89, 294, 0, 0, 0, 0, 90, 91, 92, 93, 94, 95, 96, 97, 0, 0, 0, 84, 85, 86, 87, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 0, 108, 88, 89, 317, 0, 0, 0, 0, 90, 91, 92, 93, 94, 95, - 96, 97, 0, 0, 0, 0, 0, 0, 0, 98, + 96, 97, 0, 0, 0, 84, 85, 86, 87, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 0, - 108, 109, 84, 85, 86, 87, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 88, 89, - 0, 0, 0, 0, 0, 90, 91, 92, 93, 94, - 95, 96, 97, 0, 0, 0, 0, 0, 0, 0, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 0, 108, 192, 84, 85, 86, 87, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, - 89, 0, 0, 0, 0, 0, 90, 91, 92, 93, - 94, 95, 96, 97, 0, 0, 0, 0, 0, 0, - 0, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 0, 108, 249, 84, 85, 86, 87, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 88, 89, 0, 0, 0, 0, 0, 90, 91, 92, - 93, 94, 95, 96, 97, 0, 0, 0, 0, 0, - 0, 0, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 0, 108, 302, 84, 85, 86, 87, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 88, 89, 0, 0, 0, 0, 0, 90, 91, + 108, 88, 89, 321, 0, 0, 0, 0, 90, 91, 92, 93, 94, 95, 96, 97, 0, 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 0, 108, 303, 84, 85, 86, 87, + 105, 106, 107, 0, 108, 109, 84, 85, 86, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 89, 0, 0, 0, 0, 0, 90, 91, 92, 93, 94, 95, 96, 97, 0, 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 0, 108, 307, 84, 85, 86, - 87, 0, 0, 0, 0, 0, 0, 0, 250, 251, - 0, 0, 252, 88, 89, 0, 0, 0, 0, 0, - 90, 91, 92, 93, 94, 95, 96, 97, 0, 0, - 0, 0, 0, 0, 0, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 0, 108, 84, 85, 86, - 87, 0, 0, 0, 0, 0, 0, 0, 250, 251, + 104, 105, 106, 107, 0, 108, 193, 84, 85, 86, + 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 89, 0, 0, 0, 0, 0, 90, 91, 92, 93, 94, 95, 96, 97, 0, 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 0, 108, 84, 85, 86, - 87, 0, 0, 0, 0, 0, 0, 130, 0, 0, - 0, 0, 0, 88, 89, 0, 0, 0, 0, 0, - 90, 91, 92, 93, 94, 95, 96, 97, 0, 0, - 0, 84, 85, 86, 87, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 0, 108, 88, 89, 0, + 103, 104, 105, 106, 107, 0, 108, 251, 84, 85, + 86, 87, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 88, 89, 0, 0, 0, 0, + 0, 90, 91, 92, 93, 94, 95, 96, 97, 0, + 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 0, 108, 306, 84, + 85, 86, 87, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 88, 89, 0, 0, 0, + 0, 0, 90, 91, 92, 93, 94, 95, 96, 97, + 0, 0, 0, 0, 0, 0, 0, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 0, 108, 307, + 84, 85, 86, 87, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 88, 89, 0, 0, + 0, 0, 0, 90, 91, 92, 93, 94, 95, 96, + 97, 0, 0, 0, 0, 0, 0, 0, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 0, 108, + 311, 84, 85, 86, 87, 0, 0, 0, 0, 0, + 0, 0, 252, 253, 0, 0, 254, 88, 89, 0, 0, 0, 0, 0, 90, 91, 92, 93, 94, 95, - 96, 97, 0, 0, 0, 0, 285, 0, 0, 98, + 96, 97, 0, 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 0, 108, 84, 85, 86, 87, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 300, 88, 89, 0, + 0, 0, 252, 253, 0, 0, 0, 88, 89, 0, 0, 0, 0, 0, 90, 91, 92, 93, 94, 95, 96, 97, 0, 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 0, 108, 84, 85, 86, 87, 0, 0, 0, 0, 0, - 0, 301, 0, 0, 0, 0, 0, 88, 89, 0, + 0, 130, 0, 0, 0, 0, 0, 88, 89, 0, 0, 0, 0, 0, 90, 91, 92, 93, 94, 95, 96, 97, 0, 0, 0, 84, 85, 86, 87, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 0, 108, 88, 89, 0, 0, 0, 0, 0, 90, 91, + 92, 93, 94, 95, 96, 97, 0, 0, 0, 0, + 288, 0, 0, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 0, 108, 84, 85, 86, 87, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 304, 88, 89, 0, 0, 0, 0, 0, 90, 91, + 92, 93, 94, 95, 96, 97, 0, 0, 0, 0, + 0, 0, 0, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 0, 108, 84, 85, 86, 87, 0, + 0, 0, 0, 0, 0, 305, 0, 0, 0, 0, + 0, 88, 89, 0, 0, 0, 0, 0, 90, 91, 92, 93, 94, 95, 96, 97, 0, 0, 0, 84, 85, 86, 87, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 0, 108, 88, 89, 0, 0, 0, 0, 0, 90, 91, 92, 93, 94, 95, 96, 97, - 0, 0, 0, -154, 85, 86, 0, 0, 0, 100, + 0, 0, 0, 84, 85, 86, 87, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 0, 108, 88, - 89, 0, 0, 0, 0, 0, -154, -154, -154, -154, - -154, -154, 96, 97, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -154, 101, 102, 103, 104, 105, 106, - 107, 48, 108, 0, 0, 0, 0, 0, 0, 0, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 148, - 0, 0, 0, 0, 0, 0, 0, 0, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 245, 0, 0, + 89, 0, 0, 0, 0, 0, 90, 91, 92, 93, + 94, 95, 96, 97, 0, 0, 0, -156, 85, 86, + 0, 0, 0, 100, 101, 102, 103, 104, 105, 106, + 107, 0, 108, 88, 89, 0, 0, 0, 0, 0, + -156, -156, -156, -156, -156, -156, 96, 97, 0, 0, + 85, 86, 0, 0, 0, 0, 0, -156, 101, 102, + 103, 104, 105, 106, 107, 88, 108, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 96, 97, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 101, 102, 103, 104, 105, 106, 107, 48, 108, 0, 0, 0, 0, 0, 0, 0, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67 + 63, 64, 65, 66, 67, 148, 0, 0, 0, 0, + 0, 0, 0, 0, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 247, 0, 0, 0, 0, 0, 0, + 0, 0, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67 }; static const yytype_int16 yycheck[] = { - 1, 19, 1, 0, 7, 5, 48, 11, 12, 10, - 48, 4, 13, 13, 5, 60, 17, 18, 30, 5, - 21, 48, 13, 4, 66, 63, 20, 180, 22, 30, - 68, 32, 33, 48, 28, 29, 143, 62, 41, 15, - 65, 68, 67, 54, 55, 56, 153, 58, 63, 16, - 17, 60, 58, 146, 63, 131, 132, 150, 151, 41, - 4, 79, 5, 62, 64, 65, 62, 28, 4, 62, - 13, 4, 61, 64, 65, 1, 66, 78, 64, 65, - 233, 62, 48, 84, 85, 86, 87, 88, 89, 90, + 1, 19, 1, 48, 7, 5, 146, 11, 12, 10, + 150, 151, 13, 13, 4, 4, 17, 18, 63, 30, + 21, 7, 5, 68, 180, 20, 48, 22, 48, 30, + 13, 32, 33, 28, 29, 48, 62, 143, 41, 65, + 59, 67, 61, 63, 16, 17, 68, 153, 54, 55, + 56, 60, 58, 66, 63, 41, 5, 59, 15, 61, + 5, 79, 65, 62, 64, 65, 42, 43, 13, 45, + 131, 132, 62, 62, 214, 0, 60, 78, 234, 219, + 58, 64, 65, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 58, 120, 262, - 63, 264, 265, 114, 59, 268, 61, 63, 271, 113, - 213, 64, 65, 42, 43, 218, 45, 68, 129, 130, - 42, 43, 133, 45, 59, 63, 61, 58, 13, 292, - 144, 47, 146, 63, 58, 4, 150, 151, 40, 143, - 47, 304, 40, 10, 11, 58, 66, 58, 60, 153, |