From 7935d307f06133287c381110d1bcd4ac39aa9080 Mon Sep 17 00:00:00 2001 From: Nicolas Williams Date: Mon, 20 Feb 2017 19:24:22 -0600 Subject: Allow . as {$a:$b} destructuring --- src/parser.c | 1190 +++++++++++++++++++++++++++++---------------------------- src/parser.y | 3 + tests/jq.test | 4 + 3 files changed, 607 insertions(+), 590 deletions(-) diff --git a/src/parser.c b/src/parser.c index 7491326b..30973503 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 1972 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 69 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 30 /* YYNRULES -- Number of rules. */ -#define YYNRULES 161 +#define YYNRULES 162 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 311 +#define YYNSTATES 313 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ @@ -751,10 +751,10 @@ static const yytype_uint16 yyrline[] = 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, - 842, 848, 851, 854, 857, 860, 863, 866, 869, 872, + 837, 845, 851, 854, 857, 860, 863, 866, 869, 872, 875, 878, 881, 884, 887, 890, 893, 896, 899, 902, - 907, 910, 911, 912, 915, 918, 921, 924, 928, 932, - 936, 944 + 905, 910, 913, 914, 915, 918, 921, 924, 927, 931, + 935, 939, 947 }; #endif @@ -802,47 +802,47 @@ static const yytype_uint16 yytoknum[] = #define yypact_value_is_default(Yystate) \ (!!((Yystate) == (-158))) -#define YYTABLE_NINF -151 +#define YYTABLE_NINF -152 #define yytable_value_is_error(Yytable_value) \ - (!!((Yytable_value) == (-151))) + (!!((Yytable_value) == (-152))) /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ static const yytype_int16 yypact[] = { - 21, 764, 3, 59, -45, -8, -158, 7, -158, 56, - 764, 193, 193, 764, 18, 1, -158, 764, 165, 10, - 279, 512, 345, 1282, 764, -158, 8, -158, 4, 4, - 764, 59, 672, 764, -158, -158, 11, 1638, 14, 17, - 34, 113, -158, 116, -158, 60, 62, 1112, -158, -158, - -158, 123, 7, 67, 61, -158, 909, -24, 63, -158, + 21, 772, 43, 63, -6, 12, -158, 80, -158, 122, + 772, 193, 193, 772, 74, 5, -158, 772, 522, 10, + 279, 455, 152, 1290, 772, -158, 8, -158, 3, 3, + 772, 63, 680, 772, -158, -158, 67, 1646, 58, 130, + 106, 133, -158, 135, -158, 20, 83, 1120, -158, -158, + -158, 140, 80, 93, 86, -158, 917, -23, 91, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, - -158, -158, -158, -158, -158, -158, -158, -158, 764, 126, - 68, 70, 66, 88, 764, 764, 764, 764, 764, 764, - 764, 764, 764, 764, 764, 764, 764, 764, 764, 764, - 764, 764, 764, 764, 764, 764, 764, 764, -158, -158, - 1806, 81, -16, 4, 445, 130, -158, -158, -158, 1806, - 764, -158, -158, 1333, 1806, -19, -158, -158, 2, 764, - 579, -16, -16, 644, 100, -158, 13, -158, -158, -158, - -158, -158, -158, 402, 430, -158, 430, 1146, -158, 430, - 430, -158, 402, 1874, 340, 340, 1840, 493, 1906, 1874, - 1874, 1874, 1874, 1874, 1874, 340, 340, 1806, 1840, 1874, - 340, 340, 60, 60, 90, 90, 90, -158, 146, -16, - 826, 111, 105, 114, 95, 89, 764, 98, 859, 50, - -158, -158, 764, -158, 23, -158, 153, 0, -158, 1384, - -158, 1588, 99, 101, -158, -158, 764, -158, 764, -158, - -11, -158, 430, 115, 5, 115, 97, 115, 115, -158, - -158, -158, -23, 102, 104, 764, 159, 112, -15, -158, - 117, -16, 764, -158, -158, 959, -158, 736, 106, -158, - 164, -158, -158, -158, 2, 118, -158, 764, 764, -158, - 764, 764, 1806, 1672, -158, 430, 430, -16, -158, -16, - -16, 1180, -158, -16, 826, -158, -16, 134, 1806, 119, - 120, 1009, -158, -158, -158, 764, 1722, 1772, 1435, 1486, - -158, 115, 115, -158, -158, -158, 121, -158, -158, -158, - -158, -158, 124, 1537, -158, 764, 764, 764, -16, -158, - -158, 1588, 1214, 1059, -158, -158, -158, 764, -158, 1248, - -158 + -158, -158, -158, -158, -158, -158, -158, -158, 772, 151, + 94, 97, 95, 113, 772, 772, 772, 772, 772, 772, + 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, + 772, 772, 772, 772, 772, 772, 772, 772, -158, -158, + 1814, 104, -7, 3, 388, 171, -158, -158, -158, 1814, + 772, -158, -158, 1341, 1814, 59, -158, -158, 7, 772, + 587, -7, -7, 652, 117, -158, 4, -158, -158, -158, + -158, -158, -158, 345, -3, -158, -3, 1154, -158, -3, + -3, -158, 345, 1882, 370, 370, 1848, 436, 1914, 1882, + 1882, 1882, 1882, 1882, 1882, 370, 370, 1814, 1848, 1882, + 370, 370, 20, 20, 129, 129, 129, -158, 184, -7, + 834, 149, 143, 156, 134, 136, 772, 145, 867, 47, + -158, -158, 772, -158, 23, -158, 200, 72, -158, 1392, + -158, 1596, 146, 150, -158, -158, 772, -158, 772, -158, + -11, -158, -3, 162, 51, 162, 148, 162, 162, -158, + -158, -158, -24, 153, 154, 772, 209, 155, -15, -158, + 158, -7, 772, -158, -158, 967, -158, 744, 157, -158, + 215, -158, -158, -158, 7, 159, -158, 772, 772, -158, + 772, 772, 1814, 1680, -158, -3, -3, -7, -158, -7, + -7, 1188, 163, -7, 834, -158, -7, 185, 1814, 169, + 170, 1017, -158, -158, -158, 772, 1730, 1780, 1443, 1494, + -158, 162, 162, -158, -158, -158, 166, -7, -158, -158, + -158, -158, -158, 172, 1545, -158, 772, 772, 772, -7, + -158, -158, -158, 1596, 1222, 1067, -158, -158, -158, 772, + -158, 1256, -158 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -855,41 +855,41 @@ static const yytype_uint8 yydefact[] = 0, 0, 0, 0, 0, 97, 47, 1, 0, 0, 8, 6, 0, 0, 77, 62, 0, 0, 0, 0, 18, 0, 75, 0, 64, 32, 0, 0, 104, 103, - 84, 0, 0, 83, 0, 101, 0, 0, 159, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 0, 0, - 157, 0, 0, 151, 0, 0, 0, 0, 0, 0, + 84, 0, 0, 83, 0, 101, 0, 0, 160, 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, 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, 158, 0, + 79, 108, 100, 0, 0, 110, 0, 0, 159, 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, 153, 0, 161, 71, 154, 0, 156, 155, 152, + 0, 154, 0, 162, 71, 155, 0, 157, 156, 153, 118, 121, 0, 0, 0, 0, 0, 0, 0, 123, 0, 0, 0, 78, 109, 0, 88, 0, 87, 51, 0, 112, 63, 58, 0, 0, 54, 0, 0, 15, 0, 0, 20, 0, 70, 0, 0, 0, 119, 0, 0, 0, 125, 0, 0, 120, 0, 116, 11, 95, 94, 0, 86, 50, 57, 0, 0, 0, 0, 0, - 66, 69, 160, 122, 130, 126, 0, 128, 124, 127, - 92, 91, 93, 0, 68, 0, 0, 0, 0, 90, - 55, 0, 0, 0, 129, 67, 12, 0, 14, 0, - 13 + 66, 69, 161, 122, 131, 127, 0, 0, 129, 124, + 128, 92, 91, 93, 0, 68, 0, 0, 0, 0, + 126, 90, 55, 0, 0, 0, 130, 67, 12, 0, + 14, 0, 13 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -158, -158, -158, 158, 73, -1, -158, -158, 161, -12, - -158, -48, 6, -158, -158, 75, -98, -145, -4, -158, - 12, -158, -10, -122, -158, -158, -55, -157, -105, -158 + -158, -158, -158, 201, 115, -1, -158, -158, 204, -8, + -158, -5, 6, -158, -158, 110, -65, -131, -4, -158, + 48, -158, 16, -149, -158, -158, -22, -157, -104, -158 }; /* YYDEFGOTO[NTERM-NUM]. */ @@ -905,328 +905,323 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 23, 215, 42, 27, 217, 218, 195, 38, 39, 37, - 111, 52, 40, 111, 48, 33, 45, 47, 120, 111, - 56, 112, 111, 230, 143, 257, 53, 131, 80, 119, - 132, 123, 124, 264, 116, 116, 1, 143, 211, 144, - 192, 49, 193, 258, 145, 16, 178, 219, 35, 179, - 34, 180, 144, 265, 239, 207, 208, 221, 209, 244, - 36, 245, 133, 43, 196, 207, 208, 254, 242, 113, - 114, 128, 113, 114, 129, 28, 29, 147, 113, 114, - 41, 113, 114, 153, 154, 155, 156, 157, 158, 159, + 23, 4, 5, 6, 7, 8, 42, 38, 39, 37, + 52, 195, 40, 111, 48, 215, 45, 47, 217, 218, + 56, 112, 120, 230, 257, 143, 53, 15, 80, 119, + 221, 123, 124, 264, 116, 116, 1, 143, 16, 211, + 144, 49, 258, 27, 16, 145, 207, 208, 219, 209, + 212, 239, 144, 265, 33, 178, 111, 18, 179, 19, + 180, 20, 21, 111, 22, 207, 208, 43, 242, 196, + 34, 131, 113, 114, 105, 106, 107, 147, 108, 28, + 29, 254, 267, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 230, 120, 267, - 281, 282, 240, 188, 105, 106, 107, 134, 108, 184, - 135, 202, 203, 137, 139, 140, 146, 141, 199, 201, - 148, 149, 205, 150, 151, 283, 152, 284, 285, 177, - 214, 287, 214, 189, 289, 214, 214, 206, 108, 80, - 220, 231, 232, 233, -115, 234, 236, 243, 80, 250, - 256, 251, 255, 262, 272, 259, 46, 260, 273, 4, - 5, 6, 7, 8, -114, 263, 304, 290, 291, 9, - 266, 275, 299, 10, 298, 235, 227, 11, 12, 121, - 117, 124, 13, 190, 14, 15, 274, 4, 5, 6, - 7, 8, 194, 305, 241, 252, 16, 253, 214, 288, - 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, - 0, 0, 0, 15, 261, 18, 0, 19, 0, 20, - 21, 268, 22, 0, 16, 0, 271, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 276, 277, 0, 278, + 170, 171, 172, 173, 174, 175, 176, 230, 283, 240, + 284, 285, 120, 188, 288, 113, 114, 290, 192, 184, + 193, 35, 113, 114, 281, 282, 36, 128, 199, 201, + 129, 244, 205, 245, 133, 111, 41, 134, 300, 135, + 214, 139, 214, 132, 137, 214, 214, 202, 203, 80, + 306, 140, 141, 57, 146, 148, 58, 149, 80, 52, + 150, 152, 177, 151, 206, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 189, 235, 227, 108, 220, 231, + 232, 124, 233, 16, 113, 114, -115, 4, 5, 6, + 7, 8, 234, 236, 243, 252, 250, 253, 214, 255, + 251, 256, 78, 262, 79, 272, 259, 260, 263, 273, + -151, 266, 275, 15, 261, -114, 287, 291, 292, 299, + 301, 268, 121, 117, 16, 190, 271, 194, 307, 274, + 241, 0, 289, 0, 0, 0, 276, 277, 0, 278, 279, 214, 214, 18, 0, 19, 0, 20, 21, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 227, 0, 0, 0, 293, 0, 0, 0, 0, -72, + 227, 0, 0, 0, 294, 0, 0, 0, 0, -72, 50, 0, 0, 51, -72, 0, 52, 0, -72, -72, - -72, -72, -72, 0, 301, 302, 303, 0, -72, -72, - -72, 0, 0, -72, -72, -72, 309, -72, 0, 0, + -72, -72, -72, 0, 0, 303, 304, 305, -72, -72, + -72, 0, 0, -72, -72, -72, 0, -72, 311, 0, 0, -72, -72, -72, -72, -72, -72, -72, -72, 0, 16, 0, 0, -72, 0, 0, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, 0, -72, -72, 0, - -72, 0, -72, -72, -72, -72, 57, -72, 0, 58, - -151, -151, 52, 0, 0, 0, 0, 0, 59, 60, + -72, 0, -72, -72, -72, -72, 210, -72, 0, 58, + 0, 0, 52, 0, 0, 0, 0, 0, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 0, -151, -151, - 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, - -151, -151, 103, 104, 105, 106, 107, 0, 108, 0, - 0, 0, 0, 210, 0, 78, 58, 79, 0, 52, - 0, 0, 0, -150, 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, + 71, 72, 73, 74, 75, 76, 77, 0, 0, 0, + -152, -152, 0, 0, 0, 0, 16, 0, 0, 185, + 0, 0, 4, 5, 6, 7, 8, 0, 0, 0, + 0, 0, 9, 0, 0, 78, 10, 79, -152, -152, + 11, 12, 0, -151, 0, 13, 0, 14, 15, 0, + -152, -152, 103, 104, 105, 106, 107, 0, 108, 16, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 17, 0, 0, 0, 0, 85, 86, 18, 0, + 19, 186, 20, 21, 187, 22, 54, 0, 0, 4, 5, 6, 7, 8, 0, 0, 0, 0, 0, 9, - 15, 0, 78, 10, 79, 0, 0, 11, 12, 0, - -150, 16, 13, 0, 14, 15, 0, 0, 0, 0, - 0, 0, 0, 212, 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, 54, 0, 0, 4, 5, 6, 7, + 0, 0, 0, 10, 96, 97, 0, 11, 12, 0, + 0, 0, 13, 0, 14, 15, 101, 102, 103, 104, + 105, 106, 107, 0, 108, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, + 0, 0, 0, 0, 0, 18, 0, 19, 0, 20, + 21, 55, 22, 46, 0, 0, 4, 5, 6, 7, 8, 0, 0, 0, 0, 0, 9, 0, 0, 0, - 10, 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, + 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, 55, 22, - 200, 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, 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, - 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, + 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, - 0, 22, 0, 16, 0, 0, 0, 0, 0, 0, + 270, 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, 270, 22, 0, 16, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, - 0, 0, 0, 0, 18, 0, 19, 223, 20, 21, - 224, 22, 0, 52, 0, 0, 0, 0, 0, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 16, 84, 85, - 86, 87, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 88, 89, 225, 0, 226, 0, - 0, 90, 91, 92, 93, 94, 95, 96, 97, 0, - 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 0, 108, 84, 85, - 86, 87, 237, 0, 0, 238, 0, 0, 0, 0, - 0, 0, 0, 0, 88, 89, 0, 0, 0, 0, - 0, 90, 91, 92, 93, 94, 95, 96, 97, 0, - 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 0, 108, 84, 85, - 86, 87, 0, 0, 0, 142, 0, 0, 0, 0, - 0, 0, 0, 0, 88, 89, 0, 0, 0, 0, - 0, 90, 91, 92, 93, 94, 95, 96, 97, 0, - 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 0, 108, 84, 85, - 86, 87, 0, 0, 0, 269, 0, 0, 0, 0, - 0, 0, 0, 0, 88, 89, 0, 0, 0, 0, - 0, 90, 91, 92, 93, 94, 95, 96, 97, 0, - 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 0, 108, 84, 85, - 86, 87, 0, 0, 0, 292, 0, 0, 0, 0, - 0, 0, 0, 0, 88, 89, 0, 0, 0, 0, - 0, 90, 91, 92, 93, 94, 95, 96, 97, 0, - 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 0, 108, 307, 0, - 308, 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, 18, 0, 19, 223, 20, 21, 224, 22, + 0, 52, 0, 0, 0, 0, 0, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 16, 84, 85, 86, 87, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 88, 89, 225, 0, 226, 0, 0, 90, + 91, 92, 93, 94, 95, 96, 97, 0, 0, 0, + 0, 0, 0, 0, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 0, 108, 84, 85, 86, 87, + 237, 0, 0, 238, 0, 0, 0, 0, 0, 0, + 0, 0, 88, 89, 0, 0, 0, 0, 0, 90, + 91, 92, 93, 94, 95, 96, 97, 0, 0, 0, + 0, 0, 0, 0, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 0, 108, 84, 85, 86, 87, + 0, 0, 0, 142, 0, 0, 0, 0, 0, 0, + 0, 0, 88, 89, 0, 0, 0, 0, 0, 90, + 91, 92, 93, 94, 95, 96, 97, 0, 0, 0, + 0, 0, 0, 0, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 0, 108, 84, 85, 86, 87, + 0, 0, 0, 269, 0, 0, 0, 0, 0, 0, + 0, 0, 88, 89, 0, 0, 0, 0, 0, 90, + 91, 92, 93, 94, 95, 96, 97, 0, 0, 0, + 0, 0, 0, 0, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 0, 108, 84, 85, 86, 87, + 0, 0, 0, 293, 0, 0, 0, 0, 0, 0, + 0, 0, 88, 89, 0, 0, 0, 0, 0, 90, + 91, 92, 93, 94, 95, 96, 97, 0, 0, 0, + 0, 0, 0, 0, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 0, 108, 309, 0, 310, 84, + 85, 86, 87, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 88, 89, 0, 0, 0, 0, 0, 90, 91, 92, 93, 94, 95, 96, 97, 0, 0, 0, 84, 85, 86, 87, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 0, 108, 88, - 89, 286, 0, 0, 0, 0, 90, 91, 92, 93, + 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, 306, 0, 0, 0, 0, + 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, 310, + 103, 104, 105, 106, 107, 0, 108, 88, 89, 286, + 0, 0, 0, 0, 90, 91, 92, 93, 94, 95, + 96, 97, 0, 0, 0, 84, 85, 86, 87, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 0, + 108, 88, 89, 308, 0, 0, 0, 0, 90, 91, + 92, 93, 94, 95, 96, 97, 0, 0, 0, 84, + 85, 86, 87, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 0, 108, 88, 89, 312, 0, 0, + 0, 0, 90, 91, 92, 93, 94, 95, 96, 97, + 0, 0, 0, 0, 0, 0, 0, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 0, 108, 109, + 84, 85, 86, 87, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 88, 89, 0, 0, + 0, 0, 0, 90, 91, 92, 93, 94, 95, 96, + 97, 0, 0, 0, 0, 0, 0, 0, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 0, 108, + 191, 84, 85, 86, 87, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 88, 89, 0, 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, + 108, 246, 84, 85, 86, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 89, 0, 0, 0, 0, 0, 90, 91, 92, 93, 94, 95, 96, 97, 0, 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 0, 108, 191, 84, 85, 86, 87, 0, 0, 0, + 0, 108, 297, 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, 246, 84, 85, 86, 87, 0, 0, + 107, 0, 108, 298, 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, 296, 84, 85, 86, 87, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 106, 107, 0, 108, 302, 84, 85, 86, 87, 0, + 0, 0, 0, 0, 0, 0, 247, 248, 0, 0, 0, 88, 89, 0, 0, 0, 0, 0, 90, 91, 92, 93, 94, 95, 96, 97, 0, 0, 0, 0, 0, 0, 0, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 0, 108, 297, 84, 85, 86, 87, - 0, 0, 0, 0, 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, 300, 84, 85, 86, - 87, 0, 0, 0, 0, 0, 0, 0, 247, 248, - 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, 280, 0, 0, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 0, - 108, 84, 85, 86, 87, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 294, 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, 295, 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, + 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, -151, 85, 86, 0, 0, 0, 100, + 0, 0, 0, 0, 280, 0, 0, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 0, 108, 84, + 85, 86, 87, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 295, 88, 89, 0, 0, 0, + 0, 0, 90, 91, 92, 93, 94, 95, 96, 97, + 0, 0, 0, 0, 0, 0, 0, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 0, 108, 84, + 85, 86, 87, 0, 0, 0, 0, 0, 0, 296, + 0, 0, 0, 0, 0, 88, 89, 0, 0, 0, + 0, 0, 90, 91, 92, 93, 94, 95, 96, 97, + 0, 0, 0, 84, 85, 86, 87, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 0, 108, 88, - 89, 0, 0, 0, 0, 0, -151, -151, -151, -151, - -151, -151, 96, 97, 0, 0, 85, 86, 0, 0, - 0, 0, 0, -151, 101, 102, 103, 104, 105, 106, - 107, 88, 108, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 96, 97, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 101, 102, 103, 104, - 105, 106, 107, 0, 108 + 89, 0, 0, 0, 0, 0, 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 }; static const yytype_int16 yycheck[] = { - 1, 146, 1, 0, 149, 150, 4, 11, 12, 10, - 5, 7, 13, 5, 4, 60, 17, 18, 30, 5, - 21, 13, 5, 180, 48, 48, 20, 13, 22, 30, - 13, 32, 33, 48, 28, 29, 15, 48, 143, 63, - 59, 31, 61, 66, 68, 41, 62, 152, 41, 65, - 58, 67, 63, 68, 4, 42, 43, 179, 45, 59, - 4, 61, 28, 62, 62, 42, 43, 212, 45, 64, - 65, 60, 64, 65, 63, 16, 17, 78, 64, 65, - 62, 64, 65, 84, 85, 86, 87, 88, 89, 90, + 1, 4, 5, 6, 7, 8, 1, 11, 12, 10, + 7, 4, 13, 5, 4, 146, 17, 18, 149, 150, + 21, 13, 30, 180, 48, 48, 20, 30, 22, 30, + 179, 32, 33, 48, 28, 29, 15, 48, 41, 143, + 63, 31, 66, 0, 41, 68, 42, 43, 152, 45, + 53, 4, 63, 68, 60, 62, 5, 60, 65, 62, + 67, 64, 65, 5, 67, 42, 43, 62, 45, 62, + 58, 13, 64, 65, 54, 55, 56, 78, 58, 16, + 17, 212, 231, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 264, 120, 231, - 255, 256, 62, 114, 54, 55, 56, 4, 58, 113, - 4, 131, 132, 61, 1, 58, 63, 66, 129, 130, - 4, 63, 133, 63, 68, 257, 48, 259, 260, 58, - 144, 263, 146, 13, 266, 149, 150, 47, 58, 143, - 4, 40, 47, 58, 40, 66, 58, 4, 152, 60, - 63, 60, 47, 4, 58, 63, 1, 63, 4, 4, - 5, 6, 7, 8, 40, 63, 298, 58, 58, 14, - 63, 63, 58, 18, 63, 186, 180, 22, 23, 31, - 29, 192, 27, 120, 29, 30, 244, 4, 5, 6, - 7, 8, 127, 301, 192, 206, 41, 208, 212, 264, - -1, -1, -1, -1, -1, -1, -1, -1, 53, -1, - -1, -1, -1, 30, 225, 60, -1, 62, -1, 64, - 65, 232, 67, -1, 41, -1, 237, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 247, 248, -1, 250, + 101, 102, 103, 104, 105, 106, 107, 264, 257, 62, + 259, 260, 120, 114, 263, 64, 65, 266, 59, 113, + 61, 41, 64, 65, 255, 256, 4, 60, 129, 130, + 63, 59, 133, 61, 28, 5, 62, 4, 287, 4, + 144, 1, 146, 13, 61, 149, 150, 131, 132, 143, + 299, 58, 66, 1, 63, 4, 4, 63, 152, 7, + 63, 48, 58, 68, 47, 13, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 13, 186, 180, 58, 4, 40, + 47, 192, 58, 41, 64, 65, 40, 4, 5, 6, + 7, 8, 66, 58, 4, 206, 60, 208, 212, 47, + 60, 63, 60, 4, 62, 58, 63, 63, 63, 4, + 68, 63, 63, 30, 225, 40, 63, 58, 58, 63, + 58, 232, 31, 29, 41, 120, 237, 127, 303, 244, + 192, -1, 264, -1, -1, -1, 247, 248, -1, 250, 251, 255, 256, 60, -1, 62, -1, 64, 65, -1, 67, -1, -1, -1, -1, -1, -1, -1, -1, -1, 264, -1, -1, -1, 275, -1, -1, -1, -1, 0, 1, -1, -1, 4, 5, -1, 7, -1, 9, 10, - 11, 12, 13, -1, 295, 296, 297, -1, 19, 20, - 21, -1, -1, 24, 25, 26, 307, 28, -1, -1, + 11, 12, 13, -1, -1, 296, 297, 298, 19, 20, + 21, -1, -1, 24, 25, 26, -1, 28, 309, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, -1, 41, -1, -1, 44, -1, -1, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, 59, -1, 61, -1, 63, 64, 65, 66, 1, 68, -1, 4, - 10, 11, 7, -1, -1, -1, -1, -1, 13, 14, + -1, -1, 7, -1, -1, -1, -1, -1, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, -1, 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, + 25, 26, 27, 28, 29, 30, 31, -1, -1, -1, + 10, 11, -1, -1, -1, -1, 41, -1, -1, 1, + -1, -1, 4, 5, 6, 7, 8, -1, -1, -1, + -1, -1, 14, -1, -1, 60, 18, 62, 38, 39, + 22, 23, -1, 68, -1, 27, -1, 29, 30, -1, + 50, 51, 52, 53, 54, 55, 56, -1, 58, 41, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 53, -1, -1, -1, -1, 10, 11, 60, -1, + 62, 63, 64, 65, 66, 67, 1, -1, -1, 4, 5, 6, 7, 8, -1, -1, -1, -1, -1, 14, - 30, -1, 60, 18, 62, -1, -1, 22, 23, -1, - 68, 41, 27, -1, 29, 30, -1, -1, -1, -1, - -1, -1, -1, 53, -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, + -1, -1, -1, 18, 38, 39, -1, 22, 23, -1, + -1, -1, 27, -1, 29, 30, 50, 51, 52, 53, + 54, 55, 56, -1, 58, -1, 41, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 53, -1, + -1, -1, -1, -1, -1, 60, -1, 62, -1, 64, 65, 66, 67, 1, -1, -1, 4, 5, 6, 7, 8, -1, -1, -1, -1, -1, 14, -1, -1, -1, - 18, 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, + 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, 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, 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, - 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, + 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, - -1, 67, -1, 41, -1, -1, -1, -1, -1, -1, + 66, 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, 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, @@ -1238,6 +1233,23 @@ static const yytype_int16 yycheck[] = -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, -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, 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, -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, @@ -1256,53 +1268,43 @@ static const yytype_int16 yycheck[] = 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, + -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, 59, 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, - -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, - -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, + 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, -1, -1, -1, 49, + -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, 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 + 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 @@ -1337,10 +1339,10 @@ static const yytype_uint8 yystos[] = 60, 60, 74, 74, 86, 47, 63, 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, 92, 95, 92, - 58, 58, 66, 74, 24, 19, 59, 59, 63, 58, - 59, 74, 74, 74, 92, 85, 61, 59, 61, 74, - 61 + 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. */ @@ -1359,10 +1361,10 @@ static const yytype_uint8 yyr1[] = 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, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 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 + 96, 97, 97, 97, 97, 98, 98, 98, 98, 98, + 98, 98, 98 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -1380,11 +1382,11 @@ static const yytype_uint8 yyr2[] = 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, 3, 3, 3, 5, - 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 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, 2, 1, - 5, 3 + 1, 0, 1, 3, 3, 3, 3, 3, 1, 2, + 1, 5, 3 }; @@ -1887,187 +1889,187 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio case 4: /* IDENT */ #line 36 "src/parser.y" /* yacc.c:1257 */ { jv_free(((*yyvaluep).literal)); } -#line 1891 "src/parser.c" /* yacc.c:1257 */ +#line 1893 "src/parser.c" /* yacc.c:1257 */ break; case 5: /* FIELD */ #line 36 "src/parser.y" /* yacc.c:1257 */ { jv_free(((*yyvaluep).literal)); } -#line 1897 "src/parser.c" /* yacc.c:1257 */ +#line 1899 "src/parser.c" /* yacc.c:1257 */ break; case 6: /* LITERAL */ #line 36 "src/parser.y" /* yacc.c:1257 */ { jv_free(((*yyvaluep).literal)); } -#line 1903 "src/parser.c" /* yacc.c:1257 */ +#line 1905 "src/parser.c" /* yacc.c:1257 */ break; case 7: /* FORMAT */ #line 36 "src/parser.y" /* yacc.c:1257 */ { jv_free(((*yyvaluep).literal)); } -#line 1909 "src/parser.c" /* yacc.c:1257 */ +#line 1911 "src/parser.c" /* yacc.c:1257 */ break; case 42: /* QQSTRING_TEXT */ #line 36 "src/parser.y" /* yacc.c:1257 */ { jv_free(((*yyvaluep).literal)); } -#line 1915 "src/parser.c" /* yacc.c:1257 */ +#line 1917 "src/parser.c" /* yacc.c:1257 */ break; case 71: /* Module */ #line 37 "src/parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } -#line 1921 "src/parser.c" /* yacc.c:1257 */ +#line 1923 "src/parser.c" /* yacc.c:1257 */ break; case 72: /* Imports */ #line 37 "src/parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } -#line 1927 "src/parser.c" /* yacc.c:1257 */ +#line 1929 "src/parser.c" /* yacc.c:1257 */ break; case 73: /* FuncDefs */ #line 37 "src/parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } -#line 1933 "src/parser.c" /* yacc.c:1257 */ +#line 1935 "src/parser.c" /* yacc.c:1257 */ break; case 74: /* Exp */ #line 37 "src/parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } -#line 1939 "src/parser.c" /* yacc.c:1257 */ +#line 1941 "src/parser.c" /* yacc.c:1257 */ break; case 75: /* Import */ #line 37 "src/parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } -#line 1945 "src/parser.c" /* yacc.c:1257 */ +#line 1947 "src/parser.c" /* yacc.c:1257 */ break; case 76: /* ImportWhat */ #line 37 "src/parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } -#line 1951 "src/parser.c" /* yacc.c:1257 */ +#line 1953 "src/parser.c" /* yacc.c:1257 */ break; case 77: /* ImportFrom */ #line 37 "src/parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } -#line 1957 "src/parser.c" /* yacc.c:1257 */ +#line 1959 "src/parser.c" /* yacc.c:1257 */ break; case 78: /* FuncDef */ #line 37 "src/parser.y" /* yacc.c:1257 */ { block_free(((*yyvaluep).blk)); } -#line 1963 "src/parser.c" /* yacc.c:1257 */ +#line 1965 "src/parser.c" /* yacc.c:1257 */