summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChance Zibolski <czibolsk@redhat.com>2019-02-14 19:59:59 -0800
committerNico Williams <nico@cryptonector.com>2019-02-20 20:03:26 -0600
commit4f6045a94e0519ec58210bbd58ece442c32468e1 (patch)
treef25f29a668901b784ac78ed46223c145ab662c46
parent1ef90acb3814d85d59e5d1502d0ced6287b83408 (diff)
downloadjq-4f6045a94e0519ec58210bbd58ece442c32468e1.tar.gz
Support "if" without "else" clause
Defaults the else clause to the identity filter "." if an else clause is missing. The following two jq programs are considered equivalent: ``` if .foo then .foo = "bar" else . end ``` ``` if .foo then .foo = "bar" end ```
-rw-r--r--src/parser.c1997
-rw-r--r--src/parser.h12
-rw-r--r--src/parser.y3
-rw-r--r--tests/jq.test13
4 files changed, 1030 insertions, 995 deletions
diff --git a/src/parser.c b/src/parser.c
index f82bdd1..93a924a 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 1964
+#define YYLAST 2015
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 69
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 30
/* YYNRULES -- Number of rules. */
-#define YYNRULES 163
+#define YYNRULES 164
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 315
+#define YYNSTATES 316
/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
by yylex, with out-of-bounds checking. */
@@ -739,22 +739,22 @@ static const yytype_uint8 yytranslate[] =
static const yytype_uint16 yyrline[] =
{
0, 300, 300, 303, 308, 311, 322, 325, 330, 333,
- 338, 342, 345, 349, 353, 357, 360, 365, 369, 373,
- 378, 385, 389, 393, 397, 401, 405, 409, 413, 417,
- 421, 425, 429, 433, 437, 441, 445, 449, 455, 461,
- 465, 469, 473, 477, 481, 485, 489, 493, 498, 501,
- 518, 527, 534, 542, 553, 558, 564, 567, 572, 577,
- 584, 584, 588, 588, 595, 598, 601, 607, 610, 615,
- 618, 621, 627, 630, 633, 641, 645, 648, 651, 654,
- 657, 660, 663, 666, 669, 673, 679, 682, 685, 688,
+ 338, 342, 345, 349, 353, 357, 360, 363, 368, 372,
+ 376, 381, 388, 392, 396, 400, 404, 408, 412, 416,
+ 420, 424, 428, 432, 436, 440, 444, 448, 452, 458,
+ 464, 468, 472, 476, 480, 484, 488, 492, 496, 501,
+ 504, 521, 530, 537, 545, 556, 561, 567, 570, 575,
+ 580, 587, 587, 591, 591, 598, 601, 604, 610, 613,
+ 618, 621, 624, 630, 633, 636, 644, 648, 651, 654,
+ 657, 660, 663, 666, 669, 672, 676, 682, 685, 688,
691, 694, 697, 700, 703, 706, 709, 712, 715, 718,
- 721, 724, 727, 734, 738, 742, 754, 759, 760, 761,
- 762, 765, 768, 773, 778, 781, 786, 789, 794, 798,
- 801, 806, 809, 814, 817, 822, 825, 828, 831, 834,
- 837, 845, 851, 854, 857, 860, 863, 866, 869, 872,
+ 721, 724, 727, 730, 737, 741, 745, 757, 762, 763,
+ 764, 765, 768, 771, 776, 781, 784, 789, 792, 797,
+ 801, 804, 809, 812, 817, 820, 825, 828, 831, 834,
+ 837, 840, 848, 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, 943, 951
+ 905, 908, 913, 916, 917, 918, 921, 924, 927, 930,
+ 934, 938, 942, 946, 954
};
#endif
@@ -797,52 +797,52 @@ static const yytype_uint16 yytoknum[] =
};
# endif
-#define YYPACT_NINF -160
+#define YYPACT_NINF -158
#define yypact_value_is_default(Yystate) \
- (!!((Yystate) == (-160)))
+ (!!((Yystate) == (-158)))
-#define YYTABLE_NINF -152
+#define YYTABLE_NINF -153
#define yytable_value_is_error(Yytable_value) \
- (!!((Yytable_value) == (-152)))
+ (!!((Yytable_value) == (-153)))
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- 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
+ 18, 765, 40, 48, -6, 10, -158, 31, -158, 76,
+ 765, 433, 433, 765, 20, 0, -158, 765, 515, 17,
+ 282, 146, 348, 1283, 765, -158, 2, -158, -5, -5,
+ 765, 48, 673, 765, -158, -158, -10, 1689, 14, 47,
+ 79, 112, -158, 119, -158, 3, 63, 1113, -158, -158,
+ -158, 124, 31, 68, 61, -158, 910, -26, 67, -158,
+ -158, -158, -158, -158, -158, -158, -158, -158, -158, -158,
+ -158, -158, -158, -158, -158, -158, -158, -158, 765, 127,
+ 70, 71, 77, 87, 765, 765, 765, 765, 765, 765,
+ 765, 765, 765, 765, 765, 765, 765, 765, 765, 765,
+ 765, 765, 765, 765, 765, 765, 765, 765, -158, -158,
+ 1857, 86, -16, -5, 448, 135, -158, -158, -158, 1857,
+ 765, -158, -158, 1334, 1857, -53, -158, -158, 1, 765,
+ 580, -16, -16, 645, 108, -158, 28, -158, -158, -158,
+ -158, -158, -158, 405, 214, -158, 214, 1147, 93, 214,
+ 214, -158, 405, 1925, 343, 343, 1891, 496, 1957, 1925,
+ 1925, 1925, 1925, 1925, 1925, 343, 343, 1857, 1891, 1925,
+ 343, 343, 3, 3, 99, 99, 99, -158, 155, -16,
+ 827, 121, 115, 123, 107, 100, 765, 113, 860, 7,
+ -158, -158, 765, -158, 75, -158, 166, -20, -158, 1385,
+ -158, 1589, 114, 117, -158, -158, 765, -158, 765, -158,
+ -18, -158, 214, 125, 50, 125, 118, 214, 125, 125,
+ -158, -158, -158, -23, 120, 126, 765, 174, 129, -24,
+ -158, 130, -16, 765, -158, -158, 960, -158, 737, 122,
+ -158, 178, -158, -158, -158, 1, 131, -158, 765, 765,
+ -158, -158, 765, 765, 1857, 1723, -158, 214, 214, 125,
+ -16, -158, -16, -16, 1181, 132, -16, 827, -158, -16,
+ 144, 1857, 138, 139, 1010, -158, -158, -158, 765, 1773,
+ 1823, 1436, 1487, -158, 125, 125, -158, -158, -158, 137,
+ -16, -158, -158, -158, -158, -158, 140, 1538, -158, 765,
+ 765, 765, -16, -158, -158, -158, 1639, 1215, 1060, -158,
+ -158, -158, 765, -158, 1249, -158
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -850,53 +850,53 @@ static const yytype_int16 yypact[] =
means the default is an error. */
static const yytype_uint8 yydefact[] =
{
- 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, 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,
+ 4, 0, 0, 6, 106, 82, 97, 99, 74, 0,
+ 0, 0, 0, 0, 0, 0, 61, 0, 0, 0,
+ 0, 0, 0, 0, 0, 98, 48, 1, 0, 0,
+ 8, 6, 0, 0, 78, 63, 0, 0, 0, 0,
+ 19, 0, 76, 0, 65, 33, 0, 0, 105, 104,
+ 85, 0, 0, 84, 0, 102, 0, 0, 162, 133,
+ 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
+ 144, 145, 146, 147, 148, 149, 150, 151, 0, 0,
+ 159, 0, 0, 153, 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, 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, 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, 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
+ 0, 0, 0, 0, 0, 0, 0, 0, 22, 5,
+ 10, 81, 0, 0, 0, 0, 54, 53, 3, 2,
+ 8, 7, 49, 0, 114, 0, 112, 65, 0, 0,
+ 0, 0, 0, 0, 0, 75, 0, 108, 100, 86,
+ 80, 109, 101, 0, 0, 111, 0, 0, 161, 0,
+ 0, 103, 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, 77, 0, 0,
+ 0, 0, 0, 118, 83, 0, 0, 90, 0, 0,
+ 9, 50, 0, 107, 0, 60, 0, 0, 57, 0,
+ 17, 0, 0, 0, 20, 18, 0, 66, 0, 62,
+ 0, 155, 0, 164, 72, 156, 0, 0, 158, 157,
+ 154, 119, 122, 0, 0, 0, 0, 0, 0, 0,
+ 124, 0, 0, 0, 79, 110, 0, 89, 0, 88,
+ 52, 0, 113, 64, 59, 0, 0, 55, 0, 0,
+ 16, 15, 0, 0, 21, 0, 71, 0, 0, 160,
+ 0, 120, 0, 0, 0, 126, 0, 0, 121, 0,
+ 117, 11, 96, 95, 0, 87, 51, 58, 0, 0,
+ 0, 0, 0, 67, 70, 163, 123, 132, 128, 0,
+ 0, 130, 125, 129, 93, 92, 94, 0, 69, 0,
+ 0, 0, 0, 127, 91, 56, 0, 0, 0, 131,
+ 68, 12, 0, 14, 0, 13
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -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
+ -158, -158, -158, 157, 81, -1, -158, -158, 161, -12,
+ -158, -43, 6, -158, -158, 88, -103, -136, -8, -158,
+ 22, -158, -57, -123, -158, -158, -51, -157, -105, -158
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
-1, 2, 3, 30, 118, 110, 31, 32, 115, 24,
- 197, 198, 25, 44, 127, 136, 250, 213, 26, 125,
+ 197, 198, 25, 44, 127, 136, 251, 213, 26, 125,
126, 181, 182, 183, 223, 229, 230, 81, 82, 83
};
@@ -905,156 +905,151 @@ static const yytype_int16 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
- 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,
+ 23, 42, 52, 38, 39, 195, 192, 111, 193, 37,
+ 215, 240, 40, 218, 219, 112, 45, 47, 120, 111,
+ 56, 48, 143, 231, 267, 260, 53, 131, 80, 119,
+ 143, 123, 124, 1, 116, 116, 16, 144, 211, 245,
+ 27, 246, 145, 261, 268, 144, 178, 220, 49, 179,
+ 128, 180, 111, 129, 33, 111, 222, 105, 106, 107,
+ 132, 108, 43, 196, 28, 29, 113, 114, 34, 241,
+ 207, 208, 35, 209, 202, 203, 256, 147, 113, 114,
+ 36, 259, 41, 153, 154, 155, 156, 157, 158, 159,
160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
- 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,
+ 170, 171, 172, 173, 174, 175, 176, 133, 120, 270,
+ 231, 113, 114, 188, 113, 114, 134, 207, 208, 184,
+ 243, 284, 285, 135, 137, 139, 140, 141, 199, 201,
+ 146, 148, 205, 149, 150, 152, 214, 286, 214, 287,
+ 288, 214, 214, 291, 177, 151, 293, 54, 189, 80,
+ 4, 5, 6, 7, 8, 206, 217, 108, 80, 221,
+ 9, 232, 233, -116, 10, 234, 235, 303, 11, 12,
+ 244, 237, 257, 13, 252, 14, 15, 253, 265, 309,
+ 275, 258, 276, 262, -115, 236, 228, 16, 121, 263,
+ 117, 124, 266, 269, 278, 290, 294, 295, 304, 17,
+ 302, 190, 277, 310, 214, 254, 18, 255, 19, 214,
+ 20, 21, 55, 22, 242, 194, 292, 0, 4, 5,
+ 6, 7, 8, 0, 0, 264, 0, 0, 0, 0,
+ 0, 0, 271, 0, 0, 0, 0, 274, 0, 0,
+ 0, 0, 0, 0, 15, 0, 0, 279, 280, 214,
+ 214, 281, 282, 0, 0, 16, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 212, 0, 0,
+ 0, 0, 0, 228, 18, 0, 19, 297, 20, 21,
+ 0, 22, -73, 50, 0, 0, 51, -73, 0, 52,
+ 0, -73, -73, -73, -73, -73, 0, 0, 306, 307,
+ 308, -73, -73, -73, 0, 0, -73, -73, -73, 0,
+ -73, 314, 0, 0, -73, -73, -73, -73, -73, -73,
+ -73, -73, 0, 16, 0, 0, -73, 0, 0, -73,
+ -73, -73, -73, -73, -73, -73, -73, -73, -73, 0,
+ -73, -73, 0, -73, 0, -73, -73, -73, -73, 57,
+ -73, 0, 58, -153, -153, 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, -153, -153, 0, 0, 0, 0, 0, 0, 16,
+ 0, 0, 0, -153, -153, 103, 104, 105, 106, 107,
+ 0, 108, 0, 0, 0, 0, 210, 0, 78, 58,
+ 79, 0, 52, 0, 0, 0, -152, 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, 15, 0, 78, 10, 79, 0, 0,
+ 11, 12, 0, -152, 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, 85, 86, 18, 0,
+ 19, 186, 20, 21, 187, 22, 46, 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, 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, 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, 273, 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,
- 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, 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, 18, 0, 19, 0, 20, 21, 0, 22,
- 17, 0, 0, 0, 0, 0, 0, 18, 0, 19,
- 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,
- 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, 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, 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, 84, 85, 86, 87, 98, 99, 100,
- 101, 102, 103, 104, 105, 106, 107, 0, 108, 88,
- 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, 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, 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, 109, 84, 85, 86, 87, 0, 0, 0, 0,
+ 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, 272, 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, 296, 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, 312,
+ 0, 313, 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, 289, 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, 311, 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,
+ 315, 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, 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, 247, 84, 85, 86, 87, 0, 0,
+ 107, 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, 299, 84, 85, 86, 87, 0,
+ 106, 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,
@@ -1064,185 +1059,190 @@ static const yytype_int16 yytable[] =
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,
+ 104, 105, 106, 107, 0, 108, 301, 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,
- 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, -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
+ 103, 104, 105, 106, 107, 0, 108, 305, 84, 85,
+ 86, 87, 0, 0, 0, 0, 0, 0, 0, 248,
+ 249, 0, 0, 250, 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, 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, 283, 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, 298, 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, 299, 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, -153, 85, 86, 0, 0, 0,
+ 100, 101, 102, 103, 104, 105, 106, 107, 0, 108,
+ 88, 89, 0, 0, 0, 0, 0, -153, -153, -153,
+ -153, -153, -153, 96, 97, 0, 0, 85, 86, 0,
+ 0, 0, 0, 0, -153, 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, 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,
+ 1, 1, 7, 11, 12, 4, 59, 5, 61, 10,
+ 146, 4, 13, 149, 150, 13, 17, 18, 30, 5,
+ 21, 4, 48, 180, 48, 48, 20, 13, 22, 30,
+ 48, 32, 33, 15, 28, 29, 41, 63, 143, 59,
+ 0, 61, 68, 66, 68, 63, 62, 152, 31, 65,
+ 60, 67, 5, 63, 60, 5, 179, 54, 55, 56,
+ 13, 58, 62, 62, 16, 17, 64, 65, 58, 62,
+ 42, 43, 41, 45, 131, 132, 212, 78, 64, 65,
+ 4, 217, 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, 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,
+ 101, 102, 103, 104, 105, 106, 107, 28, 120, 232,
+ 267, 64, 65, 114, 64, 65, 4, 42, 43, 113,
+ 45, 257, 258, 4, 61, 1, 58, 66, 129, 130,
+ 63, 4, 133, 63, 63, 48, 144, 260, 146, 262,
+ 263, 149, 150, 266, 58, 68, 269, 1, 13, 143,
+ 4, 5, 6, 7, 8, 47, 63, 58, 152, 4,
+ 14, 40, 47, 40, 18, 58, 66, 290, 22, 23,
+ 4, 58, 47, 27, 60, 29, 30, 60, 4, 302,
+ 58, 63, 4, 63, 40, 186, 180, 41, 31, 63,
+ 29, 192, 63, 63, 63, 63, 58, 58, 58, 53,
+ 63, 120, 245, 306, 212, 206, 60, 208, 62, 217,
+ 64, 65, 66, 67, 192, 127, 267, -1, 4, 5,
+ 6, 7, 8, -1, -1, 226, -1, -1, -1, -1,
+ -1, -1, 233, -1, -1, -1, -1, 238, -1, -1,
+ -1, -1, -1, -1, 30, -1, -1, 248, 249, 257,
+ 258, 252, 253, -1, -1, 41, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 53, -1, -1,
+ -1, -1, -1, 267, 60, -1, 62, 278, 64, 65,
+ -1, 67, 0, 1, -1, -1, 4, 5, -1, 7,
+ -1, 9, 10, 11, 12, 13, -1, -1, 299, 300,
+ 301, 19, 20, 21, -1, -1, 24, 25, 26, -1,
+ 28, 312, -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, 10, 11, 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, 38, 39, -1, -1, -1, -1, -1, -1, 41,
+ -1, -1, -1, 50, 51, 52, 53, 54, 55, 56,
+ -1, 58, -1, -1, -1, -1, 1, -1, 60, 4,
+ 62, -1, 7, -1, -1, -1, 68, -1, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
+ 25, 26, 27, 28, 29, 30, 31, 4, 5, 6,
+ 7, 8, -1, -1, -1, -1, 41, -1, -1, 1,
+ -1, -1, 4, 5, 6, 7, 8, -1, -1, -1,
+ -1, -1, 14, 30, -1, 60, 18, 62, -1, -1,
+ 22, 23, -1, 68, 41, 27, -1, 29, 30, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 41,
+ -1, -1, -1, 60, -1, 62, -1, 64, 65, -1,
+ 67, 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, 1, 67, -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, -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, 4, 5, 6,
+ 7, 8, -1, -1, -1, -1, 41, 14, -1, -1,
+ -1, 18, -1, -1, -1, 22, 23, -1, 53, -1,
+ 27, -1, 29, 30, -1, 60, -1, 62, -1, 64,
+ 65, -1, 67, -1, 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,
- -1, 4, 10, 11, 7, -1, -1, -1, -1, -1,
+ -1, -1, 59, 60, -1, 62, -1, 64, 65, -1,
+ 67, 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, 4,
+ 5, 6, 7, 8, -1, -1, -1, -1, 41, 14,
+ -1, -1, -1, 18, -1, -1, -1, 22, 23, -1,
+ 53, -1, 27, -1, 29, 30, -1, 60, -1, 62,
+ -1, 64, 65, 66, 67, -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, 4, 67, -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,
- 38, 39, -1, -1, -1, -1, -1, -1, 41, -1,
- -1, -1, 50, 51, 52, 53, 54, 55, 56, -1,
- 58, -1, -1, -1, -1, 1, -1, 60, 4, 62,
- -1, 7, -1, -1, -1, 68, -1, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
- 26, 27, 28, 29, 30, 31, 4, 5, 6, 7,
- 8, -1, -1, -1, -1, 41, -1, -1, 1, -1,
- -1, 4, 5, 6, 7, 8, -1, -1, -1, -1,
- -1, 14, 30, -1, 60, 18, 62, -1, -1, 22,
- 23, -1, 68, 41, 27, -1, 29, 30, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 41, -1,
- -1, -1, 60, -1, 62, -1, 64, 65, -1, 67,
- 53, -1, -1, -1, -1, -1, -1, 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, -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, -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, -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, 4, 5, 6, 7,
- 8, -1, -1, -1, -1, 41, 14, -1, -1, -1,
- 18, -1, -1, -1, 22, 23, -1, 53, -1, 27,
- -1, 29, 30, -1, 60, -1, 62, -1, 64, 65,
- -1, 67, -1, 41, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 53, -1, -1, -1, -1,
- -1, 59, 60, -1, 62, -1, 64, 65, -1, 67,
- 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, 4, 5,
- 6, 7, 8, -1, -1, -1, -1, 41, 14, -1,
- -1, -1, 18, -1, -1, -1, 22, 23, -1, 53,
- -1, 27, -1, 29, 30, -1, 60, -1, 62, -1,
- 64, 65, 66, 67, -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,
- 4, 67, -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, -1, -1, -1, -1, -1, -1, 41, 9, 10,
- 11, 12, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 25, 26, 60, -1, 62, -1,
- -1, 32, 33, 34, 35, 36, 37, 38, 39, -1,
- -1, -1, -1, -1, -1, -1, 47, 48, 49, 50,
- 51, 52, 53, 54, 55, 56, -1, 58, 9, 10,
- 11, 12, 63, -1, -1, 66, -1, -1, -1, -1,
- -1, -1, -1, -1, 25, 26, -1, -1, -1, -1,
- -1, 32, 33, 34, 35, 36, 37, 38, 39, -1,
- -1, -1, -1, -1, -1, -1, 47, 48, 49, 50,
- 51, 52, 53, 54, 55, 56, -1, 58, 9, 10,
- 11, 12, -1, -1, -1, 66, -1, -1, -1, -1,
- -1, -1, -1, -1, 25, 26, -1, -1, -1, -1,
- -1, 32, 33, 34, 35, 36, 37, 38, 39, -1,
- -1, -1, -1, -1, -1, -1, 47, 48, 49, 50,
- 51, 52, 53, 54, 55, 56, -1, 58, 9, 10,
- 11, 12, -1, -1, -1, 66, -1, -1, -1, -1,
- -1, -1, -1, -1, 25, 26, -1, -1, -1, -1,
- -1, 32, 33, 34, 35, 36, 37, 38, 39, -1,
- -1, -1, -1, -1, -1, -1, 47, 48, 49, 50,
- 51, 52, 53, 54, 55, 56, -1, 58, 9, 10,
- 11, 12, -1, -1, -1, 66, -1, -1, -1, -1,
- -1, -1, -1, -1, 25, 26, -1, -1, -1, -1,
- -1, 32, 33, 34, 35, 36, 37, 38, 39, -1,
- -1, -1, -1, -1, -1, -1, 47, 48, 49, 50,
- 51, 52, 53, 54, 55, 56, -1, 58, 59, -1,
- 61, 9, 10, 11, 12, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 25, 26, -1,
- -1, -1, -1, -1, 32, 33, 34, 35, 36, 37,
- 38, 39, -1, -1, -1, 9, 10, 11, 12, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, -1,
- 58, 25, 26, 61, -1, -1, -1, -1, 32, 33,
- 34, 35, 36, 37, 38, 39, -1, -1, -1, 9,
- 10, 11, 12, 47, 48, 49, 50, 51, 52, 53,
- 54, 55, 56, -1, 58, 25, 26, 61, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 41, 9,
+ 10, 11, 12, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 25, 26, 60, -1, 62,
-1, -1, 32, 33, 34, 35, 36, 37, 38, 39,
- -1, -1, -1, 9, 10, 11, 12, 47, 48, 49,
- 50, 51, 52, 53, 54, 55, 56, -1, 58, 25,
- 26, 61, -1, -1, -1, -1, 32, 33, 34, 35,
- 36, 37, 38, 39, -1, -1, -1, 9, 10, 11,
- 12, 47, 48, 49, 50, 51, 52, 53, 54, 55,
- 56, -1, 58, 25, 26, 61, -1, -1, -1, -1,
- 32, 33, 34, 35, 36, 37, 38, 39, -1, -1,
- -1, 9, 10, 11, 12, 47, 48, 49, 50, 51,
- 52, 53, 54, 55, 56, -1, 58, 25, 26, 61,
- -1, -1, -1, -1, 32, 33, 34, 35, 36, 37,
- 38, 39, -1, -1, -1, -1, -1, -1, -1, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, -1,
- 58, 59, 9, 10, 11, 12, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 47, 48, 49,
+ 50, 51, 52, 53, 54, 55, 56, -1, 58, 9,
+ 10, 11, 12, 63, -1, -1, 66, -1, -1, -1,
+ -1, -1, -1, -1, -1, 25, 26, -1, -1, -1,
+ -1, -1, 32, 33, 34, 35, 36, 37, 38, 39,
+ -1, -1, -1, -1, -1, -1, -1, 47, 48, 49,
+ 50, 51, 52, 53, 54, 55, 56, -1, 58, 9,
+ 10, 11, 12, -1, -1, -1, 66, -1, -1, -1,
+ -1, -1, -1, -1, -1, 25, 26, -1, -1, -1,
+ -1, -1, 32, 33, 34, 35, 36, 37, 38, 39,
+ -1, -1, -1, -1, -1, -1, -1, 47, 48, 49,
+ 50, 51, 52, 53, 54, 55, 56, -1, 58, 9,
+ 10, 11, 12, -1, -1, -1, 66, -1, -1, -1,
+ -1, -1, -1, -1, -1, 25, 26, -1, -1, -1,
+ -1, -1, 32, 33, 34, 35, 36, 37, 38, 39,
+ -1, -1, -1, -1, -1, -1, -1, 47, 48, 49,
+ 50, 51, 52, 53, 54, 55, 56, -1, 58, 9,
+ 10, 11, 12, -1, -1, -1, 66, -1, -1, -1,
+ -1, -1, -1, -1, -1, 25, 26, -1, -1, -1,
+ -1, -1, 32, 33, 34, 35, 36, 37, 38, 39,
+ -1, -1, -1, -1, -1, -1, -1, 47, 48, 49,
+ 50, 51, 52, 53, 54, 55, 56, -1, 58, 59,
+ -1, 61, 9, 10, 11, 12, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 25, 26,
-1, -1, -1, -1, -1, 32, 33, 34, 35, 36,
+ 37, 38, 39, -1, -1, -1, 9, 10, 11, 12,
+ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
+ -1, 58, 25, 26, 61, -1, -1, -1, -1, 32,
+ 33, 34, 35, 36, 37, 38, 39, -1, -1, -1,
+ 9, 10, 11, 12, 47, 48, 49, 50, 51, 52,
+ 53, 54, 55, 56, -1, 58, 25, 26, 61, -1,
+ -1, -1, -1, 32, 33, 34, 35, 36, 37, 38,
+ 39, -1, -1, -1, 9, 10, 11, 12, 47, 48,
+ 49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
+ 25, 26, 61, -1, -1, -1, -1, 32, 33, 34,
+ 35, 36, 37, 38, 39, -1, -1, -1, 9, 10,
+ 11, 12, 47, 48, 49, 50, 51, 52, 53, 54,
+ 55, 56, -1, 58, 25, 26, 61, -1, -1, -1,
+ -1, 32, 33, 34, 35, 36, 37, 38, 39, -1,
+ -1, -1, 9, 10, 11, 12, 47, 48, 49, 50,
+ 51, 52, 53, 54, 55, 56, -1, 58, 25, 26,
+ 61, -1, -1, -1, -1, 32, 33, 34, 35, 36,
37, 38, 39, -1, -1, -1, -1, -1, -1, -1,
47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
-1, 58, 59, 9, 10, 11, 12, -1, -1, -1,
@@ -1266,43 +1266,53 @@ static const yytype_int16 yycheck[] =
33, 34, 35, 36, 37, 38, 39, -1, -1, -1,
-1, -1, -1, -1, 47, 48, 49, 50, 51, 52,
53, 54, 55, 56, -1, 58, 59, 9, 10, 11,
- 12, -1, -1, -1, -1, -1, -1, -1, 20, 21,
+ 12, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 25, 26, -1, -1, -1, -1, -1,
32, 33, 34, 35, 36, 37, 38, 39, -1, -1,
-1, -1, -1, -1, -1, 47, 48, 49, 50, 51,
- 52, 53, 54, 55, 56, -1, 58, 9, 10, 11,
- 12, -1, -1, -1, -1, -1, -1, 19, -1, -1,
- -1, -1, -1, 25, 26, -1, -1, -1, -1, -1,
- 32, 33, 34, 35, 36, 37, 38, 39, -1, -1,
- -1, 9, 10, 11, 12, 47, 48, 49, 50, 51,
- 52, 53, 54, 55, 56, -1, 58, 25, 26, -1,
- -1, -1, -1, -1, 32, 33, 34, 35, 36, 37,
- 38, 39, -1, -1, -1, -1, 44, -1, -1, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, -1,
- 58, 9, 10, 11, 12, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 24, 25, 26, -1,
- -1, -1, -1, -1, 32, 33, 34, 35, 36, 37,
- 38, 39, -1, -1, -1, -1, -1, -1, -1, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, -1,
- 58, 9, 10, 11, 12, -1, -1, -1, -1, -1,
- -1, 19, -1, -1, -1, -1, -1, 25, 26, -1,
- -1, -1, -1, -1, 32, 33, 34, 35, 36, 37,
- 38, 39, -1, -1, -1, 9, 10, 11, 12, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, -1,
- 58, 25, 26, -1, -1, -1, -1, -1, 32, 33,
- 34, 35, 36, 37, 38, 39, -1, -1, -1, 9,
- 10, 11, 12, 47, 48, 49, 50, 51, 52, 53,
- 54, 55, 56, -1, 58, 25, 26, -1, -1, -1,
- -1, -1, 32, 33, 34, 35, 36, 37, 38, 39,
- -1, -1, -1, 9, 10, 11, -1, -1, -1, 49,
- 50, 51, 52, 53, 54, 55, 56, -1, 58, 25,
- 26, -1, -1, -1, -1, -1, 32, 33, 34, 35,
- 36, 37, 38, 39, -1, -1, 10, 11, -1, -1,
- -1, -1, -1, 49, 50, 51, 52, 53, 54, 55,
- 56, 25, 58, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 38, 39, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 50, 51, 52, 53,
- 54, 55, 56, -1, 58
+ 52, 53, 54, 55, 56, -1, 58, 59, 9, 10,
+ 11, 12, -1, -1, -1, -1, -1, -1, -1, 20,
+ 21, -1, -1, 24, 25, 26, -1, -1, -1, -1,
+ -1, 32, 33, 34, 35, 36, 37, 38, 39, -1,
+ -1, -1, -1, -1, -1, -1, 47, 48, 49, 50,
+ 51, 52, 53, 54, 55, 56, -1, 58, 9, 10,
+ 11, 12, -1, -1, -1, -1, -1, -1, -1, 20,
+ 21, -1, -1, -1, 25, 26, -1, -1, -1, -1,
+ -1, 32, 33, 34, 35, 36, 37, 38, 39, -1,
+ -1, -1, -1, -1, -1, -1, 47, 48, 49, 50,
+ 51, 52, 53, 54, 55, 56, -1, 58, 9, 10,
+ 11, 12, -1, -1, -1, -1, -1, -1, 19, -1,
+ -1, -1, -1, -1, 25, 26, -1, -1, -1, -1,
+ -1, 32, 33, 34, 35, 36, 37, 38, 39, -1,
+ -1, -1, 9, 10, 11, 12, 47, 48, 49, 50,
+ 51, 52, 53, 54, 55, 56, -1, 58, 25, 26,
+ -1, -1, -1, -1, -1, 32, 33, 34, 35, 36,
+ 37, 38, 39, -1, -1, -1, -1, 44, -1, -1,
+ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
+ -1, 58, 9, 10, 11, 12, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 24, 25, 26,
+ -1, -1, -1, -1, -1, 32, 33, 34, 35, 36,
+ 37, 38, 39, -1, -1, -1, -1, -1, -1, -1,
+ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
+ -1, 58, 9, 10, 11, 12, -1, -1, -1, -1,
+ -1, -1, 19, -1, -1, -1, -1, -1, 25, 26,
+ -1, -1, -1, -1, -1, 32, 33, 34, 35, 36,
+ 37, 38, 39, -1, -1, -1, 9, 10, 11, 12,
+ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
+ -1, 58, 25, 26, -1, -1, -1, -1, -1, 32,
+ 33, 34, 35, 36, 37, 38, 39, -1, -1, -1,
+ 9, 10, 11, 12, 47, 48, 49, 50, 51, 52,
+ 53, 54, 55, 56, -1, 58, 25, 26, -1, -1,
+ -1, -1, -1, 32, 33, 34, 35, 36, 37, 38,
+ 39, -1, -1, -1, 9, 10, 11, -1, -1, -1,
+ 49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
+ 25, 26, -1, -1, -1, -1, -1, 32, 33, 34,
+ 35, 36, 37, 38, 39, -1, -1, 10, 11, -1,
+ -1, -1, -1, -1, 49, 50, 51, 52, 53, 54,
+ 55, 56, 25, 58, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 38, 39, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 50, 51, 52,
+ 53, 54, 55, 56, -1, 58
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1334,13 +1344,13 @@ static const yytype_uint8 yystos[] =
97, 4, 92, 93, 1, 4, 60, 62, 81, 94,
95, 96, 40, 47, 58, 66, 74, 58, 63, 66,
4, 62, 89, 45, 4, 59, 61, 59, 20, 21,
- 85, 60, 60, 74, 74, 86, 47, 63, 86, 48,
- 66, 63, 63, 74, 4, 63, 48, 68, 63, 92,
- 74, 66, 66, 74, 58, 4, 80, 63, 74, 74,
- 74, 74, 44, 86, 86, 92, 92, 92, 61, 63,
- 92, 95, 92, 58, 58, 66, 74, 24, 19, 59,
- 59, 63, 92, 58, 59, 74, 74, 74, 92, 85,
- 61, 59, 61, 74, 61
+ 24, 85, 60, 60, 74, 74, 86, 47, 63, 86,
+ 48, 66, 63, 63, 74, 4, 63, 48, 68, 63,
+ 92, 74, 66, 66, 74, 58, 4, 80, 63, 74,
+ 74, 74, 74, 44, 86, 86, 92, 92, 92, 61,
+ 63, 92, 95, 92, 58, 58, 66, 74, 24, 19,
+ 59, 59, 63, 92, 58, 59, 74, 74, 74, 92,
+ 85, 61, 59, 61, 74, 61
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
@@ -1350,41 +1360,41 @@ static const yytype_uint8 yyr1[] =
74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
- 74, 74, 74, 74, 74, 74, 74, 74, 75, 75,
- 76, 76, 76, 77, 78, 78, 79, 79, 80, 80,
- 82, 81, 83, 81, 84, 84, 84, 85, 85, 86,
- 86, 86, 87, 87, 87, 87, 87, 87, 87, 87,
+ 74, 74, 74, 74, 74, 74, 74, 74, 74, 75,
+ 75, 76, 76, 76, 77, 78, 78, 79, 79, 80,
+ 80, 82, 81, 83, 81, 84, 84, 84, 85, 85,
+ 86, 86, 86, 87, 87, 87, 87, 87, 87, 87,
87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 88, 88, 89, 90, 90, 91, 91, 92, 92,
- 92, 93, 93, 94, 94, 95, 95, 95, 95, 95,
- 95, 95, 96, 96, 96, 96, 96, 96, 96, 96,
+ 87, 87, 88, 88, 89, 90, 90, 91, 91, 92,
+ 92, 92, 93, 93, 94, 94, 95, 95, 95, 95,
+ 95, 95, 95, 96, 96, 96, 96, 96, 96, 96,
96, 96, 96, 96, 96, 96, 96, 96, 96, 96,
- 96, 97, 97, 97, 97, 98, 98, 98, 98, 98,
- 98, 98, 98, 98
+ 96, 96, 97, 97, 97, 97, 98, 98, 98, 98,
+ 98, 98, 98, 98, 98
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
static const yytype_uint8 yyr2[] =
{
0, 2, 3, 3, 0, 3, 0, 2, 0, 2,
- 2, 5, 9, 11, 9, 5, 4, 4, 2, 4,
- 5, 2, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 2, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 1, 2, 3,
- 5, 4, 2, 1, 5, 8, 1, 3, 2, 1,
- 0, 4, 0, 5, 0, 2, 4, 5, 3, 3,
- 2, 1, 1, 1, 3, 2, 3, 2, 4, 3,
- 2, 1, 3, 2, 2, 3, 5, 4, 4, 3,
- 7, 6, 6, 6, 5, 5, 1, 1, 1, 3,
- 3, 2, 3, 2, 2, 1, 4, 3, 3, 4,
- 3, 1, 3, 1, 3, 1, 3, 1, 2, 3,
- 3, 1, 3, 1, 3, 2, 4, 3, 3, 3,
- 5, 3, 1, 1, 1, 1, 1, 1, 1, 1,
+ 2, 5, 9, 11, 9, 5, 5, 4, 4, 2,
+ 4, 5, 2, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 2, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 1, 2,
+ 3, 5, 4, 2, 1, 5, 8, 1, 3, 2,
+ 1, 0, 4, 0, 5, 0, 2, 4, 5, 3,
+ 3, 2, 1, 1, 1, 3, 2, 3, 2, 4,
+ 3, 2, 1, 3, 2, 2, 3, 5, 4, 4,
+ 3, 7, 6, 6, 6, 5, 5, 1, 1, 1,
+ 3, 3, 2, 3, 2, 2, 1, 4, 3, 3,
+ 4, 3, 1, 3, 1, 3, 1, 3, 1, 2,
+ 3, 3, 1, 3, 1, 3, 2, 4, 3, 3,
+ 3, 5, 3, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 0, 1, 3, 3, 3, 3, 3, 1, 4,
- 2, 1, 5, 3
+ 1, 1, 0, 1, 3, 3, 3, 3, 3, 1,
+ 4, 2, 1, 5, 3
};
@@ -1817,6 +1827,7 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
case N: \
yyformat = S; \
break
+ default: /* Avoid compiler warnings. */
YYCASE_(0, YY_("syntax error"));
YYCASE_(1, YY_("syntax error, unexpected %s"));
YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
@@ -1885,189 +1896,189 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio
switch (yytype)
{
case 4: /* IDENT */
-#line 36 "src/parser.y" /* yacc.c:1257 */
+#line 36 "src/parser.y" /* yacc.c:1258 */
{ jv_free(((*yyvaluep).literal)); }
-#line 1891 "src/parser.c" /* yacc.c:1257 */
+#line 1902 "src/parser.c" /* yacc.c:1258 */
break;
case 5: /* FIELD */
-#line 36 "src/parser.y" /* yacc.c:1257 */
+#line 36 "src/parser.y" /* yacc.c:1258 */
{ jv_free(((*yyvaluep).literal)); }
-#line 1897 "src/parser.c" /* yacc.c:1257 */
+#line 1908 "src/parser.c" /* yacc.c:1258 */
break;
case 6: /* LITERAL */
-#line 36 "src/parser.y" /* yacc.c:1257 */
+#line 36 "src/parser.y" /* yacc.c:1258 */
{ jv_free(((*yyvaluep).literal)); }
-#line 1903 "src/parser.c" /* yacc.c:1257 */
+#line 1914 "src/parser.c" /* yacc.c:1258 */
break;
case 7: /* FORMAT */
-#line 36 "src/parser.y" /* yacc.c:1257 */
+#line 36 "src/parser.y" /* yacc.c:1258 */
{ jv_free(((*yyvaluep).literal)); }
-#line 1909 "src/parser.c" /* yacc.c:1257 */
+#line 1920 "src/parser.c" /* yacc.c:1258 */
break;
case 42: /* QQSTRING_TEXT */
-#line 36 "src/parser.y" /* yacc.c:1257 */
+#line 36 "src/parser.y" /* yacc.c:1258 */
{ jv_free(((*yyvaluep).literal)); }
-#line 1915 "src/parser.c" /* yacc.c:1257 */
+#line 1926 "src/parser.c" /* yacc.c:1258 */
break;
case 71: /* Module */
-#line 37 "src/parser.y" /* yacc.c:1257 */
+#line 37 "src/parser.y" /* yacc.c:1258 */
{ block_free(((*yyvaluep).blk)); }
-#line 1921 "src/parser.c" /* yacc.c:1257 */
+#line 1932 "src/parser.c" /* yacc.c:1258 */
break;
case 72: /* Imports */
-#line 37 "src/parser.y" /* yacc.c:1257 */
+#line 37 "src/parser.y" /* yacc.c:1258 */
{ block_free(((*yyvaluep).blk)); }
-#line 1927 "src/parser.c" /* yacc.c:1257 */
+#line 1938 "src/parser.c" /* yacc.c:1258 */
break;
case 73: /* FuncDefs */
-#line 37 "src/parser.y" /* yacc.c:1257 */
+#line 37 "src/parser.y" /* yacc.c:1258 */
{ block_free(((*yyvaluep).blk)); }
-#line 1933 "src/parser.c" /* yacc.c:1257 */
+#line 1944 "src/parser.c" /* yacc.c:1258 */
break;
case 74: /* Exp */
-#line 37 "src/parser.y" /* yacc.c:1257 */
+#line 37 "src/parser.y" /* yacc.c:1258 */
{ block_free(((*yyvaluep).blk)); }
-#line 1939 "src/parser.c" /* yacc.c:1257 */
+#line 1950 "src/parser.c" /* yacc.c:1258 */
break;
case 75: /* Import */
-#line 37 "src/parser.y" /* yacc.c:1257 */
+#line 37 "src/parser.y" /* yacc.c:1258 */
{ block_free(((*yyvaluep).blk)); }
-#line 1945 "src/parser.c" /* yacc.c:1257 */
+#line 1956 "src/parser.c" /* yacc.c:1258 */
break;
case 76: /* ImportWhat */
-#line 37 "src/parser.y" /* yacc.c:1257 */
+#line 37 "src/parser.y" /* yacc.c:1258 */
{ block_free(((*yyvaluep).blk)); }
-#line 1951 "src/parser.c" /* yacc.c:1257 */
+#line 1962 "src/parser.c" /* yacc.c:1258 */
break;
case 77: /* ImportFrom */
-#line 37 "src/parser.y" /* yacc.c:1257 */
+#line 37 "src/parser.y" /* yacc.c:1258 */
{ block_free(((*yyvaluep).blk)); }
-#line 1957 "src/parser.c" /* yacc.c:1257 */
+#line 1968 "src/parser.c" /* yacc.c:1258 */
break;
case 78: /* FuncDef */
-#line 37 "src/parser.y" /* yacc.c:1257 */
+#line 37 "src/parser.y" /* yacc.c:1258 */
{ block_free(((*yyvaluep).blk)); }
-#line 1963 "src/parser.c" /* yacc.c:1257 */
+#line 1974 "src/parser.c" /* yacc.c:1258 */
break;
case 79: /* Params */
-#line 37 "src/parser.y" /* yacc.c:1257 */
+#line 37 "src/parser.y" /* yacc.c:1258 */
{ block_free(((*yyvaluep).blk)); }
-#line 1969 "src/parser.c" /* yacc.c:1257 */
+#line 1980 "src/parser.c" /* yacc.c:1258 */
break;
case 80: /* Param */
-#line 37 "src/parser.y" /* yacc.c:1257 */
+#line 37 "src/parser.y" /* yacc.c:1258 */
{ block_free(((*yyvaluep).blk)); }
-#line 1975 "src/parser.c" /* yacc.c:1257 */
+#line 1986 "src/parser.c" /* yacc.c:1258 */
break;
case 81: /* String */
-#line 37 "src/parser.y" /* yacc.c:1257 */
+#line 37 "src/parser.y" /* yacc.c:1258 */
{ block_free(((*yyvaluep).blk)); }
-#line 1981 "src/parser.c" /* yacc.c:1257 */
+#line 1992 "src/parser.c" /* yacc.c:1258 */
break;
case 84: /* QQString */
-#line 37 "src/parser.y" /* yacc.c:1257 */
+#line 37 "src/parser.y" /* yacc.c:1258 */
{ block_free(((*yyvaluep).blk)); }
-#line 1987 "src/parser.c" /* yacc.c:1257 */
+#line 1998 "src/parser.c" /* yacc.c:1258 */
break;
case 85: /* ElseBody */
-#line 37 "src/parser.y" /* yacc.c:1257 */
+#line 37 "src/parser.y" /* yacc.c:1258 */
{ block_free(((*yyvaluep).blk)); }
-#line 1993 "src/parser.c" /* yacc.c:1257 */
+#line 2004 "src/parser.c" /* yacc.c:1258 */
break;
case 86: /* ExpD */
-#line 37 "src/parser.y" /* yacc.c:1257 */
+#line 37 "src/parser.y" /* yacc.c:1258 */
{ block_free(((*yyvaluep).blk)); }
-#line 1999 "src/parser.c" /* yacc.c:1257 */
+#line 2010 "src/parser.c" /* yacc.c:1258 */
break;
case 87: /* Term */
-#line 37 "src/parser.y" /* yacc.c:1257 */
+#line 37 "src/parser.y" /* yacc.c:1258 */
{ block_free(((*yyvaluep).blk)); }
-#line 2005 "src/parser.c" /* yacc.c:1257 */
+#line 2016 "src/parser.c" /* yacc.c:1258 */
break;
case 88: /* Args */
-#line 37 "src/parser.y" /* yacc.c:1257 */
+#line 37 "src/parser.y" /* yacc.c:1258 */
{ block_free(((*yyvaluep).blk)); }
-#line 2011 "src/parser.c" /* yacc.c:1257 */
+#line 2022 "src/parser.c" /* yacc.c:1258 */
break;
case 89: /* Arg */
-#line 37 "src/parser.y" /* yacc.c:1257 */
+#line 37 "src/parser.y" /* yacc.c:1258 */
{ block_free(((*yyvaluep).blk)); }
-#line 2017 "src/parser.c" /* yacc.c:1257 */
+#line 2028 "src/parser.c" /* yacc.c:1258 */
break;
case 90: /* RepPatterns */
-#line 37 "src/parser.y" /* yacc.c:1257 */
+#line 37 "src/parser.y" /* yacc.c:1258 */
{ block_free(((*yyvaluep).blk)); }
-#line 2023 "src/parser.c" /* yacc.c:1257 */
+#line 2034 "src/parser.c" /* yacc.c:1258 */
break;
case 91: /* Patterns */
-#line 37 "src/parser.y" /* yacc.c:1257 */
+#line 37 "src/parser.y" /* yacc.c:1258 */
{ block_free(((*yyvaluep).blk)); }
-#line 2029 "src/parser.c" /* yacc.c:1257 */
+#line 2040 "src/parser.c" /* yacc.c:1258 */
break;
case 92: /* Pattern */
-#line 37 "src/parser.y" /* yacc.c:1257 */
+#line 37 "src/parser.y" /* yacc.c:1258 */
{ block_free(((*yyvaluep).blk)); }
-#line 2035 "src/parser.c" /* yacc.c:1257 */
+#line 2046 "src/parser.c" /* yacc.c:1258 */
break;
case 93: /* ArrayPats */
-#line 37 "src/parser.y" /* yacc.c:1257 */
+#line 37 "src/parser.y" /* yacc.c:1258 */
{ block_free(((*yyvaluep).blk)); }
-#line 2041 "src/parser.c" /* yacc.c:1257 */
+#line 2052 "src/parser.c" /* yacc.c:1258 */
break;
case 94: /* ObjPats */
-#line 37 "src/parser.y" /* yacc.c:1257 */
+#line 37 "src/parser.y" /* yacc.c:1258 */
{ block_free(((*yyvaluep).blk)); }
-#line 2047 "src/parser.c" /* yacc.c:1257 */
+#line 2058 "src/parser.c" /* yacc.c:1258 */
break;
case 95: /* ObjPat */
-#line 37 "src/parser.y" /* yacc.c:1257 */
+#line 37 "src/parser.y" /* yacc.c:1258 */
{ block_free(((*yyvaluep).blk)); }
-#line 2053 "src/parser.c" /* yacc.c:1257 */
+#line 2064 "src/parser.c" /* yacc.c:1258 */
break;
case 96: /* Keyword */
-#line 36 "src/parser.y" /* yacc.c:1257 */
+#line 36 "src/parser.y" /* yacc.c:1258 */
{ jv_free(((*yyvaluep).literal)); }
-#line 2059 "src/parser.c" /* yacc.c:1257 */
+#line 2070 "src/parser.c" /* yacc.c:1258 */
break;
case 97: /* MkDict */
-#line 37 "src/parser.y" /* yacc.c:1257 */
+#line 37 "src/parser.y" /* yacc.c:1258 */
{ block_free(((*yyvaluep).blk)); }
-#line 2065 "src/parser.c" /* yacc.c:1257 */
+#line 2076 "src/parser.c" /* yacc.c:1258 */
break;
case 98: /* MkDictPair */
-#line 37 "src/parser.y" /* yacc.c:1257 */
+#line 37 "src/parser.y" /* yacc.c:1258 */
{ block_free(((*yyvaluep).blk)); }
-#line 2071 "src/parser.c" /* yacc.c:1257 */
+#line 2082 "src/parser.c" /* yacc.c:1258 */
break;
@@ -2353,37 +2364,38 @@ yyreduce:
GCC warning that YYVAL may be used uninitialized. */
yyval = yyvsp[1-yylen];
- /* Default location. */
+ /* Default location. */
YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
+ yyerror_range[1] = yyloc;
YY_REDUCE_PRINT (yyn);
switch (yyn)
{
case 2:
-#line 300 "src/parser.y" /* yacc.c:1646 */
+#line 300 "src/parser.y" /* yacc.c:1648 */
{
*answer = BLOCK((yyvsp[-2].blk), (yyvsp[-1].blk), gen_op_simple(TOP), (yyvsp[0].blk));
}
-#line 2367 "src/parser.c" /* yacc.c:1646 */
+#line 2379 "src/parser.c" /* yacc.c:1648 */
break;
case 3:
-#line 303 "src/parser.y" /* yacc.c:1646 */
+#line 303 "src/parser.y" /* yacc.c:1648 */
{
*answer = BLOCK((yyvsp[-2].blk), (yyvsp[-1].blk), (yyvsp[0].blk));
}
-#line 2375 "src/parser.c" /* yacc.c:1646 */
+#line 2387 "src/parser.c" /* yacc.c:1648 */
break;
case 4:
-#line 308 "src/parser.y" /* yacc.c:1646 */
+#line 308 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_noop();
}
-#line 2383 "src/parser.c" /* yacc.c:1646 */
+#line 2395 "src/parser.c" /* yacc.c:1648 */
break;
case 5:
-#line 311 "src/parser.y" /* yacc.c:1646 */
+#line 311 "src/parser.y" /* yacc.c:1648 */
{
if (!block_is_const((yyvsp[-1].blk))) {
FAIL((yyloc), "Module metadata must be constant");
@@ -2393,366 +2405,374 @@ yyreduce:
(yyval.blk) = gen_module((yyvsp[-1].blk));
}
}
-#line 2397 "src/parser.c" /* yacc.c:1646 */
+#line 2409 "src/parser.c" /* yacc.c:1648 */
break;
case 6:
-#line 322 "src/parser.y" /* yacc.c:1646 */
+#line 322 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_noop();
}
-#line 2405 "src/parser.c" /* yacc.c:1646 */
+#line 2417 "src/parser.c" /* yacc.c:1648 */
break;
case 7:
-#line 325 "src/parser.y" /* yacc.c:1646 */
+#line 325 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = BLOCK((yyvsp[-1].blk), (yyvsp[0].blk));
}
-#line 2413 "src/parser.c" /* yacc.c:1646 */
+#line 2425 "src/parser.c" /* yacc.c:1648 */
break;
case 8:
-#line 330 "src/parser.y" /* yacc.c:1646 */
+#line 330 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_noop();
}
-#line 2421 "src/parser.c" /* yacc.c:1646 */
+#line 2433 "src/parser.c" /* yacc.c:1648 */
break;
case 9:
-#line 333 "src/parser.y" /* yacc.c:1646 */
+#line 333 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = block_join((yyvsp[-1].blk), (yyvsp[0].blk));
}
-#line 2429 "src/parser.c" /* yacc.c:1646 */
+#line 2441 "src/parser.c" /* yacc.c:1648 */
break;
case 10:
-#line 338 "src/parser.y" /* yacc.c:1646 */
+#line 338 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = block_bind_referenced((yyvsp[-1].blk), (yyvsp[0].blk), OP_IS_CALL_PSEUDO);
}
-#line 2437 "src/parser.c" /* yacc.c:1646 */
+#line 2449 "src/parser.c" /* yacc.c:1648 */
break;
case 11:
-#line 342 "src/parser.y" /* yacc.c:1646 */
+#line 342 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_destructure((yyvsp[-4].blk), (yyvsp[-2].blk), (yyvsp[0].blk));
}
-#line 2445 "src/parser.c" /* yacc.c:1646 */
+#line 2457 "src/parser.c" /* yacc.c:1648 */
break;
case 12:
-#line 345 "src/parser.y" /* yacc.c:1646 */
+#line 345 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_reduce((yyvsp[-7].blk), (yyvsp[-5].blk), (yyvsp[-3].blk), (yyvsp[-1].blk));
}
-#line 2453 "src/parser.c" /* yacc.c:1646 */
+#line 2465 "src/parser.c" /* yacc.c:1648 */
break;
case 13:
-#line 349 "src/parser.y" /* yacc.c:1646 */
+#line 349 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_foreach((yyvsp[-9].blk), (yyvsp[-7].blk), (yyvsp[-5].blk), (yyvsp[-3].blk), (yyvsp[-1].blk));
}
-#line 2461 "src/parser.c" /* yacc.c:1646 */
+#line 2473 "src/parser.c" /* yacc.c:1648 */
break;
case 14:
-#line 353 "src/parser.y" /* yacc.c:1646 */
+#line 353 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_foreach((yyvsp[-7].blk), (yyvsp[-5].blk), (yyvsp[-3].blk), (yyvsp[-1].blk), gen_noop());
}
-#line 2469 "src/parser.c" /* yacc.c:1646 */
+#line 2481 "src/parser.c" /* yacc.c:1648 */
break;
case 15:
-#line 357 "src/parser.y" /* yacc.c:1646 */
+#line 357 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_cond((yyvsp[-3].blk), (yyvsp[-1].blk), (yyvsp[0].blk));
}
-#line 2477 "src/parser.c" /* yacc.c:1646 */
+#line 2489 "src/parser.c" /* yacc.c:1648 */
break;
case 16:
-#line 360 "src/parser.y" /* yacc.c:1646 */
+#line 360 "src/parser.y" /* yacc.c:1648 */
+ {
+ (yyval.blk) = gen_cond((yyvsp[-3].blk), (yyvsp[-1].blk), gen_noop());
+}
+#line 2497 "src/parser.c" /* yacc.c:1648 */
+ break;
+
+ case 17:
+#line 363 "src/parser.y" /* yacc.c:1648 */
{
FAIL((yyloc), "Possibly unterminated 'if' statement");
(yyval.blk) = (yyvsp[-2].blk);
}
-#line 2486 "src/parser.c" /* yacc.c:1646 */
+#line 2506 "src/parser.c" /* yacc.c:1648 */
break;
- case 17:
-#line 365 "src/parser.y" /* yacc.c:1646 */
+ case 18:
+#line 368 "src/parser.y" /* yacc.c:1648 */
{
//$$ = BLOCK(gen_op_target(FORK_OPT, $2), $2, $4);
(yyval.blk) = gen_try((yyvsp[-2].blk), gen_try_handler((yyvsp[0].blk)));
}
-#line 2495 "src/parser.c" /* yacc.c:1646 */
+#line 2515 "src/parser.c" /* yacc.c:1648 */
break;
- case 18:
-#line 369 "src/parser.y" /* yacc.c:1646 */
+ case 19:
+#line 372 "src/parser.y" /* yacc.c:1648 */
{
//$$ = BLOCK(gen_op_target(FORK_OPT, $2), $2, gen_op_simple(BACKTRACK));
(yyval.blk) = gen_try((yyvsp[0].blk), gen_op_simple(BACKTRACK));
}
-#line 2504 "src/parser.c" /* yacc.c:1646 */
+#line 2524 "src/parser.c" /* yacc.c:1648 */
break;
- case 19:
-#line 373 "src/parser.y" /* yacc.c:1646 */
+ case 20:
+#line 376 "src/parser.y" /* yacc.c:1648 */
{
FAIL((yyloc), "Possibly unterminated 'try' statement");
(yyval.blk) = (yyvsp[-2].blk);
}
-#line 2513 "src/parser.c" /* yacc.c:1646 */
+#line 2533 "src/parser.c" /* yacc.c:1648 */
break;
- case 20:
-#line 378 "src/parser.y" /* yacc.c:1646 */
+ case 21:
+#line 381 "src/parser.y" /* yacc.c:1648 */
{
jv v = jv_string_fmt("*label-%s", jv_string_value((yyvsp[-2].literal)));
(yyval.blk) = gen_location((yyloc), locations, gen_label(jv_string_value(v), (yyvsp[0].blk)));
jv_free((yyvsp[-2].literal));
jv_free(v);
}
-#line 2524 "src/parser.c" /* yacc.c:1646 */
+#line 2544 "src/parser.c" /* yacc.c:1648 */
break;
- case 21:
-#line 385 "src/parser.y" /* yacc.c:1646 */
+ case 22:
+#line 388 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_try((yyvsp[-1].blk), gen_op_simple(BACKTRACK));
}
-#line 2532 "src/parser.c" /* yacc.c:1646 */
+#line 2552 "src/parser.c" /* yacc.c:1648 */
break;
- case 22:
-#line 389 "src/parser.y" /* yacc.c:1646 */
+ case 23:
+#line 392 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_call("_assign", BLOCK(gen_lambda((yyvsp[-2].blk)), gen_lambda((yyvsp[0].blk))));
}
-#line 2540 "src/parser.c" /* yacc.c:1646 */
+#line 2560 "src/parser.c" /* yacc.c:1648 */
break;
- case 23:
-#line 393 "src/parser.y" /* yacc.c:1646 */
+ case 24:
+#line 396 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_or((yyvsp[-2].blk), (yyvsp[0].blk));
}
-#line 2548 "src/parser.c" /* yacc.c:1646 */
+#line 2568 "src/parser.c" /* yacc.c:1648 */
break;
- case 24:
-#line 397 "src/parser.y" /* yacc.c:1646 */
+ case 25:
+#line 400 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_and((yyvsp[-2].blk), (yyvsp[0].blk));
}
-#line 2556 "src/parser.c" /* yacc.c:1646 */
+#line 2576 "src/parser.c" /* yacc.c:1648 */
break;
- case 25:
-#line 401 "src/parser.y" /* yacc.c:1646 */
+ case 26:
+#line 404 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_definedor((yyvsp[-2].blk), (yyvsp[0].blk));
}
-#line 2564 "src/parser.c" /* yacc.c:1646 */
+#line 2584 "src/parser.c" /* yacc.c:1648 */
break;
- case 26:
-#line 405 "src/parser.y" /* yacc.c:1646 */
+ case 27:
+#line 408 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_definedor_assign((yyvsp[-2].blk), (yyvsp[0].blk));
}
-#line 2572 "src/parser.c" /* yacc.c:1646 */
+#line 2592 "src/parser.c" /* yacc.c:1648 */
break;
- case 27:
-#line 409 "src/parser.y" /* yacc.c:1646 */
+ case 28:
+#line 412 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_call("_modify", BLOCK(gen_lambda((yyvsp[-2].blk)), gen_lambda((yyvsp[0].blk))));
}
-#line 2580 "src/parser.c" /* yacc.c:1646 */
+#line 2600 "src/parser.c" /* yacc.c:1648 */
break;
- case 28:
-#line 413 "src/parser.y" /* yacc.c:1646 */
+ case 29:
+#line 416 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = block_join((yyvsp[-2].blk), (yyvsp[0].blk));
}
-#line 2588 "src/parser.c" /* yacc.c:1646 */
+#line 2608 "src/parser.c" /* yacc.c:1648 */
break;
- case 29:
-#line 417 "src/parser.y" /* yacc.c:1646 */
+ case 30:
+#line 420 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_both((yyvsp[-2].blk), (yyvsp[0].blk));
}
-#line 2596 "src/parser.c" /* yacc.c:1646 */
+#line 2616 "src/parser.c" /* yacc.c:1648 */
break;
- case 30:
-#line 421 "src/parser.y" /* yacc.c:1646 */
+ case 31:
+#line 424 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '+');
}
-#line 2604 "src/parser.c" /* yacc.c:1646 */
+#line 2624 "src/parser.c" /* yacc.c:1648 */
break;
- case 31:
-#line 425 "src/parser.y" /* yacc.c:1646 */
+ case 32:
+#line 428 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '+');
}
-#line 2612 "src/parser.c" /* yacc.c:1646 */
+#line 2632 "src/parser.c" /* yacc.c:1648 */
break;
- case 32:
-#line 429 "src/parser.y" /* yacc.c:1646 */
+ case 33:
+#line 432 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = BLOCK((yyvsp[0].blk), gen_call("_negate", gen_noop()));
}
-#line 2620 "src/parser.c" /* yacc.c:1646 */
+#line 2640 "src/parser.c" /* yacc.c:1648 */
break;
- case 33:
-#line 433 "src/parser.y" /* yacc.c:1646 */
+ case 34:
+#line 436 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '-');
}
-#line 2628 "src/parser.c" /* yacc.c:1646 */
+#line 2648 "src/parser.c" /* yacc.c:1648 */
break;
- case 34:
-#line 437 "src/parser.y" /* yacc.c:1646 */
+ case 35:
+#line 440 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '-');
}
-#line 2636 "src/parser.c" /* yacc.c:1646 */
+#line 2656 "src/parser.c" /* yacc.c:1648 */
break;
- case 35:
-#line 441 "src/parser.y" /* yacc.c:1646 */
+ case 36:
+#line 444 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '*');
}
-#line 2644 "src/parser.c" /* yacc.c:1646 */
+#line 2664 "src/parser.c" /* yacc.c:1648 */
break;
- case 36:
-#line 445 "src/parser.y" /* yacc.c:1646 */
+ case 37:
+#line 448 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '*');
}
-#line 2652 "src/parser.c" /* yacc.c:1646 */
+#line 2672 "src/parser.c" /* yacc.c:1648 */
break;
- case 37:
-#line 449 "src/parser.y" /* yacc.c:1646 */
+ case 38:
+#line 452 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '/');
if (block_is_const_inf((yyval.blk)))
FAIL((yyloc), "Division by zero?");
}
-#line 2662 "src/parser.c" /* yacc.c:1646 */
+#line 2682 "src/parser.c" /* yacc.c:1648 */
break;
- case 38:
-#line 455 "src/parser.y" /* yacc.c:1646 */
+ case 39:
+#line 458 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '%');
if (block_is_const_inf((yyval.blk)))
FAIL((yyloc), "Remainder by zero?");
}
-#line 2672 "src/parser.c" /* yacc.c:1646 */
+#line 2692 "src/parser.c" /* yacc.c:1648 */
break;
- case 39:
-#line 461 "src/parser.y" /* yacc.c:1646 */
+ case 40:
+#line 464 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '/');
}
-#line 2680 "src/parser.c" /* yacc.c:1646 */
+#line 2700 "src/parser.c" /* yacc.c:1648 */
break;
- case 40:
-#line 465 "src/parser.y" /* yacc.c:1646 */
+ case 41:
+#line 468 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '%');
}
-#line 2688 "src/parser.c" /* yacc.c:1646 */
+#line 2708 "src/parser.c" /* yacc.c:1648 */
break;
- case 41:
-#line 469 "src/parser.y" /* yacc.c:1646 */
+ case 42:
+#line 472 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), EQ);
}
-#line 2696 "src/parser.c" /* yacc.c:1646 */
+#line 2716 "src/parser.c" /* yacc.c:1648 */
break;
- case 42:
-#line 473 "src/parser.y" /* yacc.c:1646 */
+ case 43:
+#line 476 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), NEQ);
}
-#line 2704 "src/parser.c" /* yacc.c:1646 */
+#line 2724 "src/parser.c" /* yacc.c:1648 */
break;
- case 43:
-#line 477 "src/parser.y" /* yacc.c:1646 */
+ case 44:
+#line 480 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '<');
}
-#line 2712 "src/parser.c" /* yacc.c:1646 */
+#line 2732 "src/parser.c" /* yacc.c:1648 */
break;
- case 44:
-#line 481 "src/parser.y" /* yacc.c:1646 */
+ case 45:
+#line 484 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '>');
}
-#line 2720 "src/parser.c" /* yacc.c:1646 */
+#line 2740 "src/parser.c" /* yacc.c:1648 */
break;
- case 45:
-#line 485 "src/parser.y" /* yacc.c:1646 */
+ case 46:
+#line 488 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), LESSEQ);
}
-#line 2728 "src/parser.c" /* yacc.c:1646 */
+#line 2748 "src/parser.c" /* yacc.c:1648 */
break;
- case 46:
-#line 489 "src/parser.y" /* yacc.c:1646 */
+ case 47:
+#line 492 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), GREATEREQ);
}
-#line 2736 "src/parser.c" /* yacc.c:1646 */
+#line 2756 "src/parser.c" /* yacc.c:1648 */
break;
- case 47:
-#line 493 "src/parser.y" /* yacc.c:1646 */
+ case 48:
+#line 496 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = (yyvsp[0].blk);
}
-#line 2744 "src/parser.c" /* yacc.c:1646 */
+#line 2764 "src/parser.c" /* yacc.c:1648 */
break;
- case 48:
-#line 498 "src/parser.y" /* yacc.c:1646 */
+ case 49:
+#line 501 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = (yyvsp[-1].blk);
}
-#line 2752 "src/parser.c" /* yacc.c:1646 */
+#line 2772 "src/parser.c" /* yacc.c:1648 */
break;
- case 49:
-#line 501 "src/parser.y" /* yacc.c:1646 */
+ case 50:
+#line 504 "src/parser.y" /* yacc.c:1648 */
{
if (!block_is_const((yyvsp[-1].blk))) {
FAIL((yyloc), "Module metadata must be constant");
@@ -2768,11 +2788,11 @@ yyreduce:
(yyval.blk) = gen_import_meta((yyvsp[-2].blk), (yyvsp[-1].blk));
}
}
-#line 2772 "src/parser.c" /* yacc.c:1646 */
+#line 2792 "src/parser.c" /* yacc.c:1648 */
break;
- case 50:
-#line 518 "src/parser.y" /* yacc.c:1646 */
+ case 51:
+#line 521 "src/parser.y" /* yacc.c:1648 */
{
jv v = block_const((yyvsp[-3].blk));
// XXX Make gen_import take only blocks and the int is_data so we
@@ -2782,11 +2802,11 @@ yyreduce:
jv_free((yyvsp[0].literal));
jv_free(v);
}
-#line 2786 "src/parser.c" /* yacc.c:1646 */
+#line 2806 "src/parser.c" /* yacc.c:1648 */
break;
- case 51:
-#line 527 "src/parser.y" /* yacc.c:1646 */
+ case 52:
+#line 530 "src/parser.y" /* yacc.c:1648 */
{
jv v = block_const((yyvsp[-2].blk));
(yyval.blk) = gen_import(jv_string_value(v), jv_string_value((yyvsp[0].literal)), 0);
@@ -2794,22 +2814,22 @@ yyreduce:
jv_free((yyvsp[0].literal));
jv_free(v);
}
-#line 2798 "src/parser.c" /* yacc.c:1646 */
+#line 2818 "src/parser.c" /* yacc.c:1648 */
break;
- case 52:
-#line 534 "src/parser.y" /* yacc.c:1646 */
+ case 53:
+#line 537 "src/parser.y" /* yacc.c:1648 */
{
jv v = block_const((yyvsp[0].blk));
(yyval.blk) = gen_import(jv_string_value(v), NULL, 0);
block_free((yyvsp[0].blk));
jv_free(v);
}
-#line 2809 "src/parser.c" /* yacc.c:1646 */
+#line 2829 "src/parser.c" /* yacc.c:1648 */
break;
- case 53:
-#line 542 "src/parser.y" /* yacc.c:1646 */
+ case 54:
+#line 545 "src/parser.y" /* yacc.c:1648 */
{
if (!block_is_const((yyvsp[0].blk))) {
FAIL((yyloc), "Import path must be constant");
@@ -2819,173 +2839,173 @@ yyreduce:
(yyval.blk) = (yyvsp[0].blk);
}
}
-#line 2823 "src/parser.c" /* yacc.c:1646 */
+#line 2843 "src/parser.c" /* yacc.c:1648 */
break;
- case 54:
-#line 553 "src/parser.y" /* yacc.c:1646 */
+ case 55:
+#line 556 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_function(jv_string_value((yyvsp[-3].literal)), gen_noop(), (yyvsp[-1].blk));
jv_free((yyvsp[-3].literal));
}
-#line 2832 "src/parser.c" /* yacc.c:1646 */
+#line 2852 "src/parser.c" /* yacc.c:1648 */
break;
- case 55:
-#line 558 "src/parser.y" /* yacc.c:1646 */
+ case 56:
+#line 561 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_function(jv_string_value((yyvsp[-6].literal)), (yyvsp[-4].blk), (yyvsp[-1].blk));
jv_free((yyvsp[-6].literal));
}
-#line 2841 "src/parser.c" /* yacc.c:1646 */
+#line 2861 "src/parser.c" /* yacc.c:1648 */
break;
- case 56:
-#line 564 "src/parser.y" /* yacc.c:1646 */
+ case 57:
+#line 567 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = (yyvsp[0].blk);
}
-#line 2849 "src/parser.c" /* yacc.c:1646 */
+#line 2869 "src/parser.c" /* yacc.c:1648 */
break;
- case 57:
-#line 567 "src/parser.y" /* yacc.c:1646 */
+ case 58:
+#line 570 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = BLOCK((yyvsp[-2].blk), (yyvsp[0].blk));
}
-#line 2857 "src/parser.c" /* yacc.c:1646 */
+#line 2877 "src/parser.c" /* yacc.c:1648 */
break;
- case 58:
-#line 572 "src/parser.y" /* yacc.c:1646 */
+ case 59:
+#line 575 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_param_regular(jv_string_value((yyvsp[0].literal)));
jv_free((yyvsp[0].literal));
}
-#line 2866 "src/parser.c" /* yacc.c:1646 */
+#line 2886 "src/parser.c" /* yacc.c:1648 */
break;
- case 59:
-#line 577 "src/parser.y" /* yacc.c:1646 */
+ case 60:
+#line 580 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_param(jv_string_value((yyvsp[0].literal)));
jv_free((yyvsp[0].literal));
}
-#line 2875 "src/parser.c" /* yacc.c:1646 */
+#line 2895 "src/parser.c" /* yacc.c:1648 */
break;
- case 60:
-#line 584 "src/parser.y" /* yacc.c:1646 */
+ case 61:
+#line 587 "src/parser.y" /* yacc.c:1648 */
{ (yyval.literal) = jv_string("text"); }
-#line 2881 "src/parser.c" /* yacc.c:1646 */
+#line 2901 "src/parser.c" /* yacc.c:1648 */
break;
- case 61:
-#line 584 "src/parser.y" /* yacc.c:1646 */
+ case 62:
+#line 587 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = (yyvsp[-1].blk);
jv_free((yyvsp[-2].literal));
}
-#line 2890 "src/parser.c" /* yacc.c:1646 */
+#line 2910 "src/parser.c" /* yacc.c:1648 */
break;
- case 62:
-#line 588 "src/parser.y" /* yacc.c:1646 */
+ case 63:
+#line 591 "src/parser.y" /* yacc.c:1648 */
{ (yyval.literal) = (yyvsp[-1].literal); }
-#line 2896 "src/parser.c" /* yacc.c:1646 */
+#line 2916 "src/parser.c" /* yacc.c:1648 */
break;
- case 63:
-#line 588 "src/parser.y" /* yacc.c:1646 */
+ case 64:
+#line 591 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = (yyvsp[-1].blk);
jv_free((yyvsp[-2].literal));
}
-#line 2905 "src/parser.c" /* yacc.c:1646 */
+#line 2925 "src/parser.c" /* yacc.c:1648 */
break;
- case 64:
-#line 595 "src/parser.y" /* yacc.c:1646 */
+ case 65:
+#line 598 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_const(jv_string(""));
}
-#line 2913 "src/parser.c" /* yacc.c:1646 */
+#line 2933 "src/parser.c" /* yacc.c:1648 */
break;
- case 65:
-#line 598 "src/parser.y" /* yacc.c:1646 */
+ case 66:
+#line 601 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_binop((yyvsp[-1].blk), gen_const((yyvsp[0].literal)), '+');
}
-#line 2921 "src/parser.c" /* yacc.c:1646 */
+#line 2941 "src/parser.c" /* yacc.c:1648 */
break;
- case 66:
-#line 601 "src/parser.y" /* yacc.c:1646 */
+ case 67:
+#line 604 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_binop((yyvsp[-3].blk), gen_format((yyvsp[-1].blk), jv_copy((yyvsp[-4].literal))), '+');
}
-#line 2929 "src/parser.c" /* yacc.c:1646 */
+#line 2949 "src/parser.c" /* yacc.c:1648 */
break;
- case 67:
-#line 607 "src/parser.y" /* yacc.c:1646 */
+ case 68:
+#line 610 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_cond((yyvsp[-3].blk), (yyvsp[-1].blk), (yyvsp[0].blk));
}
-#line 2937 "src/parser.c" /* yacc.c:1646 */
+#line 2957 "src/parser.c" /* yacc.c:1648 */
break;
- case 68:
-#line 610 "src/parser.y" /* yacc.c:1646 */
+ case 69:
+#line 613 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = (yyvsp[-1].blk);
}
-#line 2945 "src/parser.c" /* yacc.c:1646 */
+#line 2965 "src/parser.c" /* yacc.c:1648 */
break;
- case 69:
-#line 615 "src/parser.y" /* yacc.c:1646 */
+ case 70:
+#line 618 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = block_join((yyvsp[-2].blk), (yyvsp[0].blk));
}
-#line 2953 "src/parser.c" /* yacc.c:1646 */
+#line 2973 "src/parser.c" /* yacc.c:1648 */
break;
- case 70:
-#line 618 "src/parser.y" /* yacc.c:1646 */
+ case 71:
+#line 621 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = BLOCK((yyvsp[0].blk), gen_call("_negate", gen_noop()));
}
-#line 2961 "src/parser.c" /* yacc.c:1646 */
+#line 2981 "src/parser.c" /* yacc.c:1648 */
break;
- case 71:
-#line 621 "src/parser.y" /* yacc.c:1646 */
+ case 72:
+#line 624 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = (yyvsp[0].blk);
}
-#line 2969 "src/parser.c" /* yacc.c:1646 */
+#line 2989 "src/parser.c" /* yacc.c:1648 */
break;
- case 72:
-#line 627 "src/parser.y" /* yacc.c:1646 */
+ case 73:
+#line 630 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_noop();
}
-#line 2977 "src/parser.c" /* yacc.c:1646 */
+#line 2997 "src/parser.c" /* yacc.c:1648 */
break;
- case 73:
-#line 630 "src/parser.y" /* yacc.c:1646 */
+ case 74:
+#line 633 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_call("recurse", gen_noop());
}
-#line 2985 "src/parser.c" /* yacc.c:1646 */
+#line 3005 "src/parser.c" /* yacc.c:1648 */
break;
- case 74:
-#line 633 "src/parser.y" /* yacc.c:1646 */
+ case 75:
+#line 636 "src/parser.y" /* yacc.c:1648 */
{
jv v = jv_string_fmt("*label-%s", jv_string_value((yyvsp[0].literal))); // impossible symbol
(yyval.blk) = gen_location((yyloc), locations,
@@ -2994,231 +3014,231 @@ yyreduce:
jv_free(v);
jv_free((yyvsp[0].literal));
}
-#line 2998 "src/parser.c" /* yacc.c:1646 */
+#line 3018 "src/parser.c" /* yacc.c:1648 */
break;
- case 75:
-#line 641 "src/parser.y" /* yacc.c:1646 */
+ case 76:
+#line 644 "src/parser.y" /* yacc.c:1648 */
{
FAIL((yyloc), "break requires a label to break to");
(yyval.blk) = gen_noop();
}
-#line 3007 "src/parser.c" /* yacc.c:1646 */
+#line 3027 "src/parser.c" /* yacc.c:1648 */
break;
- case 76:
-#line 645 "src/parser.y" /* yacc.c:1646 */
+ case 77:
+#line 648 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_index_opt((yyvsp[-2].blk), gen_const((yyvsp[-1].literal)));
}
-#line 3015 "src/parser.c" /* yacc.c:1646 */
+#line 3035 "src/parser.c" /* yacc.c:1648 */
break;
- case 77:
-#line 648 "src/parser.y" /* yacc.c:1646 */
+ case 78:
+#line 651 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_index_opt(gen_noop(), gen_const((yyvsp[-1].literal)));
}
-#line 3023 "src/parser.c" /* yacc.c:1646 */
+#line 3043 "src/parser.c" /* yacc.c:1648 */
break;
- case 78:
-#line 651 "src/parser.y" /* yacc.c:1646 */
+ case 79:
+#line 654 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_index_opt((yyvsp[-3].blk), (yyvsp[-1].blk));
}
-#line 3031 "src/parser.c" /* yacc.c:1646 */
+#line 3051 "src/parser.c" /* yacc.c:1648 */
break;
- case 79:
-#line 654 "src/parser.y" /* yacc.c:1646 */
+ case 80:
+#line 657 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_index_opt(gen_noop(), (yyvsp[-1].blk));
}
-#line 3039 "src/parser.c" /* yacc.c:1646 */
+#line 3059 "src/parser.c" /* yacc.c:1648 */
break;
- case 80:
-#line 657 "src/parser.y" /* yacc.c:1646 */
+ case 81:
+#line 660 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_index((yyvsp[-1].blk), gen_const((yyvsp[0].literal)));
}
-#line 3047 "src/parser.c" /* yacc.c:1646 */
+#line 3067 "src/parser.c" /* yacc.c:1648 */
break;
- case 81:
-#line 660 "src/parser.y" /* yacc.c:1646 */
+ case 82:
+#line 663 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_index(gen_noop(), gen_const((yyvsp[0].literal)));
}
-#line 3055 "src/parser.c" /* yacc.c:1646 */
+#line 3075 "src/parser.c" /* yacc.c:1648 */
break;
- case 82:
-#line 663 "src/parser.y" /* yacc.c:1646 */
+ case 83:
+#line 666 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_index((yyvsp[-2].blk), (yyvsp[0].blk));
}
-#line 3063 "src/parser.c" /* yacc.c:1646 */
+#line 3083 "src/parser.c" /* yacc.c:1648 */
break;
- case 83:
-#line 666 "src/parser.y" /* yacc.c:1646 */
+ case 84:
+#line 669 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_index(gen_noop(), (yyvsp[0].blk));
}
-#line 3071 "src/parser.c" /* yacc.c:1646 */
+#line 3091 "src/parser.c" /* yacc.c:1648 */
break;
- case 84:
-#line 669 "src/parser.y" /* yacc.c:1646 */
+ case 85:
+#line 672 "src/parser.y" /* yacc.c:1648 */
{
FAIL((yyloc), "try .[\"field\"] instead of .field for unusually named fields");
(yyval.blk) = gen_noop();
}
-#line 3080 "src/parser.c" /* yacc.c:1646 */
+#line 3100 "src/parser.c" /* yacc.c:1648 */
break;
- case 85:
-#line 673 "src/parser.y" /* yacc.c:1646 */
+ case 86:
+#line 676 "src/parser.y" /* yacc.c:1648 */
{
jv_free((yyvsp[-1].literal));
FAIL((yyloc), "try .[\"field\"] instead of .field for unusually named fields");
(yyval.blk) = gen_noop();
}
-#line 3090 "src/parser.c" /* yacc.c:1646 */
+#line 3110 "src/parser.c" /* yacc.c:1648 */
break;
- case 86:
-#line 679 "src/parser.y" /* yacc.c:1646 */
+ case 87:
+#line 682 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_index_opt((yyvsp[-4].blk), (yyvsp[-2].blk));
}
-#line 3098 "src/parser.c" /* yacc.c:1646 */
+#line 3118 "src/parser.c" /* yacc.c:1648 */
break;
- case 87:
-#line 682 "src/parser.y" /* yacc.c:1646 */
+ case 88:
+#line 685 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_index((yyvsp[-3].blk), (yyvsp[-1].blk));
}
-#line 3106 "src/parser.c" /* yacc.c:1646 */
+#line 3126 "src/parser.c" /* yacc.c:1648 */
break;
- case 88:
-#line 685 "src/parser.y" /* yacc.c:1646 */
+ case 89:
+#line 688 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = block_join((yyvsp[-3].blk), gen_op_simple(EACH_OPT));
}
-#line 3114 "src/parser.c" /* yacc.c:1646 */
+#line 3134 "src/parser.c" /* yacc.c:1648 */
break;
- case 89:
-#line 688 "src/parser.y" /* yacc.c:1646 */
+ case 90:
+#line 691 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = block_join((yyvsp[-2].blk), gen_op_simple(EACH));
}
-#line 3122 "src/parser.c" /* yacc.c:1646 */
+#line 3142 "src/parser.c" /* yacc.c:1648 */
break;
- case 90:
-#line 691 "src/parser.y" /* yacc.c:1646 */
+ case 91:
+#line 694 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_slice_index((yyvsp[-6].blk), (yyvsp[-4].blk), (yyvsp[-2].blk), INDEX_OPT);
}
-#line 3130 "src/parser.c" /* yacc.c:1646 */
+#line 3150 "src/parser.c" /* yacc.c:1648 */
break;
- case 91:
-#line 694 "src/parser.y" /* yacc.c:1646 */
+ case 92:
+#line 697 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_slice_index((yyvsp[-5].blk), (yyvsp[-3].blk), gen_const(jv_null()), INDEX_OPT);
}
-#line 3138 "src/parser.c" /* yacc.c:1646 */
+#line 3158 "src/parser.c" /* yacc.c:1648 */
break;
- case 92:
-#line 697 "src/parser.y" /* yacc.c:1646 */
+ case 93:
+#line 700 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_slice_index((yyvsp[-5].blk), gen_const(jv_null()), (yyvsp[-2].blk), INDEX_OPT);
}
-#line 3146 "src/parser.c" /* yacc.c:1646 */
+#line 3166 "src/parser.c" /* yacc.c:1648 */
break;
- case 93:
-#line 700 "src/parser.y" /* yacc.c:1646 */
+ case 94:
+#line 703 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_slice_index((yyvsp[-5].blk), (yyvsp[-3].blk), (yyvsp[-1].blk), INDEX);
}
-#line 3154 "src/parser.c" /* yacc.c:1646 */
+#line 3174 "src/parser.c" /* yacc.c:1648 */
break;
- case 94:
-#line 703 "src/parser.y" /* yacc.c:1646 */
+ case 95:
+#line 706 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_slice_index((yyvsp[-4].blk), (yyvsp[-2].blk), gen_const(jv_null()), INDEX);
}
-#line 3162 "src/parser.c" /* yacc.c:1646 */
+#line 3182 "src/parser.c" /* yacc.c:1648 */
break;
- case 95:
-#line 706 "src/parser.y" /* yacc.c:1646 */
+ case 96:
+#line 709 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_slice_index((yyvsp[-4].blk), gen_const(jv_null()), (yyvsp[-1].blk), INDEX);
}
-#line 3170 "src/parser.c" /* yacc.c:1646 */
+#line 3190 "src/parser.c" /* yacc.c:1648 */
break;
- case 96:
-#line 709 "src/parser.y" /* yacc.c:1646 */
+ case 97:
+#line 712 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_const((yyvsp[0].literal));
}
-#line 3178 "src/parser.c" /* yacc.c:1646 */
+#line 3198 "src/parser.c" /* yacc.c:1648 */
break;
- case 97:
-#line 712 "src/parser.y" /* yacc.c:1646 */
+ case 98:
+#line 715 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = (yyvsp[0].blk);
}
-#line 3186 "src/parser.c" /* yacc.c:1646 */
+#line 3206 "src/parser.c" /* yacc.c:1648 */
break;
- case 98:
-#line 715 "src/parser.y" /* yacc.c:1646 */
+ case 99:
+#line 718 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_format(gen_noop(), (yyvsp[0].literal));
}
-#line 3194 "src/parser.c" /* yacc.c:1646 */
+#line 3214 "src/parser.c" /* yacc.c:1648 */
break;
- case 99:
-#line 718 "src/parser.y" /* yacc.c:1646 */
+ case 100:
+#line 721 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = (yyvsp[-1].blk);
}
-#line 3202 "src/parser.c" /* yacc.c:1646 */
+#line 3222 "src/parser.c" /* yacc.c:1648 */
break;
- case 100:
-#line 721 "src/parser.y" /* yacc.c:1646 */
+ case 101:
+#line 724 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_collect((yyvsp[-1].blk));
}
-#line 3210 "src/parser.c" /* yacc.c:1646 */
+#line 3230 "src/parser.c" /* yacc.c:1648 */
break;
- case 101:
-#line 724 "src/parser.y" /* yacc.c:1646 */
+ case 102:
+#line 727 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_const(jv_array());
}
-#line 3218 "src/parser.c" /* yacc.c:1646 */
+#line 3238 "src/parser.c" /* yacc.c:1648 */
break;
- case 102:
-#line 727 "src/parser.y" /* yacc.c:1646 */
+ case 103:
+#line 730 "src/parser.y" /* yacc.c:1648 */
{
block o = gen_const_object((yyvsp[-1].blk));
if (o.first != NULL)
@@ -3226,29 +3246,29 @@ yyreduce:
else
(yyval.blk) = BLOCK(gen_subexp(gen_const(jv_object())), (yyvsp[-1].blk), gen_op_simple(POP));
}
-#line 3230 "src/parser.c" /* yacc.c:1646 */
+#line 3250 "src/parser.c" /* yacc.c:1648 */
break;
- case 103:
-#line 734 "src/parser.y" /* yacc.c:1646 */
+ case 104:
+#line 737 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_const(JV_OBJECT(jv_string("file"), jv_copy(locations->fname),
jv_string("line"), jv_number(locfile_get_line(locations, (yyloc).start) + 1)));
}
-#line 3239 "src/parser.c" /* yacc.c:1646 */
+#line 3259 "src/parser.c" /* yacc.c:1648 */
break;
- case 104:
-#line 738 "src/parser.y" /* yacc.c:1646 */
+ case 105:
+#line 741 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_location((yyloc), locations, gen_op_unbound(LOADV, jv_string_value((yyvsp[0].literal))));
jv_free((yyvsp[0].literal));
}
-#line 3248 "src/parser.c" /* yacc.c:1646 */
+#line 3268 "src/parser.c" /* yacc.c:1648 */
break;
- case 105:
-#line 742 "src/parser.y" /* yacc.c:1646 */
+ case 106:
+#line 745 "src/parser.y" /* yacc.c:1648 */
{
const char *s = jv_string_value((yyvsp[0].literal));
if (strcmp(s, "false") == 0)
@@ -3261,198 +3281,198 @@ yyreduce:
(yyval.blk) = gen_location((yyloc), locations, gen_call(s, gen_noop()));
jv_free((yyvsp[0].literal));
}
-#line 3265 "src/parser.c" /* yacc.c:1646 */
+#line 3285 "src/parser.c" /* yacc.c:1648 */
break;
- case 106:
-#line 754 "src/parser.y" /* yacc.c:1646 */
+ case 107:
+#line 757 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_call(jv_string_value((yyvsp[-3].literal)), (yyvsp[-1].blk));
(yyval.blk) = gen_location((yylsp[-3]), locations, (yyval.blk));
jv_free((yyvsp[-3].literal));
}
-#line 3275 "src/parser.c" /* yacc.c:1646 */
+#line 3295 "src/parser.c" /* yacc.c:1648 */
break;
- case 107:
-#line 759 "src/parser.y" /* yacc.c:1646 */
+ case 108:
+#line 762 "src/parser.y" /* yacc.c:1648 */
{ (yyval.blk) = gen_noop(); }
-#line 3281 "src/parser.c" /* yacc.c:1646 */
+#line 3301 "src/parser.c" /* yacc.c:1648 */
break;
- case 108:
-#line 760 "src/parser.y" /* yacc.c:1646 */
+ case 109:
+#line 763 "src/parser.y" /* yacc.c:1648 */
{ (yyval.blk) = gen_noop(); }
-#line 3287 "src/parser.c" /* yacc.c:1646 */
+#line 3307 "src/parser.c" /* yacc.c:1648 */
break;
- case 109:
-#line 761 "src/parser.y" /* yacc.c:1646 */
+ case 110:
+#line 764 "src/parser.y" /* yacc.c:1648 */
{ (yyval.blk) = (yyvsp[-3].blk); }
-#line 3293 "src/parser.c" /* yacc.c:1646 */
+#line 3313 "src/parser.c" /* yacc.c:1648 */
break;
- case 110:
-#line 762 "src/parser.y" /* yacc.c:1646 */
+ case 111:
+#line 765 "src/parser.y" /* yacc.c:1648 */
{ (yyval.blk) = gen_noop(); }
-#line 3299 "src/parser.c" /* yacc.c:1646 */
+#line 3319 "src/parser.c" /* yacc.c:1648 */
break;
- case 111:
-#line 765 "src/parser.y" /* yacc.c:1646 */
+ case 112:
+#line 768 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = (yyvsp[0].blk);
}
-#line 3307 "src/parser.c" /* yacc.c:1646 */
+#line 3327 "src/parser.c" /* yacc.c:1648 */
break;
- case 112:
-#line 768 "src/parser.y" /* yacc.c:1646 */
+ case 113:
+#line 771 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = BLOCK((yyvsp[-2].blk), (yyvsp[0].blk));
}
-#line 3315 "src/parser.c" /* yacc.c:1646 */
+#line 3335 "src/parser.c" /* yacc.c:1648 */
break;
- case 113:
-#line 773 "src/parser.y" /* yacc.c:1646 */
+ case 114:
+#line 776 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_lambda((yyvsp[0].blk));
}
-#line 3323 "src/parser.c" /* yacc.c:1646 */
+#line 3343 "src/parser.c" /* yacc.c:1648 */
break;
- case 114:
-#line 778 "src/parser.y" /* yacc.c:1646 */
+ case 115:
+#line 781 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = BLOCK((yyvsp[-2].blk), gen_destructure_alt((yyvsp[0].blk)));
}
-#line 3331 "src/parser.c" /* yacc.c:1646 */
+#line 3351 "src/parser.c" /* yacc.c:1648 */
break;
- case 115:
-#line 781 "src/parser.y" /* yacc.c:1646 */
+ case 116:
+#line 784 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_destructure_alt((yyvsp[0].blk));
}
-#line 3339 "src/parser.c" /* yacc.c:1646 */
+#line 3359 "src/parser.c" /* yacc.c:1648 */
break;
- case 116:
-#line 786 "src/parser.y" /* yacc.c:1646 */
+ case 117:
+#line 789 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = BLOCK((yyvsp[-2].blk), (yyvsp[0].blk));
}
-#line 3347 "src/parser.c" /* yacc.c:1646 */
+#line 3367 "src/parser.c" /* yacc.c:1648 */
break;
- case 117:
-#line 789 "src/parser.y" /* yacc.c:1646 */
+ case 118:
+#line 792 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = (yyvsp[0].blk);
}
-#line 3355 "src/parser.c" /* yacc.c:1646 */
+#line 3375 "src/parser.c" /* yacc.c:1648 */
break;
- case 118:
-#line 794 "src/parser.y" /* yacc.c:1646 */
+ case 119:
+#line 797 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_op_unbound(STOREV, jv_string_value((yyvsp[0].literal)));
jv_free((yyvsp[0].literal));
}
-#line 3364 "src/parser.c" /* yacc.c:1646 */
+#line 3384 "src/parser.c" /* yacc.c:1648 */
break;
- case 119:
-#line 798 "src/parser.y" /* yacc.c:1646 */
+ case 120:
+#line 801 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = BLOCK((yyvsp[-1].blk), gen_op_simple(POP));
}
-#line 3372 "src/parser.c" /* yacc.c:1646 */
+#line 3392 "src/parser.c" /* yacc.c:1648 */
break;
- case 120:
-#line 801 "src/parser.y" /* yacc.c:1646 */
+ case 121:
+#line 804 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = BLOCK((yyvsp[-1].blk), gen_op_simple(POP));
}
-#line 3380 "src/parser.c" /* yacc.c:1646 */
+#line 3400 "src/parser.c" /* yacc.c:1648 */
break;
- case 121:
-#line 806 "src/parser.y" /* yacc.c:1646 */
+ case 122:
+#line 809 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_array_matcher(gen_noop(), (yyvsp[0].blk));
}
-#line 3388 "src/parser.c" /* yacc.c:1646 */
+#line 3408 "src/parser.c" /* yacc.c:1648 */
break;
- case 122:
-#line 809 "src/parser.y" /* yacc.c:1646 */
+ case 123:
+#line 812 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_array_matcher((yyvsp[-2].blk), (yyvsp[0].blk));
}
-#line 3396 "src/parser.c" /* yacc.c:1646 */
+#line 3416 "src/parser.c" /* yacc.c:1648 */
break;
- case 123:
-#line 814 "src/parser.y" /* yacc.c:1646 */
+ case 124:
+#line 817 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = (yyvsp[0].blk);
}
-#line 3404 "src/parser.c" /* yacc.c:1646 */
+#line 3424 "src/parser.c" /* yacc.c:1648 */
break;
- case 124:
-#line 817 "src/parser.y" /* yacc.c:1646 */
+ case 125:
+#line 820 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = BLOCK((yyvsp[-2].blk), (yyvsp[0].blk));
}
-#line 3412 "src/parser.c" /* yacc.c:1646 */
+#line 3432 "src/parser.c" /* yacc.c:1648 */
break;
- case 125:
-#line 822 "src/parser.y" /* yacc.c:1646 */
+ case 126:
+#line 825 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_object_matcher(gen_const((yyvsp[0].literal)), gen_op_unbound(STOREV, jv_string_value((yyvsp[0].literal))));
}
-#line 3420 "src/parser.c" /* yacc.c:1646 */
+#line 3440 "src/parser.c" /* yacc.c:1648 */
break;
- case 126:
-#line 825 "src/parser.y" /* yacc.c:1646 */
+ case 127:
+#line 828 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_object_matcher(gen_const((yyvsp[-2].literal)), BLOCK(gen_op_simple(DUP), gen_op_unbound(STOREV, jv_string_value((yyvsp[-2].literal))), (yyvsp[0].blk)));
}
-#line 3428 "src/parser.c" /* yacc.c:1646 */
+#line 3448 "src/parser.c" /* yacc.c:1648 */
break;
- case 127:
-#line 828 "src/parser.y" /* yacc.c:1646 */
+ case 128:
+#line 831 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_object_matcher(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk));
}
-#line 3436 "src/parser.c" /* yacc.c:1646 */
+#line 3456 "src/parser.c" /* yacc.c:1648 */
break;
- case 128:
-#line 831 "src/parser.y" /* yacc.c:1646 */
+ case 129:
+#line 834 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_object_matcher(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk));
}
-#line 3444 "src/parser.c" /* yacc.c:1646 */
+#line 3464 "src/parser.c" /* yacc.c:1648 */
break;
- case 129:
-#line 834 "src/parser.y" /* yacc.c:1646 */
+ case 130:
+#line 837 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_object_matcher((yyvsp[-2].blk), (yyvsp[0].blk));
}
-#line 3452 "src/parser.c" /* yacc.c:1646 */
+#line 3472 "src/parser.c" /* yacc.c:1648 */
break;
- case 130:
-#line 837 "src/parser.y" /* yacc.c:1646 */
+ case 131:
+#line 840 "src/parser.y" /* yacc.c:1648 */
{
jv msg = check_object_key((yyvsp[-3].blk));
if (jv_is_valid(msg)) {
@@ -3461,258 +3481,258 @@ yyreduce:
jv_free(msg);
(yyval.blk) = gen_object_matcher((yyvsp[-3].blk), (yyvsp[0].blk));
}
-#line 3465 "src/parser.c" /* yacc.c:1646 */
+#line 3485 "src/parser.c" /* yacc.c:1648 */
break;
- case 131:
-#line 845 "src/parser.y" /* yacc.c:1646 */
+ case 132:
+#line 848 "src/parser.y" /* yacc.c:1648 */
{
FAIL((yyloc), "May need parentheses around object key expression");
(yyval.blk) = (yyvsp[0].blk);
}
-#line 3474 "src/parser.c" /* yacc.c:1646 */
+#line 3494 "src/parser.c" /* yacc.c:1648 */
break;
- case 132:
-#line 851 "src/parser.y" /* yacc.c:1646 */
+ case 133:
+#line 854 "src/parser.y" /* yacc.c:1648 */
{
(yyval.literal) = jv_string("as");
}
-#line 3482 "src/parser.c" /* yacc.c:1646 */
+#line 3502 "src/parser.c" /* yacc.c:1648 */
break;
- case 133:
-#line 854 "src/parser.y" /* yacc.c:1646 */
+ case 134:
+#line 857 "src/parser.y" /* yacc.c:1648 */
{
(yyval.literal) = jv_string("def");
}
-#line 3490 "src/parser.c" /* yacc.c:1646 */
+#line 3510 "src/parser.c" /* yacc.c:1648 */
break;
- case 134:
-#line 857 "src/parser.y" /* yacc.c:1646 */
+ case 135:
+#line 860 "src/parser.y" /* yacc.c:1648 */
{
(yyval.literal) = jv_string("module");
}
-#line 3498 "src/parser.c" /* yacc.c:1646 */
+#line 3518 "src/parser.c" /* yacc.c:1648 */
break;
- case 135:
-#line 860 "src/parser.y" /* yacc.c:1646 */
+ case 136:
+#line 863 "src/parser.y" /* yacc.c:1648 */
{
(yyval.literal) = jv_string("import");
}
-#line 3506 "src/parser.c" /* yacc.c:1646 */
+#line 3526 "src/parser.c" /* yacc.c:1648 */
break;
- case 136:
-#line 863 "src/parser.y" /* yacc.c:1646 */
+ case 137:
+#line 866 "src/parser.y" /* yacc.c:1648 */
{
(yyval.literal) = jv_string("include");
}
-#line 3514 "src/parser.c" /* yacc.c:1646 */
+#line 3534 "src/parser.c" /* yacc.c:1648 */
break;
- case 137:
-#line 866 "src/parser.y" /* yacc.c:1646 */
+ case 138:
+#line 869 "src/parser.y" /* yacc.c:1648 */
{
(yyval.literal) = jv_string("if");
}
-#line 3522 "src/parser.c" /* yacc.c:1646 */
+#line 3542 "src/parser.c" /* yacc.c:1648 */
break;
- case 138:
-#line 869 "src/parser.y" /* yacc.c:1646 */
+ case 139:
+#line 872 "src/parser.y" /* yacc.c:1648 */
{
(yyval.literal) = jv_string("then");
}
-#line 3530 "src/parser.c" /* yacc.c:1646 */
+#line 3550 "src/parser.c" /* yacc.c:1648 */
break;
- case 139:
-#line 872 "src/parser.y" /* yacc.c:1646 */
+ case 140:
+#line 875 "src/parser.y" /* yacc.c:1648 */
{
(yyval.literal) = jv_string("else");
}
-#line 3538 "src/parser.c" /* yacc.c:1646 */
+#line 3558 "src/parser.c" /* yacc.c:1648 */
break;
- case 140:
-#line 875 "src/parser.y" /* yacc.c:1646 */
+ case 141:
+#line 878 "src/parser.y" /* yacc.c:1648 */
{
(yyval.literal) = jv_string("elif");
}
-#line 3546 "src/parser.c" /* yacc.c:1646 */
+#line 3566 "src/parser.c" /* yacc.c:1648 */
break;
- case 141:
-#line 878 "src/parser.y" /* yacc.c:1646 */
+ case 142:
+#line 881 "src/parser.y" /* yacc.c:1648 */
{
(yyval.literal) = jv_string("reduce");
}
-#line 3554 "src/parser.c" /* yacc.c:1646 */
+#line 3574 "src/parser.c" /* yacc.c:1648 */
break;
- case 142:
-#line 881 "src/parser.y" /* yacc.c:1646 */
+ case 143:
+#line 884 "src/parser.y" /* yacc.c:1648 */
{
(yyval.literal) = jv_string("foreach");
}
-#line 3562 "src/parser.c" /* yacc.c:1646 */
+#line 3582 "src/parser.c" /* yacc.c:1648 */
break;
- case 143:
-#line 884 "src/parser.y" /* yacc.c:1646 */
+ case 144:
+#line 887 "src/parser.y" /* yacc.c:1648 */
{
(yyval.literal) = jv_string("end");
}
-#line 3570 "src/parser.c" /* yacc.c:1646 */
+#line 3590 "src/parser.c" /* yacc.c:1648 */
break;
- case 144:
-#line 887 "src/parser.y" /* yacc.c:1646 */
+ case 145:
+#line 890 "src/parser.y" /* yacc.c:1648 */
{
(yyval.literal) = jv_string("and");
}
-#line 3578 "src/parser.c" /* yacc.c:1646 */
+#line 3598 "src/parser.c" /* yacc.c:1648 */
break;
- case 145:
-#line 890 "src/parser.y" /* yacc.c:1646 */
+ case 146:
+#line 893 "src/parser.y" /* yacc.c:1648 */
{
(yyval.literal) = jv_string("or");
}
-#line 3586 "src/parser.c" /* yacc.c:1646 */
+#line 3606 "src/parser.c" /* yacc.c:1648 */
break;
- case 146:
-#line 893 "src/parser.y" /* yacc.c:1646 */
+ case 147:
+#line 896 "src/parser.y" /* yacc.c:1648 */
{
(yyval.literal) = jv_string("try");
}
-#line 3594 "src/parser.c" /* yacc.c:1646 */
+#line 3614 "src/parser.c" /* yacc.c:1648 */
break;
- case 147:
-#line 896 "src/parser.y" /* yacc.c:1646 */
+ case 148:
+#line 899 "src/parser.y" /* yacc.c:1648 */
{
(yyval.literal) = jv_string("catch");
}
-#line 3602 "src/parser.c" /* yacc.c:1646 */
+#line 3622 "src/parser.c" /* yacc.c:1648 */
break;
- case 148:
-#line 899 "src/parser.y" /* yacc.c:1646 */
+ case 149:
+#line 902 "src/parser.y" /* yacc.c:1648 */
{
(yyval.literal) = jv_string("label");
}
-#line 3610 "src/parser.c" /* yacc.c:1646 */
+#line 3630 "src/parser.c" /* yacc.c:1648 */
break;
- case 149:
-#line 902 "src/parser.y" /* yacc.c:1646 */
+ case 150:
+#line 905 "src/parser.y" /* yacc.c:1648 */
{
(yyval.literal) = jv_string("break");
}
-#line 3618 "src/parser.c" /* yacc.c:1646 */
+#line 3638 "src/parser.c" /* yacc.c:1648 */
break;
- case 150:
-#line 905 "src/parser.y" /* yacc.c:1646 */
+ case 151:
+#line 908 "src/parser.y" /* yacc.c:1648 */
{
(yyval.literal) = jv_string("__loc__");
}
-#line 3626 "src/parser.c" /* yacc.c:1646 */
+#line 3646 "src/parser.c" /* yacc.c:1648 */
break;
- case 151:
-#line 910 "src/parser.y" /* yacc.c:1646 */
+ case 152:
+#line 913 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk)=gen_noop();
}
-#line 3634 "src/parser.c" /* yacc.c:1646 */
+#line 3654 "src/parser.c" /* yacc.c:1648 */
break;
- case 152:
-#line 913 "src/parser.y" /* yacc.c:1646 */
+ case 153:
+#line 916 "src/parser.y" /* yacc.c:1648 */
{ (yyval.blk) = (yyvsp[0].blk); }
-#line 3640 "src/parser.c" /* yacc.c:1646 */
+#line 3660 "src/parser.c" /* yacc.c:1648 */
break;
- case 153:
-#line 914 "src/parser.y" /* yacc.c:1646 */
+ case 154:
+#line 917 "src/parser.y" /* yacc.c:1648 */
{ (yyval.blk)=block_join((yyvsp[-2].blk), (yyvsp[0].blk)); }
-#line 3646 "src/parser.c" /* yacc.c:1646 */
+#line 3666 "src/parser.c" /* yacc.c:1648 */
break;
- case 154:
-#line 915 "src/parser.y" /* yacc.c:1646 */
+ case 155:
+#line 918 "src/parser.y" /* yacc.c:1648 */
{ (yyval.blk) = (yyvsp[0].blk); }
-#line 3652 "src/parser.c" /* yacc.c:1646 */
+#line 3672 "src/parser.c" /* yacc.c:1648 */
break;
- case 155:
-#line 918 "src/parser.y" /* yacc.c:1646 */
+ case 156:
+#line 921 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_dictpair(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk));
}
-#line 3660 "src/parser.c" /* yacc.c:1646 */
+#line 3680 "src/parser.c" /* yacc.c:1648 */
break;
- case 156:
-#line 921 "src/parser.y" /* yacc.c:1646 */
+ case 157:
+#line 924 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_dictpair(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk));
}
-#line 3668 "src/parser.c" /* yacc.c:1646 */
+#line 3688 "src/parser.c" /* yacc.c:1648 */
break;
- case 157:
-#line 924 "src/parser.y" /* yacc.c:1646 */
+ case 158:
+#line 927 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_dictpair((yyvsp[-2].blk), (yyvsp[0].blk));
}
-#line 3676 "src/parser.c" /* yacc.c:1646 */
+#line 3696 "src/parser.c" /* yacc.c:1648 */
break;
- case 158:
-#line 927 "src/parser.y" /* yacc.c:1646 */
+ case 159:
+#line 930 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_dictpair((yyvsp[0].blk), BLOCK(gen_op_simple(POP), gen_op_simple(DUP2),
gen_op_simple(DUP2), gen_op_simple(INDEX)));
}
-#line 3685 "src/parser.c" /* yacc.c:1646 */
+#line 3705 "src/parser.c" /* yacc.c:1648 */
break;
- case 159:
-#line 931 "src/parser.y" /* yacc.c:1646 */
+ case 160:
+#line 934 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_dictpair(gen_location((yyloc), locations, gen_op_unbound(LOADV, jv_string_value((yyvsp[-2].literal)))),
(yyvsp[0].blk));
}
-#line 3694 "src/parser.c" /* yacc.c:1646 */
+#line 3714 "src/parser.c" /* yacc.c:1648 */
break;
- case 160:
-#line 935 "src/parser.y" /* yacc.c:1646 */
+ case 161:
+#line 938 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_dictpair(gen_const((yyvsp[0].literal)),
gen_location((yyloc), locations, gen_op_unbound(LOADV, jv_string_value((yyvsp[0].literal)))));
}
-#line 3703 "src/parser.c" /* yacc.c:1646 */
+#line 3723 "src/parser.c" /* yacc.c:1648 */
break;
- case 161:
-#line 939 "src/parser.y" /* yacc.c:1646 */
+ case 162:
+#line 942 "src/parser.y" /* yacc.c:1648 */
{
(yyval.blk) = gen_dictpair(gen_const(jv_copy((yyvsp[0].literal))),
gen_index(gen_noop(), gen_const((yyvsp[0].literal))));
}
-#line 3712 "src/parser.c" /* yacc.c:1646 */
+#line 3732 "src/parser.c" /* yacc.c:1648 */
break;
- case 162:
-#line 943 "src/parser.y" /* yacc.c:1646 */
+ case 163:
+#line 946 "src/parser.y" /* yacc.c:1648 */
{
jv msg = check_object_key((yyvsp[-3].blk));
if (jv_is_valid(msg)) {
@@ -3721,20 +3741,20 @@ yyreduce:
jv_free(msg);
(yyval.blk) = gen_dictpair((yyvsp[-3].blk), (yyvsp[0].blk));
}
-#line 3725 "src/parser.c" /* yacc.c:1646 */
+#line 3745 "src/parser.c" /* yacc.c:1648 */
break;
- case 163:
-#line 951 "src/parser.y" /* yacc.c:1646 */
+ case 164:
+#line 954 "src/parser.y" /* yacc.c:1648 */
{
FAIL((yyloc), "May need parentheses around object key expression");
(yyval.blk) = (yyvsp[0].blk);
}
-#line 3734 "src/parser.c" /* yacc.c:1646 */
+#line 3754 "src/parser.c" /* yacc.c:1648 */
break;
-#line 3738 "src/parser.c" /* yacc.c:1646 */
+#line 3758 "src/parser.c" /* yacc.c:1648 */
default: break;
}
/* User semantic actions sometimes alter yychar, and that requires
@@ -3857,7 +3877,6 @@ yyerrorlab:
if (/*CONSTCOND*/ 0)
goto yyerrorlab;
- yyerror_range[1] = yylsp[1-yylen];
/* Do not reclaim the symbols of the rule whose action triggered
this YYERROR. */
YYPOPSTACK (yylen);
@@ -3969,7 +3988,7 @@ yyreturn:
#endif
return yyresult;
}
-#line 955 "src/parser.y" /* yacc.c:1906 */
+#line 958 "src/parser.y" /* yacc.c:1907 */
int jq_parse(struct locfile* locations, block* answer) {
diff --git a/src/parser.h b/src/parser.h
index b15c53a..e83a000 100644
--- a/src/parser.h
+++ b/src/parser.h
@@ -1,8 +1,8 @@
-/* A Bison parser, made by GNU Bison 3.0.4. */
+/* A Bison parser, made by GNU Bison 3.0.5. */
/* Bison interface for Yacc-like parsers in C
- Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
+ Copyright (C) 1984, 1989-1990, 2000-2015, 2018 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -40,7 +40,7 @@
extern int yydebug;
#endif
/* "%code requires" blocks. */
-#line 11 "src/parser.y" /* yacc.c:1909 */
+#line 11 "src/parser.y" /* yacc.c:1910 */
#include "locfile.h"
struct lexer_param;
@@ -57,7 +57,7 @@ struct lexer_param;
} \
} while (0)
-#line 61 "src/parser.h" /* yacc.c:1909 */
+#line 61 "src/parser.h" /* yacc.c:1910 */
/* Token type. */
#ifndef YYTOKENTYPE
@@ -163,12 +163,12 @@ struct lexer_param;
union YYSTYPE
{
-#line 31 "src/parser.y" /* yacc.c:1909 */
+#line 31 "src/parser.y" /* yacc.c:1910 */
jv literal;
block blk;
-#line 172 "src/parser.h" /* yacc.c:1909 */
+#line 172 "src/parser.h" /* yacc.c:1910 */
};
typedef union YYSTYPE YYSTYPE;
diff --git a/src/parser.y b/src/parser.y
index 946a958..6255850 100644
--- a/src/parser.y
+++ b/src/parser.y
@@ -357,6 +357,9 @@ Term "as" Patterns '|' Exp {
"if" Exp "then" Exp ElseBody {
$$ = gen_cond($2, $4, $5);
} |
+"if" Exp "then" Exp "end" {
+ $$ = gen_cond($2, $4, gen_noop());
+} |
"if" Exp "then" error {
FAIL(@$, "Possibly unterminated 'if' statement");
$$ = $2;
diff --git a/tests/jq.test b/tests/jq.test
index cbdc0bf..c027f53 100644
--- a/tests/jq.test
+++ b/tests/jq.test
@@ -1036,6 +1036,19 @@ null
null
[5,6]
+[if true then 3 end]
+7
+[3]
+
+[if false then 3 end]
+7
+[7]
+
+[if false then 3 else . end]
+7
+[7]
+
+
[.[] | [.foo[] // .bar]]
[{"foo":[1,2], "bar": 42}, {"foo":[1], "bar": null}, {"foo":[null,false,3], "bar": 18}, {"foo":[], "bar":42}, {"foo": [null,false,null], "bar": 41}]
[[1,2], [1], [3], [42], [41]]