summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--parser.c1808
-rw-r--r--parser.y29
-rw-r--r--tests/jq.test8
3 files changed, 952 insertions, 893 deletions
diff --git a/parser.c b/parser.c
index 9500dc6a..1cc4adb4 100644
--- a/parser.c
+++ b/parser.c
@@ -328,6 +328,16 @@ static block constant_fold(block a, block b, int op) {
if (!block_is_single(a) || !block_is_const(a) ||
!block_is_single(b) || !block_is_const(b))
return gen_noop();
+ if (op == '+') {
+ if (block_const_kind(a) == JV_KIND_NULL) {
+ block_free(a);
+ return b;
+ }
+ if (block_const_kind(b) == JV_KIND_NULL) {
+ block_free(b);
+ return a;
+ }
+ }
if (block_const_kind(a) != block_const_kind(b))
return gen_noop();
@@ -412,7 +422,7 @@ static block gen_update(block object, block val, int optype) {
}
-#line 416 "parser.c" /* yacc.c:358 */
+#line 426 "parser.c" /* yacc.c:358 */
#ifdef short
# undef short
@@ -656,16 +666,16 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 27
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 1937
+#define YYLAST 1938
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 68
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 27
+#define YYNNTS 28
/* YYNRULES -- Number of rules. */
-#define YYNRULES 155
+#define YYNRULES 156
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 305
+#define YYNSTATES 306
/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
by yylex, with out-of-bounds checking. */
@@ -716,22 +726,22 @@ static const yytype_uint8 yytranslate[] =
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 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, 477,
- 494, 503, 510, 518, 523, 529, 532, 537, 542, 549,
- 549, 553, 553, 560, 563, 566, 572, 575, 580, 583,
- 586, 592, 595, 598, 606, 610, 613, 616, 619, 622,
- 625, 628, 631, 634, 638, 644, 647, 650, 653, 656,
- 659, 662, 665, 668, 671, 674, 677, 680, 683, 686,
- 689, 692, 699, 703, 707, 719, 724, 725, 726, 727,
- 730, 733, 738, 743, 747, 750, 755, 758, 763, 766,
- 771, 774, 777, 780, 783, 788, 791, 794, 797, 800,
- 803, 806, 809, 812, 815, 818, 821, 824, 827, 830,
- 833, 836, 839, 842, 847, 850, 851, 852, 855, 858,
- 861, 864, 868, 872, 876, 879
+ 0, 286, 286, 289, 294, 297, 307, 310, 315, 318,
+ 323, 327, 331, 335, 339, 343, 346, 351, 355, 359,
+ 364, 371, 375, 379, 383, 387, 391, 395, 399, 403,
+ 407, 411, 415, 419, 423, 427, 431, 435, 441, 447,
+ 451, 455, 459, 463, 467, 471, 475, 479, 484, 487,
+ 504, 513, 520, 528, 539, 544, 550, 553, 558, 563,
+ 570, 570, 574, 574, 581, 584, 587, 593, 596, 601,
+ 604, 607, 613, 616, 619, 627, 631, 634, 637, 640,
+ 643, 646, 649, 652, 655, 659, 665, 668, 671, 674,
+ 677, 680, 683, 686, 689, 692, 695, 698, 701, 704,
+ 707, 710, 713, 720, 724, 728, 740, 745, 746, 747,
+ 748, 751, 754, 759, 764, 768, 771, 776, 779, 784,
+ 787, 792, 795, 798, 801, 804, 809, 812, 815, 818,
+ 821, 824, 827, 830, 833, 836, 839, 842, 845, 848,
+ 851, 854, 857, 860, 863, 868, 871, 872, 873, 876,
+ 879, 882, 885, 889, 893, 897, 900
};
#endif
@@ -752,9 +762,9 @@ static const char *const yytname[] =
"'-'", "'*'", "'/'", "'%'", "NONOPT", "'?'", "';'", "'('", "')'", "'$'",
"':'", "'.'", "'['", "']'", "'{'", "'}'", "$accept", "TopLevel",
"Module", "Imports", "FuncDefs", "Exp", "Import", "ImportWhat",
- "FuncDef", "Params", "Param", "String", "@1", "@2", "QQString",
- "ElseBody", "ExpD", "Term", "Args", "Arg", "Pattern", "ArrayPats",
- "ObjPats", "ObjPat", "Keyword", "MkDict", "MkDictPair", YY_NULLPTR
+ "ImportFrom", "FuncDef", "Params", "Param", "String", "@1", "@2",
+ "QQString", "ElseBody", "ExpD", "Term", "Args", "Arg", "Pattern",
+ "ArrayPats", "ObjPats", "ObjPat", "Keyword", "MkDict", "MkDictPair", YY_NULLPTR
};
#endif
@@ -773,51 +783,51 @@ static const yytype_uint16 yytoknum[] =
};
# endif
-#define YYPACT_NINF -145
+#define YYPACT_NINF -180
#define yypact_value_is_default(Yystate) \
- (!!((Yystate) == (-145)))
+ (!!((Yystate) == (-180)))
-#define YYTABLE_NINF -145
+#define YYTABLE_NINF -146
#define yytable_value_is_error(Yytable_value) \
- (!!((Yytable_value) == (-145)))
+ (!!((Yytable_value) == (-146)))
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- -2, 735, 26, 43, -20, -17, -145, 3, -145, 44,
- 735, 778, 778, 735, -10, 2, -145, 735, 463, 11,
- 273, 436, 338, 1281, 735, -145, 6, -145, -3, -3,
- 735, 43, 645, 735, -145, -145, -21, 1630, 9, 48,
- 34, 64, -145, 67, -145, 1, 19, 1116, -145, -145,
- -145, 119, 3, 65, 56, -145, 917, -37, 61, -145,
- -145, -145, -145, -145, -145, -145, -145, -145, -145, -145,
- -145, -145, -145, -145, -145, -145, -145, -145, 527, 121,
- 68, 71, 69, 87, 735, 735, 735, 735, 735, 735,
- 735, 735, 735, 735, 735, 735, 735, 735, 735, 735,
- 735, 735, 735, 735, 735, 735, 735, 735, -145, -145,
- 1794, 78, -14, -3, 147, 124, -145, -145, 1794, 735,
- -145, -145, 1331, 1794, 16, -145, -145, 14, 735, 554,
- -14, -14, 618, 92, -145, 23, -145, -145, -145, -145,
- -145, -145, 394, -145, 772, 79, 1149, -145, 772, 772,
- -145, 394, 1860, 183, 183, 1827, 333, 1880, 1860, 1860,
- 1860, 1860, 1860, 1860, 183, 183, 1794, 1827, 1860, 183,
- 183, 1, 1, 84, 84, 84, -145, 138, -14, 836,
- 97, 89, 85, 735, 100, 868, 53, -145, -145, 735,
- -145, 75, -145, 145, 20, -145, 1381, -145, 1581, 99,
- 101, -145, -145, 735, -145, 735, -145, 112, -145, 772,
- 116, 18, 102, 104, 116, 116, -145, -145, -145, -19,
- 105, 735, 164, 109, -23, -145, 110, 735, -145, -145,
- 966, -145, 708, 118, -145, 169, -145, -145, -145, 14,
- 117, -145, 735, 735, -145, 735, 735, 1794, 1663, -145,
- 772, 772, 772, -14, -145, -14, 1182, -145, -14, 836,
- -145, -14, 1794, 123, 126, 1015, -145, -145, -145, 735,
- 1712, 1761, 1431, 1481, -145, 116, 116, 116, -145, -145,
- 127, -145, -145, -145, -145, -145, 128, 1531, -145, 735,
- 735, 735, -14, -145, -145, 1581, 1215, 1064, -145, -145,
- -145, 735, -145, 1248, -145
+ 27, 736, 13, 51, -5, -8, -180, 23, -180, 67,
+ 736, 779, 779, 736, 15, 3, -180, 736, 464, 20,
+ 274, 437, 339, 1282, 736, -180, 6, -180, 8, 8,
+ 736, 51, 646, 736, -180, -180, -7, 1631, 9, 52,
+ 46, 74, -180, 75, -180, -10, 22, 1117, -180, -180,
+ -180, 109, 23, 55, 49, -180, 918, -37, 61, -180,
+ -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
+ -180, -180, -180, -180, -180, -180, -180, -180, 528, 113,
+ 64, 69, 68, 87, 736, 736, 736, 736, 736, 736,
+ 736, 736, 736, 736, 736, 736, 736, 736, 736, 736,
+ 736, 736, 736, 736, 736, 736, 736, 736, -180, -180,
+ 1795, 79, -25, 8, 148, 124, -180, -180, -180, 1795,
+ 736, -180, -180, 1332, 1795, -20, -180, -180, 14, 736,
+ 555, -25, -25, 619, 92, -180, 18, -180, -180, -180,
+ -180, -180, -180, 395, -180, 773, 82, 1150, -180, 773,
+ 773, -180, 395, 1861, 184, 184, 1828, 334, 1881, 1861,
+ 1861, 1861, 1861, 1861, 1861, 184, 184, 1795, 1828, 1861,
+ 184, 184, -10, -10, 83, 83, 83, -180, 135, -25,
+ 837, 97, 90, 85, 736, 94, 869, 19, -180, -180,
+ 736, -180, 80, -180, 140, -2, -180, 1382, -180, 1582,
+ 99, 100, -180, -180, 736, -180, 736, -180, 114, -180,
+ 773, 117, 56, 98, 103, 117, 117, -180, -180, -180,
+ -12, 105, 736, 164, 107, -21, -180, 110, 736, -180,
+ -180, 967, -180, 709, 116, -180, 170, -180, -180, -180,
+ 14, 118, -180, 736, 736, -180, 736, 736, 1795, 1664,
+ -180, 773, 773, 773, -25, -180, -25, 1183, -180, -25,
+ 837, -180, -25, 1795, 119, 122, 1016, -180, -180, -180,
+ 736, 1713, 1762, 1432, 1482, -180, 117, 117, 117, -180,
+ -180, 120, -180, -180, -180, -180, -180, 127, 1532, -180,
+ 736, 736, 736, -25, -180, -180, 1582, 1216, 1065, -180,
+ -180, -180, 736, -180, 1249, -180
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -825,53 +835,53 @@ static const yytype_int16 yypact[] =
means the default is an error. */
static const yytype_uint8 yydefact[] =
{
- 4, 0, 0, 6, 104, 80, 95, 97, 72, 0,
- 0, 0, 0, 0, 0, 0, 59, 0, 0, 0,
- 0, 0, 0, 0, 0, 96, 47, 1, 0, 0,
- 8, 6, 0, 0, 76, 61, 0, 0, 0, 0,
- 18, 0, 74, 0, 63, 32, 0, 0, 103, 102,
- 83, 0, 0, 82, 0, 100, 0, 0, 153, 125,
- 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
- 136, 137, 138, 139, 140, 141, 142, 143, 0, 0,
- 151, 0, 0, 145, 0, 0, 0, 0, 0, 0,
+ 4, 0, 0, 6, 105, 81, 96, 98, 73, 0,
+ 0, 0, 0, 0, 0, 0, 60, 0, 0, 0,
+ 0, 0, 0, 0, 0, 97, 47, 1, 0, 0,
+ 8, 6, 0, 0, 77, 62, 0, 0, 0, 0,
+ 18, 0, 75, 0, 64, 32, 0, 0, 104, 103,
+ 84, 0, 0, 83, 0, 101, 0, 0, 154, 126,
+ 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
+ 137, 138, 139, 140, 141, 142, 143, 144, 0, 0,
+ 152, 0, 0, 146, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 21, 5,
- 10, 79, 0, 0, 0, 0, 52, 3, 2, 8,
- 7, 48, 0, 112, 0, 110, 63, 0, 0, 0,
- 0, 0, 0, 0, 73, 0, 106, 98, 84, 78,
- 107, 99, 0, 109, 0, 0, 0, 152, 0, 0,
- 101, 0, 40, 41, 42, 25, 24, 23, 27, 31,
- 34, 36, 39, 26, 45, 46, 28, 29, 22, 43,
- 44, 30, 33, 35, 37, 38, 75, 0, 0, 0,
- 0, 81, 0, 0, 88, 0, 0, 9, 49, 0,
- 105, 0, 58, 0, 0, 55, 0, 16, 0, 0,
- 0, 19, 17, 0, 64, 0, 60, 0, 147, 0,
- 148, 70, 0, 0, 150, 149, 146, 113, 116, 0,
- 0, 0, 0, 0, 0, 118, 0, 0, 77, 108,
- 0, 87, 0, 86, 51, 0, 111, 62, 57, 0,
- 0, 53, 0, 0, 15, 0, 0, 20, 0, 69,
- 0, 0, 0, 0, 114, 0, 0, 120, 0, 0,
- 115, 0, 11, 94, 93, 0, 85, 50, 56, 0,
- 0, 0, 0, 0, 65, 68, 155, 154, 117, 121,
- 0, 123, 119, 122, 91, 90, 92, 0, 67, 0,
- 0, 0, 0, 89, 54, 0, 0, 0, 124, 66,
- 12, 0, 14, 0, 13
+ 10, 80, 0, 0, 0, 0, 53, 52, 3, 2,
+ 8, 7, 48, 0, 113, 0, 111, 64, 0, 0,
+ 0, 0, 0, 0, 0, 74, 0, 107, 99, 85,
+ 79, 108, 100, 0, 110, 0, 0, 0, 153, 0,
+ 0, 102, 0, 40, 41, 42, 25, 24, 23, 27,
+ 31, 34, 36, 39, 26, 45, 46, 28, 29, 22,
+ 43, 44, 30, 33, 35, 37, 38, 76, 0, 0,
+ 0, 0, 82, 0, 0, 89, 0, 0, 9, 49,
+ 0, 106, 0, 59, 0, 0, 56, 0, 16, 0,
+ 0, 0, 19, 17, 0, 65, 0, 61, 0, 148,
+ 0, 149, 71, 0, 0, 151, 150, 147, 114, 117,
+ 0, 0, 0, 0, 0, 0, 119, 0, 0, 78,
+ 109, 0, 88, 0, 87, 51, 0, 112, 63, 58,
+ 0, 0, 54, 0, 0, 15, 0, 0, 20, 0,
+ 70, 0, 0, 0, 0, 115, 0, 0, 121, 0,
+ 0, 116, 0, 11, 95, 94, 0, 86, 50, 57,
+ 0, 0, 0, 0, 0, 66, 69, 156, 155, 118,
+ 122, 0, 124, 120, 123, 92, 91, 93, 0, 68,
+ 0, 0, 0, 0, 90, 55, 0, 0, 0, 125,
+ 67, 12, 0, 14, 0, 13
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -145, -145, -145, 150, 59, -1, -145, -145, -9, -145,
- -53, 5, -145, -145, 66, -105, -143, -4, -145, 7,
- -129, -145, -145, -68, -144, -106, -145
+ -180, -180, -180, 150, 66, -1, -180, -180, 158, -9,
+ -180, -50, 5, -180, -180, 65, -105, -144, -4, -180,
+ 7, -129, -180, -180, -67, -179, -115, -180
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- -1, 2, 3, 30, 117, 110, 31, 32, 24, 194,
- 195, 25, 44, 126, 135, 244, 210, 26, 124, 125,
- 180, 219, 224, 225, 81, 82, 83
+ -1, 2, 3, 30, 118, 110, 31, 32, 115, 24,
+ 195, 196, 25, 44, 127, 136, 245, 211, 26, 125,
+ 126, 181, 220, 225, 226, 81, 82, 83
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -879,298 +889,303 @@ static const yytype_int16 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
- 23, 199, 200, 42, 52, 214, 215, 38, 39, 37,
- 142, 111, 40, 1, 111, 48, 45, 47, 192, 112,
- 56, 119, 130, 111, 259, 53, 27, 80, 253, 118,
- 143, 122, 123, 115, 116, 226, 208, 16, 127, 33,
- 34, 128, 49, 35, 260, 216, 254, 177, 36, 218,
- 178, 41, 179, 111, 105, 106, 107, 234, 108, 28,
- 29, 131, 132, 43, 204, 205, 249, 206, 133, 113,
- 114, 134, 113, 114, 189, 193, 190, 146, 239, 136,
- 240, 113, 114, 152, 153, 154, 155, 156, 157, 158,
- 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
- 169, 170, 171, 172, 173, 174, 175, 275, 276, 277,
- 119, 113, 114, 185, 235, 226, 204, 205, 181, 237,
- 138, 140, 139, 144, 278, 147, 279, 196, 198, 281,
- 148, 202, 283, 149, 151, 176, 150, 186, 203, 212,
- 211, 108, 217, 227, 211, 211, 228, 80, 182, 238,
- 229, 4, 5, 6, 7, 8, 80, 231, 245, 142,
- 246, 9, 250, 298, 251, 10, 252, 255, 257, 11,
- 12, 258, 261, 267, 13, 266, 14, 15, 187, 269,
- 284, 120, 230, 285, 223, 293, 268, 16, 123, 292,
- 299, 282, 191, -145, -145, 0, 236, 0, 0, 17,
- 0, 0, 247, 0, 248, 211, 18, 0, 19, 183,
- 20, 21, 184, 22, 0, 0, 0, 0, 0, 0,
- 256, -145, -145, 0, 0, 0, 262, 0, 0, 0,
- 0, 265, -145, -145, 103, 104, 105, 106, 107, 0,
- 108, 270, 271, 0, 272, 273, 211, 211, 211, 0,
+ 23, 227, 200, 201, 42, 215, 216, 38, 39, 37,
+ 143, 111, 40, 27, 111, 52, 45, 47, 193, 112,
+ 56, 120, 131, 235, 48, 53, 260, 80, 209, 119,
+ 144, 123, 124, 116, 116, 254, 178, 217, 190, 179,
+ 191, 180, 1, 105, 106, 107, 261, 108, 16, 34,
+ 219, 49, 128, 255, 33, 129, 240, 111, 241, 205,
+ 206, 111, 207, 35, 43, 132, 250, 28, 29, 113,
+ 114, 36, 113, 114, 133, 194, 41, 147, 134, 135,
+ 236, 227, 137, 153, 154, 155, 156, 157, 158, 159,
+ 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
+ 170, 171, 172, 173, 174, 175, 176, 276, 277, 278,
+ 139, 120, 140, 186, 141, 113, 114, 148, 182, 113,
+ 114, 205, 206, 145, 238, 279, 149, 280, 197, 199,
+ 282, 150, 203, 284, 152, 151, 177, 187, 204, 218,
+ 108, 212, 213, 228, 239, 212, 212, 229, 80, 183,
+ 230, 232, 4, 5, 6, 7, 8, 80, 246, 247,
+ 252, 143, 9, 251, 299, 253, 10, 256, 258, 259,
+ 11, 12, 262, 267, 268, 13, 285, 14, 15, 286,
+ 270, 121, 293, 231, 294, 224, 188, 117, 16, 124,
+ 269, 300, 192, 283, -146, -146, 0, 237, 0, 0,
+ 17, 0, 0, 248, 0, 249, 212, 18, 0, 19,
+ 184, 20, 21, 185, 22, 0, 0, 0, 0, 0,
+ 0, 257, -146, -146, 0, 0, 0, 263, 0, 0,
+ 0, 0, 266, -146, -146, 103, 104, 105, 106, 107,
+ 0, 108, 271, 272, 0, 273, 274, 212, 212, 212,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 223, 0, 0, 0, 287, 0,
- 0, 0, 0, -71, 50, 0, 0, 51, -71, 0,
- 52, 0, -71, -71, -71, -71, -71, 0, 295, 296,
- 297, 0, -71, -71, -71, 0, 0, -71, -71, -71,
- 303, -71, 0, 0, 0, -71, -71, -71, -71, -71,
- -71, -71, -71, 16, 0, 0, -71, 0, 0, -71,
- -71, -71, -71, -71, -71, -71, -71, -71, -71, 0,
- -71, -71, 0, -71, 0, -71, -71, -71, -71, 57,
- -71, 0, 58, 85, 86, 52, 0, 0, 0, 0,
- 0, 59, 60, 61, 62, 63, 64, 65, 66, 67,
- 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
- 0, 96, 97, 0, 0, 0, 0, 0, 16, 0,
- 0, 0, 101, 102, 103, 104, 105, 106, 107, 0,
- 108, 0, 0, 0, 0, 207, 0, 78, 58, 79,
- 0, 52, 0, 0, 0, -144, 0, 59, 60, 61,
- 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
- 72, 73, 74, 75, 76, 77, 0, 0, 0, 0,
- 0, 0, 0, 0, 16, 0, 0, 54, 0, 0,
- 4, 5, 6, 7, 8, 0, 0, 0, 0, 0,
- 9, 0, 0, 78, 10, 79, 0, 0, 11, 12,
- 0, -144, 0, 13, 46, 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, 55, 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, 145, 22,
+ 0, 0, 0, 0, 0, 224, 0, 0, 0, 288,
+ 0, 0, 0, 0, -72, 50, 0, 0, 51, -72,
+ 0, 52, 0, -72, -72, -72, -72, -72, 0, 296,
+ 297, 298, 0, -72, -72, -72, 0, 0, -72, -72,
+ -72, 304, -72, 0, 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,
+ 0, -72, -72, 0, -72, 0, -72, -72, -72, -72,
+ 57, -72, 0, 58, 85, 86, 52, 0, 0, 0,
+ 0, 0, 59, 60, 61, 62, 63, 64, 65, 66,
+ 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
+ 77, 0, 96, 97, 0, 0, 0, 0, 0, 16,
+ 0, 0, 0, 101, 102, 103, 104, 105, 106, 107,
+ 0, 108, 0, 0, 0, 0, 208, 0, 78, 58,
+ 79, 0, 52, 0, 0, 0, -145, 0, 59, 60,
+ 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
+ 71, 72, 73, 74, 75, 76, 77, 0, 0, 0,
+ 0, 0, 0, 0, 0, 16, 0, 0, 54, 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, 197, 14, 15, 4, 5,
+ 0, 9, 0, 0, 78, 10, 79, 0, 0, 11,
+ 12, 0, -145, 0, 13, 46, 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,
+ 20, 21, 55, 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, 201,
+ 0, 0, 0, 18, 0, 19, 0, 20, 21, 146,
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,
+ 11, 12, 0, 0, 0, 13, 198, 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, 121, 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, 264, 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, 209, 0, 0, 0, 0, 0,
- 0, 18, 0, 19, 0, 20, 21, 18, 22, 19,
- 220, 20, 21, 52, 22, 0, 0, 0, 0, 59,
- 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
- 70, 71, 72, 73, 74, 75, 76, 77, 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, 221, 0, 222, 0, 0,
+ 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,
+ 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, 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,
+ 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, 265, 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, 210, 0, 0, 0, 0,
+ 0, 0, 18, 0, 19, 0, 20, 21, 18, 22,
+ 19, 221, 20, 21, 52, 22, 0, 0, 0, 0,
+ 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
+ 69, 70, 71, 72, 73, 74, 75, 76, 77, 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, 222, 0, 223, 0,
+ 0, 90, 91, 92, 93, 94, 95, 96, 97, 0,
+ 0, 0, 0, 0, 0, 98, 99, 100, 101, 102,
+ 103, 104, 105, 106, 107, 0, 108, 84, 85, 86,
+ 87, 233, 0, 0, 234, 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, 98, 99, 100, 101, 102, 103,
104, 105, 106, 107, 0, 108, 84, 85, 86, 87,
- 232, 0, 0, 233, 0, 0, 0, 0, 0, 0,
+ 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, 98, 99, 100, 101, 102, 103, 104,
105, 106, 107, 0, 108, 84, 85, 86, 87, 0,
- 0, 0, 141, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 264, 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, 98, 99, 100, 101, 102, 103, 104, 105,
106, 107, 0, 108, 84, 85, 86, 87, 0, 0,
- 0, 263, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 287, 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, 98, 99, 100, 101, 102, 103, 104, 105, 106,
- 107, 0, 108, 84, 85, 86, 87, 0, 0, 0,
- 286, 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,
- 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
- 0, 108, 301, 0, 302, 84, 85, 86, 87, 0,
+ 107, 0, 108, 302, 0, 303, 84, 85, 86, 87,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 88, 89, 0, 0, 0, 0, 0, 90, 91,
+ 0, 0, 88, 89, 0, 0, 0, 0, 0, 90,
+ 91, 92, 93, 94, 95, 96, 97, 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, 92, 93, 94, 95, 96, 97,
+ 0, 0, 84, 85, 86, 87, 98, 99, 100, 101,
+ 102, 103, 104, 105, 106, 107, 0, 108, 88, 89,
+ 214, 0, 0, 0, 0, 90, 91, 92, 93, 94,
+ 95, 96, 97, 0, 0, 84, 85, 86, 87, 98,
+ 99, 100, 101, 102, 103, 104, 105, 106, 107, 0,
+ 108, 88, 89, 281, 0, 0, 0, 0, 90, 91,
92, 93, 94, 95, 96, 97, 0, 0, 84, 85,
86, 87, 98, 99, 100, 101, 102, 103, 104, 105,
- 106, 107, 0, 108, 88, 89, 137, 0, 0, 0,
+ 106, 107, 0, 108, 88, 89, 301, 0, 0, 0,
0, 90, 91, 92, 93, 94, 95, 96, 97, 0,
0, 84, 85, 86, 87, 98, 99, 100, 101, 102,
- 103, 104, 105, 106, 107, 0, 108, 88, 89, 213,
+ 103, 104, 105, 106, 107, 0, 108, 88, 89, 305,
0, 0, 0, 0, 90, 91, 92, 93, 94, 95,
- 96, 97, 0, 0, 84, 85, 86, 87, 98, 99,
+ 96, 97, 0, 0, 0, 0, 0, 0, 98, 99,
100, 101, 102, 103, 104, 105, 106, 107, 0, 108,
- 88, 89, 280, 0, 0, 0, 0, 90, 91, 92,
- 93, 94, 95, 96, 97, 0, 0, 84, 85, 86,
- 87, 98, 99, 100, 101, 102, 103, 104, 105, 106,
- 107, 0, 108, 88, 89, 300, 0, 0, 0, 0,
- 90, 91, 92, 93, 94, 95, 96, 97, 0, 0,
- 84, 85, 86, 87, 98, 99, 100, 101, 102, 103,
- 104, 105, 106, 107, 0, 108, 88, 89, 304, 0,
- 0, 0, 0, 90, 91, 92, 93, 94, 95, 96,
- 97, 0, 0, 0, 0, 0, 0, 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, 98, 99, 100,
- 101, 102, 103, 104, 105, 106, 107, 0, 108, 188,
- 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, 98, 99, 100,
- 101, 102, 103, 104, 105, 106, 107, 0, 108, 241,
- 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, 98, 99, 100,
- 101, 102, 103, 104, 105, 106, 107, 0, 108, 290,
- 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, 98, 99, 100,
- 101, 102, 103, 104, 105, 106, 107, 0, 108, 291,
- 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, 98, 99, 100,
- 101, 102, 103, 104, 105, 106, 107, 0, 108, 294,
- 84, 85, 86, 87, 0, 0, 0, 0, 0, 0,
- 0, 242, 243, 0, 0, 0, 88, 89, 0, 0,
- 0, 0, 0, 90, 91, 92, 93, 94, 95, 96,
- 97, 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, 129,
- 0, 0, 0, 0, 0, 88, 89, 0, 0, 0,
- 0, 0, 90, 91, 92, 93, 94, 95, 96, 97,
- 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, 274, 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, 288, 88, 89, 0,
+ 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, 98, 99,
+ 100, 101, 102, 103, 104, 105, 106, 107, 0, 108,
+ 189, 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, 98, 99,
+ 100, 101, 102, 103, 104, 105, 106, 107, 0, 108,
+ 242, 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, 98, 99,
+ 100, 101, 102, 103, 104, 105, 106, 107, 0, 108,
+ 291, 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, 98, 99,
+ 100, 101, 102, 103, 104, 105, 106, 107, 0, 108,
+ 292, 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, 98, 99,
+ 100, 101, 102, 103, 104, 105, 106, 107, 0, 108,
+ 295, 84, 85, 86, 87, 0, 0, 0, 0, 0,
+ 0, 0, 243, 244, 0, 0, 0, 88, 89, 0,
0, 0, 0, 0, 90, 91, 92, 93, 94, 95,
96, 97, 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,
- 289, 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, 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, 84, 85, 86, 87,
+ 94, 95, 96, 97, 0, 0, 0, 275, 0, 0,
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, -145,
- 85, 86, 0, 0, 0, 100, 101, 102, 103, 104,
- 105, 106, 107, 0, 108, 88, 89, 0, 0, 0,
- 85, 86, -145, -145, -145, -145, -145, -145, 96, 97,
- 0, 0, 0, 0, 0, 88, 0, 0, -145, 101,
- 102, 103, 104, 105, 106, 107, 0, 108, 96, 97,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 101,
- 102, 103, 104, 105, 106, 107, 0, 108
+ 0, 108, 84, 85, 86, 87, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 289, 88, 89,
+ 0, 0, 0, 0, 0, 90, 91, 92, 93, 94,
+ 95, 96, 97, 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, 290, 0, 0, 0, 0, 0, 88, 89, 0,
+ 0, 0, 0, 0, 90, 91, 92, 93, 94, 95,
+ 96, 97, 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, 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,
+ -146, 85, 86, 0, 0, 0, 100, 101, 102, 103,
+ 104, 105, 106, 107, 0, 108, 88, 89, 0, 0,
+ 0, 85, 86, -146, -146, -146, -146, -146, -146, 96,
+ 97, 0, 0, 0, 0, 0, 88, 0, 0, -146,
+ 101, 102, 103, 104, 105, 106, 107, 0, 108, 96,
+ 97, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 101, 102, 103, 104, 105, 106, 107, 0, 108
};
static const yytype_int16 yycheck[] =
{
- 1, 130, 131, 1, 7, 148, 149, 11, 12, 10,
- 47, 5, 13, 15, 5, 4, 17, 18, 4, 13,
- 21, 30, 13, 5, 47, 20, 0, 22, 47, 30,
- 67, 32, 33, 28, 29, 179, 142, 40, 59, 59,
- 57, 62, 31, 40, 67, 151, 65, 61, 4, 178,
- 64, 61, 66, 5, 53, 54, 55, 4, 57, 16,
- 17, 13, 28, 61, 41, 42, 209, 44, 4, 63,
- 64, 4, 63, 64, 58, 61, 60, 78, 58, 60,
- 60, 63, 64, 84, 85, 86, 87, 88, 89, 90,
+ 1, 180, 131, 132, 1, 149, 150, 11, 12, 10,
+ 47, 5, 13, 0, 5, 7, 17, 18, 4, 13,
+ 21, 30, 13, 4, 4, 20, 47, 22, 143, 30,
+ 67, 32, 33, 28, 29, 47, 61, 152, 58, 64,
+ 60, 66, 15, 53, 54, 55, 67, 57, 40, 57,
+ 179, 31, 59, 65, 59, 62, 58, 5, 60, 41,
+ 42, 5, 44, 40, 61, 13, 210, 16, 17, 63,
+ 64, 4, 63, 64, 28, 61, 61, 78, 4, 4,
+ 61, 260, 60, 84, 85, 86, 87, 88, 89, 90,
91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
- 101, 102, 103, 104, 105, 106, 107, 250, 251, 252,
- 119, 63, 64, 114, 61, 259, 41, 42, 113, 44,
- 1, 65, 57, 62, 253, 4, 255, 128, 129, 258,
- 62, 132, 261, 62, 47, 57, 67, 13, 46, 60,
- 144, 57, 4, 46, 148, 149, 57, 142, 1, 4,
- 65, 4, 5, 6, 7, 8, 151, 57, 59, 47,
- 59, 14, 46, 292, 62, 18, 62, 62, 4, 22,
- 23, 62, 62, 4, 27, 57, 29, 30, 119, 62,
- 57, 31, 183, 57, 179, 57, 239, 40, 189, 62,
- 295, 259, 126, 10, 11, -1, 189, -1, -1, 52,
- -1, -1, 203, -1, 205, 209, 59, -1, 61, 62,
- 63, 64, 65, 66, -1, -1, -1, -1, -1, -1,
- 221, 38, 39, -1, -1, -1, 227, -1, -1, -1,
- -1, 232, 49, 50, 51, 52, 53, 54, 55, -1,
- 57, 242, 243, -1, 245, 246, 250, 251, 252, -1,
+ 101, 102, 103, 104, 105, 106, 107, 251, 252, 253,
+ 1, 120, 57, 114, 65, 63, 64, 4, 113, 63,
+ 64, 41, 42, 62, 44, 254, 62, 256, 129, 130,
+ 259, 62, 133, 262, 47, 67, 57, 13, 46, 4,
+ 57, 145, 60, 46, 4, 149, 150, 57, 143, 1,
+ 65, 57, 4, 5, 6, 7, 8, 152, 59, 59,
+ 62, 47, 14, 46, 293, 62, 18, 62, 4, 62,
+ 22, 23, 6