summaryrefslogtreecommitdiffstats
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)
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 f82bdd1a..93a924ae 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,