summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Williams <nico@cryptonector.com>2021-10-21 00:17:39 -0500
committerNicolas Williams <nico@cryptonector.com>2021-10-24 16:23:26 -0500
commita9f97e9e61a910a374a5d768244e8ad63f407d3e (patch)
tree7883361d86bd97b1bcd2299fa5886182b27cee54
parent0c3455d3290fa03da8c01c135dd7126a80ed28a8 (diff)
downloadjq-a9f97e9e61a910a374a5d768244e8ad63f407d3e.tar.gz
Fix accidentally quadratic behavior in _modify
We need to be careful to not grab an extra reference when mutating data structures because that means we make extra copies. Doing that every time in `_modify` is really painful, as that function implements `|=` and all modify-assign operators. `jv_setpath()` also grabs additional references, so this is not the only fix needed for the modify-assign operators to not be accidentally quadratic. We have to use `LOADVN` in order to make this fix possible, so we should really byte-code `_modify` rather than jq-code it. However, as a stop-gap to make this fix easier, I'm adding syntax for referring to a `$binding` such that you get `LOADVN` instead of `LOADV`. This syntax is not meant to be used outside jq's internals! Therefore it is not documented. I promise to break it later, so don't use it! TBD, but later: - Optimize `_modify` for the case where `update` outputs more than one value. This is trivial: add a `setpath($p; null)` in the middle of `_modify` before calling `update`. But unfortunately the VM retains a reference to `value_at_path` for path expression checking, and fixing that will require more work.
-rw-r--r--src/builtin.jq20
-rw-r--r--src/parser.c2169
-rw-r--r--src/parser.h16
-rw-r--r--src/parser.y19
4 files changed, 1122 insertions, 1102 deletions
diff --git a/src/builtin.jq b/src/builtin.jq
index ee78017..a102fd5 100644
--- a/src/builtin.jq
+++ b/src/builtin.jq
@@ -11,7 +11,25 @@ def min_by(f): _min_by_impl(map([f]));
def add: reduce .[] as $x (null; . + $x);
def del(f): delpaths([path(f)]);
def _assign(paths; $value): reduce path(paths) as $p (.; setpath($p; $value));
-def _modify(paths; update): reduce path(paths) as $p (.; label $out | (setpath($p; getpath($p) | update) | ., break $out), delpaths([$p]));
+def _modify(paths; update):
+ reduce path(paths) as $p (.;
+ . as $dot
+ | null
+ | label $out
+ | ($dot | getpath($p)) as $v
+ | (
+ ( $$$$v
+ | update
+ | (., break $out) as $v
+ | $$$$dot
+ | setpath($p; $v)
+ ),
+ (
+ $$$$dot
+ | delpaths([$p])
+ )
+ )
+ );
def map_values(f): .[] |= f;
# recurse
diff --git a/src/parser.c b/src/parser.c
index b6574e5..82bf21d 100644
--- a/src/parser.c
+++ b/src/parser.c
@@ -1,9 +1,8 @@
-/* A Bison parser, made by GNU Bison 3.3.2. */
+/* A Bison parser, made by GNU Bison 3.0.4. */
/* Bison implementation for Yacc-like parsers in C
- Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation,
- Inc.
+ Copyright (C) 1984, 1989-1990, 2000-2015 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
@@ -41,14 +40,11 @@
define necessary library symbols; they are noted "INFRINGES ON
USER NAME SPACE" below. */
-/* Undocumented macros, especially those whose name start with YY_,
- are private implementation details. Do not rely on them. */
-
/* Identify Bison output. */
#define YYBISON 1
/* Bison version. */
-#define YYBISON_VERSION "3.3.2"
+#define YYBISON_VERSION "3.0.4"
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
@@ -65,8 +61,8 @@
-/* First part of user prologue. */
-#line 1 "src/parser.y" /* yacc.c:337 */
+/* Copy the first part of user declarations. */
+#line 1 "src/parser.y" /* yacc.c:339 */
#include <assert.h>
#include <math.h>
@@ -77,16 +73,13 @@
#define YYMALLOC jv_mem_alloc
#define YYFREE jv_mem_free
-#line 81 "src/parser.c" /* yacc.c:337 */
+#line 77 "src/parser.c" /* yacc.c:339 */
+
# ifndef YY_NULLPTR
-# if defined __cplusplus
-# if 201103L <= __cplusplus
-# define YY_NULLPTR nullptr
-# else
-# define YY_NULLPTR 0
-# endif
+# if defined __cplusplus && 201103L <= __cplusplus
+# define YY_NULLPTR nullptr
# else
-# define YY_NULLPTR ((void*)0)
+# define YY_NULLPTR 0
# endif
# endif
@@ -110,7 +103,7 @@
extern int yydebug;
#endif
/* "%code requires" blocks. */
-#line 11 "src/parser.y" /* yacc.c:352 */
+#line 11 "src/parser.y" /* yacc.c:355 */
#include "locfile.h"
struct lexer_param;
@@ -127,7 +120,7 @@ struct lexer_param;
} \
} while (0)
-#line 131 "src/parser.c" /* yacc.c:352 */
+#line 124 "src/parser.c" /* yacc.c:355 */
/* Token type. */
#ifndef YYTOKENTYPE
@@ -233,12 +226,12 @@ struct lexer_param;
union YYSTYPE
{
-#line 31 "src/parser.y" /* yacc.c:352 */
+#line 31 "src/parser.y" /* yacc.c:355 */
jv literal;
block blk;
-#line 242 "src/parser.c" /* yacc.c:352 */
+#line 235 "src/parser.c" /* yacc.c:355 */
};
typedef union YYSTYPE YYSTYPE;
@@ -266,8 +259,8 @@ int yyparse (block* answer, int* errors, struct locfile* locations, struct lexer
#endif /* !YY_YY_SRC_PARSER_H_INCLUDED */
-/* Second part of user prologue. */
-#line 124 "src/parser.y" /* yacc.c:354 */
+/* Copy the second part of user declarations. */
+#line 124 "src/parser.y" /* yacc.c:358 */
#include "lexer.h"
struct lexer_param {
@@ -447,7 +440,7 @@ static block gen_update(block object, block val, int optype) {
}
-#line 451 "src/parser.c" /* yacc.c:354 */
+#line 444 "src/parser.c" /* yacc.c:358 */
#ifdef short
# undef short
@@ -468,13 +461,13 @@ typedef signed char yytype_int8;
#ifdef YYTYPE_UINT16
typedef YYTYPE_UINT16 yytype_uint16;
#else
-typedef unsigned short yytype_uint16;
+typedef unsigned short int yytype_uint16;
#endif
#ifdef YYTYPE_INT16
typedef YYTYPE_INT16 yytype_int16;
#else
-typedef short yytype_int16;
+typedef short int yytype_int16;
#endif
#ifndef YYSIZE_T
@@ -486,7 +479,7 @@ typedef short yytype_int16;
# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
# define YYSIZE_T size_t
# else
-# define YYSIZE_T unsigned
+# define YYSIZE_T unsigned int
# endif
#endif
@@ -522,6 +515,15 @@ typedef short yytype_int16;
# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
#endif
+#if !defined _Noreturn \
+ && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
+# if defined _MSC_VER && 1200 <= _MSC_VER
+# define _Noreturn __declspec (noreturn)
+# else
+# define _Noreturn YY_ATTRIBUTE ((__noreturn__))
+# endif
+#endif
+
/* Suppress unused-variable warnings by "using" E. */
#if ! defined lint || defined __GNUC__
# define YYUSE(E) ((void) (E))
@@ -529,7 +531,7 @@ typedef short yytype_int16;
# define YYUSE(E) /* empty */
#endif
-#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
+#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
/* Suppress an incorrect diagnostic about yylval being uninitialized. */
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
_Pragma ("GCC diagnostic push") \
@@ -682,27 +684,27 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 27
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 2220
+#define YYLAST 2143
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 69
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 30
/* YYNRULES -- Number of rules. */
-#define YYNRULES 169
+#define YYNRULES 170
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 322
+#define YYNSTATES 326
+/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
+ by yylex, with out-of-bounds checking. */
#define YYUNDEFTOK 2
#define YYMAXUTOK 302
-/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
- as returned by yylex, with out-of-bounds checking. */
#define YYTRANSLATE(YYX) \
- ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
+ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
- as returned by yylex. */
+ as returned by yylex, without out-of-bounds checking. */
static const yytype_uint8 yytranslate[] =
{
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -752,13 +754,14 @@ static const yytype_uint16 yyrline[] =
622, 627, 630, 633, 639, 642, 645, 653, 657, 660,
663, 666, 669, 672, 675, 678, 681, 685, 691, 694,
697, 700, 703, 706, 709, 712, 715, 718, 721, 724,
- 727, 730, 733, 736, 739, 742, 745, 752, 756, 765,
- 777, 782, 783, 784, 785, 788, 791, 796, 801, 804,
- 809, 812, 817, 821, 824, 829, 832, 837, 840, 845,
- 848, 851, 854, 857, 860, 868, 874, 877, 880, 883,
- 886, 889, 892, 895, 898, 901, 904, 907, 910, 913,
- 916, 919, 922, 925, 928, 933, 936, 937, 938, 941,
- 944, 947, 950, 954, 958, 962, 966, 970, 974, 982
+ 727, 730, 733, 736, 739, 742, 745, 767, 771, 775,
+ 784, 796, 801, 802, 803, 804, 807, 810, 815, 820,
+ 823, 828, 831, 836, 840, 843, 848, 851, 856, 859,
+ 864, 867, 870, 873, 876, 879, 887, 893, 896, 899,
+ 902, 905, 908, 911, 914, 917, 920, 923, 926, 929,
+ 932, 935, 938, 941, 944, 947, 952, 955, 956, 957,
+ 960, 963, 966, 969, 973, 977, 981, 985, 989, 993,
+ 1001
};
#endif
@@ -801,53 +804,53 @@ static const yytype_uint16 yytoknum[] =
};
# endif
-#define YYPACT_NINF -157
+#define YYPACT_NINF -120
#define yypact_value_is_default(Yystate) \
- (!!((Yystate) == (-157)))
+ (!!((Yystate) == (-120)))
-#define YYTABLE_NINF -156
+#define YYTABLE_NINF -157
#define yytable_value_is_error(Yytable_value) \
- (!!((Yytable_value) == (-156)))
+ (!!((Yytable_value) == (-157)))
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- 43, 838, 75, 28, 16, 22, -157, 66, -157, 108,
- 838, 161, 161, 838, 63, 1, -157, 838, 588, 2133,
- 288, 521, 354, 1406, 838, -157, 0, -157, 14, 14,
- 838, 28, 746, 838, -157, -157, -9, 1812, 17, 55,
- 99, 126, -157, 127, -157, -6, 72, 1236, -157, -157,
- -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
- -157, -157, -157, -157, -157, -157, -157, -157, -157, -157,
- 140, 66, 85, 78, -157, 983, -45, 82, 838, 2161,
- 86, 87, 83, 105, 838, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
- 838, 838, 838, 838, 838, 838, 838, 838, -157, -157,
- 1980, 96, -26, -3, 454, 142, -157, -157, -157, 1980,
- 838, -157, -157, 1457, 1980, -19, -157, -157, 10, 838,
- 653, -26, -26, 718, 109, -157, 24, -157, -157, -157,
- -157, -157, -157, 411, 130, -157, 130, 1270, 94, -157,
- 130, 130, -157, 411, 2048, 209, 209, 2014, 349, 2080,
- 2048, 2048, 2048, 2048, 2048, 2048, 209, 209, 1980, 2014,
- 2048, 209, 209, -6, -6, 101, 101, 101, -157, 157,
- -26, 900, 122, 117, 132, 838, 112, 107, 838, 116,
- 933, 11, -157, -157, 838, -157, 81, -157, 2189, -2,
- -157, 1508, -157, 1712, 115, 118, -157, -157, 838, -157,
- 838, -157, -20, -157, 130, 129, 51, 129, 114, 130,
- 129, 129, -157, -157, -157, -13, 119, 125, 838, 175,
- 133, -22, -157, 135, -26, 838, 1033, -157, -157, 1083,
- -157, 810, 123, -157, 181, -157, -157, -157, -157, 10,
- 136, -157, 838, 838, -157, -157, 838, 838, 1980, 1846,
- -157, 130, 130, 129, -26, -157, -26, -26, 1304, 137,
- -26, 900, -157, -26, 149, 1980, 143, 145, 146, 1133,
- -157, -157, -157, 838, 1896, 1946, 1559, 1610, -157, 129,
- 129, -157, -157, -157, 148, -26, -157, -157, -157, -157,
- -157, -157, 147, 1661, -157, 838, 838, 838, -26, -157,
- -157, -157, 1762, 1338, 1183, -157, -157, -157, 838, -157,
- 1372, -157
+ 13, 775, 14, 49, -55, 11, -120, 7, -120, 32,
+ 775, 508, 508, 775, 19, 2, -120, 775, 525, 887,
+ 292, 458, 358, 1391, 775, -120, 6, -120, -3, -3,
+ 775, 49, 683, 775, -120, -120, 52, 1797, 8, 10,
+ 48, 79, -120, 106, -120, 66, 50, 1221, -120, -120,
+ -120, -120, -120, -120, -120, -120, -120, -120, -120, -120,
+ -120, -120, -120, -120, -120, -120, -120, -120, 61, -120,
+ -120, 124, 7, 68, 62, -120, 968, -22, 64, 775,
+ 2084, 69, 71, 63, 87, 775, 775, 775, 775, 775,
+ 775, 775, 775, 775, 775, 775, 775, 775, 775, 775,
+ 775, 775, 775, 775, 775, 775, 775, 775, 775, -120,
+ -120, 1965, 78, -20, 15, 169, 125, -120, -120, -120,
+ 1965, 775, -120, -120, 1442, 1965, -10, -120, -120, -2,
+ 775, 590, -20, -20, 655, 90, -120, 12, -120, -120,
+ 77, -120, -120, -120, -120, 415, 443, -120, 443, 1255,
+ 81, -120, 443, 443, -120, 415, 1999, 353, 353, 214,
+ 571, 2031, 1999, 1999, 1999, 1999, 1999, 1999, 353, 353,
+ 1965, 214, 1999, 353, 353, 66, 66, 82, 82, 82,
+ -120, 138, -20, 837, 105, 99, 113, 775, 96, 93,
+ 775, 103, 918, 20, -120, -120, 775, -120, 16, -120,
+ 2112, 18, -120, 1493, -120, 1697, 102, 104, -120, -120,
+ 775, -120, 775, -120, 159, -11, -120, 443, 119, 3,
+ 119, 108, 443, 119, 119, -120, -120, -120, -13, 109,
+ 115, 775, 163, 116, -38, -120, 118, -20, 775, 1018,
+ -120, -120, 1068, -120, 747, 110, -120, 165, -120, -120,
+ -120, -120, -2, 121, -120, 775, 775, -120, -120, 775,
+ 775, 1965, 1831, -120, -120, 443, 443, 119, -20, -120,
+ -20, -20, 1289, 122, -20, 837, -120, -20, 150, 1965,
+ 136, 139, 142, 1118, -120, -120, -120, 775, 1881, 1931,
+ 1544, 1595, -120, 119, 119, -120, -120, -120, 140, -20,
+ -120, -120, -120, -120, -120, -120, 143, 1646, -120, 775,
+ 775, 775, -20, -120, -120, -120, 1747, 1323, 1168, -120,
+ -120, -120, 775, -120, 1357, -120
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -855,55 +858,55 @@ static const yytype_int16 yypact[] =
means the default is an error. */
static const yytype_uint8 yydefact[] =
{
- 4, 0, 0, 6, 109, 83, 100, 102, 75, 0,
+ 4, 0, 0, 6, 110, 83, 100, 102, 75, 0,
0, 0, 0, 0, 0, 0, 62, 0, 0, 0,
0, 0, 0, 0, 0, 101, 48, 1, 0, 0,
8, 6, 0, 0, 79, 64, 0, 0, 0, 0,
- 19, 0, 77, 0, 66, 33, 0, 0, 107, 136,
- 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
- 147, 148, 149, 150, 151, 152, 153, 154, 108, 86,
- 0, 0, 85, 0, 105, 0, 0, 166, 0, 0,
- 162, 167, 0, 156, 0, 0, 0, 0, 0, 0,
+ 19, 0, 77, 0, 66, 33, 0, 0, 108, 137,
+ 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
+ 148, 149, 150, 151, 152, 153, 154, 155, 0, 109,
+ 86, 0, 0, 85, 0, 105, 0, 0, 167, 0,
+ 0, 163, 168, 0, 157, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 22, 5,
- 10, 82, 0, 0, 0, 0, 54, 53, 3, 2,
- 8, 7, 49, 0, 117, 0, 115, 66, 0, 0,
- 0, 0, 0, 0, 0, 76, 0, 111, 103, 87,
- 81, 112, 104, 0, 0, 114, 0, 0, 164, 165,
- 0, 0, 106, 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, 78, 0,
- 0, 0, 0, 0, 121, 0, 84, 0, 0, 93,
- 0, 0, 9, 50, 0, 110, 0, 61, 0, 0,
- 57, 0, 17, 0, 0, 0, 20, 18, 0, 67,
- 0, 63, 0, 158, 0, 169, 73, 159, 0, 0,
- 161, 160, 157, 122, 125, 0, 0, 0, 0, 0,
- 0, 0, 127, 0, 0, 0, 0, 80, 113, 0,
- 92, 0, 89, 52, 0, 116, 65, 59, 60, 0,
- 0, 55, 0, 0, 16, 15, 0, 0, 21, 0,
- 72, 0, 0, 163, 0, 123, 0, 0, 0, 129,
- 0, 0, 124, 0, 120, 11, 91, 99, 98, 0,
- 88, 51, 58, 0, 0, 0, 0, 0, 68, 71,
- 168, 126, 135, 131, 0, 0, 133, 128, 132, 90,
- 96, 95, 97, 0, 70, 0, 0, 0, 0, 130,
- 94, 56, 0, 0, 0, 134, 69, 12, 0, 14,
- 0, 13
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 22,
+ 5, 10, 82, 0, 0, 0, 0, 54, 53, 3,
+ 2, 8, 7, 49, 0, 118, 0, 116, 66, 0,
+ 0, 0, 0, 0, 0, 0, 76, 0, 112, 103,
+ 0, 87, 81, 113, 104, 0, 0, 115, 0, 0,
+ 165, 166, 0, 0, 106, 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,
+ 78, 0, 0, 0, 0, 0, 122, 0, 84, 0,
+ 0, 93, 0, 0, 9, 50, 0, 111, 0, 61,
+ 0, 0, 57, 0, 17, 0, 0, 0, 20, 18,
+ 0, 67, 0, 63, 0, 0, 159, 0, 170, 73,
+ 160, 0, 0, 162, 161, 158, 123, 126, 0, 0,
+ 0, 0, 0, 0, 0, 128, 0, 0, 0, 0,
+ 80, 114, 0, 92, 0, 89, 52, 0, 117, 65,
+ 59, 60, 0, 0, 55, 0, 0, 16, 15, 0,
+ 0, 21, 0, 107, 72, 0, 0, 164, 0, 124,
+ 0, 0, 0, 130, 0, 0, 125, 0, 121, 11,
+ 91, 99, 98, 0, 88, 51, 58, 0, 0, 0,
+ 0, 0, 68, 71, 169, 127, 136, 132, 0, 0,
+ 134, 129, 133, 90, 96, 95, 97, 0, 70, 0,
+ 0, 0, 0, 131, 94, 56, 0, 0, 0, 135,
+ 69, 12, 0, 14, 0, 13
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -157, -157, -157, 177, 92, -1, -157, -157, 184, -11,
- -157, -43, 5, -157, -157, 89, -98, -140, -4, -157,
- 23, -157, -61, -156, -157, -157, -53, -18, -106, -157
+ -120, -120, -120, 171, 83, -1, -120, -120, 176, -12,
+ -120, -46, 5, -120, -120, 80, -103, -109, -5, -120,
+ 22, -120, -16, -119, -120, -120, -68, -18, -105, -120
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- -1, 2, 3, 30, 118, 110, 31, 32, 115, 24,
- 199, 200, 25, 44, 127, 136, 255, 215, 26, 125,
- 126, 182, 183, 184, 225, 231, 232, 81, 82, 83
+ -1, 2, 3, 30, 119, 111, 31, 32, 116, 24,
+ 201, 202, 25, 44, 128, 137, 258, 218, 26, 126,
+ 127, 184, 185, 186, 228, 234, 235, 82, 83, 84
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -911,456 +914,440 @@ static const yytype_int16 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
- 23, 68, 42, 143, 71, 111, 217, 38, 39, 37,
- 220, 221, 40, 112, 197, 243, 45, 47, 144, 120,
- 75, 71, 111, 145, 224, 72, 271, 80, 143, 119,
- 131, 123, 124, 116, 116, 264, 179, 213, 16, 180,
- 194, 181, 195, 144, 28, 29, 272, 222, 105, 106,
- 107, 128, 108, 265, 129, 16, 111, 249, 1, 250,
- 111, 149, 185, 43, 113, 114, 209, 210, 132, 211,
- 204, 205, 198, 244, 260, 27, 33, 147, 274, 263,
- 34, 113, 114, 154, 155, 156, 157, 158, 159, 160,
- 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
- 171, 172, 173, 174, 175, 176, 177, 35, 291, 120,
- 292, 293, 36, 190, 296, 113, 114, 298, 186, 113,
- 114, 289, 290, 209, 210, 41, 246, 133, 201, 203,
- 134, 135, 207, 137, 4, 5, 6, 7, 8, 309,
- 216, 139, 216, 140, 141, 146, 216, 216, 80, 150,
- 151, 152, 315, 153, 178, 191, 208, 219, 80, 108,
- 15, 223, 234, 233, 235, 4, 5, 6, 7, 8,
- 237, 16, -119, 238, 240, 256, 261, 262, 257, 269,
- 248, 280, 266, 214, 236, 281, 230, 239, 267, -118,
- 18, 15, 19, 124, 20, 21, 270, 22, 273, 283,
- 295, 299, 16, 300, 301, 310, 282, 258, 121, 259,
- 216, 308, 192, 117, 316, 216, 196, 245, 297, -156,
- -156, 18, 0, 19, 0, 20, 21, 268, 22, 0,
- 0, 0, 0, 0, 275, 0, 0, 0, 0, 0,
- 279, 0, 0, 0, 0, 0, 0, -156, -156, 0,
- 0, 284, 285, 233, 0, 286, 287, 216, 216, -156,
- -156, 103, 104, 105, 106, 107, 0, 108, 0, 0,
- 0, 0, 0, 0, 0, 0, 230, 0, 0, 0,
- 0, 0, 303, 0, 0, 0, 0, 0, -74, 69,
- 0, 0, 70, -74, 0, 71, 0, -74, -74, -74,
- -74, -74, 0, 0, 312, 313, 314, -74, -74, -74,
- 0, 0, -74, -74, -74, 0, -74, 320, 0, 0,
- -74, -74, -74, -74, -74, -74, -74, -74, 0, 16,
- 0, 0, -74, 0, 0, -74, -74, -74, -74, -74,
- -74, -74, -74, -74, -74, 0, -74, -74, 0, -74,
- 0, -74, -74, -74, -74, 76, -74, 0, 77, 85,
- 86, 71, 0, 0, 0, 0, 0, 49, 50, 51,
- 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
- 62, 63, 64, 65, 66, 67, 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, 212, 0, 78, 77, 79, 0, 71, 0,
- 0, 0, -155, 0, 49, 50, 51, 52, 53, 54,
- 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
- 65, 66, 67, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 16, 0, 0, 187, 0, 0, 4, 5,
- 6, 7, 8, 0, 0, 0, 0, 0, 9, 0,
- 0, 78, 10, 79, 0, 0, 11, 12, 0, -155,
- 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, 188, 20, 21,
- 189, 22, 73, 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, 74, 22, 46,
+ 23, 69, 199, 42, 72, 33, 38, 39, 112, 37,
+ 275, 112, 40, 112, 27, 112, 45, 47, 121, 113,
+ 76, 132, 72, 133, 246, 73, 145, 81, 1, 120,
+ 276, 124, 125, 117, 117, 268, 36, 145, 16, 220,
+ 216, 146, 181, 223, 224, 182, 147, 183, 35, 196,
+ 225, 197, 146, 269, 211, 212, 16, 213, 211, 212,
+ 200, 249, 151, 227, 43, 28, 29, 114, 115, 34,
+ 114, 115, 114, 115, 114, 115, 134, 252, 149, 253,
+ 187, 41, 247, 135, 156, 157, 158, 159, 160, 161,
+ 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
+ 172, 173, 174, 175, 176, 177, 178, 179, 264, 121,
+ 136, 138, 129, 267, 192, 130, 206, 207, 278, 188,
+ 106, 107, 108, 140, 109, 141, 142, 148, 143, 203,
+ 205, 154, 152, 209, 153, 155, 180, 210, 193, 214,
+ 109, 219, 226, 219, 222, 237, 238, 219, 219, 295,
+ 81, 296, 297, -120, 240, 300, 293, 294, 302, 241,
+ 81, 243, 259, 263, 260, 236, 265, 273, 284, 285,
+ 189, 266, 270, 4, 5, 6, 7, 8, 271, 274,
+ 313, 277, 251, 9, 287, 299, 239, 10, 233, 242,
+ -119, 11, 12, 319, 303, 125, 13, 304, 14, 15,
+ 305, 314, 122, 312, 194, 118, 286, 301, 198, 261,
+ 16, 262, 219, 320, 0, 0, 0, 219, 248, 0,
+ 0, 0, 17, 85, 86, 87, 88, 0, 0, 18,
+ 272, 19, 190, 20, 21, 191, 22, 279, 0, 89,
+ 90, 0, 0, 283, 0, 0, 91, 92, 93, 94,
+ 95, 96, 97, 98, 288, 289, 0, 236, 290, 291,
+ 219, 219, 0, 101, 102, 103, 104, 105, 106, 107,
+ 108, 0, 109, 0, 0, 0, 0, 0, 0, 0,
+ 233, 0, 0, 0, 0, 0, 307, 0, 0, 0,
+ 0, 0, -74, 70, 0, 0, 71, -74, 0, 72,
+ 0, -74, -74, -74, -74, -74, 0, 0, 316, 317,
+ 318, -74, -74, -74, 0, 0, -74, -74, -74, 0,
+ -74, 324, 0, 0, -74, -74, -74, -74, -74, -74,
+ -74, -74, 0, 16, 0, 0, -74, 0, 0, -74,
+ -74, -74, -74, -74, -74, -74, -74, -74, -74, 0,
+ -74, -74, 0, -74, 0, -74, -74, -74, -74, 77,
+ -74, 0, 78, -157, -157, 72, 0, 0, 0, 0,
+ 0, 49, 50, 51, 52, 53, 54, 55, 56, 57,
+ 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
+ 0, -157, -157, 0, 0, 0, 0, 0, 0, 16,
+ 0, 0, 0, -157, -157, 104, 105, 106, 107, 108,
+ 0, 109, 0, 0, 0, 0, 215, 0, 79, 78,
+ 80, 0, 72, 0, 0, 0, -156, 0, 49, 50,
+ 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
+ 61, 62, 63, 64, 65, 66, 67, 4, 5, 6,
+ 7, 8, 0, 0, 0, 0, 16, 0, 0, 74,
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, 202, 22, 0, 4, 5, 6,
- 7, 8, 0, 0, 0, 0, 0, 9, 0, 0,
- 0, 10, 0, 0, 0, 11, 12, 0, 0, 0,
- 13, 0, 14, 15, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 16, 0, 0, 0, 0, 0,
+ 0, 0, 9, 15, 0, 79, 10, 80, 0, 0,
+ 11, 12, 0, -156, 16, 13, 0, 14, 15, 0,
+ 0, 0, 0, 0, 0, 0, 217, 0, 0, 16,
+ 0, 0, 0, 18, 0, 19, 0, 20, 21, 0,
+ 22, 17, 4, 5, 6, 7, 8, 0, 18, 0,
+ 19, 0, 20, 21, 75, 22, 46, 0, 0, 4,
+ 5, 6, 7, 8, 0, 0, 0, 0, 15, 9,
+ 0, 0, 0, 10, 0, 0, 0, 11, 12, 16,
+ 0, 0, 13, 0, 14, 15, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 16, 0, 18, 0,
+ 19, 0, 20, 21, 0, 22, 0, 0, 17, 0,
+ 0, 86, 87, 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, 97,
+ 98, 0, 11, 12, 0, 0, 0, 13, 0, 14,
+ 15, 102, 103, 104, 105, 106, 107, 108, 0, 109,
+ 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, 208, 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, 0, 18, 0, 19, 0, 20, 21, 206,
- 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, 278, 22, 0, 16,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 17, 0, 0, 0, 0, 0, 0, 18, 0,
- 19, 226, 20, 21, 227, 22, 0, 71, 0, 0,
- 0, 0, 0, 49, 50, 51, 52, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
- 66, 67, 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,
- 228, 0, 229, 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, 241, 0, 0, 242,
- 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, 276,
- 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, 277,
- 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, 302,
- 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, 318, 0, 319, 84, 85, 86, 87, 0,
+ 0, 0, 123, 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, 282, 22, 0, 16, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 17, 0,
+ 0, 0, 0, 0, 0, 18, 0, 19, 229, 20,
+ 21, 230, 22, 0, 72, 0, 0, 0, 0, 0,
+ 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
+ 59, 60, 61, 62, 63, 64, 65, 66, 67, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 16, 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, 218, 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, 294, 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, 317,
- 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, 321, 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, 48, 0, 0, 0, 0, 0, 231, 0, 232,
+ 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
+ 59, 60, 61, 62, 63, 64, 65, 66, 67, 0,
+ 0, 0, 0, 0, 0, 0, 0, 85, 86, 87,
+ 88, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 89, 90, 0, 0, 0, 0, 68,
+ 91, 92, 93, 94, 95, 96, 97, 98, 0, 0,
+ 0, 0, 0, 0, 0, 99, 100, 101, 102, 103,
+ 104, 105, 106, 107, 108, 0, 109, 85, 86, 87,
+ 88, 244, 0, 0, 245, 0, 0, 0, 0, 0,
+ 0, 0, 0, 89, 90, 0, 0, 0, 0, 0,
+ 91, 92, 93, 94, 95, 96, 97, 98, 0, 0,
+ 0, 0, 0, 0, 0, 99, 100, 101, 102, 103,
+ 104, 105, 106, 107, 108, 0, 109, 85, 86, 87,
+ 88, 0, 0, 0, 144, 0, 0, 0, 0, 0,
+ 0, 0, 0, 89, 90, 0, 0, 0, 0, 0,
+ 91, 92, 93, 94, 95, 96, 97, 98, 0, 0,
+ 0, 0, 0, 0, 0, 99, 100, 101, 102, 103,
+ 104, 105, 106, 107, 108, 0, 109, 85, 86, 87,
+ 88, 0, 0, 0, 280, 0, 0, 0, 0, 0,
+ 0, 0, 0, 89, 90, 0, 0, 0, 0, 0,
+ 91, 92, 93, 94, 95, 96, 97, 98, 0, 0,
+ 0, 0, 0, 0, 0, 99, 100, 101, 102, 103,
+ 104, 105, 106, 107, 108, 0, 109, 85, 86, 87,
+ 88, 0, 0, 0, 281, 0, 0, 0, 0, 0,
+ 0, 0, 0, 89, 90, 0, 0, 0, 0, 0,
+ 91, 92, 93, 94, 95, 96, 97, 98, 0, 0,
+ 0, 0, 0, 0, 0, 99, 100, 101, 102, 103,
+ 104, 105, 106, 107, 108, 0, 109, 85, 86, 87,
+ 88, 0, 0, 0, 306, 0, 0, 0, 0, 0,
+ 0, 0, 0, 89, 90, 0, 0, 0, 0, 0,
+ 91, 92, 93, 94, 95, 96, 97, 98, 0, 0,
+ 0, 0, 0, 0, 0, 99, 100, 101, 102, 103,
+ 104, 105, 106, 107, 108, 0, 109, 322, 0, 323,
+ 85, 86, 87, 88, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 89, 90, 0, 0,
+ 0, 0, 0, 91, 92, 93, 94, 95, 96, 97,
+ 98, 0, 0, 0, 85, 86, 87, 88, 99, 100,
+ 101, 102, 103, 104, 105, 106, 107, 108, 0, 109,
+ 89, 90, 139, 0, 0, 0, 0, 91, 92, 93,
+ 94, 95, 96, 97, 98, 0, 0, 0, 85, 86,
+ 87, 88, 99, 100, 101, 102, 103, 104, 105, 106,
+ 107, 108, 0, 109, 89, 90, 221, 0, 0, 0,
+ 0, 91, 92, 93, 94, 95, 96, 97, 98, 0,
+ 0, 0, 85, 86, 87, 88, 99, 100, 101, 102,
+ 103, 104, 105, 106, 107, 108, 0, 109, 89, 90,
+ 298, 0, 0, 0, 0, 91, 92, 93, 94, 95,
+ 96, 97, 98, 0, 0, 0, 85, 86, 87, 88,
+ 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
+ 0, 109, 89, 90, 321, 0, 0, 0, 0, 91,
+ 92, 93, 94, 95, 96, 97, 98, 0, 0, 0,
+ 85, 86, 87, 88, 99, 100, 101, 102, 103, 104,
+ 105, 106, 107, 108, 0, 109, 89, 90, 325, 0,
+ 0, 0, 0, 91, 92, 93, 94, 95, 96, 97,
+ 98, 0, 0, 0, 0, 0, 0, 0, 99, 100,
+ 101, 102, 103, 104, 105, 106, 107, 108, 0, 109,
+ 110, 85, 86, 87, 88, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 89, 90, 0,
+ 0, 0, 0, 0, 91, 92, 93, 94, 95, 96,
+ 97, 98, 0, 0, 0, 0, 0, 0, 0, 99,
+ 100, 101, 102, 103, 104, 105, 106, 107, 108, 0,
+ 109, 195, 85, 86, 87, 88, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 89, 90,
+ 0, 0, 0, 0, 0, 91, 92, 93, 94, 95,
+ 96, 97, 98, 0, 0, 0, 0, 0, 0, 0,
+ 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
+ 0, 109, 254, 85, 86, 87, 88, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 89,
+ 90, 0, 0, 0, 0, 0, 91, 92, 93, 94,
+ 95, 96, 97, 98, 0, 0, 0, 0, 0, 0,
+ 0, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 0, 109, 310, 85, 86, 87, 88, 0, 0,
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, 193, 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, 251, 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, 306, 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, 307,
- 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,
- 311, 84, 85, 86, 87, 0, 0, 0, 0, 0,
- 0, 0, 252, 253, 0, 0, 254, 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, 252, 253, 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,
- 288, 0, 0, 98, 99, 100, 101, 102, 103, 104,
- 105, 106, 107, 0, 108, 84, 85, 86, 87, 0,
+ 89, 90, 0, 0, 0, 0, 0, 91, 92, 93,
+ 94, 95, 96, 97, 98, 0, 0, 0, 0, 0,
+ 0, 0, 99, 100, 101, 102, 103, 104, 105, 106,
+ 107, 108, 0, 109, 311, 85, 86, 87, 88, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 304, 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, 305, 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, -156, 85, 86,
- 0, 0, 0, 100, 101, 102, 103, 104, 105, 106,
- 107, 0, 108, 88, 89, 0, 0, 0, 0, 0,
- -156, -156, -156, -156, -156, -156, 96, 97, 0, 0,
- 85, 86, 0, 0, 0, 0, 0, -156, 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, 48, 108, 0,
- 0, 0, 0, 0, 0, 0, 49, 50, 51, 52,
- 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
- 63, 64, 65, 66, 67, 148, 0, 0, 0, 0,
- 0, 0, 0, 0, 49, 50, 51, 52, 53, 54,
- 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
- 65, 66, 67, 247, 0, 0, 0, 0, 0, 0,
- 0, 0, 49, 50, 51, 52, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
- 67
+ 0, 89, 90, 0, 0, 0, 0, 0, 91, 92,
+ 93, 94, 95, 96, 97, 98, 0, 0, 0, 0,
+ 0, 0, 0, 99, 100, 101, 102, 103, 104, 105,
+ 106, 107, 108, 0, 109, 315, 85, 86, 87, 88,
+ 0, 0, 0, 0, 0, 0, 0, 255, 256, 0,
+ 0, 257, 89, 90, 0, 0, 0, 0, 0, 91,
+ 92, 93, 94, 95, 96, 97, 98, 0, 0, 0,
+ 0, 0, 0, 0, 99, 100, 101, 102, 103, 104,
+ 105, 106, 107, 108, 0, 109, 85, 86, 87, 88,
+ 0, 0, 0, 0, 0, 0, 0, 255, 256, 0,
+ 0, 0, 89, 90, 0, 0, 0, 0, 0, 91,
+ 92, 93, 94, 95, 96, 97, 98, 0, 0, 0,
+ 0, 0, 0, 0, 99, 100, 101, 102, 103, 104,
+ 105, 106, 107, 108, 0, 109, 85, 86, 87, 88,
+ 0, 0, 0, 0, 0, 0, 131, 0, 0, 0,
+ 0, 0, 89, 90, 0, 0, 0, 0, 0, 91,
+ 92, 93, 94, 95, 96, 97, 98, 0, 0, 0,
+ 85, 86, 87, 88, 99, 100, 101, 102, 103, 104,
+ 105, 106, 107, 108, 0, 109, 89, 90, 0, 0,
+ 0, 0, 0, 91, 92, 93, 94, 95, 96, 97,
+ 98, 0, 0, 0, 0, 292, 0, 0, 99, 100,
+ 101, 102, 103, 104, 105, 106, 107, 108, 0, 109,
+ 85, 86, 87, 88, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 308, 89, 90, 0, 0,
+ 0, 0, 0, 91, 92, 93, 94, 95, 96, 97,
+ 98, 0, 0, 0, 0, 0, 0, 0, 99, 100,
+ 101, 102, 103, 104, 105, 106, 107, 108, 0, 109,
+ 85, 86, 87, 88, 0, 0, 0, 0, 0, 0,
+ 309, 0, 0, 0, 0, 0, 89, 90, 0, 0,
+ 0, 0, 0, 91, 92, 93, 94, 95, 96, 97,
+ 98, 0, 0, 0, 85, 86, 87, 88, 99, 100,
+ 101, 102, 103, 104, 105, 106, 107, 108, 0, 109,
+ 89, 90, 0, 0, 0, 0, 0, 91, 92, 93,
+ 94, 95, 96, 97, 98, 0, 0, 0, -157, 86,
+ 87, 0, 99, 100, 101, 102, 103, 104, 105, 106,
+ 107, 108, 0, 109, 89, 90, 0, 0, 0, 0,
+ 0, -157, -157, -157, -157, -157, -157, 97, 98, 0,
+ 0, 86, 87, 0, 0, 0, 0, 0, -157, 102,
+ 103, 104, 105, 106, 107, 108, 89, 109, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 97,
+ 98, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 102, 103, 104, 105, 106, 107, 108, 150, 109,
+ 0, 0, 0, 0, 0, 0, 0, 49, 50, 51,
+ 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
+ 62, 63, 64, 65, 66, 67, 250, 0, 0, 0,
+ 0, 0, 0, 0, 0, 49, 50, 51, 52, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67
};
static const yytype_int16 yycheck[] =
{
- 1, 19, 1, 48, 7, 5, 146, 11, 12, 10,
- 150, 151, 13, 13, 4, 4, 17, 18, 63, 30,
- 21, 7, 5, 68, 180, 20, 48, 22, 48, 30,
- 13, 32, 33, 28, 29, 48, 62, 143, 41, 65,
- 59, 67, 61, 63, 16, 17, 68, 153, 54, 55,
- 56, 60, 58, 66, 63, 41, 5, 59, 15, 61,
- 5, 79, 65, 62, 64, 65, 42, 43, 13, 45,
- 131, 132, 62, 62, 214, 0, 60, 78, 234, 219,
- 58, 64, 65, 84, 85, 86, 87, 88, 89, 90,
+ 1, 19, 4, 1, 7, 60, 11, 12, 5, 10,
+ 48, 5, 13, 5, 0, 5, 17, 18, 30, 13,
+ 21, 13, 7, 13, 4, 20, 48, 22, 15, 30,
+ 68, 32, 33, 28, 29, 48, 4, 48, 41, 148,
+ 145, 63, 62, 152, 153, 65, 68, 67, 41, 59,
+ 155, 61, 63, 66, 42, 43, 41, 45, 42, 43,
+ 62, 45, 80, 182, 62, 16, 17, 64, 65, 58,
+ 64, 65, 64, 65, 64, 65, 28, 59, 79, 61,
+ 65, 62, 62, 4, 85, 86, 87, 88, 89, 90,
91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
- 101, 102, 103, 104, 105, 106, 107, 41, 264, 120,
- 266, 267, 4, 114, 270, 64, 65, 273, 113, 64,
- 65, 261, 262, 42, 43, 62, 45, 28, 129, 130,
- 4, 4, 133, 61, 4, 5, 6, 7, 8, 295,
- 144, 1, 146, 58, 66, 63, 150, 151, 143, 63,
- 63, 68, 308, 48, 58, 13, 47, 63, 153, 58,
- 30, 4, 40, 181, 47, 4, 5, 6, 7, 8,
- 58, 41, 40, 66, 58, 60, 47, 63, 60, 4,
- 198, 58, 63, 53, 185, 4, 181, 188, 63, 40,
- 60, 30, 62, 194, 64, 65, 63, 67, 63, 63,
- 63, 58, 41, 58, 58, 58, 249, 208, 31, 210,
- 214, 63, 120, 29, 312, 219, 127, 194, 271, 10,
- 11, 60, -1, 62, -1, 64, 65, 228, 67, -1,
- -1, -1, -1, -1, 235, -1, -1, -1, -1, -1,
- 241, -1, -1, -1, -1, -1, -1, 38, 39, -1,
- -1, 252, 253, 271, -1, 256, 257, 261, 262, 50,
- 51, 52, 53, 54, 55, 56, -1, 58, -1, -1,
- -1, -1, -1, -1, -1, -1, 271, -1, -1, -1,
- -1, -1, 283, -1, -1, -1, -1, -1, 0, 1,
- -1, -1, 4, 5, -1, 7, -1, 9, 10, 11,
- 12, 13, -1, -1, 305, 306, 307, 19, 20, 21,
- -1, -1, 24, 25, 26, -1, 28, 318, -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, -1, -1, -1, -1, -1, -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, -1, -1, 22, 23, -1, 68,
- -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, 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, 66, 67, 1,
+ 101, 102, 103, 104, 105, 106, 107, 108, 217, 121,
+ 4, 61, 60, 222, 115, 63, 132, 133, 237, 114,
+ 54, 55, 56, 62, 58, 1, 58, 63, 66, 130,
+ 131, 68, 63, 134, 63, 48, 58, 47, 13, 62,
+ 58, 146, 4, 148, 63, 40, 47, 152, 153, 268,
+ 145, 270, 271, 40, 58, 274, 265, 266, 277, 66,
+ 155, 58, 60, 4, 60, 183, 47, 4, 58, 4,
+ 1, 63, 63, 4, 5, 6, 7, 8, 63, 63,
+ 299, 63, 200, 14, 63, 63, 187, 18, 183, 190,
+ 40, 22, 23, 312, 58, 196, 27, 58, 29, 30,
+ 58, 58, 31, 63, 121, 29, 252, 275, 128, 210,
+ 41, 212, 217, 316, -1, -1, -1, 222, 196, -1,
+ -1, -1, 53, 9, 10, 11, 12, -1, -1, 60,
+ 231, 62, 63, 64, 65, 66, 67, 238, -1, 25,
+ 26, -1, -1, 244, -1, -1, 32, 33, 34, 35,
+ 36, 37, 38, 39, 255, 256, -1, 275, 259, 260,
+ 265, 266, -1, 49, 50, 51, 52, 53, 54, 55,
+ 56, -1, 58, -1, -1, -1, -1, -1, -1, -1,
+ 275, -1, -1, -1, -1, -1, 287, -1, -1, -1,
+ -1, -1, 0, 1, -1, -1, 4, 5, -1, 7,
+ -1, 9, 10, 11, 12, 13, -1, -1, 309, 310,
+ 311, 19, 20, 21, -1, -1, 24, 25, 26, -1,
+ 28, 322, -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, -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, 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, 4, 5, 6, 7, 8, -1, 60, -1,
+ 62, -1, 64, 65, 66, 67, 1, -1, -1, 4,
+ 5, 6, 7, 8, -1, -1, -1, -1, 30, 14,
+ -1, -1, -1, 18, -1, -1, -1, 22, 23, 41,
+ -1, -1, 27, -1, 29, 30, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 41, -1, 60, -1,
+ 62, -1, 64, 65, -1, 67, -1, -1, 53, -1,
+ -1, 10, 11, -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, 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, 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, -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, 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, -1,
-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,
+ -1, 4, -1, -1, -1, -1, -1, 60, -1, 62,
+ 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, 9, 10, 11,
+ 12, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 25, 26, -1, -1, -1, -1, 62,
+ 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, 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, 9, 10, 11, 12, -1, -1, -1, 66,
+ -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, -1, 61, 9, 10, 11, 12, -1,
+ -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, -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, -1, -1, -1, -1, -1, -1, -1,
+ -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, 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, -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,
+ 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, -1, 25, 26, -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,
- 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, 4, 58, -1,
- -1, -1, -1, -1, -1, -1, 13, 14, 15, 16,
- 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
- 27, 28, 29, 30, 31, 4, -1, -1, -1, -1,
- -1, -1, -1, -1, 13, 14, 15, 16, 17, 18,
- 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
- 29, 30, 31, 4, -1, -1, -1, -1, -1, -1,
- -1, -1, 13, 14, 15, 16, 17, 18, 19, 20,
- 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
- 31
+ 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, 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, 4, 58,
+ -1, -1, -1, -1, -1, -1, -1, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
+ 26, 27, 28, 29, 30, 31, 4, -1, -1, -1,
+ -1, -1, -1, -1, -1, 13, 14, 15, 16, 17,
+ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
+ 28, 29, 30, 31
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1373,33 +1360,33 @@ static const yytype_uint8 yystos[] =
72, 75, 76, 60, 58, 41, 4, 74, 87, 87,
74, 62, 1, 62, 82, 74, 1, 74, 4, 13,
14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31, 96, 1,
- 4, 7, 81, 1, 66, 74, 1, 4, 60, 62,
- 81, 96, 97, 98, 9, 10, 11, 12, 25, 26,
- 32, 33, 34, 35, 36, 37, 38, 39, 47, 48,
- 49, 50, 51, 52, 53, 54, 55, 56, 58, 59,
- 74, 5, 13, 64, 65, 77, 81, 77, 73, 74,
- 78, 72, 59, 74, 74, 88, 89, 83, 60, 63,
- 19, 13, 13, 28, 4, 4, 84, 61, 61, 1,
- 58, 66, 66, 48, 63, 68, 63, 74, 4, 96,
- 63, 63, 68, 48, 74, 74, 74, 74, 74, 74,
+ 24, 25, 26, 27, 28, 29, 30, 31, 62, 96,
+ 1, 4, 7, 81, 1, 66, 74, 1, 4, 60,
+ 62, 81, 96, 97, 98, 9, 10, 11, 12, 25,
+ 26, 32, 33, 34, 35, 36, 37, 38, 39, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 58,
+ 59, 74, 5, 13, 64, 65, 77, 81, 77, 73,
+ 74, 78, 72, 59, 74, 74, 88, 89, 83, 60,
+ 63, 19, 13, 13, 28, 4, 4, 84, 61, 61,
+ 62, 1, 58, 66, 66, 48, 63, 68, 63, 74,
+ 4, 96, 63, 63, 68, 48, 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, 58, 62,
- 65, 67, 90, 91, 92, 65, 81, 1, 63, 66,
- 74, 13, 73, 59, 59, 61, 84, 4, 62, 79,
- 80, 74, 1, 74, 91, 91, 1, 74, 47, 42,
- 43, 45, 1, 97, 53, 86, 87, 86, 61, 63,
- 86, 86, 97, 4, 92, 93, 1, 4, 60, 62,
- 81, 94, 95, 96, 40, 47, 74, 58, 66, 74,
- 58, 63, 66, 4, 62, 89, 45, 4, 96, 59,
- 61, 59, 20, 21, 24, 85, 60, 60, 74, 74,
- 86, 47, 63, 86, 48, 66, 63, 63, 74, 4,
- 63, 48, 68, 63, 92, 74, 66, 66, 66, 74,
- 58, 4, 80, 63, 74, 74, 74, 74, 44, 86,
- 86, 92, 92, 92, 61, 63, 92, 95, 92, 58,
- 58, 58, 66, 74, 24, 19, 59, 59, 63, 92,
- 58, 59, 74, 74, 74, 92, 85, 61, 59, 61,
- 74, 61
+ 58, 62, 65, 67, 90, 91, 92, 65, 81, 1,
+ 63, 66, 74, 13, 73, 59, 59, 61, 84, 4,
+ 62, 79, 80, 74, 1, 74, 91, 91, 1, 74,
+ 47, 42, 43, 45, 62, 1, 97, 53, 86, 87,
+ 86, 61, 63, 86, 86, 97, 4, 92, 93, 1,
+ 4, 60, 62, 81, 94, 95, 96, 40, 47, 74,
+ 58, 66, 74, 58, 63, 66, 4, 62, 89, 45,
+ 4, 96, 59, 61, 59, 20, 21, 24, 85, 60,
+ 60, 74, 74, 4, 86, 47, 63, 86, 48, 66,
+ 63, 63, 74, 4, 63, 48, 68, 63, 92, 74,
+ 66, 66, 66, 74, 58, 4, 80, 63, 74, 74,
+ 74, 74, 44, 86, 86, 92, 92, 92, 61, 63,
+ 92, 95, 92, 58, 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. */
@@ -1416,12 +1403,13 @@ static const yytype_uint8 yyr1[] =
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,
+ 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, 96, 96, 96, 96, 96,
- 96, 96, 96, 96, 96, 97, 97, 97, 97, 98,
- 98, 98, 98, 98, 98, 98, 98, 98, 98, 98
+ 96, 96, 96, 96, 96, 96, 97, 97, 97, 97,
+ 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
+ 98
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@@ -1437,13 +1425,14 @@ static const yytype_uint8 yyr2[] =
3, 3, 2, 1, 1, 1, 3, 2, 3, 2,
4, 3, 2, 1, 3, 2, 2, 3, 5, 4,
6, 5, 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, 3, 3, 2, 3, 5, 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, 2, 1, 1, 5, 3
+ 1, 1, 1, 1, 1, 1, 0, 1, 3, 3,
+ 3, 3, 3, 1, 4, 2, 2, 1, 1, 5,
+ 3
};
@@ -1459,22 +1448,22 @@ static const yytype_uint8 yyr2[] =
#define YYRECOVERING() (!!yyerrstatus)
-#define YYBACKUP(Token, Value) \
- do \
- if (yychar == YYEMPTY) \
- { \
- yychar = (Token); \
- yylval = (Value); \
- YYPOPSTACK (yylen); \
- yystate = *yyssp; \
- goto yybackup; \
- } \
- else \
- { \
- yyerror (&yylloc, answer, errors, locations, lexer_param_ptr, YY_("syntax error: cannot back up")); \
- YYERROR; \
- } \
- while (0)
+#define YYBACKUP(Token, Value) \
+do \
+ if (yychar == YYEMPTY) \
+ { \
+ yychar = (Token); \
+ yylval = (Value); \
+ YYPOPSTACK (yylen); \
+ yystate = *yyssp; \
+ goto yybackup; \
+ } \
+ else \
+ { \
+ yyerror (&yylloc, answer, errors, locations, lexer_param_ptr, YY_("syntax error: cannot back up")); \
+ YYERROR; \
+ } \
+while (0)
/* Error token number */
#define YYTERROR 1
@@ -1533,10 +1522,10 @@ do { \
/* Print *YYLOCP on YYO. Private, do not rely on its existence. */
YY_ATTRIBUTE_UNUSED
-static int
+static unsigned
yy_location_print_ (FILE *yyo, YYLTYPE const * const yylocp)
{
- int res = 0;
+ unsigned res = 0;
int end_col = 0 != yylocp->last_column ? yylocp->last_column - 1 : 0;
if (0 <= yylocp->first_line)
{
@@ -1579,15 +1568,15 @@ do { \
} while (0)
-/*-----------------------------------.
-| Print this symbol's value on YYO. |
-`-----------------------------------*/
+/*----------------------------------------.
+| Print this symbol's value on YYOUTPUT. |
+`----------------------------------------*/
static void
-yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, block* answer, int* errors, struct locfile* locations, struct lexer_param* lexer_param_ptr)
+yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, block* answer, int* errors, struct locfile* locations, struct lexer_param* lexer_param_ptr)
{
- FILE *yyoutput = yyo;
- YYUSE (yyoutput);
+ FILE *yyo = yyoutput;
+ YYUSE (yyo);
YYUSE (yylocationp);
YYUSE (answer);
YYUSE (errors);
@@ -1597,26 +1586,26 @@ yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, YY
return;
# ifdef YYPRINT
if (yytype < YYNTOKENS)
- YYPRINT (yyo, yytoknum[yytype], *yyvaluep);
+ YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
# endif
YYUSE (yytype);
}
-/*---------------------------.
-| Print this symbol on YYO. |
-`---------------------------*/
+/*--------------------------------.
+| Print this symbol on YYOUTPUT. |
+`--------------------------------*/
static void
-yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, block* answer, int* errors, struct locfile* locations, struct lexer_param* lexer_param_ptr)
+yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, block* answer, int* errors, struct locfile* locations, struct lexer_param* lexer_param_ptr)
{
- YYFPRINTF (yyo, "%s %s (",
+ YYFPRINTF (yyoutput, "%s %s (",
yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
- YY_LOCATION_PRINT (yyo, *yylocationp);
- YYFPRINTF (yyo, ": ");
- yy_symbol_value_print (yyo, yytype, yyvaluep, yylocationp, answer, errors, locations, lexer_param_ptr);
- YYFPRINTF (yyo, ")");
+ YY_LOCATION_PRINT (yyoutput, *yylocationp);
+ YYFPRINTF (yyoutput, ": ");
+ yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, answer, errors, locations, lexer_param_ptr);
+ YYFPRINTF (yyoutput, ")");
}
/*------------------------------------------------------------------.
@@ -1650,7 +1639,7 @@ do { \
static void
yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule, block* answer, int* errors, struct locfile* locations, struct lexer_param* lexer_param_ptr)
{
- unsigned long yylno = yyrline[yyrule];
+ unsigned long int yylno = yyrline[yyrule];
int yynrhs = yyr2[yyrule];
int yyi;
YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
@@ -1661,7 +1650,7 @@ yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule
YYFPRINTF (stderr, " $%d = ", yyi + 1);
yy_symbol_print (stderr,
yystos[yyssp[yyi + 1 - yynrhs]],
- &yyvsp[(yyi + 1) - (yynrhs)]
+ &(yyvsp[(yyi + 1) - (yynrhs)])
, &(yylsp[(yyi + 1) - (yynrhs)]) , answer, errors, locations, lexer_param_ptr);
YYFPRINTF (stderr, "\n");
}
@@ -1765,10 +1754,7 @@ yytnamerr (char *yyres, const char *yystr)
case '\\':
if (*++yyp != '\\')
goto do_not_strip_quotes;
- else
- goto append;
-
- append:
+ /* Fall through. */
default:
if (yyres)
yyres[yyn] = *yyp;
@@ -1786,7 +1772,7 @@ yytnamerr (char *yyres, const char *yystr)
if (! yyres)
return yystrlen (yystr);
- return (YYSIZE_T) (yystpcpy (yyres, yystr) - yyres);
+ return yystpcpy (yyres, yystr) - yyres;
}
# endif
@@ -1864,10 +1850,10 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
yyarg[yycount++] = yytname[yyx];
{
YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
- if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
- yysize = yysize1;
- else
+ if (! (yysize <= yysize1
+ && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
return 2;
+ yysize = yysize1;
}
}
}
@@ -1879,7 +1865,6 @@ 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"));
@@ -1891,10 +1876,9 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
{
YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
- if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
- yysize = yysize1;
- else
+ if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
return 2;
+ yysize = yysize1;
}
if (*yymsg_alloc < yysize)
@@ -1948,192 +1932,193 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio
YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
switch (yytype)
{
- case 4: /* IDENT */
+ case 4: /* IDENT */
#line 36 "src/parser.y" /* yacc.c:1257 */
{ jv_free(((*yyvaluep).literal)); }
-#line 1955 "src/parser.c" /* yacc.c:1257 */
+#line 1939 "src/parser.c" /* yacc.c:1257 */
break;
case 5: /* FIELD */
#line 36 "src/parser.y" /* yacc.c:1257 */
{ jv_free(((*yyvaluep).literal)); }
-#line 1961 "src/parser.c" /* yacc.c:1257 */
+#line 1945 "src/parser.c" /* yacc.c:1257 */
break;
case 6: /* LITERAL */
#line 36 "src/parser.y" /* yacc.c:1257 */
{ jv_free(((*yyvaluep).literal)); }
-#line 1967 "src/parser.c" /* yacc.c:1257 */
+#line 1951 "src/parser.c" /* yacc.c:1257 */
break;
case 7: /* FORMAT */
#line 36 "src/parser.y" /* yacc.c:1257 */
{ jv_free(((*yyvaluep).literal)); }
-#line 1973 "src/parser.c" /* yacc.c:1257 */
+#line 1957 "src/parser.c" /* yacc.c:1257 */
break;
case 42: /* QQSTRING_TEXT */
#line 36 "src/parser.y" /* yacc.c:1257 */
{ jv_free(((*yyvaluep).literal)); }
-#line 1979 "src/parser.c" /* yacc.c:1257 */
+#line 1963 "src/parser.c" /* yacc.c:1257 */
break;
case 71: /* Module */
#line 37 "src/parser.y" /* yacc.c:1257 */
{ block_free(((*yyvaluep).blk)); }
-#line 1985 "src/parser.c" /* yacc.c:1257 */
+#line 1969 "src/parser.c" /* yacc.c:1257 */
break;
case 72: /* Imports */
#line 37 "src/parser.y" /* yacc.c:1257 */
{ block_free(((*yyvaluep).blk)); }
-#line 1991 "src/parser.c" /* yacc.c:1257 */
+#line 1975 "src/parser.c" /* yacc.c:1257 */
break;
case 73: /* FuncDefs */
#line 37 "src/parser.y" /* yacc.c:1257 */
{ block_free(((*yyvaluep).blk)); }
-#line 1997 "src/parser.c" /* yacc.c:1257 */
+#line 1981 "src/parser.c" /* yacc.c:1257 */
break;
case 74: /* Exp */
#line 37 "src/parser.y" /* yacc.c:1257 */
{ block_free(((*yyvaluep).blk)); }
-#line 2003 "src/parser.c" /* yacc.c:1257 */
+#line 1987 "src/parser.c" /* yacc.c:1257 */
break;
case 75: /* Import */
#line 37 "src/parser.y" /* yacc.c:1257 */
{ block_free(((*yyvaluep).blk)); }
-#line 2009 "src/parser.c" /* yacc.c:1257 */
+#line 1993 "src/parser.c" /* yacc.c:1257 */
break;
case 76: /* ImportWhat */
#line 37 "src/parser.y" /* yacc.c:1257 */
{ block_free(((*yyvaluep).blk)); }
-#line 2015 "src/parser.c" /* yacc.c:1257 */
+#line 1999 "src/parser.c" /* yacc.c:1257 */
break;
case 77: /* ImportFrom */
#line 37 "src/parser.y" /* yacc.c:1257 */
{ block_free(((*yyvaluep).blk)); }
-#line 2021 "src/parser.c" /* yacc.c:1257 */
+#line 2005 "src/parser.c" /* yacc.c:1257 */
break;
case 78: /* FuncDef */
#line 37 "src/parser.y" /* yacc.c:1257 */
{ block_free(((*yyvaluep).blk)); }
-#line 2027 "src/parser.c" /* yacc.c:1257 */
+#line 2011 "src/parser.c" /* yacc.c:1257 */
break;
case 79: /* Params */
#line 37 "src/parser.y" /* yacc.c:1257 */
{ block_free(((*yyvaluep).blk)); }
-#line 2033 "src/parser.c" /* yacc.c:1257 */
+#line 2017 "src/parser.c" /* yacc.c:1257 */
break;
case 80: /* Param */
#line 37 "src/parser.y" /* yacc.c:1257 */
{ block_free(((*yyvaluep).blk)); }
-#line 2039 "src/parser.c" /* yacc.c:1257 */
+#line 2023 "src/parser.c" /* yacc.c:1257 */
break;
case 81: /* String */
#line 37 "src/parser.y" /* yacc.c:1257 */
{ block_free(((*yyvaluep).blk)); }
-#line 2045 "src/parser.c" /* yacc.c:1257 */
+#line 2029 "src/parser.c" /* yacc.c:1257 */
break;
case 84: /* QQString */
#line 37 "src/parser.y" /* yacc.c:1257 */
{ block_free(((*yyvaluep).blk)); }
-#line 2051 "src/parser.c" /* yacc.c:1257 */
+#line 2035 "src/parser.c" /* yacc.c:1257 */
break;
case 85: /* ElseBody */
#line 37 "src/parser.y" /* yacc.c:1257 */
{ block_free(((*yyvaluep).blk)); }
-#line 2057 "src/parser.c" /* yacc.c:1257 */
+#line 2041 "src/parser.c" /* yacc.c:1257 */
break;
case 86: /* ExpD */
#line 37 "src/parser.y" /* yacc.c:1257 */
{ block_free(((*yyvaluep).blk)); }
-#line 2063 "src/parser.c" /* yacc.c:1257 */
+#line 2047 "src/parser.c" /* yacc.c:1257 */
break;
case 87: /* Term */
#line 37 "src/parser.y" /* yacc.c:1257 */
{ block_free(((*yyvaluep).blk)); }
-#line 2069 "src/parser.c" /* yacc.c:1257 */
+#line 2053 "src/parser.c" /* yacc.c:1257 */
break;
case 88: /* Args */
#line 37 "src/parser.y" /* yacc.c:1257 */
{ block_free(((*yyvaluep).blk)); }
-#line 2075 "src/parser.c" /* yacc.c:1257 */
+#line 2059 "src/parser.c" /* yacc.c:1257 */
break;
case 89: /* Arg */
#line 37 "src/parser.y" /* yacc.c:1257 */
{ block_free(((*yyvaluep).blk)); }
-#line 2081 "src/parser.c" /* yacc.c:1257 */
+#line 2065 "src/parser.c" /* yacc.c:1257 */
break;
case 90: /* RepPatterns */
#line 37 "src/parser.y" /* yacc.c:1257 */
{ block_free(((*yyvaluep).blk)); }
-#line 2087 "src/parser.c" /* yacc.c:1257 */
+#line 2071 "src/parser.c" /* yacc.c:1257 */
break;
case 91: /* Patterns */
#line 37 "src/parser.y" /* yacc.c:1257 */
{ block_free(((*yyvaluep).blk)); }
-#line 2093 "src/parser.c" /* yacc.c:1257 */
+#line 2077 "src/parser.c" /* yacc.c:1257 */
break;
case 92: /* Pattern */
#line 37 "src/parser.y" /* yacc.c:1257 */
{ block_free(((*yyvaluep).blk)); }
-#line 2099 "src/parser.c" /* yacc.c:1257 */
+#line 2083 "src/parser.c" /* yacc.c:1257 */
break;
case 93: /* ArrayPats */
#line 37 "src/parser.y" /* yacc.c:1257 */
{ block_free(((*yyvaluep).blk)); }
-#line 2105 "src/parser.c" /* yacc.c:1257 */
+#line 2089 "src/parser.c" /* yacc.c:1257 */
break;
case 94: /* ObjPats */
#line 37 "src/parser.y" /* yacc.c:1257 */
{ block_free(((*yyvaluep).blk)); }
-#line 2111 "src/parser.c" /* yacc.c:1257 */
+#line 2095 "src/parser.c" /* yacc.c:1257 */
break;
case 95: /* ObjPat */
#line 37 "src/parser.y" /* yacc.c:1257 */
{ block_free(((*yyvaluep).blk)); }
-#line 2117 "src/parser.c" /* yacc.c:1257 */
+#line 2101 "src/parser.c" /* yacc.c:1257 */
break;
case 96: /* Keyword */
#line 36 "src/parser.y" /* yacc.c:1257 */
{ jv_free(((*yyvaluep).literal)); }
-#line 2123 "src/parser.c" /* yacc.c:1257 */
+#line 2107 "src/parser.c" /* yacc.c:1257 */
break;
case 97: /* MkDict */
#line 37 "src/parser.y" /* yacc.c:1257 */
{ block_free(((*yyvaluep).blk)); }
-#line 2129 "src/parser.c" /* yacc.c:1257 */
+#line 2113 "src/parser.c" /* yacc.c:1257 */
break;
case 98: /* MkDictPair */
#line 37 "src/parser.y" /* yacc.c:1257 */
{ block_free(((*yyvaluep).blk)); }
-#line 2135 "src/parser.c" /* yacc.c:1257 */
+#line 2119 "src/parser.c" /* yacc.c:1257 */
break;
+
default:
break;
}
@@ -2239,31 +2224,23 @@ YYLTYPE yylloc = yyloc_default;
yylsp[0] = yylloc;
goto yysetstate;
-
/*------------------------------------------------------------.
-| yynewstate -- push a new state, which is found in yystate. |
+| yynewstate -- Push a new state, which is found in yystate. |
`------------------------------------------------------------*/
-yynewstate:
+ yynewstate:
/* In all cases, when you get here, the value and location stacks
have just been pushed. So pushing a state here evens the stacks. */
yyssp++;
-
-/*--------------------------------------------------------------------.
-| yynewstate -- set current state (the top of the stack) to yystate. |
-`--------------------------------------------------------------------*/
-yysetstate:
- *yyssp = (yytype_int16) yystate;
+ yysetstate:
+ *yyssp = yystate;
if (yyss + yystacksize - 1 <= yyssp)
-#if !defined yyoverflow && !defined YYSTACK_RELOCATE
- goto yyexhaustedlab;
-#else
{
/* Get the current used size of the three stacks, in elements. */
- YYSIZE_T yysize = (YYSIZE_T) (yyssp - yyss + 1);
+ YYSIZE_T yysize = yyssp - yyss + 1;
-# if defined yyoverflow
+#ifdef yyoverflow
{
/* Give user a chance to reallocate the stack. Use copies of
these so that the &'s don't force the real ones into
@@ -2281,11 +2258,15 @@ yysetstate:
&yyvs1, yysize * sizeof (*yyvsp),
&yyls1, yysize * sizeof (*yylsp),
&yystacksize);
+
+ yyls = yyls1;
yyss = yyss1;
yyvs = yyvs1;
- yyls = yyls1;
}
-# else /* defined YYSTACK_RELOCATE */
+#else /* no yyoverflow */
+# ifndef YYSTACK_RELOCATE
+ goto yyexhaustedlab;
+# else
/* Extend the stack our own way. */
if (YYMAXDEPTH <= yystacksize)
goto yyexhaustedlab;
@@ -2302,23 +2283,23 @@ yysetstate:
YYSTACK_RELOCATE (yyss_alloc, yyss);
YYSTACK_RELOCATE (yyvs_alloc, yyvs);
YYSTACK_RELOCATE (yyls_alloc, yyls);
-# undef YYSTACK_RELOCATE
+# undef YYSTACK_RELOCATE
if (yyss1 != yyssa)
YYSTACK_FREE (yyss1);
}
# endif
+#endif /* no yyoverflow */
yyssp = yyss + yysize - 1;
yyvsp = yyvs + yysize - 1;
yylsp = yyls + yysize - 1;
YYDPRINTF ((stderr, "Stack size increased to %lu\n",
- (unsigned long) yystacksize));
+ (unsigned long int) yystacksize));
if (yyss + yystacksize - 1 <= yyssp)
YYABORT;
}
-#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
YYDPRINTF ((stderr, "Entering state %d\n", yystate));
@@ -2327,11 +2308,11 @@ yysetstate:
goto yybackup;
-
/*-----------.
| yybackup. |
`-----------*/
yybackup:
+
/* Do appropriate processing given the current state. Read a
lookahead token if we need one and don't already have one. */
@@ -2404,7 +2385,7 @@ yydefault:
/*-----------------------------.
-| yyreduce -- do a reduction. |
+| yyreduce -- Do a reduction. |
`-----------------------------*/
yyreduce:
/* yyn is the number of a rule to reduce with. */
@@ -2420,38 +2401,37 @@ 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 306 "src/parser.y" /* yacc.c:1667 */
+#line 306 "src/parser.y" /* yacc.c:1646 */
{
*answer = BLOCK((yyvsp[-2].blk), (yyvsp[-1].blk), gen_op_simple(TOP), (yyvsp[0].blk));
}
-#line 2435 "src/parser.c" /* yacc.c:1667 */
+#line 2415 "src/parser.c" /* yacc.c:1646 */
break;
case 3:
-#line 309 "src/parser.y" /* yacc.c:1667 */
+#line 309 "src/parser.y" /* yacc.c:1646 */
{
*answer = BLOCK((yyvsp[-2].blk), (yyvsp[-1].blk), (yyvsp[0].blk));
}
-#line 2443 "src/parser.c" /* yacc.c:1667 */
+#line 2423 "src/parser.c" /* yacc.c:1646 */
break;
case 4:
-#line 314 "src/parser.y" /* yacc.c:1667 */
+#line 314 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_noop();
}
-#line 2451 "src/parser.c" /* yacc.c:1667 */
+#line 2431 "src/parser.c" /* yacc.c:1646 */
break;
case 5:
-#line 317 "src/parser.y" /* yacc.c:1667 */
+#line 317 "src/parser.y" /* yacc.c:1646 */
{
if (!block_is_const((yyvsp[-1].blk))) {
FAIL((yyloc), "Module metadata must be constant");
@@ -2461,374 +2441,374 @@ yyreduce:
(yyval.blk) = gen_module((yyvsp[-1].blk));
}
}
-#line 2465 "src/parser.c" /* yacc.c:1667 */
+#line 2445 "src/parser.c" /* yacc.c:1646 */
break;
case 6:
-#line 328 "src/parser.y" /* yacc.c:1667 */
+#line 328 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_noop();
}
-#line 2473 "src/parser.c" /* yacc.c:1667 */
+#line 2453 "src/parser.c" /* yacc.c:1646 */
break;
case 7:
-#line 331 "src/parser.y" /* yacc.c:1667 */
+#line 331 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = BLOCK((yyvsp[-1].blk), (yyvsp[0].blk));
}
-#line 2481 "src/parser.c" /* yacc.c:1667 */
+#line 2461 "src/parser.c" /* yacc.c:1646 */
break;
case 8:
-#line 336 "src/parser.y" /* yacc.c:1667 */
+#line 336 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_noop();
}
-#line 2489 "src/parser.c" /* yacc.c:1667 */
+#line 2469 "src/parser.c" /* yacc.c:1646 */
break;
case 9:
-#line 339 "src/parser.y" /* yacc.c:1667 */
+#line 339 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = block_join((yyvsp[-1].blk), (yyvsp[0].blk));
}
-#line 2497 "src/parser.c" /* yacc.c:1667 */
+#line 2477 "src/parser.c" /* yacc.c:1646 */
break;
case 10:
-#line 344 "src/parser.y" /* yacc.c:1667 */
+#line 344 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = block_bind_referenced((yyvsp[-1].blk), (yyvsp[0].blk), OP_IS_CALL_PSEUDO);
}
-#line 2505 "src/parser.c" /* yacc.c:1667 */
+#line 2485 "src/parser.c" /* yacc.c:1646 */
break;
case 11:
-#line 348 "src/parser.y" /* yacc.c:1667 */
+#line 348 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_destructure((yyvsp[-4].blk), (yyvsp[-2].blk), (yyvsp[0].blk));
}
-#line 2513 "src/parser.c" /* yacc.c:1667 */
+#line 2493 "src/parser.c" /* yacc.c:1646 */
break;
case 12:
-#line 351 "src/parser.y" /* yacc.c:1667 */
+#line 351 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_reduce((yyvsp[-7].blk), (yyvsp[-5].blk), (yyvsp[-3].blk), (yyvsp[-1].blk));
}
-#line 2521 "src/parser.c" /* yacc.c:1667 */
+#line 2501 "src/parser.c" /* yacc.c:1646 */
break;
case 13:
-#line 355 "src/parser.y" /* yacc.c:1667 */
+#line 355 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_foreach((yyvsp[-9].blk), (yyvsp[-7].blk), (yyvsp[-5].blk), (yyvsp[-3].blk), (yyvsp[-1].blk));
}
-#line 2529 "src/parser.c" /* yacc.c:1667 */
+#line 2509 "src/parser.c" /* yacc.c:1646 */
break;
case 14:
-#line 359 "src/parser.y" /* yacc.c:1667 */
+#line 359 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_foreach((yyvsp[-7].blk), (yyvsp[-5].blk), (yyvsp[-3].blk), (yyvsp[-1].blk), gen_noop());
}
-#line 2537 "src/parser.c" /* yacc.c:1667 */
+#line 2517 "src/parser.c" /* yacc.c:1646 */
break;
case 15:
-#line 363 "src/parser.y" /* yacc.c:1667 */
+#line 363 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_cond((yyvsp[-3].blk), (yyvsp[-1].blk), (yyvsp[0].blk));
}
-#line 2545 "src/parser.c" /* yacc.c:1667 */
+#line 2525 "src/parser.c" /* yacc.c:1646 */
break;
case 16:
-#line 366 "src/parser.y" /* yacc.c:1667 */
+#line 366 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_cond((yyvsp[-3].blk), (yyvsp[-1].blk), gen_noop());
}
-#line 2553 "src/parser.c" /* yacc.c:1667 */
+#line 2533 "src/parser.c" /* yacc.c:1646 */
break;
case 17:
-#line 369 "src/parser.y" /* yacc.c:1667 */
+#line 369 "src/parser.y" /* yacc.c:1646 */
{
FAIL((yyloc), "Possibly unterminated 'if' statement");
(yyval.blk) = (yyvsp[-2].blk);
}
-#line 2562 "src/parser.c" /* yacc.c:1667 */
+#line 2542 "src/parser.c" /* yacc.c:1646 */
break;
case 18:
-#line 374 "src/parser.y" /* yacc.c:1667 */
+#line 374 "src/parser.y" /* yacc.c:1646 */
{
//$$ = BLOCK(gen_op_target(FORK_OPT, $2), $2, $4);
(yyval.blk) = gen_try((yyvsp[-2].blk), gen_try_handler((yyvsp[0].blk)));
}
-#line 2571 "src/parser.c" /* yacc.c:1667 */
+#line 2551 "src/parser.c" /* yacc.c:1646 */
break;
case 19:
-#line 378 "src/parser.y" /* yacc.c:1667 */
+#line 378 "src/parser.y" /* yacc.c:1646 */
{
//$$ = BLOCK(gen_op_target(FORK_OPT, $2), $2, gen_op_simple(BACKTRACK));
(yyval.blk) = gen_try((yyvsp[0].blk), gen_op_simple(BACKTRACK));
}
-#line 2580 "src/parser.c" /* yacc.c:1667 */
+#line 2560 "src/parser.c" /* yacc.c:1646 */
break;
case 20:
-#line 382 "src/parser.y" /* yacc.c:1667 */
+#line 382 "src/parser.y" /* yacc.c:1646 */
{
FAIL((yyloc), "Possibly unterminated 'try' statement");
(yyval.blk) = (yyvsp[-2].blk);
}
-#line 2589 "src/parser.c" /* yacc.c:1667 */
+#line 2569 "src/parser.c" /* yacc.c:1646 */
break;
case 21:
-#line 387 "src/parser.y" /* yacc.c:1667 */
+#line 387 "src/parser.y" /* yacc.c:1646 */
{
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 2600 "src/parser.c" /* yacc.c:1667 */
+#line 2580 "src/parser.c" /* yacc.c:1646 */
break;
case 22:
-#line 394 "src/parser.y" /* yacc.c:1667 */
+#line 394 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_try((yyvsp[-1].blk), gen_op_simple(BACKTRACK));
}
-#line 2608 "src/parser.c" /* yacc.c:1667 */
+#line 2588 "src/parser.c" /* yacc.c:1646 */
break;
case 23:
-#line 398 "src/parser.y" /* yacc.c:1667 */
+#line 398 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_call("_assign", BLOCK(gen_lambda((yyvsp[-2].blk)), gen_lambda((yyvsp[0].blk))));
}
-#line 2616 "src/parser.c" /* yacc.c:1667 */
+#line 2596 "src/parser.c" /* yacc.c:1646 */
break;
case 24:
-#line 402 "src/parser.y" /* yacc.c:1667 */
+#line 402 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_or((yyvsp[-2].blk), (yyvsp[0].blk));
}
-#line 2624 "src/parser.c" /* yacc.c:1667 */
+#line 2604 "src/parser.c" /* yacc.c:1646 */
break;
case 25:
-#line 406 "src/parser.y" /* yacc.c:1667 */
+#line 406 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_and((yyvsp[-2].blk), (yyvsp[0].blk));
}
-#line 2632 "src/parser.c" /* yacc.c:1667 */
+#line 2612 "src/parser.c" /* yacc.c:1646 */
break;
case 26:
-#line 410 "src/parser.y" /* yacc.c:1667 */
+#line 410 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_definedor((yyvsp[-2].blk), (yyvsp[0].blk));
}
-#line 2640 "src/parser.c" /* yacc.c:1667 */
+#line 2620 "src/parser.c" /* yacc.c:1646 */
break;
case 27:
-#line 414 "src/parser.y" /* yacc.c:1667 */
+#line 414 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_definedor_assign((yyvsp[-2].blk), (yyvsp[0].blk));
}
-#line 2648 "src/parser.c" /* yacc.c:1667 */
+#line 2628 "src/parser.c" /* yacc.c:1646 */
break;
case 28:
-#line 418 "src/parser.y" /* yacc.c:1667 */
+#line 418 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_call("_modify", BLOCK(gen_lambda((yyvsp[-2].blk)), gen_lambda((yyvsp[0].blk))));
}
-#line 2656 "src/parser.c" /* yacc.c:1667 */
+#line 2636 "src/parser.c" /* yacc.c:1646 */
break;
case 29:
-#line 422 "src/parser.y" /* yacc.c:1667 */
+#line 422 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = block_join((yyvsp[-2].blk), (yyvsp[0].blk));
}
-#line 2664 "src/parser.c" /* yacc.c:1667 */
+#line 2644 "src/parser.c" /* yacc.c:1646 */
break;
case 30:
-#line 426 "src/parser.y" /* yacc.c:1667 */
+#line 426 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_both((yyvsp[-2].blk), (yyvsp[0].blk));
}
-#line 2672 "src/parser.c" /* yacc.c:1667 */
+#line 2652 "src/parser.c" /* yacc.c:1646 */
break;
case 31:
-#line 430 "src/parser.y" /* yacc.c:1667 */
+#line 430 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '+');
}
-#line 2680 "src/parser.c" /* yacc.c:1667 */
+#line 2660 "src/parser.c" /* yacc.c:1646 */
break;
case 32:
-#line 434 "src/parser.y" /* yacc.c:1667 */
+#line 434 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '+');
}
-#line 2688 "src/parser.c" /* yacc.c:1667 */
+#line 2668 "src/parser.c" /* yacc.c:1646 */
break;
case 33:
-#line 438 "src/parser.y" /* yacc.c:1667 */
+#line 438 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = BLOCK((yyvsp[0].blk), gen_call("_negate", gen_noop()));
}
-#line 2696 "src/parser.c" /* yacc.c:1667 */
+#line 2676 "src/parser.c" /* yacc.c:1646 */
break;
case 34:
-#line 442 "src/parser.y" /* yacc.c:1667 */
+#line 442 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '-');
}
-#line 2704 "src/parser.c" /* yacc.c:1667 */
+#line 2684 "src/parser.c" /* yacc.c:1646 */
break;
case 35:
-#line 446 "src/parser.y" /* yacc.c:1667 */
+#line 446 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '-');
}
-#line 2712 "src/parser.c" /* yacc.c:1667 */
+#line 2692 "src/parser.c" /* yacc.c:1646 */
break;
case 36:
-#line 450 "src/parser.y" /* yacc.c:1667 */
+#line 450 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '*');
}
-#line 2720 "src/parser.c" /* yacc.c:1667 */
+#line 2700 "src/parser.c" /* yacc.c:1646 */
break;
case 37:
-#line 454 "src/parser.y" /* yacc.c:1667 */
+#line 454 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '*');
}
-#line 2728 "src/parser.c" /* yacc.c:1667 */
+#line 2708 "src/parser.c" /* yacc.c:1646 */
break;
case 38:
-#line 458 "src/parser.y" /* yacc.c:1667 */
+#line 458 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '/');
if (block_is_const_inf((yyval.blk)))
FAIL((yyloc), "Division by zero?");
}
-#line 2738 "src/parser.c" /* yacc.c:1667 */
+#line 2718 "src/parser.c" /* yacc.c:1646 */
break;
case 39:
-#line 464 "src/parser.y" /* yacc.c:1667 */
+#line 464 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '%');
if (block_is_const_inf((yyval.blk)))
FAIL((yyloc), "Remainder by zero?");
}
-#line 2748 "src/parser.c" /* yacc.c:1667 */
+#line 2728 "src/parser.c" /* yacc.c:1646 */
break;
case 40:
-#line 470 "src/parser.y" /* yacc.c:1667 */
+#line 470 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '/');
}
-#line 2756 "src/parser.c" /* yacc.c:1667 */
+#line 2736 "src/parser.c" /* yacc.c:1646 */
break;
case 41:
-#line 474 "src/parser.y" /* yacc.c:1667 */
+#line 474 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_update((yyvsp[-2].blk), (yyvsp[0].blk), '%');
}
-#line 2764 "src/parser.c" /* yacc.c:1667 */
+#line 2744 "src/parser.c" /* yacc.c:1646 */
break;
case 42:
-#line 478 "src/parser.y" /* yacc.c:1667 */
+#line 478 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), EQ);
}
-#line 2772 "src/parser.c" /* yacc.c:1667 */
+#line 2752 "src/parser.c" /* yacc.c:1646 */
break;
case 43:
-#line 482 "src/parser.y" /* yacc.c:1667 */
+#line 482 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), NEQ);
}
-#line 2780 "src/parser.c" /* yacc.c:1667 */
+#line 2760 "src/parser.c" /* yacc.c:1646 */
break;
case 44:
-#line 486 "src/parser.y" /* yacc.c:1667 */
+#line 486 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '<');
}
-#line 2788 "src/parser.c" /* yacc.c:1667 */
+#line 2768 "src/parser.c" /* yacc.c:1646 */
break;
case 45:
-#line 490 "src/parser.y" /* yacc.c:1667 */
+#line 490 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), '>');
}
-#line 2796 "src/parser.c" /* yacc.c:1667 */
+#line 2776 "src/parser.c" /* yacc.c:1646 */
break;
case 46:
-#line 494 "src/parser.y" /* yacc.c:1667 */
+#line 494 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), LESSEQ);
}
-#line 2804 "src/parser.c" /* yacc.c:1667 */
+#line 2784 "src/parser.c" /* yacc.c:1646 */
break;
case 47:
-#line 498 "src/parser.y" /* yacc.c:1667 */
+#line 498 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_binop((yyvsp[-2].blk), (yyvsp[0].blk), GREATEREQ);
}
-#line 2812 "src/parser.c" /* yacc.c:1667 */
+#line 2792 "src/parser.c" /* yacc.c:1646 */
break;
case 48:
-#line 502 "src/parser.y" /* yacc.c:1667 */
+#line 502 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = (yyvsp[0].blk);
}
-#line 2820 "src/parser.c" /* yacc.c:1667 */
+#line 2800 "src/parser.c" /* yacc.c:1646 */
break;
case 49:
-#line 507 "src/parser.y" /* yacc.c:1667 */
+#line 507 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = (yyvsp[-1].blk);
}
-#line 2828 "src/parser.c" /* yacc.c:1667 */
+#line 2808 "src/parser.c" /* yacc.c:1646 */
break;
case 50:
-#line 510 "src/parser.y" /* yacc.c:1667 */
+#line 510 "src/parser.y" /* yacc.c:1646 */
{
if (!block_is_const((yyvsp[-1].blk))) {
FAIL((yyloc), "Module metadata must be constant");
@@ -2844,11 +2824,11 @@ yyreduce:
(yyval.blk) = gen_import_meta((yyvsp[-2].blk), (yyvsp[-1].blk));
}
}
-#line 2848 "src/parser.c" /* yacc.c:1667 */
+#line 2828 "src/parser.c" /* yacc.c:1646 */
break;
case 51:
-#line 527 "src/parser.y" /* yacc.c:1667 */
+#line 527 "src/parser.y" /* yacc.c:1646 */
{
jv v = block_const((yyvsp[-3].blk));
// XXX Make gen_import take only blocks and the int is_data so we
@@ -2858,11 +2838,11 @@ yyreduce:
jv_free((yyvsp[0].literal));
jv_free(v);
}
-#line 2862 "src/parser.c" /* yacc.c:1667 */
+#line 2842 "src/parser.c" /* yacc.c:1646 */
break;
case 52:
-#line 536 "src/parser.y" /* yacc.c:1667 */
+#line 536 "src/parser.y" /* yacc.c:1646 */
{
jv v = block_const((yyvsp[-2].blk));
(yyval.blk) = gen_import(jv_string_value(v), jv_string_value((yyvsp[0].literal)), 0);
@@ -2870,22 +2850,22 @@ yyreduce:
jv_free((yyvsp[0].literal));
jv_free(v);
}
-#line 2874 "src/parser.c" /* yacc.c:1667 */
+#line 2854 "src/parser.c" /* yacc.c:1646 */
break;
case 53:
-#line 543 "src/parser.y" /* yacc.c:1667 */
+#line 543 "src/parser.y" /* yacc.c:1646 */
{
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 2885 "src/parser.c" /* yacc.c:1667 */
+#line 2865 "src/parser.c" /* yacc.c:1646 */
break;
case 54:
-#line 551 "src/parser.y" /* yacc.c:1667 */
+#line 551 "src/parser.y" /* yacc.c:1646 */
{
if (!block_is_const((yyvsp[0].blk))) {
FAIL((yyloc), "Import path must be constant");
@@ -2895,182 +2875,182 @@ yyreduce:
(yyval.blk) = (yyvsp[0].blk);
}
}
-#line 2899 "src/parser.c" /* yacc.c:1667 */
+#line 2879 "src/parser.c" /* yacc.c:1646 */
break;
case 55:
-#line 562 "src/parser.y" /* yacc.c:1667 */
+#line 562 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_function(jv_string_value((yyvsp[-3].literal)), gen_noop(), (yyvsp[-1].blk));
jv_free((yyvsp[-3].literal));
}
-#line 2908 "src/parser.c" /* yacc.c:1667 */
+#line 2888 "src/parser.c" /* yacc.c:1646 */
break;
case 56:
-#line 567 "src/parser.y" /* yacc.c:1667 */
+#line 567 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_function(jv_string_value((yyvsp[-6].literal)), (yyvsp[-4].blk), (yyvsp[-1].blk));
jv_free((yyvsp[-6].literal));
}
-#line 2917 "src/parser.c" /* yacc.c:1667 */
+#line 2897 "src/parser.c" /* yacc.c:1646 */
break;
case 57:
-#line 573 "src/parser.y" /* yacc.c:1667 */
+#line 573 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = (yyvsp[0].blk);
}
-#line 2925 "src/parser.c" /* yacc.c:1667 */
+#line 2905 "src/parser.c" /* yacc.c:1646 */
break;
case 58:
-#line 576 "src/parser.y" /* yacc.c:1667 */
+#line 576 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = BLOCK((yyvsp[-2].blk), (yyvsp[0].blk));
}
-#line 2933 "src/parser.c" /* yacc.c:1667 */
+#line 2913 "src/parser.c" /* yacc.c:1646 */
break;
case 59:
-#line 581 "src/parser.y" /* yacc.c:1667 */
+#line 581 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_param_regular(jv_string_value((yyvsp[0].literal)));
jv_free((yyvsp[0].literal));
}
-#line 2942 "src/parser.c" /* yacc.c:1667 */
+#line 2922 "src/parser.c" /* yacc.c:1646 */
break;
case 60:
-#line 585 "src/parser.y" /* yacc.c:1667 */
+#line 585 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_param_regular(jv_string_value((yyvsp[0].literal)));
jv_free((yyvsp[0].literal));
}
-#line 2951 "src/parser.c" /* yacc.c:1667 */
+#line 2931 "src/parser.c" /* yacc.c:1646 */
break;
case 61:
-#line 589 "src/parser.y" /* yacc.c:1667 */
+#line 589 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_param(jv_string_value((yyvsp[0].literal)));
jv_free((yyvsp[0].literal));
}
-#line 2960 "src/parser.c" /* yacc.c:1667 */
+#line 2940 "src/parser.c" /* yacc.c:1646 */
break;
case 62:
-#line 596 "src/parser.y" /* yacc.c:1667 */
+#line 596 "src/parser.y" /* yacc.c:1646 */
{ (yyval.literal) = jv_string("text"); }
-#line 2966 "src/parser.c" /* yacc.c:1667 */
+#line 2946 "src/parser.c" /* yacc.c:1646 */
break;
case 63:
-#line 596 "src/parser.y" /* yacc.c:1667 */
+#line 596 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = (yyvsp[-1].blk);
jv_free((yyvsp[-2].literal));
}
-#line 2975 "src/parser.c" /* yacc.c:1667 */
+#line 2955 "src/parser.c" /* yacc.c:1646 */
break;
case 64:
-#line 600 "src/parser.y" /* yacc.c:1667 */
+#line 600 "src/parser.y" /* yacc.c:1646 */
{ (yyval.literal) = (yyvsp[-1].literal); }
-#line 2981 "src/parser.c" /* yacc.c:1667 */
+#line 2961 "src/parser.c" /* yacc.c:1646 */
break;
case 65:
-#line 600 "src/parser.y" /* yacc.c:1667 */
+#line 600 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = (yyvsp[-1].blk);
jv_free((yyvsp[-2].literal));
}
-#line 2990 "src/parser.c" /* yacc.c:1667 */
+#line 2970 "src/parser.c" /* yacc.c:1646 */
break;
case 66:
-#line 607 "src/parser.y" /* yacc.c:1667 */
+#line 607 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_const(jv_string(""));
}
-#line 2998 "src/parser.c" /* yacc.c:1667 */
+#line 2978 "src/parser.c" /* yacc.c:1646 */
break;
case 67:
-#line 610 "src/parser.y" /* yacc.c:1667 */
+#line 610 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_binop((yyvsp[-1].blk), gen_const((yyvsp[0].literal)), '+');
}
-#line 3006 "src/parser.c" /* yacc.c:1667 */
+#line 2986 "src/parser.c" /* yacc.c:1646 */
break;
case 68:
-#line 613 "src/parser.y" /* yacc.c:1667 */
+#line 613 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_binop((yyvsp[-3].blk), gen_format((yyvsp[-1].blk), jv_copy((yyvsp[-4].literal))), '+');
}
-#line 3014 "src/parser.c" /* yacc.c:1667 */
+#line 2994 "src/parser.c" /* yacc.c:1646 */
break;
case 69:
-#line 619 "src/parser.y" /* yacc.c:1667 */
+#line 619 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_cond((yyvsp[-3].blk), (yyvsp[-1].blk), (yyvsp[0].blk));
}
-#line 3022 "src/parser.c" /* yacc.c:1667 */
+#line 3002 "src/parser.c" /* yacc.c:1646 */
break;
case 70:
-#line 622 "src/parser.y" /* yacc.c:1667 */
+#line 622 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = (yyvsp[-1].blk);
}
-#line 3030 "src/parser.c" /* yacc.c:1667 */
+#line 3010 "src/parser.c" /* yacc.c:1646 */
break;
case 71:
-#line 627 "src/parser.y" /* yacc.c:1667 */
+#line 627 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = block_join((yyvsp[-2].blk), (yyvsp[0].blk));
}
-#line 3038 "src/parser.c" /* yacc.c:1667 */
+#line 3018 "src/parser.c" /* yacc.c:1646 */
break;
case 72:
-#line 630 "src/parser.y" /* yacc.c:1667 */
+#line 630 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = BLOCK((yyvsp[0].blk), gen_call("_negate", gen_noop()));
}
-#line 3046 "src/parser.c" /* yacc.c:1667 */
+#line 3026 "src/parser.c" /* yacc.c:1646 */
break;
case 73:
-#line 633 "src/parser.y" /* yacc.c:1667 */
+#line 633 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = (yyvsp[0].blk);
}
-#line 3054 "src/parser.c" /* yacc.c:1667 */
+#line 3034 "src/parser.c" /* yacc.c:1646 */
break;
case 74:
-#line 639 "src/parser.y" /* yacc.c:1667 */
+#line 639 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_noop();
}
-#line 3062 "src/parser.c" /* yacc.c:1667 */
+#line 3042 "src/parser.c" /* yacc.c:1646 */
break;
case 75:
-#line 642 "src/parser.y" /* yacc.c:1667 */
+#line 642 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_call("recurse", gen_noop());
}
-#line 3070 "src/parser.c" /* yacc.c:1667 */
+#line 3050 "src/parser.c" /* yacc.c:1646 */
break;
case 76:
-#line 645 "src/parser.y" /* yacc.c:1667 */
+#line 645 "src/parser.y" /* yacc.c:1646 */
{
jv v = jv_string_fmt("*label-%s", jv_string_value((yyvsp[0].literal))); // impossible symbol
(yyval.blk) = gen_location((yyloc), locations,
@@ -3079,247 +3059,247 @@ yyreduce:
jv_free(v);
jv_free((yyvsp[0].literal));
}
-#line 3083 "src/parser.c" /* yacc.c:1667 */
+#line 3063 "src/parser.c" /* yacc.c:1646 */
break;
case 77:
-#line 653 "src/parser.y" /* yacc.c:1667 */
+#line 653 "src/parser.y" /* yacc.c:1646 */
{
FAIL((yyloc), "break requires a label to break to");
(yyval.blk) = gen_noop();
}
-#line 3092 "src/parser.c" /* yacc.c:1667 */
+#line 3072 "src/parser.c" /* yacc.c:1646 */
break;
case 78:
-#line 657 "src/parser.y" /* yacc.c:1667 */
+#line 657 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_index_opt((yyvsp[-2].blk), gen_const((yyvsp[-1].literal)));
}
-#line 3100 "src/parser.c" /* yacc.c:1667 */
+#line 3080 "src/parser.c" /* yacc.c:1646 */
break;
case 79:
-#line 660 "src/parser.y" /* yacc.c:1667 */
+#line 660 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_index_opt(gen_noop(), gen_const((yyvsp[-1].literal)));
}
-#line 3108 "src/parser.c" /* yacc.c:1667 */
+#line 3088 "src/parser.c" /* yacc.c:1646 */
break;
case 80:
-#line 663 "src/parser.y" /* yacc.c:1667 */
+#line 663 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_index_opt((yyvsp[-3].blk), (yyvsp[-1].blk));
}
-#line 3116 "src/parser.c" /* yacc.c:1667 */
+#line 3096 "src/parser.c" /* yacc.c:1646 */
break;
case 81:
-#line 666 "src/parser.y" /* yacc.c:1667 */
+#line 666 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_index_opt(gen_noop(), (yyvsp[-1].blk));
}
-#line 3124 "src/parser.c" /* yacc.c:1667 */
+#line 3104 "src/parser.c" /* yacc.c:1646 */
break;
case 82:
-#line 669 "src/parser.y" /* yacc.c:1667 */
+#line 669 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_index((yyvsp[-1].blk), gen_const((yyvsp[0].literal)));
}
-#line 3132 "src/parser.c" /* yacc.c:1667 */
+#line 3112 "src/parser.c" /* yacc.c:1646 */
break;
case 83:
-#line 672 "src/parser.y" /* yacc.c:1667 */
+#line 672 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_index(gen_noop(), gen_const((yyvsp[0].literal)));
}
-#line 3140 "src/parser.c" /* yacc.c:1667 */
+#line 3120 "src/parser.c" /* yacc.c:1646 */
break;
case 84:
-#line 675 "src/parser.y" /* yacc.c:1667 */
+#line 675 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_index((yyvsp[-2].blk), (yyvsp[0].blk));
}
-#line 3148 "src/parser.c" /* yacc.c:1667 */
+#line 3128 "src/parser.c" /* yacc.c:1646 */
break;
case 85:
-#line 678 "src/parser.y" /* yacc.c:1667 */
+#line 678 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_index(gen_noop(), (yyvsp[0].blk));
}
-#line 3156 "src/parser.c" /* yacc.c:1667 */
+#line 3136 "src/parser.c" /* yacc.c:1646 */
break;
case 86:
-#line 681 "src/parser.y" /* yacc.c:1667 */
+#line 681 "src/parser.y" /* yacc.c:1646 */
{
FAIL((yyloc), "try .[\"field\"] instead of .field for unusually named fields");
(yyval.blk) = gen_noop();
}
-#line 3165 "src/parser.c" /* yacc.c:1667 */
+#line 3145 "src/parser.c" /* yacc.c:1646 */
break;
case 87:
-#line 685 "src/parser.y" /* yacc.c:1667 */
+#line 685 "src/parser.y" /* yacc.c:1646 */
{
jv_free((yyvsp[-1].literal));
FAIL((yyloc), "try .[\"field\"] instead of .field for unusually named fields");
(yyval.blk) = gen_noop();
}
-#line 3175 "src/parser.c" /* yacc.c:1667 */
+#line 3155 "src/parser.c" /* yacc.c:1646 */
break;
case 88:
-#line 691 "src/parser.y" /* yacc.c:1667 */
+#line 691 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_index_opt((yyvsp[-4].blk), (yyvsp[-2].blk));
}
-#line 3183 "src/parser.c" /* yacc.c:1667 */
+#line 3163 "src/parser.c" /* yacc.c:1646 */
break;
case 89:
-#line 694 "src/parser.y" /* yacc.c:1667 */
+#line 694 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_index((yyvsp[-3].blk), (yyvsp[-1].blk));
}
-#line 3191 "src/parser.c" /* yacc.c:1667 */
+#line 3171 "src/parser.c" /* yacc.c:1646 */
break;
case 90:
-#line 697 "src/parser.y" /* yacc.c:1667 */
+#line 697 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_index_opt((yyvsp[-5].blk), (yyvsp[-2].blk));
}
-#line 3199 "src/parser.c" /* yacc.c:1667 */
+#line 3179 "src/parser.c" /* yacc.c:1646 */
break;
case 91:
-#line 700 "src/parser.y" /* yacc.c:1667 */
+#line 700 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_index((yyvsp[-4].blk), (yyvsp[-1].blk));
}
-#line 3207 "src/parser.c" /* yacc.c:1667 */
+#line 3187 "src/parser.c" /* yacc.c:1646 */
break;
case 92:
-#line 703 "src/parser.y" /* yacc.c:1667 */
+#line 703 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = block_join((yyvsp[-3].blk), gen_op_simple(EACH_OPT));
}
-#line 3215 "src/parser.c" /* yacc.c:1667 */
+#line 3195 "src/parser.c" /* yacc.c:1646 */
break;
case 93:
-#line 706 "src/parser.y" /* yacc.c:1667 */
+#line 706 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = block_join((yyvsp[-2].blk), gen_op_simple(EACH));
}
-#line 3223 "src/parser.c" /* yacc.c:1667 */
+#line 3203 "src/parser.c" /* yacc.c:1646 */
break;
case 94:
-#line 709 "src/parser.y" /* yacc.c:1667 */
+#line 709 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_slice_index((yyvsp[-6].blk), (yyvsp[-4].blk), (yyvsp[-2].blk), INDEX_OPT);
}
-#line 3231 "src/parser.c" /* yacc.c:1667 */
+#line 3211 "src/parser.c" /* yacc.c:1646 */
break;
case 95:
-#line 712 "src/parser.y" /* yacc.c:1667 */
+#line 712 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_slice_index((yyvsp[-5].blk), (yyvsp[-3].blk), gen_const(jv_null()), INDEX_OPT);
}
-#line 3239 "src/parser.c" /* yacc.c:1667 */
+#line 3219 "src/parser.c" /* yacc.c:1646 */
break;
case 96:
-#line 715 "src/parser.y" /* yacc.c:1667 */
+#line 715 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_slice_index((yyvsp[-5].blk), gen_const(jv_null()), (yyvsp[-2].blk), INDEX_OPT);
}
-#line 3247 "src/parser.c" /* yacc.c:1667 */
+#line 3227 "src/parser.c" /* yacc.c:1646 */
break;
case 97:
-#line 718 "src/parser.y" /* yacc.c:1667 */
+#line 718 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_slice_index((yyvsp[-5].blk), (yyvsp[-3].blk), (yyvsp[-1].blk), INDEX);
}
-#line 3255 "src/parser.c" /* yacc.c:1667 */
+#line 3235 "src/parser.c" /* yacc.c:1646 */
break;
case 98:
-#line 721 "src/parser.y" /* yacc.c:1667 */
+#line 721 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_slice_index((yyvsp[-4].blk), (yyvsp[-2].blk), gen_const(jv_null()), INDEX);
}
-#line 3263 "src/parser.c" /* yacc.c:1667 */
+#line 3243 "src/parser.c" /* yacc.c:1646 */
break;
case 99:
-#line 724 "src/parser.y" /* yacc.c:1667 */
+#line 724 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_slice_index((yyvsp[-4].blk), gen_const(jv_null()), (yyvsp[-1].blk), INDEX);
}
-#line 3271 "src/parser.c" /* yacc.c:1667 */
+#line 3251 "src/parser.c" /* yacc.c:1646 */
break;
case 100:
-#line 727 "src/parser.y" /* yacc.c:1667 */
+#line 727 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_const((yyvsp[0].literal));
}
-#line 3279 "src/parser.c" /* yacc.c:1667 */
+#line 3259 "src/parser.c" /* yacc.c:1646 */
break;
case 101:
-#line 730 "src/parser.y" /* yacc.c:1667 */
+#line 730 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = (yyvsp[0].blk);
}
-#line 3287 "src/parser.c" /* yacc.c:1667 */
+#line 3267 "src/parser.c" /* yacc.c:1646 */
break;
case 102:
-#line 733 "src/parser.y" /* yacc.c:1667 */
+#line 733 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_format(gen_noop(), (yyvsp[0].literal));
}
-#line 3295 "src/parser.c" /* yacc.c:1667 */
+#line 3275 "src/parser.c" /* yacc.c:1646 */
break;
case 103:
-#line 736 "src/parser.y" /* yacc.c:1667 */
+#line 736 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = (yyvsp[-1].blk);
}
-#line 3303 "src/parser.c" /* yacc.c:1667 */
+#line 3283 "src/parser.c" /* yacc.c:1646 */
break;
case 104:
-#line 739 "src/parser.y" /* yacc.c:1667 */
+#line 739 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_collect((yyvsp[-1].blk));
}
-#line 3311 "src/parser.c" /* yacc.c:1667 */
+#line 3291 "src/parser.c" /* yacc.c:1646 */
break;
case 105:
-#line 742 "src/parser.y" /* yacc.c:1667 */
+#line 742 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_const(jv_array());
}
-#line 3319 "src/parser.c" /* yacc.c:1667 */
+#line 3299 "src/parser.c" /* yacc.c:1646 */
break;
case 106:
-#line 745 "src/parser.y" /* yacc.c:1667 */
+#line 745 "src/parser.y" /* yacc.c:1646 */
{
block o = gen_const_object((yyvsp[-1].blk));
if (o.first != NULL)
@@ -3327,20 +3307,29 @@ yyreduce:
else
(yyval.blk) = BLOCK(gen_subexp(gen_const(jv_object())), (yyvsp[-1].blk), gen_op_simple(POP));
}
-#line 3331 "src/parser.c" /* yacc.c:1667 */
+#line 3311 "src/parser.c" /* yacc.c:1646 */
break;
case 107:
-#line 752 "src/parser.y" /* yacc.c:1667 */
+#line 767 "src/parser.y" /* yacc.c:1646 */
{
- (yyval.blk) = gen_location((yyloc), locations, gen_op_unbound(LOADV, jv_string_value((yyvsp[0].literal))));
+ (yyval.blk) = gen_location((yyloc), locations, gen_op_unbound(LOADVN, jv_string_value((yyvsp[0].literal))));
jv_free((yyvsp[0].literal));
}
-#line 3340 "src/parser.c" /* yacc.c:1667 */
+#line 3320 "src/parser.c" /* yacc.c:1646 */
break;
case 108:
-#line 756 "src/parser.y" /* yacc.c:1667 */
+#line 771 "src/parser.y" /* yacc.c:1646 */
+ {
+ (yyval.blk) = gen_location((yyloc), locations, gen_op_unbound(LOADV, jv_string_value((yyvsp[0].literal))));
+ jv_free((yyvsp[0].literal));
+}
+#line 3329 "src/parser.c" /* yacc.c:1646 */
+ break;
+
+ case 109:
+#line 775 "src/parser.y" /* yacc.c:1646 */
{
if (strcmp(jv_string_value((yyvsp[0].literal)), "__loc__") == 0) {
(yyval.blk) = gen_const(JV_OBJECT(jv_string("file"), jv_copy(locations->fname),
@@ -3350,11 +3339,11 @@ yyreduce:
}
jv_free((yyvsp[0].literal));
}
-#line 3354 "src/parser.c" /* yacc.c:1667 */
+#line 3343 "src/parser.c" /* yacc.c:1646 */
break;
- case 109:
-#line 765 "src/parser.y" /* yacc.c:1667 */
+ case 110:
+#line 784 "src/parser.y" /* yacc.c:1646 */
{
const char *s = jv_string_value((yyvsp[0].literal));
if (strcmp(s, "false") == 0)
@@ -3367,198 +3356,198 @@ yyreduce:
(yyval.blk) = gen_location((yyloc), locations, gen_call(s, gen_noop()));
jv_free((yyvsp[0].literal));
}
-#line 3371 "src/parser.c" /* yacc.c:1667 */
+#line 3360 "src/parser.c" /* yacc.c:1646 */
break;
- case 110:
-#line 777 "src/parser.y" /* yacc.c:1667 */
+ case 111:
+#line 796 "src/parser.y" /* yacc.c:1646 */
{
(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 3381 "src/parser.c" /* yacc.c:1667 */
+#line 3370 "src/parser.c" /* yacc.c:1646 */
break;
- case 111:
-#line 782 "src/parser.y" /* yacc.c:1667 */
+ case 112:
+#line 801 "src/parser.y" /* yacc.c:1646 */
{ (yyval.blk) = gen_noop(); }
-#line 3387 "src/parser.c" /* yacc.c:1667 */
+#line 3376 "src/parser.c" /* yacc.c:1646 */
break;
- case 112:
-#line 783 "src/parser.y" /* yacc.c:1667 */
+ case 113:
+#line 802 "src/parser.y" /* yacc.c:1646 */
{ (yyval.blk) = gen_noop(); }
-#line 3393 "src/parser.c" /* yacc.c:1667 */
+#line 3382 "src/parser.c" /* yacc.c:1646 */
break;
- case 113:
-#line 784 "src/parser.y" /* yacc.c:1667 */
+ case 114:
+#line 803 "src/parser.y" /* yacc.c:1646 */
{ (yyval.blk) = (yyvsp[-3].blk); }
-#line 3399 "src/parser.c" /* yacc.c:1667 */
+#line 3388 "src/parser.c" /* yacc.c:1646 */
break;
- case 114:
-#line 785 "src/parser.y" /* yacc.c:1667 */
+ case 115:
+#line 804 "src/parser.y" /* yacc.c:1646 */
{ (yyval.blk) = gen_noop(); }
-#line 3405 "src/parser.c" /* yacc.c:1667 */
+#line 3394 "src/parser.c" /* yacc.c:1646 */
break;
- case 115:
-#line 788 "src/parser.y" /* yacc.c:1667 */
+ case 116:
+#line 807 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = (yyvsp[0].blk);
}
-#line 3413 "src/parser.c" /* yacc.c:1667 */
+#line 3402 "src/parser.c" /* yacc.c:1646 */
break;
- case 116:
-#line 791 "src/parser.y" /* yacc.c:1667 */
+ case 117:
+#line 810 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = BLOCK((yyvsp[-2].blk), (yyvsp[0].blk));
}
-#line 3421 "src/parser.c" /* yacc.c:1667 */
+#line 3410 "src/parser.c" /* yacc.c:1646 */
break;
- case 117:
-#line 796 "src/parser.y" /* yacc.c:1667 */
+ case 118:
+#line 815 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_lambda((yyvsp[0].blk));
}
-#line 3429 "src/parser.c" /* yacc.c:1667 */
+#line 3418 "src/parser.c" /* yacc.c:1646 */
break;
- case 118:
-#line 801 "src/parser.y" /* yacc.c:1667 */
+ case 119:
+#line 820 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = BLOCK((yyvsp[-2].blk), gen_destructure_alt((yyvsp[0].blk)));
}
-#line 3437 "src/parser.c" /* yacc.c:1667 */
+#line 3426 "src/parser.c" /* yacc.c:1646 */
break;
- case 119:
-#line 804 "src/parser.y" /* yacc.c:1667 */
+ case 120:
+#line 823 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_destructure_alt((yyvsp[0].blk));
}
-#line 3445 "src/parser.c" /* yacc.c:1667 */
+#line 3434 "src/parser.c" /* yacc.c:1646 */
break;
- case 120:
-#line 809 "src/parser.y" /* yacc.c:1667 */
+ case 121:
+#line 828 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = BLOCK((yyvsp[-2].blk), (yyvsp[0].blk));
}
-#line 3453 "src/parser.c" /* yacc.c:1667 */
+#line 3442 "src/parser.c" /* yacc.c:1646 */
break;
- case 121:
-#line 812 "src/parser.y" /* yacc.c:1667 */
+ case 122:
+#line 831 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = (yyvsp[0].blk);
}
-#line 3461 "src/parser.c" /* yacc.c:1667 */
+#line 3450 "src/parser.c" /* yacc.c:1646 */
break;
- case 122:
-#line 817 "src/parser.y" /* yacc.c:1667 */
+ case 123:
+#line 836 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_op_unbound(STOREV, jv_string_value((yyvsp[0].literal)));
jv_free((yyvsp[0].literal));
}
-#line 3470 "src/parser.c" /* yacc.c:1667 */
+#line 3459 "src/parser.c" /* yacc.c:1646 */
break;
- case 123:
-#line 821 "src/parser.y" /* yacc.c:1667 */
+ case 124:
+#line 840 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = BLOCK((yyvsp[-1].blk), gen_op_simple(POP));
}
-#line 3478 "src/parser.c" /* yacc.c:1667 */
+#line 3467 "src/parser.c" /* yacc.c:1646 */
break;
- case 124:
-#line 824 "src/parser.y" /* yacc.c:1667 */
+ case 125:
+#line 843 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = BLOCK((yyvsp[-1].blk), gen_op_simple(POP));
}
-#line 3486 "src/parser.c" /* yacc.c:1667 */
+#line 3475 "src/parser.c" /* yacc.c:1646 */
break;
- case 125:
-#line 829 "src/parser.y" /* yacc.c:1667 */
+ case 126:
+#line 848 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_array_matcher(gen_noop(), (yyvsp[0].blk));
}
-#line 3494 "src/parser.c" /* yacc.c:1667 */
+#line 3483 "src/parser.c" /* yacc.c:1646 */
break;
- case 126:
-#line 832 "src/parser.y" /* yacc.c:1667 */
+ case 127:
+#line 851 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_array_matcher((yyvsp[-2].blk), (yyvsp[0].blk));
}
-#line 3502 "src/parser.c" /* yacc.c:1667 */
+#line 3491 "src/parser.c" /* yacc.c:1646 */
break;
- case 127:
-#line 837 "src/parser.y" /* yacc.c:1667 */
+ case 128:
+#line 856 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = (yyvsp[0].blk);
}
-#line 3510 "src/parser.c" /* yacc.c:1667 */
+#line 3499 "src/parser.c" /* yacc.c:1646 */
break;
- case 128:
-#line 840 "src/parser.y" /* yacc.c:1667 */
+ case 129:
+#line 859 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = BLOCK((yyvsp[-2].blk), (yyvsp[0].blk));
}
-#line 3518 "src/parser.c" /* yacc.c:1667 */
+#line 3507 "src/parser.c" /* yacc.c:1646 */
break;
- case 129:
-#line 845 "src/parser.y" /* yacc.c:1667 */
+ case 130:
+#line 864 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_object_matcher(gen_const((yyvsp[0].literal)), gen_op_unbound(STOREV, jv_string_value((yyvsp[0].literal))));
}
-#line 3526 "src/parser.c" /* yacc.c:1667 */
+#line 3515 "src/parser.c" /* yacc.c:1646 */
break;
- case 130:
-#line 848 "src/parser.y" /* yacc.c:1667 */
+ case 131:
+#line 867 "src/parser.y" /* yacc.c:1646 */
{
(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 3534 "src/parser.c" /* yacc.c:1667 */
+#line 3523 "src/parser.c" /* yacc.c:1646 */
break;
- case 131:
-#line 851 "src/parser.y" /* yacc.c:1667 */
+ case 132:
+#line 870 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_object_matcher(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk));
}
-#line 3542 "src/parser.c" /* yacc.c:1667 */
+#line 3531 "src/parser.c" /* yacc.c:1646 */
break;
- case 132:
-#line 854 "src/parser.y" /* yacc.c:1667 */
+ case 133:
+#line 873 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_object_matcher(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk));
}
-#line 3550 "src/parser.c" /* yacc.c:1667 */
+#line 3539 "src/parser.c" /* yacc.c:1646 */
break;
- case 133:
-#line 857 "src/parser.y" /* yacc.c:1667 */
+ case 134:
+#line 876 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_object_matcher((yyvsp[-2].blk), (yyvsp[0].blk));
}
-#line 3558 "src/parser.c" /* yacc.c:1667 */
+#line 3547 "src/parser.c" /* yacc.c:1646 */
break;
- case 134:
-#line 860 "src/parser.y" /* yacc.c:1667 */
+ case 135:
+#line 879 "src/parser.y" /* yacc.c:1646 */
{
jv msg = check_object_key((yyvsp[-3].blk));
if (jv_is_valid(msg)) {
@@ -3567,276 +3556,276 @@ yyreduce:
jv_free(msg);
(yyval.blk) = gen_object_matcher((yyvsp[-3].blk), (yyvsp[0].blk));
}
-#line 3571 "src/parser.c" /* yacc.c:1667 */
+#line 3560 "src/parser.c" /* yacc.c:1646 */
break;
- case 135:
-#line 868 "src/parser.y" /* yacc.c:1667 */
+ case 136:
+#line 887 "src/parser.y" /* yacc.c:1646 */
{
FAIL((yyloc), "May need parentheses around object key expression");
(yyval.blk) = (yyvsp[0].blk);
}
-#line 3580 "src/parser.c" /* yacc.c:1667 */
+#line 3569 "src/parser.c" /* yacc.c:1646 */
break;
- case 136:
-#line 874 "src/parser.y" /* yacc.c:1667 */
+ case 137:
+#line 893 "src/parser.y" /* yacc.c:1646 */
{
(yyval.literal) = jv_string("as");
}
-#line 3588 "src/parser.c" /* yacc.c:1667 */
+#line 3577 "src/parser.c" /* yacc.c:1646 */
break;
- case 137:
-#line 877 "src/parser.y" /* yacc.c:1667 */
+ case 138:
+#line 896 "src/parser.y" /* yacc.c:1646 */
{
(yyval.literal) = jv_string("def");
}
-#line 3596 "src/parser.c" /* yacc.c:1667 */
+#line 3585 "src/parser.c" /* yacc.c:1646 */
break;
- case 138:
-#line 880 "src/parser.y" /* yacc.c:1667 */
+ case 139:
+#line 899 "src/parser.y" /* yacc.c:1646 */
{
(yyval.literal) = jv_string("module");
}
-#line 3604 "src/parser.c" /* yacc.c:1667 */
+#line 3593 "src/parser.c" /* yacc.c:1646 */
break;
- case 139:
-#line 883 "src/parser.y" /* yacc.c:1667 */
+ case 140:
+#line 902 "src/parser.y" /* yacc.c:1646 */
{
(yyval.literal) = jv_string("import");
}
-#line 3612 "src/parser.c" /* yacc.c:1667 */
+#line 3601 "src/parser.c" /* yacc.c:1646 */
break;
- case 140:
-#line 886 "src/parser.y" /* yacc.c:1667 */
+ case 141:
+#line 905 "src/parser.y" /* yacc.c:1646 */
{
(yyval.literal) = jv_string("include");
}
-#line 3620 "src/parser.c" /* yacc.c:1667 */
+#line 3609 "src/parser.c" /* yacc.c:1646 */
break;
- case 141:
-#line 889 "src/parser.y" /* yacc.c:1667 */
+ case 142:
+#line 908 "src/parser.y" /* yacc.c:1646 */
{
(yyval.literal) = jv_string("if");
}
-#line 3628 "src/parser.c" /* yacc.c:1667 */
+#line 3617 "src/parser.c" /* yacc.c:1646 */
break;
- case 142:
-#line 892 "src/parser.y" /* yacc.c:1667 */
+ case 143:
+#line 911 "src/parser.y" /* yacc.c:1646 */
{
(yyval.literal) = jv_string("then");
}
-#line 3636 "src/parser.c" /* yacc.c:1667 */
+#line 3625 "src/parser.c" /* yacc.c:1646 */
break;
- case 143:
-#line 895 "src/parser.y" /* yacc.c:1667 */
+ case 144:
+#line 914 "src/parser.y" /* yacc.c:1646 */
{
(yyval.literal) = jv_string("else");
}
-#line 3644 "src/parser.c" /* yacc.c:1667 */
+#line 3633 "src/parser.c" /* yacc.c:1646 */
break;
- case 144:
-#line 898 "src/parser.y" /* yacc.c:1667 */
+ case 145:
+#line 917 "src/parser.y" /* yacc.c:1646 */
{
(yyval.literal) = jv_string("elif");
}
-#line 3652 "src/parser.c" /* yacc.c:1667 */
+#line 3641 "src/parser.c" /* yacc.c:1646 */
break;
- case 145:
-#line 901 "src/parser.y" /* yacc.c:1667 */
+ case 146:
+#line 920 "src/parser.y" /* yacc.c:1646 */
{
(yyval.literal) = jv_string("reduce");
}
-#line 3660 "src/parser.c" /* yacc.c:1667 */
+#line 3649 "src/parser.c" /* yacc.c:1646 */
break;
- case 146:
-#line 904 "src/parser.y" /* yacc.c:1667 */
+ case 147:
+#line 923 "src/parser.y" /* yacc.c:1646 */
{
(yyval.literal) = jv_string("foreach");
}
-#line 3668 "src/parser.c" /* yacc.c:1667 */
+#line 3657 "src/parser.c" /* yacc.c:1646 */
break;
- case 147:
-#line 907 "src/parser.y" /* yacc.c:1667 */
+ case 148:
+#line 926 "src/parser.y" /* yacc.c:1646 */
{
(yyval.literal) = jv_string("end");
}
-#line 3676 "src/parser.c" /* yacc.c:1667 */
+#line 3665 "src/parser.c" /* yacc.c:1646 */
break;
- case 148:
-#line 910 "src/parser.y" /* yacc.c:1667 */
+ case 149:
+#line 929 "src/parser.y" /* yacc.c:1646 */
{
(yyval.literal) = jv_string("and");
}
-#line 3684 "src/parser.c" /* yacc.c:1667 */
+#line 3673 "src/parser.c" /* yacc.c:1646 */
break;
- case 149:
-#line 913 "src/parser.y" /* yacc.c:1667 */
+ case 150:
+#line 932 "src/parser.y" /* yacc.c:1646 */
{
(yyval.literal) = jv_string("or");
}
-#line 3692 "src/parser.c" /* yacc.c:1667 */
+#line 3681 "src/parser.c" /* yacc.c:1646 */
break;
- case 150:
-#line 916 "src/parser.y" /* yacc.c:1667 */
+ case 151:
+#line 935 "src/parser.y" /* yacc.c:1646 */
{
(yyval.literal) = jv_string("try");
}
-#line 3700 "src/parser.c" /* yacc.c:1667 */
+#line 3689 "src/parser.c" /* yacc.c:1646 */
break;
- case 151:
-#line 919 "src/parser.y" /* yacc.c:1667 */
+ case 152:
+#line 938 "src/parser.y" /* yacc.c:1646 */
{
(yyval.literal) = jv_string("catch");
}
-#line 3708 "src/parser.c" /* yacc.c:1667 */
+#line 3697 "src/parser.c" /* yacc.c:1646 */
break;
- case 152:
-#line 922 "src/parser.y" /* yacc.c:1667 */
+ case 153:
+#line 941 "src/parser.y" /* yacc.c:1646 */
{
(yyval.literal) = jv_string("label");
}
-#line 3716 "src/parser.c" /* yacc.c:1667 */
+#line 3705 "src/parser.c" /* yacc.c:1646 */
break;
- case 153:
-#line 925 "src/parser.y" /* yacc.c:1667 */
+ case 154:
+#line 944 "src/parser.y" /* yacc.c:1646 */
{
(yyval.literal) = jv_string("break");
}
-#line 3724 "src/parser.c" /* yacc.c:1667 */
+#line 3713 "src/parser.c" /* yacc.c:1646 */
break;
- case 154:
-#line 928 "src/parser.y" /* yacc.c:1667 */
+ case 155:
+#line 947 "src/parser.y" /* yacc.c:1646 */
{
(yyval.literal) = jv_string("__loc__");
}
-#line 3732 "src/parser.c" /* yacc.c:1667 */
+#line 3721 "src/parser.c" /* yacc.c:1646 */
break;
- case 155:
-#line 933 "src/parser.y" /* yacc.c:1667 */
+ case 156:
+#line 952 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk)=gen_noop();
}
-#line 3740 "src/parser.c" /* yacc.c:1667 */
+#line 3729 "src/parser.c" /* yacc.c:1646 */
break;
- case 156:
-#line 936 "src/parser.y" /* yacc.c:1667 */
+ case 157:
+#line 955 "src/parser.y" /* yacc.c:1646 */
{ (yyval.blk) = (yyvsp[0].blk); }
-#line 3746 "src/parser.c" /* yacc.c:1667 */
+#line 3735 "src/parser.c" /* yacc.c:1646 */
break;
- case 157:
-#line 937 "src/parser.y" /* yacc.c:1667 */
+ case 158:
+#line 956 "src/parser.y" /* yacc.c:1646 */
{ (yyval.blk)=block_join((yyvsp[-2].blk), (yyvsp[0].blk)); }
-#line 3752 "src/parser.c" /* yacc.c:1667 */
+#line 3741 "src/parser.c" /* yacc.c:1646 */
break;
- case 158:
-#line 938 "src/parser.y" /* yacc.c:1667 */
+ case 159:
+#line 957 "src/parser.y" /* yacc.c:1646 */
{ (yyval.blk) = (yyvsp[0].blk); }
-#line 3758 "src/parser.c" /* yacc.c:1667 */
+#line 3747 "src/parser.c" /* yacc.c:1646 */
break;
- case 159:
-#line 941 "src/parser.y" /* yacc.c:1667 */
+ case 160:
+#line 960 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_dictpair(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk));
}
-#line 3766 "src/parser.c" /* yacc.c:1667 */
+#line 3755 "src/parser.c" /* yacc.c:1646 */
break;
- case 160:
-#line 944 "src/parser.y" /* yacc.c:1667 */
+ case 161:
+#line 963 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_dictpair(gen_const((yyvsp[-2].literal)), (yyvsp[0].blk));
}
-#line 3774 "src/parser.c" /* yacc.c:1667 */
+#line 3763 "src/parser.c" /* yacc.c:1646 */
break;
- case 161:
-#line 947 "src/parser.y" /* yacc.c:1667 */
+ case 162:
+#line 966 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_dictpair((yyvsp[-2].blk), (yyvsp[0].blk));
}
-#line 3782 "src/parser.c" /* yacc.c:1667 */
+#line 3771 "src/parser.c" /* yacc.c:1646 */
break;
- case 162:
-#line 950 "src/parser.y" /* yacc.c:1667 */
+ case 163:
+#line 969 "src/parser.y" /* yacc.c:1646 */
{
(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 3791 "src/parser.c" /* yacc.c:1667 */
+#line 3780 "src/parser.c" /* yacc.c:1646 */
break;
- case 163:
-#line 954 "src/parser.y" /* yacc.c:1667 */
+ case 164:
+#line 973 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_dictpair(gen_location((yyloc), locations, gen_op_unbound(LOADV, jv_string_value((yyvsp[-2].literal)))),
(yyvsp[0].blk));
}
-#line 3800 "src/parser.c" /* yacc.c:1667 */
+#line 3789 "src/parser.c" /* yacc.c:1646 */
break;
- case 164:
-#line 958 "src/parser.y" /* yacc.c:1667 */
+ case 165:
+#line 977 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_dictpair(gen_const((yyvsp[0].literal)),
gen_location((yyloc), locations, gen_op_unbound(LOADV, jv_string_value((yyvsp[0].literal)))));
}
-#line 3809 "src/parser.c" /* yacc.c:1667 */
+#line 3798 "src/parser.c" /* yacc.c:1646 */
break;
- case 165:
-#line 962 "src/parser.y" /* yacc.c:1667 */
+ case 166:
+#line 981 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_dictpair(gen_const((yyvsp[0].literal)),
gen_location((yyloc), locations, gen_op_unbound(LOADV, jv_string_value((yyvsp[0].literal)))));
}
-#line 3818 "src/parser.c" /* yacc.c:1667 */
+#line 3807 "src/parser.c" /* yacc.c:1646 */
break;
- case 166:
-#line 966 "src/parser.y" /* yacc.c:1667 */
+ case 167:
+#line 985 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_dictpair(gen_const(jv_copy((yyvsp[0].literal))),
gen_index(gen_noop(), gen_const((yyvsp[0].literal))));
}
-#line 3827 "src/parser.c" /* yacc.c:1667 */
+#line 3816 "src/parser.c" /* yacc.c:1646 */
break;
- case 167:
-#line 970 "src/parser.y" /* yacc.c:1667 */
+ case 168:
+#line 989 "src/parser.y" /* yacc.c:1646 */
{
(yyval.blk) = gen_dictpair(gen_const(jv_copy((yyvsp[0].literal))),
gen_index(gen_noop(), gen_const((yyvsp[0].literal))));
}
-#line 3836 "src/parser.c" /* yacc.c:1667 */
+#line 3825 "src/parser.c" /* yacc.c:1646 */
break;
- case 168:
-#line 974 "src/parser.y" /* yacc.c:1667 */
+ case 169:
+#line 993 "src/parser.y" /* yacc.c:1646 */
{
jv msg = check_object_key((yyvsp[-3].blk));
if (jv_is_valid(msg)) {
@@ -3845,20 +3834,20 @@ yyreduce:
jv_free(msg);
(yyval.blk) = gen_dictpair((yyvsp[-3].blk), (yyvsp[0].blk));
}
-#line 3849 "src/parser.c" /* yacc.c:1667 */
+#line 3838 "src/parser.c" /* yacc.c:1646 */
break;
- case 169:
-#line 982 "src/parser.y" /* yacc.c:1667 */
+ case 170:
+#line 1001 "src/parser.y" /* yacc.c:1646 */
{
FAIL((yyloc), "May need parentheses around object key expression");
(yyval.blk) = (yyvsp[0].blk);
}
-#line 3858 "src/parser.c" /* yacc.c:1667 */
+#line 3847 "src/parser.c" /* yacc.c:1646 */
break;
-#line 3862 "src/parser.c" /* yacc.c:1667 */
+#line 3851 "src/parser.c" /* yacc.c:1646 */
default: break;
}
/* User semantic actions sometimes alter yychar, and that requires
@@ -3884,13 +3873,14 @@ yyreduce:
/* Now 'shift' the result of the reduction. Determine what state
that goes to, based on the state we popped back to and the rule
number reduced by. */
- {
- const int yylhs = yyr1[yyn] - YYNTOKENS;
- const int yyi = yypgoto[yylhs] + *yyssp;
- yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
- ? yytable[yyi]
- : yydefgoto[yylhs]);
- }
+
+ yyn = yyr1[yyn];
+
+ yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
+ if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+ yystate = yytable[yystate];
+ else
+ yystate = yydefgoto[yyn - YYNTOKENS];
goto yynewstate;
@@ -3973,11 +3963,14 @@ yyerrlab:
| yyerrorlab -- error raised explicitly by YYERROR. |
`---------------------------------------------------*/
yyerrorlab:
- /* Pacify compilers when the user code never invokes YYERROR and the
- label yyerrorlab therefore never appears in user code. */
- if (0)
- YYERROR;
+ /* Pacify compilers like GCC when the user code never invokes
+ YYERROR and the label yyerrorlab therefore never appears in user
+ code. */
+ 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);
@@ -4043,7 +4036,6 @@ yyacceptlab:
yyresult = 0;
goto yyreturn;
-
/*-----------------------------------.
| yyabortlab -- YYABORT comes here. |
`-----------------------------------*/
@@ -4051,7 +4043,6 @@ yyabortlab:
yyresult = 1;
goto yyreturn;
-
#if !defined yyoverflow || YYERROR_VERBOSE
/*-------------------------------------------------.
| yyexhaustedlab -- memory exhaustion comes here. |
@@ -4062,10 +4053,6 @@ yyexhaustedlab:
/* Fall through. */
#endif
-
-/*-----------------------------------------------------.
-| yyreturn -- parsing is finished, return the result. |
-`-----------------------------------------------------*/
yyreturn:
if (yychar != YYEMPTY)
{
@@ -4095,7 +4082,7 @@ yyreturn:
#endif
return yyresult;
}
-#line 986 "src/parser.y" /* yacc.c:1918 */
+#line 1005 "src/parser.y" /* yacc.c:1906 */
int jq_parse(struct locfile* locations, block* answer) {
diff --git a/src/parser.h b/src/parser.h
index 4d14e95..b15c53a 100644
--- a/src/parser.h
+++ b/src/parser.h
@@ -1,9 +1,8 @@
-/* A Bison parser, made by GNU Bison 3.3.2. */
+/* A Bison parser, made by GNU Bison 3.0.4. */
/* Bison interface for Yacc-like parsers in C
- Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation,
- Inc.
+ Copyright (C) 1984, 1989-1990, 2000-2015 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
@@ -31,9 +30,6 @@
This special exception was added by the Free Software Foundation in
version 2.2 of Bison. */
-/* Undocumented macros, especially those whose name start with YY_,
- are private implementation details. Do not rely on them. */
-
#ifndef YY_YY_SRC_PARSER_H_INCLUDED
# define YY_YY_SRC_PARSER_H_INCLUDED
/* Debug traces. */
@@ -44,7 +40,7 @@
extern int yydebug;
#endif
/* "%code requires" blocks. */
-#line 11 "src/parser.y" /* yacc.c:1927 */
+#line 11 "src/parser.y" /* yacc.c:1909 */
#include "locfile.h"
struct lexer_param;
@@ -61,7 +57,7 @@ struct lexer_param;
} \
} while (0)
-#line 65 "src/parser.h" /* yacc.c:1927 */
+#line 61 "src/parser.h" /* yacc.c:1909 */
/* Token type. */
#ifndef YYTOKENTYPE
@@ -167,12 +163,12 @@ struct lexer_param;
union YYSTYPE
{
-#line 31 "src/parser.y" /* yacc.c:1927 */
+#line 31 "src/parser.y" /* yacc.c:1909 */
jv literal;
block blk;
-#line 176 "src/parser.h" /* yacc.c:1927 */
+#line 172 "src/parser.h" /* yacc.c:1909 */
};
typedef union YYSTYPE YYSTYPE;
diff --git a/src/parser.y b/src/parser.y
index e223ada..f04853f 100644
--- a/src/parser.y
+++ b/src/parser.y
@@ -749,6 +749,25 @@ FORMAT {
else
$$ = BLOCK(gen_subexp(gen_const(jv_object())), $2, gen_op_simple(POP));
} |
+/*
+ * This `$$$$varname` hack is strictly private to jq builtins. DO NOT USE!!
+ *
+ * This is used in `_modify`, in src/builtin.jq, to avoid holding on to a
+ * reference to `.`.
+ *
+ * We could just have the compiler emit bytecode for `_modify` so it can use
+ * LOADVN w/o needing jq syntax for LOADVN.
+ *
+ * This syntax, `$$$$varname`, violates referential transparency: it has
+ * side-effects that are surprising.
+ *
+ * DO NOT USE!! I will break your jq code if you do use this outside
+ * src/builtin.jq.
+ */
+'$' '$' '$' '$' IDENT {
+ $$ = gen_location(@$, locations, gen_op_unbound(LOADVN, jv_string_value($5)));
+ jv_free($5);
+} |
'$' IDENT {
$$ = gen_location(@$, locations, gen_op_unbound(LOADV, jv_string_value($2)));
jv_free($2);