summaryrefslogtreecommitdiffstats
path: root/src/parser.c
diff options
context:
space:
mode:
authorNicolas Williams <nico@cryptonector.com>2018-12-10 21:54:59 -0600
committerNicolas Williams <nico@cryptonector.com>2018-12-10 21:54:59 -0600
commit8ea4a5584edb7f54e19cddb6240984d3a543f4f1 (patch)
tree0549ff5715836f9642e9528fd4c899ff49ffa7ba /src/parser.c
parentbb87e6e30f5120c68310f7ed5f1a86b7c4a42182 (diff)
Allow variable refs as object keys {$key:value}
Users are often surprised by the requirement to parenthesize any non-trivial object key expressions in object constructors. E.g., {"a"+"b":1}. This commit adds one more kind of key expression besides literals and idents: variable references. A common use case for this is jq programs as JSON templates to fill in with variables computed from inputs or passed in on the command-line. E.g., {some_key:$value}. Now users can also use, e.g., {$key:$value}. This and the restrictions on key and value expressions in object constructors are now clarified a bit in the documentation.
Diffstat (limited to 'src/parser.c')
-rw-r--r--src/parser.c1159
1 files changed, 583 insertions, 576 deletions
diff --git a/src/parser.c b/src/parser.c
index 30973503..3b8cc7ae 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 1972
+#define YYLAST 1964
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 69
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 30
/* YYNRULES -- Number of rules. */
-#define YYNRULES 162
+#define YYNRULES 163
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 313
+#define YYNSTATES 315
/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
by yylex, with out-of-bounds checking. */
@@ -754,7 +754,7 @@ static const yytype_uint16 yyrline[] =
837, 845, 851, 854, 857, 860, 863, 866, 869, 872,
875, 878, 881, 884, 887, 890, 893, 896, 899, 902,
905, 910, 913, 914, 915, 918, 921, 924, 927, 931,
- 935, 939, 947
+ 935, 939, 943, 951
};
#endif
@@ -797,10 +797,10 @@ static const yytype_uint16 yytoknum[] =
};
# endif
-#define YYPACT_NINF -158
+#define YYPACT_NINF -160
#define yypact_value_is_default(Yystate) \
- (!!((Yystate) == (-158)))
+ (!!((Yystate) == (-160)))
#define YYTABLE_NINF -152
@@ -811,38 +811,38 @@ static const yytype_uint16 yytoknum[] =
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- 21, 772, 43, 63, -6, 12, -158, 80, -158, 122,
- 772, 193, 193, 772, 74, 5, -158, 772, 522, 10,
- 279, 455, 152, 1290, 772, -158, 8, -158, 3, 3,
- 772, 63, 680, 772, -158, -158, 67, 1646, 58, 130,
- 106, 133, -158, 135, -158, 20, 83, 1120, -158, -158,
- -158, 140, 80, 93, 86, -158, 917, -23, 91, -158,
- -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
- -158, -158, -158, -158, -158, -158, -158, -158, 772, 151,
- 94, 97, 95, 113, 772, 772, 772, 772, 772, 772,
- 772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
- 772, 772, 772, 772, 772, 772, 772, 772, -158, -158,
- 1814, 104, -7, 3, 388, 171, -158, -158, -158, 1814,
- 772, -158, -158, 1341, 1814, 59, -158, -158, 7, 772,
- 587, -7, -7, 652, 117, -158, 4, -158, -158, -158,
- -158, -158, -158, 345, -3, -158, -3, 1154, -158, -3,
- -3, -158, 345, 1882, 370, 370, 1848, 436, 1914, 1882,
- 1882, 1882, 1882, 1882, 1882, 370, 370, 1814, 1848, 1882,
- 370, 370, 20, 20, 129, 129, 129, -158, 184, -7,
- 834, 149, 143, 156, 134, 136, 772, 145, 867, 47,
- -158, -158, 772, -158, 23, -158, 200, 72, -158, 1392,
- -158, 1596, 146, 150, -158, -158, 772, -158, 772, -158,
- -11, -158, -3, 162, 51, 162, 148, 162, 162, -158,
- -158, -158, -24, 153, 154, 772, 209, 155, -15, -158,
- 158, -7, 772, -158, -158, 967, -158, 744, 157, -158,
- 215, -158, -158, -158, 7, 159, -158, 772, 772, -158,
- 772, 772, 1814, 1680, -158, -3, -3, -7, -158, -7,
- -7, 1188, 163, -7, 834, -158, -7, 185, 1814, 169,
- 170, 1017, -158, -158, -158, 772, 1730, 1780, 1443, 1494,
- -158, 162, 162, -158, -158, -158, 166, -7, -158, -158,
- -158, -158, -158, 172, 1545, -158, 772, 772, 772, -7,
- -158, -158, -158, 1596, 1222, 1067, -158, -158, -158, 772,
- -158, 1256, -158
+ 29, 764, 3, 59, -7, -10, -160, 16, -160, 57,
+ 764, 432, 432, 764, 18, 1, -160, 764, 514, 2,
+ 281, 174, 347, 1282, 764, -160, 5, -160, 4, 4,
+ 764, 59, 672, 764, -160, -160, -22, 1638, 9, 51,
+ 43, 74, -160, 75, -160, 66, 49, 1112, -160, -160,
+ -160, 113, 16, 72, 65, -160, 909, -21, 70, -160,
+ -160, -160, -160, -160, -160, -160, -160, -160, -160, -160,
+ -160, -160, -160, -160, -160, -160, -160, -160, 764, 130,
+ 73, 76, 79, 95, 764, 764, 764, 764, 764, 764,
+ 764, 764, 764, 764, 764, 764, 764, 764, 764, 764,
+ 764, 764, 764, 764, 764, 764, 764, 764, -160, -160,
+ 1806, 90, -13, 4, 447, 137, -160, -160, -160, 1806,
+ 764, -160, -160, 1333, 1806, -46, -160, -160, 19, 764,
+ 579, -13, -13, 644, 104, -160, 17, -160, -160, -160,
+ -160, -160, -160, 404, 213, -160, 213, 1146, 89, 213,
+ 213, -160, 404, 1874, 116, 116, 1840, 342, 1906, 1874,
+ 1874, 1874, 1874, 1874, 1874, 116, 116, 1806, 1840, 1874,
+ 116, 116, 66, 66, 98, 98, 98, -160, 149, -13,
+ 826, 117, 112, 120, 103, 96, 764, 105, 859, 20,
+ -160, -160, 764, -160, 23, -160, 160, 64, -160, 1384,
+ -160, 1588, 123, 124, -160, -160, 764, -160, 764, -160,
+ -12, -160, 213, 126, 53, 126, 127, 213, 126, 126,
+ -160, -160, -160, -23, 131, 132, 764, 172, 135, -18,
+ -160, 136, -13, 764, -160, -160, 959, -160, 736, 129,
+ -160, 185, -160, -160, -160, 19, 139, -160, 764, 764,
+ -160, 764, 764, 1806, 1672, -160, 213, 213, 126, -13,
+ -160, -13, -13, 1180, 143, -13, 826, -160, -13, 153,
+ 1806, 142, 151, 1009, -160, -160, -160, 764, 1722, 1772,
+ 1435, 1486, -160, 126, 126, -160, -160, -160, 147, -13,
+ -160, -160, -160, -160, -160, 154, 1537, -160, 764, 764,
+ 764, -13, -160, -160, -160, 1588, 1214, 1059, -160, -160,
+ -160, 764, -160, 1248, -160
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -855,7 +855,7 @@ static const yytype_uint8 yydefact[] =
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, 160, 132,
+ 84, 0, 0, 83, 0, 101, 0, 0, 161, 132,
133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
143, 144, 145, 146, 147, 148, 149, 150, 0, 0,
158, 0, 0, 152, 0, 0, 0, 0, 0, 0,
@@ -864,40 +864,40 @@ static const yytype_uint8 yydefact[] =
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, 0, 110, 0, 0, 159, 0,
+ 79, 108, 100, 0, 0, 110, 0, 0, 160, 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, 0, 117, 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, 154, 0, 162, 71, 155, 0, 157, 156, 153,
- 118, 121, 0, 0, 0, 0, 0, 0, 0, 123,
- 0, 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, 119, 0,
- 0, 0, 125, 0, 0, 120, 0, 116, 11, 95,
- 94, 0, 86, 50, 57, 0, 0, 0, 0, 0,
- 66, 69, 161, 122, 131, 127, 0, 0, 129, 124,
- 128, 92, 91, 93, 0, 68, 0, 0, 0, 0,
- 126, 90, 55, 0, 0, 0, 130, 67, 12, 0,
- 14, 0, 13
+ 0, 154, 0, 163, 71, 155, 0, 0, 157, 156,
+ 153, 118, 121, 0, 0, 0, 0, 0, 0, 0,
+ 123, 0, 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, 159, 0,
+ 119, 0, 0, 0, 125, 0, 0, 120, 0, 116,
+ 11, 95, 94, 0, 86, 50, 57, 0, 0, 0,
+ 0, 0, 66, 69, 162, 122, 131, 127, 0, 0,
+ 129, 124, 128, 92, 91, 93, 0, 68, 0, 0,
+ 0, 0, 126, 90, 55, 0, 0, 0, 130, 67,
+ 12, 0, 14, 0, 13
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -158, -158, -158, 201, 115, -1, -158, -158, 204, -8,
- -158, -5, 6, -158, -158, 110, -65, -131, -4, -158,
- 48, -158, 16, -149, -158, -158, -22, -157, -104, -158
+ -160, -160, -160, 180, 94, -1, -160, -160, 187, -11,
+ -160, -19, 6, -160, -160, 97, -83, -145, -4, -160,
+ 31, -160, -92, -124, -160, -160, -38, -159, -106, -160
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
-1, 2, 3, 30, 118, 110, 31, 32, 115, 24,
- 197, 198, 25, 44, 127, 136, 249, 213, 26, 125,
- 126, 181, 182, 183, 222, 228, 229, 81, 82, 83
+ 197, 198, 25, 44, 127, 136, 250, 213, 26, 125,
+ 126, 181, 182, 183, 223, 229, 230, 81, 82, 83
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -905,323 +905,328 @@ static const yytype_int16 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
- 23, 4, 5, 6, 7, 8, 42, 38, 39, 37,
- 52, 195, 40, 111, 48, 215, 45, 47, 217, 218,
- 56, 112, 120, 230, 257, 143, 53, 15, 80, 119,
- 221, 123, 124, 264, 116, 116, 1, 143, 16, 211,
- 144, 49, 258, 27, 16, 145, 207, 208, 219, 209,
- 212, 239, 144, 265, 33, 178, 111, 18, 179, 19,
- 180, 20, 21, 111, 22, 207, 208, 43, 242, 196,
- 34, 131, 113, 114, 105, 106, 107, 147, 108, 28,
- 29, 254, 267, 153, 154, 155, 156, 157, 158, 159,
+ 23, 215, 42, 27, 218, 219, 48, 38, 39, 37,
+ 111, 52, 40, 192, 111, 193, 45, 47, 112, 120,
+ 56, 231, 131, 195, 240, 259, 53, 143, 80, 119,
+ 266, 123, 124, 49, 116, 116, 143, 211, 128, 202,
+ 203, 129, 144, 260, 1, 16, 220, 145, 34, 178,
+ 267, 144, 179, 33, 180, 222, 111, 35, 111, 207,
+ 208, 36, 209, 43, 132, 207, 208, 255, 243, 113,
+ 114, 133, 258, 113, 114, 28, 29, 147, 134, 135,
+ 41, 196, 241, 153, 154, 155, 156, 157, 158, 159,
160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
- 170, 171, 172, 173, 174, 175, 176, 230, 283, 240,
- 284, 285, 120, 188, 288, 113, 114, 290, 192, 184,
- 193, 35, 113, 114, 281, 282, 36, 128, 199, 201,
- 129, 244, 205, 245, 133, 111, 41, 134, 300, 135,
- 214, 139, 214, 132, 137, 214, 214, 202, 203, 80,
- 306, 140, 141, 57, 146, 148, 58, 149, 80, 52,
- 150, 152, 177, 151, 206, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
- 74, 75, 76, 77, 189, 235, 227, 108, 220, 231,
- 232, 124, 233, 16, 113, 114, -115, 4, 5, 6,
- 7, 8, 234, 236, 243, 252, 250, 253, 214, 255,
- 251, 256, 78, 262, 79, 272, 259, 260, 263, 273,
- -151, 266, 275, 15, 261, -114, 287, 291, 292, 299,
- 301, 268, 121, 117, 16, 190, 271, 194, 307, 274,
- 241, 0, 289, 0, 0, 0, 276, 277, 0, 278,
- 279, 214, 214, 18, 0, 19, 0, 20, 21, 0,
- 22, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 227, 0, 0, 0, 294, 0, 0, 0, 0, -72,
- 50, 0, 0, 51, -72, 0, 52, 0, -72, -72,
- -72, -72, -72, 0, 0, 303, 304, 305, -72, -72,
- -72, 0, 0, -72, -72, -72, 0, -72, 311, 0,
- 0, -72, -72, -72, -72, -72, -72, -72, -72, 0,
- 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, 210, -72, 0, 58,
- 0, 0, 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, 0, 0,
- -152, -152, 0, 0, 0, 0, 16, 0, 0, 185,
- 0, 0, 4, 5, 6, 7, 8, 0, 0, 0,
- 0, 0, 9, 0, 0, 78, 10, 79, -152, -152,
- 11, 12, 0, -151, 0, 13, 0, 14, 15, 0,
- -152, -152, 103, 104, 105, 106, 107, 0, 108, 16,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 17, 0, 0, 0, 0, 85, 86, 18, 0,
- 19, 186, 20, 21, 187, 22, 54, 0, 0, 4,
- 5, 6, 7, 8, 0, 0, 0, 0, 0, 9,
- 0, 0, 0, 10, 96, 97, 0, 11, 12, 0,
- 0, 0, 13, 0, 14, 15, 101, 102, 103, 104,
- 105, 106, 107, 0, 108, 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, 55, 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, 0, 17, 0, 0, 0, 0,
- 0, 0, 18, 0, 19, 0, 20, 21, 200, 22,
+ 170, 171, 172, 173, 174, 175, 176, 231, 269, 120,
+ 137, 283, 284, 188, 139, 113, 114, 113, 114, 184,
+ 105, 106, 107, 245, 108, 246, -152, -152, 199, 201,
+ 140, 141, 205, 146, 148, 285, 149, 286, 287, 150,
+ 214, 290, 214, 152, 292, 214, 214, 151, 177, 80,
+ 189, 206, 217, 221, -152, -152, 108, 232, 80, 233,
+ -115, 234, 235, 237, 244, 302, -152, -152, 103, 104,
+ 105, 106, 107, 256, 108, 54, 264, 308, 4, 5,
+ 6, 7, 8, 251, 252, 236, 228, 274, 9, 275,
+ 257, 124, 10, -114, 261, 262, 11, 12, 265, 268,
+ 293, 13, 277, 14, 15, 253, 289, 254, 214, 294,
+ 301, 121, 303, 214, 190, 16, 117, 4, 5, 6,
+ 7, 8, 309, 242, 194, 263, 276, 17, 291, 0,
+ 0, 0, 270, 0, 18, 0, 19, 273, 20, 21,
+ 55, 22, 0, 15, 0, 0, 0, 278, 279, 0,
+ 280, 281, 214, 214, 16, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 212, 0, 0, 0,
+ 0, 0, 228, 18, 0, 19, 296, 20, 21, 0,
+ 22, -72, 50, 0, 0, 51, -72, 0, 52, 0,
+ -72, -72, -72, -72, -72, 0, 0, 305, 306, 307,
+ -72, -72, -72, 0, 0, -72, -72, -72, 0, -72,
+ 313, 0, 0, -72, -72, -72, -72, -72, -72, -72,
+ -72, 0, 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, 0, 16, 0,
+ 0, 0, 101, 102, 103, 104, 105, 106, 107, 0,
+ 108, 0, 0, 0, 0, 210, 0, 78, 58, 79,
+ 0, 52, 0, 0, 0, -151, 0, 59, 60, 61,
+ 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
+ 72, 73, 74, 75, 76, 77, 4, 5, 6, 7,
+ 8, 0, 0, 0, 0, 16, 0, 0, 185, 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, 9, 15, 0, 78, 10, 79, 0, 0, 11,
+ 12, 0, -151, 16, 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,
+ 0, 0, 18, 0, 19, 0, 20, 21, 0, 22,
17, 0, 0, 0, 0, 0, 0, 18, 0, 19,
- 0, 20, 21, 204, 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,
+ 186, 20, 21, 187, 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, 0, 17, 0, 0,
+ 0, 0, 0, 0, 18, 0, 19, 0, 20, 21,
+ 200, 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, 204, 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,
- 270, 22, 0, 16, 0, 0, 0, 0, 0, 0,
+ 0, 22, 0, 16, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 17, 0, 0, 0, 0,
- 0, 0, 18, 0, 19, 223, 20, 21, 224, 22,
- 0, 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, 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, 225, 0, 226, 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,
- 237, 0, 0, 238, 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, 269, 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, 293, 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, 309, 0, 310, 84,
- 85, 86, 87, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 88, 89, 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, 272, 22, 0, 16, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 17, 0, 0,
+ 0, 0, 0, 0, 18, 0, 19, 224, 20, 21,
+ 225, 22, 0, 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, 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, 226, 0, 227, 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, 238, 0, 0, 239, 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, 271, 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, 295, 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, 0,
+ 312, 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,
+ 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, 216, 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, 92, 93,
+ 89, 288, 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, 216, 0, 0, 0, 0,
+ 107, 0, 108, 88, 89, 310, 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, 286,
- 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, 308, 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, 312, 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, 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,
- 191, 84, 85, 86, 87, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 88, 89, 0,
+ 103, 104, 105, 106, 107, 0, 108, 88, 89, 314,
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, 246, 84, 85, 86, 87, 0, 0, 0, 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, 297, 84, 85, 86, 87, 0, 0, 0,
+ 0, 108, 191, 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, 298, 84, 85, 86, 87, 0, 0,
+ 107, 0, 108, 247, 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, 247, 248, 0, 0,
+ 106, 107, 0, 108, 299, 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,
+ 105, 106, 107, 0, 108, 300, 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, 304, 84, 85, 86,
+ 87, 0, 0, 0, 0, 0, 0, 0, 248, 249,
+ 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,
+ 0, 0, 0, 0, 90, 91, 92, 93, 94, 95,
+ 96, 97, 0, 0, 0, 0, 282, 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, 297, 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, 298, 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, 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, 280, 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, 295, 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, 296,
- 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,
+ 0, 0, 0, -152, 85, 86, 0, 0, 0, 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, 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, -152, 85, 86, 0, 0, 0, 100, 101, 102,
- 103, 104, 105, 106, 107, 0, 108, 88, 89, 0,
- 0, 0, 0, 0, -152, -152, -152, -152, -152, -152,
- 96, 97, 0, 0, 85, 86, 0, 0, 0, 0,
- 0, -152, 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, 0, 108
+ 89, 0, 0, 0, 0, 0, -152, -152, -152, -152,
+ -152, -152, 96, 97, 0, 0, 85, 86, 0, 0,
+ 0, 0, 0, -152, 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, 0, 108
};
static const yytype_int16 yycheck[] =
{
- 1, 4, 5, 6, 7, 8, 1, 11, 12, 10,
- 7, 4, 13, 5, 4, 146, 17, 18, 149, 150,
- 21, 13, 30, 180, 48, 48, 20, 30, 22, 30,
- 179, 32, 33, 48, 28, 29, 15, 48, 41, 143,
- 63, 31, 66, 0, 41, 68, 42, 43, 152, 45,
- 53, 4, 63, 68, 60, 62, 5, 60, 65, 62,
- 67, 64, 65, 5, 67, 42, 43, 62, 45, 62,
- 58, 13, 64, 65, 54, 55, 56, 78, 58, 16,
- 17, 212, 231, 84, 85, 86, 87, 88, 89, 90,
+ 1, 146, 1, 0, 149, 150, 4, 11, 12, 10,
+ 5, 7, 13, 59, 5, 61, 17, 18, 13, 30,
+ 21, 180, 13, 4, 4, 48, 20, 48, 22, 30,
+ 48, 32, 33, 31, 28, 29, 48, 143, 60, 131,
+ 132, 63, 63, 66, 15, 41, 152, 68, 58, 62,
+ 68, 63, 65, 60, 67, 179, 5, 41, 5, 42,
+ 43, 4, 45, 62, 13, 42, 43, 212, 45, 64,
+ 65, 28, 217, 64, 65, 16, 17, 78, 4, 4,
+ 62, 62, 62, 84, 85, 86, 87, 88, 89, 90,
91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
- 101, 102, 103, 104, 105, 106, 107, 264, 257, 62,
- 259, 260, 120, 114, 263, 64, 65, 266, 59, 113,
- 61, 41, 64, 65, 255, 256, 4, 60, 129, 130,
- 63, 59, 133, 61, 28, 5, 62, 4, 287, 4,
- 144, 1, 146, 13, 61, 149, 150, 131, 132, 143,
- 299, 58, 66, 1, 63, 4, 4, 63, 152, 7,
- 63, 48, 58, 68, 47, 13, 14, 15, 16, 17,
- 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
- 28, 29, 30, 31, 13, 186, 180, 58, 4, 40,
- 47, 192, 58, 41, 64, 65, 40, 4, 5, 6,
- 7, 8, 66, 58, 4, 206, 60, 208, 212, 47,
- 60, 63, 60, 4, 62, 58, 63, 63, 63, 4,
- 68, 63, 63, 30, 225, 40, 63, 58, 58, 63,
- 58, 232, 31, 29, 41, 120, 237, 127, 303, 244,
- 192, -1, 264, -1, -1, -1, 247, 248, -1, 250,
- 251, 255, 256, 60, -1, 62, -1, 64, 65, -1,
- 67, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 264, -1, -1, -1, 275, -1, -1, -1, -1, 0,
- 1, -1, -1, 4, 5, -1, 7, -1, 9, 10,
- 11, 12, 13, -1, -1, 296, 297, 298, 19, 20,
- 21, -1, -1, 24, 25, 26, -1, 28, 309, -1,
- -1, 32, 33, 34, 35, 36, 37, 38, 39, -1,
- 41, -1, -1, 44, -1, -1, 47, 48, 49, 50,
- 51, 52, 53, 54, 55, 56, -1, 58, 59, -1,
- 61, -1, 63, 64, 65, 66, 1, 68, -1, 4,
- -1, -1, 7, -1, -1, -1, -1, -1, 13, 14,
- 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 28, 29, 30, 31, -1, -1, -1,
- 10, 11, -1, -1, -1, -1, 41, -1, -1, 1,
- -1, -1, 4, 5, 6, 7, 8, -1, -1, -1,
- -1, -1, 14, -1, -1, 60, 18, 62, 38, 39,
- 22, 23, -1, 68, -1, 27, -1, 29, 30, -1,
- 50, 51, 52, 53, 54, 55, 56, -1, 58, 41,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 53, -1, -1, -1, -1, 10, 11, 60, -1,
- 62, 63, 64, 65, 66, 67, 1, -1, -1, 4,
- 5, 6, 7, 8, -1, -1, -1, -1, -1, 14,
- -1, -1, -1, 18, 38, 39, -1, 22, 23, -1,
- -1, -1, 27, -1, 29, 30, 50, 51, 52, 53,
- 54, 55, 56, -1, 58, -1, 41, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 53, -1,
- -1, -1, -1, -1, -1, 60, -1, 62, -1, 64,
- 65, 66, 67, 1, -1, -1, 4, 5, 6, 7,
- 8, -1, -1, -1, -1, -1, 14, -1, -1, -1,
- 18, -1, -1, -1, 22, 23, -1, -1, -1, 27,
- -1, 29, 30, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 41, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 53, -1, -1, -1, -1,
- -1, -1, 60, -1, 62, -1, 64, 65, 1, 67,
+ 101, 102, 103, 104, 105, 106, 107, 266, 232, 120,
+ 61, 256, 257, 114, 1, 64, 65, 64, 65, 113,
+ 54, 55, 56, 59, 58, 61, 10, 11, 129, 130,
+ 58, 66, 133, 63, 4, 259, 63, 261, 262, 63,
+ 144, 265, 146, 48, 268, 149, 150, 68, 58, 143,
+ 13, 47, 63, 4, 38, 39, 58, 40, 152, 47,
+ 40, 58, 66, 58, 4, 289, 50, 51, 52, 53,
+ 54, 55, 56, 47, 58, 1, 4, 301, 4, 5,
+ 6, 7, 8, 60, 60, 186, 180, 58, 14, 4,
+ 63, 192, 18, 40, 63, 63, 22, 23, 63, 63,
+ 58, 27, 63, 29, 30, 206, 63, 208, 212, 58,
+ 63, 31, 58, 217, 120, 41, 29, 4, 5, 6,
+ 7, 8, 305, 192, 127, 226, 245, 53, 266, -1,
+ -1, -1, 233, -1, 60, -1, 62, 238, 64, 65,
+ 66, 67, -1, 30, -1, -1, -1, 248, 249, -1,
+ 251, 252, 256, 257, 41, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 53, -1, -1, -1,
+ -1, -1, 266, 60, -1, 62, 277, 64, 65, -1,
+ 67, 0, 1, -1, -1, 4, 5, -1, 7, -1,
+ 9, 10, 11, 12, 13, -1, -1, 298, 299, 300,
+ 19, 20, 21, -1, -1, 24, 25, 26, -1, 28,
+ 311, -1, -1, 32, 33, 34, 35, 36, 37, 38,
+ 39, -1, 41, -1, -1, 44, -1, -1, 47, 48,
+ 49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
+ 59, -1, 61, -1, 63, 64, 65, 66, 1, 68,