]> granicus.if.org Git - jq/commitdiff
Update generated lexer.gen.* and parser.gen.* files 34/head
authorDamian Gryski <damian@gryski.com>
Wed, 24 Oct 2012 07:31:21 +0000 (09:31 +0200)
committerDamian Gryski <damian@gryski.com>
Wed, 24 Oct 2012 07:31:21 +0000 (09:31 +0200)
lexer.gen.c
lexer.gen.h
parser.gen.c
parser.gen.h

index 7d8b953cfee5ec17aef813600e5921b17cbdbfe2..dbaf0abc817ee9b0831debee06bf5337d68c8b17 100644 (file)
@@ -501,6 +501,9 @@ static yyconst flex_int16_t yy_chk[190] =
 #line 1 "lexer.l"
 #line 2 "lexer.l"
 #include "compile.h"
+
+struct lexer_param;
+
 #include "parser.gen.h"  /* Generated by bison. */
 
 #define YY_USER_ACTION                           \
@@ -515,11 +518,11 @@ static yyconst flex_int16_t yy_chk[190] =
 
 
 
-#line 20 "lexer.l"
+#line 23 "lexer.l"
   static int enter(int opening, int state, yyscan_t yyscanner);
   static int try_exit(int closing, int state, yyscan_t yyscanner);
 #define YY_NO_INPUT 1
-#line 523 "lexer.gen.c"
+#line 526 "lexer.gen.c"
 
 #define INITIAL 0
 #define IN_PAREN 1
@@ -771,10 +774,10 @@ YY_DECL
        register int yy_act;
     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
 
-#line 32 "lexer.l"
+#line 35 "lexer.l"
 
 
-#line 778 "lexer.gen.c"
+#line 781 "lexer.gen.c"
 
     yylval = yylval_param;
 
@@ -863,138 +866,138 @@ do_action:      /* This label is used only to access EOF actions. */
 
 case 1:
 YY_RULE_SETUP
-#line 34 "lexer.l"
+#line 37 "lexer.l"
 { /* comments */ }
        YY_BREAK
 case 2:
 YY_RULE_SETUP
-#line 36 "lexer.l"
+#line 39 "lexer.l"
 { return NEQ; }
        YY_BREAK
 case 3:
 YY_RULE_SETUP
-#line 37 "lexer.l"
+#line 40 "lexer.l"
 { return EQ; }
        YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 38 "lexer.l"
+#line 41 "lexer.l"
 { return AS; }
        YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 39 "lexer.l"
+#line 42 "lexer.l"
 { return DEF; }
        YY_BREAK
 case 6:
 YY_RULE_SETUP
-#line 40 "lexer.l"
+#line 43 "lexer.l"
 { return IF; }
        YY_BREAK
 case 7:
 YY_RULE_SETUP
-#line 41 "lexer.l"
+#line 44 "lexer.l"
 { return THEN; }
        YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 42 "lexer.l"
+#line 45 "lexer.l"
 { return ELSE; }
        YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 43 "lexer.l"
+#line 46 "lexer.l"
 { return ELSE_IF; }
        YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 44 "lexer.l"
+#line 47 "lexer.l"
 { return AND; }
        YY_BREAK
 case 11:
 YY_RULE_SETUP
-#line 45 "lexer.l"
+#line 48 "lexer.l"
 { return OR; }
        YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 46 "lexer.l"
+#line 49 "lexer.l"
 { return END; }
        YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 47 "lexer.l"
+#line 50 "lexer.l"
 { return DEFINEDOR; }
        YY_BREAK
 case 14:
 YY_RULE_SETUP
-#line 48 "lexer.l"
+#line 51 "lexer.l"
 { return SETPIPE; }
        YY_BREAK
 case 15:
 YY_RULE_SETUP
-#line 49 "lexer.l"
+#line 52 "lexer.l"
 { return SETPLUS; }
        YY_BREAK
 case 16:
 YY_RULE_SETUP
-#line 50 "lexer.l"
+#line 53 "lexer.l"
 { return SETMINUS; }
        YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 51 "lexer.l"
+#line 54 "lexer.l"
 { return SETMULT; }
        YY_BREAK
 case 18:
 YY_RULE_SETUP
-#line 52 "lexer.l"
+#line 55 "lexer.l"
 { return SETDIV; }
        YY_BREAK
 case 19:
 YY_RULE_SETUP
-#line 53 "lexer.l"
+#line 56 "lexer.l"
 { return SETDEFINEDOR; }
        YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 54 "lexer.l"
+#line 57 "lexer.l"
 { return LESSEQ; }
        YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 55 "lexer.l"
+#line 58 "lexer.l"
 { return GREATEREQ; }
        YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 56 "lexer.l"
+#line 59 "lexer.l"
 { return yytext[0];}
        YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 58 "lexer.l"
+#line 61 "lexer.l"
 {
   return enter(yytext[0], YY_START, yyscanner);
 }
        YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 62 "lexer.l"
+#line 65 "lexer.l"
 {
   return try_exit(yytext[0], YY_START, yyscanner);
 }
        YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 67 "lexer.l"
+#line 70 "lexer.l"
 { 
    yylval->literal = jv_parse_sized(yytext, yyleng); return LITERAL; 
 }
        YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 71 "lexer.l"
+#line 74 "lexer.l"
 {
   yy_push_state(IN_QQSTRING, yyscanner);
   return QQSTRING_START;
@@ -1003,14 +1006,14 @@ YY_RULE_SETUP
 
 case 27:
 YY_RULE_SETUP
-#line 77 "lexer.l"
+#line 80 "lexer.l"
 {
     return enter(QQSTRING_INTERP_START, YY_START, yyscanner);
   }
        YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 80 "lexer.l"
+#line 83 "lexer.l"
 {
     yy_pop_state(yyscanner);
     return QQSTRING_END;
@@ -1019,7 +1022,7 @@ YY_RULE_SETUP
 case 29:
 /* rule 29 can match eol */
 YY_RULE_SETUP
-#line 84 "lexer.l"
+#line 87 "lexer.l"
 {
     /* pass escapes to the json parser */
     jv escapes = jv_string_fmt("\"%.*s\"", yyleng, yytext);
@@ -1031,7 +1034,7 @@ YY_RULE_SETUP
 case 30:
 /* rule 30 can match eol */
 YY_RULE_SETUP
-#line 91 "lexer.l"
+#line 94 "lexer.l"
 {
     yylval->literal = jv_string_sized(yytext, yyleng);
     return QQSTRING_TEXT;
@@ -1039,7 +1042,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 95 "lexer.l"
+#line 98 "lexer.l"
 {
     return INVALID_CHARACTER;
   }
@@ -1047,26 +1050,26 @@ YY_RULE_SETUP
 
 case 32:
 YY_RULE_SETUP
-#line 101 "lexer.l"
+#line 104 "lexer.l"
 { yylval->literal = jv_string(yytext); return IDENT;}
        YY_BREAK
 case 33:
 /* rule 33 can match eol */
 YY_RULE_SETUP
-#line 103 "lexer.l"
+#line 106 "lexer.l"
 {}
        YY_BREAK
 case 34:
 YY_RULE_SETUP
-#line 105 "lexer.l"
+#line 108 "lexer.l"
 { return INVALID_CHARACTER; }
        YY_BREAK
 case 35:
 YY_RULE_SETUP
-#line 107 "lexer.l"
+#line 110 "lexer.l"
 YY_FATAL_ERROR( "flex scanner jammed" );
        YY_BREAK
-#line 1070 "lexer.gen.c"
+#line 1073 "lexer.gen.c"
 case YY_STATE_EOF(INITIAL):
 case YY_STATE_EOF(IN_PAREN):
 case YY_STATE_EOF(IN_BRACKET):
@@ -2249,7 +2252,7 @@ void jq_yyfree (void * ptr , yyscan_t yyscanner)
 
 #define YYTABLES_NAME "yytables"
 
-#line 107 "lexer.l"
+#line 110 "lexer.l"
 
 
 /* perhaps these should be calls... */
index ee486e8aba2f87527d219f60e35e24a31b6bcaf8..e22ddb2971846b6fd721cc08cf28847d3d1a84a8 100644 (file)
@@ -345,7 +345,7 @@ extern int jq_yylex \
 #undef YY_DECL
 #endif
 
-#line 107 "lexer.l"
+#line 110 "lexer.l"
 
 
 #line 352 "lexer.gen.h"
index 79213801c54eac07ce581c95bcea9fe0484e22de..32a2a205e3be8de9a872e4aa84b4f677f18e5e2f 100644 (file)
@@ -69,7 +69,7 @@
 #include <string.h>
 #include "compile.h"
 
-typedef void* yyscan_t;
+struct lexer_param;
 
 
 /* Line 336 of yacc.c  */
@@ -201,7 +201,7 @@ int yyparse ();
 #endif
 #else /* ! YYPARSE_PARAM */
 #if defined __STDC__ || defined __cplusplus
-int yyparse (block* answer, int* errors, struct locfile* locations, yyscan_t lexer);
+int yyparse (block* answer, int* errors, struct locfile* locations, struct lexer_param* lexer_param_ptr);
 #else
 int yyparse ();
 #endif
@@ -214,21 +214,25 @@ int yyparse ();
 #line 89 "parser.y"
 
 #include "lexer.gen.h"
-#define FAIL(loc, msg)                                   \
-  do {                                                   \
-    location l = loc;                                    \
-    yyerror(&l, answer, errors, locations, lexer, msg);  \
-    /*YYERROR*/;                                         \
+struct lexer_param {
+  yyscan_t lexer;
+};
+#define FAIL(loc, msg)                                             \
+  do {                                                             \
+    location l = loc;                                              \
+    yyerror(&l, answer, errors, locations, lexer_param_ptr, msg);  \
+    /*YYERROR*/;                                                   \
   } while (0)
 
 void yyerror(YYLTYPE* loc, block* answer, int* errors, 
-             struct locfile* locations, yyscan_t lexer, const char *s){
+             struct locfile* locations, struct lexer_param* lexer_param_ptr, const char *s){
   (*errors)++;
   locfile_locate(locations, *loc, "error: %s", s);
 }
 
 int yylex(YYSTYPE* yylval, YYLTYPE* yylloc, block* answer, int* errors, 
-          struct locfile* locations, yyscan_t lexer) {
+          struct locfile* locations, struct lexer_param* lexer_param_ptr) {
+  yyscan_t lexer = lexer_param_ptr->lexer;
   while (1) {
     int tok = jq_yylex(yylval, yylloc, lexer);
     if (tok == INVALID_CHARACTER) {
@@ -300,7 +304,7 @@ static block gen_update(block a, block op, int optype) {
 
 
 /* Line 353 of yacc.c  */
-#line 304 "parser.gen.c"
+#line 308 "parser.gen.c"
 
 #ifdef short
 # undef short
@@ -623,13 +627,13 @@ static const yytype_int8 yyrhs[] =
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   179,   179,   182,   187,   190,   195,   199,   206,   209,
-     214,   223,   227,   231,   235,   239,   243,   247,   251,   255,
-     259,   263,   267,   271,   275,   279,   283,   287,   291,   295,
-     299,   303,   307,   311,   316,   321,   327,   335,   338,   341,
-     347,   350,   355,   359,   365,   368,   371,   375,   378,   381,
-     384,   387,   390,   393,   398,   402,   406,   416,   417,   418,
-     419,   422,   425,   426,   427,   430,   433,   436,   440,   443
+       0,   183,   183,   186,   191,   194,   199,   203,   210,   213,
+     218,   227,   231,   235,   239,   243,   247,   251,   255,   259,
+     263,   267,   271,   275,   279,   283,   287,   291,   295,   299,
+     303,   307,   311,   315,   320,   325,   331,   339,   342,   345,
+     351,   354,   359,   363,   369,   372,   375,   379,   382,   385,
+     388,   391,   394,   397,   402,   406,   410,   420,   421,   422,
+     423,   426,   429,   430,   431,   434,   437,   440,   444,   447
 };
 #endif
 
@@ -992,7 +996,7 @@ do                                                              \
     }                                                           \
   else                                                          \
     {                                                           \
-      yyerror (&yylloc, answer, errors, locations, lexer, YY_("syntax error: cannot back up")); \
+      yyerror (&yylloc, answer, errors, locations, lexer_param_ptr, YY_("syntax error: cannot back up")); \
       YYERROR;                                                 \
     }                                                          \
 while (YYID (0))
@@ -1050,7 +1054,7 @@ while (YYID (0))
 #ifdef YYLEX_PARAM
 # define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
 #else
-# define YYLEX yylex (&yylval, &yylloc, answer, errors, locations, lexer)
+# define YYLEX yylex (&yylval, &yylloc, answer, errors, locations, lexer_param_ptr)
 #endif
 
 /* Enable debugging if requested.  */
@@ -1073,7 +1077,7 @@ do {                                                                        \
     {                                                                    \
       YYFPRINTF (stderr, "%s ", Title);                                          \
       yy_symbol_print (stderr,                                           \
-                 Type, Value, Location, answer, errors, locations, lexer); \
+                 Type, Value, Location, answer, errors, locations, lexer_param_ptr); \
       YYFPRINTF (stderr, "\n");                                                  \
     }                                                                    \
 } while (YYID (0))
@@ -1087,10 +1091,10 @@ do {                                                                      \
 #if (defined __STDC__ || defined __C99__FUNC__ \
      || defined __cplusplus || defined _MSC_VER)
 static void
-yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, block* answer, int* errors, struct locfile* locations, yyscan_t lexer)
+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)
 #else
 static void
-yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, answer, errors, locations, lexer)
+yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, answer, errors, locations, lexer_param_ptr)
     FILE *yyoutput;
     int yytype;
     YYSTYPE const * const yyvaluep;
@@ -1098,7 +1102,7 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, answer, errors,
     block* answer;
     int* errors;
     struct locfile* locations;
-    yyscan_t lexer;
+    struct lexer_param* lexer_param_ptr;
 #endif
 {
   FILE *yyo = yyoutput;
@@ -1109,7 +1113,7 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, answer, errors,
   YYUSE (answer);
   YYUSE (errors);
   YYUSE (locations);
-  YYUSE (lexer);
+  YYUSE (lexer_param_ptr);
 # ifdef YYPRINT
   if (yytype < YYNTOKENS)
     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
@@ -1131,10 +1135,10 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, answer, errors,
 #if (defined __STDC__ || defined __C99__FUNC__ \
      || defined __cplusplus || defined _MSC_VER)
 static void
-yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, block* answer, int* errors, struct locfile* locations, yyscan_t lexer)
+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)
 #else
 static void
-yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp, answer, errors, locations, lexer)
+yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp, answer, errors, locations, lexer_param_ptr)
     FILE *yyoutput;
     int yytype;
     YYSTYPE const * const yyvaluep;
@@ -1142,7 +1146,7 @@ yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp, answer, errors, locati
     block* answer;
     int* errors;
     struct locfile* locations;
-    yyscan_t lexer;
+    struct lexer_param* lexer_param_ptr;
 #endif
 {
   if (yytype < YYNTOKENS)
@@ -1152,7 +1156,7 @@ yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp, answer, errors, locati
 
   YY_LOCATION_PRINT (yyoutput, *yylocationp);
   YYFPRINTF (yyoutput, ": ");
-  yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, answer, errors, locations, lexer);
+  yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, answer, errors, locations, lexer_param_ptr);
   YYFPRINTF (yyoutput, ")");
 }
 
@@ -1195,17 +1199,17 @@ do {                                                            \
 #if (defined __STDC__ || defined __C99__FUNC__ \
      || defined __cplusplus || defined _MSC_VER)
 static void
-yy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule, block* answer, int* errors, struct locfile* locations, yyscan_t lexer)
+yy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule, block* answer, int* errors, struct locfile* locations, struct lexer_param* lexer_param_ptr)
 #else
 static void
-yy_reduce_print (yyvsp, yylsp, yyrule, answer, errors, locations, lexer)
+yy_reduce_print (yyvsp, yylsp, yyrule, answer, errors, locations, lexer_param_ptr)
     YYSTYPE *yyvsp;
     YYLTYPE *yylsp;
     int yyrule;
     block* answer;
     int* errors;
     struct locfile* locations;
-    yyscan_t lexer;
+    struct lexer_param* lexer_param_ptr;
 #endif
 {
   int yynrhs = yyr2[yyrule];
@@ -1219,7 +1223,7 @@ yy_reduce_print (yyvsp, yylsp, yyrule, answer, errors, locations, lexer)
       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
       yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
                       &(yyvsp[(yyi + 1) - (yynrhs)])
-                      , &(yylsp[(yyi + 1) - (yynrhs)])                , answer, errors, locations, lexer);
+                      , &(yylsp[(yyi + 1) - (yynrhs)])                , answer, errors, locations, lexer_param_ptr);
       YYFPRINTF (stderr, "\n");
     }
 }
@@ -1227,7 +1231,7 @@ yy_reduce_print (yyvsp, yylsp, yyrule, answer, errors, locations, lexer)
 # define YY_REDUCE_PRINT(Rule)         \
 do {                                   \
   if (yydebug)                         \
-    yy_reduce_print (yyvsp, yylsp, Rule, answer, errors, locations, lexer); \
+    yy_reduce_print (yyvsp, yylsp, Rule, answer, errors, locations, lexer_param_ptr); \
 } while (YYID (0))
 
 /* Nonzero means print parse trace.  It is left uninitialized so that
@@ -1504,10 +1508,10 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
 #if (defined __STDC__ || defined __C99__FUNC__ \
      || defined __cplusplus || defined _MSC_VER)
 static void
-yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, block* answer, int* errors, struct locfile* locations, yyscan_t lexer)
+yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, block* answer, int* errors, struct locfile* locations, struct lexer_param* lexer_param_ptr)
 #else
 static void
-yydestruct (yymsg, yytype, yyvaluep, yylocationp, answer, errors, locations, lexer)
+yydestruct (yymsg, yytype, yyvaluep, yylocationp, answer, errors, locations, lexer_param_ptr)
     const char *yymsg;
     int yytype;
     YYSTYPE *yyvaluep;
@@ -1515,7 +1519,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, answer, errors, locations, lex
     block* answer;
     int* errors;
     struct locfile* locations;
-    yyscan_t lexer;
+    struct lexer_param* lexer_param_ptr;
 #endif
 {
   YYUSE (yyvaluep);
@@ -1523,7 +1527,7 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, answer, errors, locations, lex
   YYUSE (answer);
   YYUSE (errors);
   YYUSE (locations);
-  YYUSE (lexer);
+  YYUSE (lexer_param_ptr);
 
   if (!yymsg)
     yymsg = "Deleting";
@@ -1536,91 +1540,91 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, answer, errors, locations, lex
 #line 32 "parser.y"
        { jv_free(((*yyvaluep).literal)); };
 /* Line 1381 of yacc.c  */
-#line 1540 "parser.gen.c"
+#line 1544 "parser.gen.c"
        break;
       case 5: /* LITERAL */
 /* Line 1381 of yacc.c  */
 #line 32 "parser.y"
        { jv_free(((*yyvaluep).literal)); };
 /* Line 1381 of yacc.c  */
-#line 1547 "parser.gen.c"
+#line 1551 "parser.gen.c"
        break;
       case 27: /* QQSTRING_TEXT */
 /* Line 1381 of yacc.c  */
 #line 32 "parser.y"
        { jv_free(((*yyvaluep).literal)); };
 /* Line 1381 of yacc.c  */
-#line 1554 "parser.gen.c"
+#line 1558 "parser.gen.c"
        break;
       case 52: /* FuncDefs */
 /* Line 1381 of yacc.c  */
 #line 33 "parser.y"
        { block_free(((*yyvaluep).blk)); };
 /* Line 1381 of yacc.c  */
-#line 1561 "parser.gen.c"
+#line 1565 "parser.gen.c"
        break;
       case 53: /* Exp */
 /* Line 1381 of yacc.c  */
 #line 33 "parser.y"
        { block_free(((*yyvaluep).blk)); };
 /* Line 1381 of yacc.c  */
-#line 1568 "parser.gen.c"
+#line 1572 "parser.gen.c"
        break;
       case 54: /* String */
 /* Line 1381 of yacc.c  */
 #line 33 "parser.y"
        { block_free(((*yyvaluep).blk)); };
 /* Line 1381 of yacc.c  */
-#line 1575 "parser.gen.c"
+#line 1579 "parser.gen.c"
        break;
       case 55: /* FuncDef */
 /* Line 1381 of yacc.c  */
 #line 33 "parser.y"
        { block_free(((*yyvaluep).blk)); };
 /* Line 1381 of yacc.c  */
-#line 1582 "parser.gen.c"
+#line 1586 "parser.gen.c"
        break;
       case 56: /* QQString */
 /* Line 1381 of yacc.c  */
 #line 33 "parser.y"
        { block_free(((*yyvaluep).blk)); };
 /* Line 1381 of yacc.c  */
-#line 1589 "parser.gen.c"
+#line 1593 "parser.gen.c"
        break;
       case 57: /* ElseBody */
 /* Line 1381 of yacc.c  */
 #line 33 "parser.y"
        { block_free(((*yyvaluep).blk)); };
 /* Line 1381 of yacc.c  */
-#line 1596 "parser.gen.c"
+#line 1600 "parser.gen.c"
        break;
       case 58: /* ExpD */
 /* Line 1381 of yacc.c  */
 #line 33 "parser.y"
        { block_free(((*yyvaluep).blk)); };
 /* Line 1381 of yacc.c  */
-#line 1603 "parser.gen.c"
+#line 1607 "parser.gen.c"
        break;
       case 59: /* Term */
 /* Line 1381 of yacc.c  */
 #line 33 "parser.y"
        { block_free(((*yyvaluep).blk)); };
 /* Line 1381 of yacc.c  */
-#line 1610 "parser.gen.c"
+#line 1614 "parser.gen.c"
        break;
       case 60: /* MkDict */
 /* Line 1381 of yacc.c  */
 #line 33 "parser.y"
        { block_free(((*yyvaluep).blk)); };
 /* Line 1381 of yacc.c  */
-#line 1617 "parser.gen.c"
+#line 1621 "parser.gen.c"
        break;
       case 61: /* MkDictPair */
 /* Line 1381 of yacc.c  */
 #line 33 "parser.y"
        { block_free(((*yyvaluep).blk)); };
 /* Line 1381 of yacc.c  */
-#line 1624 "parser.gen.c"
+#line 1628 "parser.gen.c"
        break;
 
       default:
@@ -1649,14 +1653,14 @@ yyparse (YYPARSE_PARAM)
 #if (defined __STDC__ || defined __C99__FUNC__ \
      || defined __cplusplus || defined _MSC_VER)
 int
-yyparse (block* answer, int* errors, struct locfile* locations, yyscan_t lexer)
+yyparse (block* answer, int* errors, struct locfile* locations, struct lexer_param* lexer_param_ptr)
 #else
 int
-yyparse (answer, errors, locations, lexer)
+yyparse (answer, errors, locations, lexer_param_ptr)
     block* answer;
     int* errors;
     struct locfile* locations;
-    yyscan_t lexer;
+    struct lexer_param* lexer_param_ptr;
 #endif
 #endif
 {
@@ -1936,7 +1940,7 @@ yyreduce:
     {
         case 2:
 /* Line 1787 of yacc.c  */
-#line 179 "parser.y"
+#line 183 "parser.y"
     {
   *answer = (yyvsp[(1) - (1)].blk);
 }
@@ -1944,7 +1948,7 @@ yyreduce:
 
   case 3:
 /* Line 1787 of yacc.c  */
-#line 182 "parser.y"
+#line 186 "parser.y"
     {
   *answer = (yyvsp[(1) - (1)].blk);
 }
@@ -1952,7 +1956,7 @@ yyreduce:
 
   case 4:
 /* Line 1787 of yacc.c  */
-#line 187 "parser.y"
+#line 191 "parser.y"
     {
   (yyval.blk) = gen_noop();
 }
@@ -1960,7 +1964,7 @@ yyreduce:
 
   case 5:
 /* Line 1787 of yacc.c  */
-#line 190 "parser.y"
+#line 194 "parser.y"
     {
   (yyval.blk) = block_join((yyvsp[(1) - (2)].blk), (yyvsp[(2) - (2)].blk));
 }
@@ -1968,7 +1972,7 @@ yyreduce:
 
   case 6:
 /* Line 1787 of yacc.c  */
-#line 195 "parser.y"
+#line 199 "parser.y"
     {
   (yyval.blk) = block_bind((yyvsp[(1) - (2)].blk), (yyvsp[(2) - (2)].blk), OP_IS_CALL_PSEUDO);
 }
@@ -1976,7 +1980,7 @@ yyreduce:
 
   case 7:
 /* Line 1787 of yacc.c  */
-#line 199 "parser.y"
+#line 203 "parser.y"
     {
   (yyval.blk) = gen_op_simple(DUP);
   block_append(&(yyval.blk), (yyvsp[(1) - (6)].blk));
@@ -1987,7 +1991,7 @@ yyreduce:
 
   case 8:
 /* Line 1787 of yacc.c  */
-#line 206 "parser.y"
+#line 210 "parser.y"
     {
   (yyval.blk) = gen_cond((yyvsp[(2) - (5)].blk), (yyvsp[(4) - (5)].blk), (yyvsp[(5) - (5)].blk));
 }
@@ -1995,7 +1999,7 @@ yyreduce:
 
   case 9:
 /* Line 1787 of yacc.c  */
-#line 209 "parser.y"
+#line 213 "parser.y"
     {
   FAIL((yyloc), "Possibly unterminated 'if' statment");
   (yyval.blk) = (yyvsp[(2) - (3)].blk);
@@ -2004,7 +2008,7 @@ yyreduce:
 
   case 10:
 /* Line 1787 of yacc.c  */
-#line 214 "parser.y"
+#line 218 "parser.y"
     {
   block assign = gen_op_simple(DUP);
   block_append(&assign, (yyvsp[(3) - (3)].blk));
@@ -2017,7 +2021,7 @@ yyreduce:
 
   case 11:
 /* Line 1787 of yacc.c  */
-#line 223 "parser.y"
+#line 227 "parser.y"
     {
   (yyval.blk) = gen_or((yyvsp[(1) - (3)].blk), (yyvsp[(3) - (3)].blk));
 }
@@ -2025,7 +2029,7 @@ yyreduce:
 
   case 12:
 /* Line 1787 of yacc.c  */
-#line 227 "parser.y"
+#line 231 "parser.y"
     {
   (yyval.blk) = gen_and((yyvsp[(1) - (3)].blk), (yyvsp[(3) - (3)].blk));
 }
@@ -2033,7 +2037,7 @@ yyreduce:
 
   case 13:
 /* Line 1787 of yacc.c  */
-#line 231 "parser.y"
+#line 235 "parser.y"
     {
   (yyval.blk) = gen_definedor((yyvsp[(1) - (3)].blk), (yyvsp[(3) - (3)].blk));
 }
@@ -2041,7 +2045,7 @@ yyreduce:
 
   case 14:
 /* Line 1787 of yacc.c  */
-#line 235 "parser.y"
+#line 239 "parser.y"
     {
   (yyval.blk) = gen_update((yyvsp[(1) - (3)].blk), gen_definedor(gen_noop(), (yyvsp[(3) - (3)].blk)), 0);
 }
@@ -2049,7 +2053,7 @@ yyreduce:
 
   case 15:
 /* Line 1787 of yacc.c  */
-#line 239 "parser.y"
+#line 243 "parser.y"
     {
   (yyval.blk) = gen_update((yyvsp[(1) - (3)].blk), (yyvsp[(3) - (3)].blk), 0);
 }
@@ -2057,7 +2061,7 @@ yyreduce:
 
   case 16:
 /* Line 1787 of yacc.c  */
-#line 243 "parser.y"
+#line 247 "parser.y"
     { 
   (yyval.blk) = block_join((yyvsp[(1) - (3)].blk), (yyvsp[(3) - (3)].blk)); 
 }
@@ -2065,7 +2069,7 @@ yyreduce:
 
   case 17:
 /* Line 1787 of yacc.c  */
-#line 247 "parser.y"
+#line 251 "parser.y"
     { 
   (yyval.blk) = gen_both((yyvsp[(1) - (3)].blk), (yyvsp[(3) - (3)].blk)); 
 }
@@ -2073,7 +2077,7 @@ yyreduce:
 
   case 18:
 /* Line 1787 of yacc.c  */
-#line 251 "parser.y"
+#line 255 "parser.y"
     {
   (yyval.blk) = gen_binop((yyvsp[(1) - (3)].blk), (yyvsp[(3) - (3)].blk), '+');
 }
@@ -2081,7 +2085,7 @@ yyreduce:
 
   case 19:
 /* Line 1787 of yacc.c  */
-#line 255 "parser.y"
+#line 259 "parser.y"
     {
   (yyval.blk) = gen_update((yyvsp[(1) - (3)].blk), (yyvsp[(3) - (3)].blk), '+');
 }
@@ -2089,7 +2093,7 @@ yyreduce:
 
   case 20:
 /* Line 1787 of yacc.c  */
-#line 259 "parser.y"
+#line 263 "parser.y"
     {
   (yyval.blk) = gen_binop((yyvsp[(1) - (3)].blk), (yyvsp[(3) - (3)].blk), '-');
 }
@@ -2097,7 +2101,7 @@ yyreduce:
 
   case 21:
 /* Line 1787 of yacc.c  */
-#line 263 "parser.y"
+#line 267 "parser.y"
     {
   (yyval.blk) = gen_update((yyvsp[(1) - (3)].blk), (yyvsp[(3) - (3)].blk), '-');
 }
@@ -2105,7 +2109,7 @@ yyreduce:
 
   case 22:
 /* Line 1787 of yacc.c  */
-#line 267 "parser.y"
+#line 271 "parser.y"
     {
   (yyval.blk) = gen_binop((yyvsp[(1) - (3)].blk), (yyvsp[(3) - (3)].blk), '*');
 }
@@ -2113,7 +2117,7 @@ yyreduce:
 
   case 23:
 /* Line 1787 of yacc.c  */
-#line 271 "parser.y"
+#line 275 "parser.y"
     {
   (yyval.blk) = gen_update((yyvsp[(1) - (3)].blk), (yyvsp[(3) - (3)].blk), '*');
 }
@@ -2121,7 +2125,7 @@ yyreduce:
 
   case 24:
 /* Line 1787 of yacc.c  */
-#line 275 "parser.y"
+#line 279 "parser.y"
     {
   (yyval.blk) = gen_binop((yyvsp[(1) - (3)].blk), (yyvsp[(3) - (3)].blk), '/');
 }
@@ -2129,7 +2133,7 @@ yyreduce:
 
   case 25:
 /* Line 1787 of yacc.c  */
-#line 279 "parser.y"
+#line 283 "parser.y"
     {
   (yyval.blk) = gen_update((yyvsp[(1) - (3)].blk), (yyvsp[(3) - (3)].blk), '/');
 }
@@ -2137,7 +2141,7 @@ yyreduce:
 
   case 26:
 /* Line 1787 of yacc.c  */
-#line 283 "parser.y"
+#line 287 "parser.y"
     {
   (yyval.blk) = gen_binop((yyvsp[(1) - (3)].blk), (yyvsp[(3) - (3)].blk), EQ);
 }
@@ -2145,7 +2149,7 @@ yyreduce:
 
   case 27:
 /* Line 1787 of yacc.c  */
-#line 287 "parser.y"
+#line 291 "parser.y"
     {
   (yyval.blk) = gen_binop((yyvsp[(1) - (3)].blk), (yyvsp[(3) - (3)].blk), NEQ);
 }
@@ -2153,7 +2157,7 @@ yyreduce:
 
   case 28:
 /* Line 1787 of yacc.c  */
-#line 291 "parser.y"
+#line 295 "parser.y"
     {
   (yyval.blk) = gen_binop((yyvsp[(1) - (3)].blk), (yyvsp[(3) - (3)].blk), '<');
 }
@@ -2161,7 +2165,7 @@ yyreduce:
 
   case 29:
 /* Line 1787 of yacc.c  */
-#line 295 "parser.y"
+#line 299 "parser.y"
     {
   (yyval.blk) = gen_binop((yyvsp[(1) - (3)].blk), (yyvsp[(3) - (3)].blk), '>');
 }
@@ -2169,7 +2173,7 @@ yyreduce:
 
   case 30:
 /* Line 1787 of yacc.c  */
-#line 299 "parser.y"
+#line 303 "parser.y"
     {
   (yyval.blk) = gen_binop((yyvsp[(1) - (3)].blk), (yyvsp[(3) - (3)].blk), LESSEQ);
 }
@@ -2177,7 +2181,7 @@ yyreduce:
 
   case 31:
 /* Line 1787 of yacc.c  */
-#line 303 "parser.y"
+#line 307 "parser.y"
     {
   (yyval.blk) = gen_binop((yyvsp[(1) - (3)].blk), (yyvsp[(3) - (3)].blk), GREATEREQ);
 }
@@ -2185,7 +2189,7 @@ yyreduce:
 
   case 32:
 /* Line 1787 of yacc.c  */
-#line 307 "parser.y"
+#line 311 "parser.y"
     {
   (yyval.blk) = (yyvsp[(1) - (1)].blk);
 }
@@ -2193,7 +2197,7 @@ yyreduce:
 
   case 33:
 /* Line 1787 of yacc.c  */
-#line 311 "parser.y"
+#line 315 "parser.y"
     { 
   (yyval.blk) = (yyvsp[(1) - (1)].blk); 
 }
@@ -2201,7 +2205,7 @@ yyreduce:
 
   case 34:
 /* Line 1787 of yacc.c  */
-#line 316 "parser.y"
+#line 320 "parser.y"
     {
   (yyval.blk) = (yyvsp[(2) - (3)].blk);
 }
@@ -2209,7 +2213,7 @@ yyreduce:
 
   case 35:
 /* Line 1787 of yacc.c  */
-#line 321 "parser.y"
+#line 325 "parser.y"
     {
   block body = block_join((yyvsp[(4) - (5)].blk), gen_op_simple(RET));
   (yyval.blk) = gen_op_block_defn_rec(CLOSURE_CREATE, jv_string_value((yyvsp[(2) - (5)].literal)), body);
@@ -2219,7 +2223,7 @@ yyreduce:
 
   case 36:
 /* Line 1787 of yacc.c  */
-#line 327 "parser.y"
+#line 331 "parser.y"
     {
   block body = block_bind(gen_op_block_unbound(CLOSURE_PARAM, jv_string_value((yyvsp[(4) - (8)].literal))), block_join((yyvsp[(7) - (8)].blk), gen_op_simple(RET)), OP_IS_CALL_PSEUDO);
   (yyval.blk) = gen_op_block_defn_rec(CLOSURE_CREATE, jv_string_value((yyvsp[(2) - (8)].literal)), body);
@@ -2230,7 +2234,7 @@ yyreduce:
 
   case 37:
 /* Line 1787 of yacc.c  */
-#line 335 "parser.y"
+#line 339 "parser.y"
     {
   (yyval.blk) = gen_op_const(LOADK, jv_string(""));
 }
@@ -2238,7 +2242,7 @@ yyreduce:
 
   case 38:
 /* Line 1787 of yacc.c  */
-#line 338 "parser.y"
+#line 342 "parser.y"
     {
   (yyval.blk) = gen_binop((yyvsp[(1) - (2)].blk), gen_op_const(LOADK, (yyvsp[(2) - (2)].literal)), '+');
 }
@@ -2246,7 +2250,7 @@ yyreduce:
 
   case 39:
 /* Line 1787 of yacc.c  */
-#line 341 "parser.y"
+#line 345 "parser.y"
     {
   (yyval.blk) = gen_binop((yyvsp[(1) - (4)].blk), gen_format((yyvsp[(3) - (4)].blk)), '+');
 }
@@ -2254,7 +2258,7 @@ yyreduce:
 
   case 40:
 /* Line 1787 of yacc.c  */
-#line 347 "parser.y"
+#line 351 "parser.y"
     {
   (yyval.blk) = gen_cond((yyvsp[(2) - (5)].blk), (yyvsp[(4) - (5)].blk), (yyvsp[(5) - (5)].blk));
 }
@@ -2262,7 +2266,7 @@ yyreduce:
 
   case 41:
 /* Line 1787 of yacc.c  */
-#line 350 "parser.y"
+#line 354 "parser.y"
     {
   (yyval.blk) = (yyvsp[(2) - (3)].blk);
 }
@@ -2270,7 +2274,7 @@ yyreduce:
 
   case 42:
 /* Line 1787 of yacc.c  */
-#line 355 "parser.y"
+#line 359 "parser.y"
     { 
   (yyval.blk) = block_join((yyvsp[(1) - (3)].blk), (yyvsp[(3) - (3)].blk));
 }
@@ -2278,7 +2282,7 @@ yyreduce:
 
   case 43:
 /* Line 1787 of yacc.c  */
-#line 359 "parser.y"
+#line 363 "parser.y"
     {
   (yyval.blk) = (yyvsp[(1) - (1)].blk);
 }
@@ -2286,7 +2290,7 @@ yyreduce:
 
   case 44:
 /* Line 1787 of yacc.c  */
-#line 365 "parser.y"
+#line 369 "parser.y"
     {
   (yyval.blk) = gen_noop(); 
 }
@@ -2294,7 +2298,7 @@ yyreduce:
 
   case 45:
 /* Line 1787 of yacc.c  */
-#line 368 "parser.y"
+#line 372 "parser.y"
     {
   (yyval.blk) = gen_index((yyvsp[(1) - (3)].blk), gen_op_const(LOADK, (yyvsp[(3) - (3)].literal))); 
 }
@@ -2302,7 +2306,7 @@ yyreduce:
 
   case 46:
 /* Line 1787 of yacc.c  */
-#line 371 "parser.y"
+#line 375 "parser.y"
     { 
   (yyval.blk) = gen_index(gen_noop(), gen_op_const(LOADK, (yyvsp[(2) - (2)].literal))); 
 }
@@ -2310,7 +2314,7 @@ yyreduce:
 
   case 47:
 /* Line 1787 of yacc.c  */
-#line 375 "parser.y"
+#line 379 "parser.y"
     {
   (yyval.blk) = gen_index((yyvsp[(1) - (4)].blk), (yyvsp[(3) - (4)].blk)); 
 }
@@ -2318,7 +2322,7 @@ yyreduce:
 
   case 48:
 /* Line 1787 of yacc.c  */
-#line 378 "parser.y"
+#line 382 "parser.y"
     {
   (yyval.blk) = block_join((yyvsp[(1) - (3)].blk), gen_op_simple(EACH)); 
 }
@@ -2326,7 +2330,7 @@ yyreduce:
 
   case 49:
 /* Line 1787 of yacc.c  */
-#line 381 "parser.y"
+#line 385 "parser.y"
     {
   (yyval.blk) = gen_op_const(LOADK, (yyvsp[(1) - (1)].literal)); 
 }
@@ -2334,7 +2338,7 @@ yyreduce:
 
   case 50:
 /* Line 1787 of yacc.c  */
-#line 384 "parser.y"
+#line 388 "parser.y"
     { 
   (yyval.blk) = (yyvsp[(2) - (3)].blk); 
 }
@@ -2342,7 +2346,7 @@ yyreduce:
 
   case 51:
 /* Line 1787 of yacc.c  */
-#line 387 "parser.y"
+#line 391 "parser.y"
     { 
   (yyval.blk) = gen_collect((yyvsp[(2) - (3)].blk)); 
 }
@@ -2350,7 +2354,7 @@ yyreduce:
 
   case 52:
 /* Line 1787 of yacc.c  */
-#line 390 "parser.y"
+#line 394 "parser.y"
     { 
   (yyval.blk) = gen_op_const(LOADK, jv_array()); 
 }
@@ -2358,7 +2362,7 @@ yyreduce:
 
   case 53:
 /* Line 1787 of yacc.c  */
-#line 393 "parser.y"
+#line 397 "parser.y"
     { 
   (yyval.blk) = gen_subexp(gen_op_const(LOADK, jv_object()));
   block_append(&(yyval.blk), (yyvsp[(2) - (3)].blk));
@@ -2368,7 +2372,7 @@ yyreduce:
 
   case 54:
 /* Line 1787 of yacc.c  */
-#line 398 "parser.y"
+#line 402 "parser.y"
     {
   (yyval.blk) = gen_location((yyloc), gen_op_var_unbound(LOADV, jv_string_value((yyvsp[(2) - (2)].literal))));
   jv_free((yyvsp[(2) - (2)].literal));
@@ -2377,7 +2381,7 @@ yyreduce:
 
   case 55:
 /* Line 1787 of yacc.c  */
-#line 402 "parser.y"
+#line 406 "parser.y"
     {
   (yyval.blk) = gen_location((yyloc), gen_op_call(CALL_1_1, gen_op_block_unbound(CLOSURE_REF, jv_string_value((yyvsp[(1) - (1)].literal)))));
   jv_free((yyvsp[(1) - (1)].literal));
@@ -2386,7 +2390,7 @@ yyreduce:
 
   case 56:
 /* Line 1787 of yacc.c  */
-#line 406 "parser.y"
+#line 410 "parser.y"
     {
   (yyval.blk) = gen_op_call(CALL_1_1, 
                    block_join(gen_op_block_unbound(CLOSURE_REF, jv_string_value((yyvsp[(1) - (4)].literal))),
@@ -2401,31 +2405,31 @@ yyreduce:
 
   case 57:
 /* Line 1787 of yacc.c  */
-#line 416 "parser.y"
+#line 420 "parser.y"
     { (yyval.blk) = gen_noop(); }
     break;
 
   case 58:
 /* Line 1787 of yacc.c  */
-#line 417 "parser.y"
+#line 421 "parser.y"
     { (yyval.blk) = gen_noop(); }
     break;
 
   case 59:
 /* Line 1787 of yacc.c  */
-#line 418 "parser.y"
+#line 422 "parser.y"
     { (yyval.blk) = (yyvsp[(1) - (4)].blk); }
     break;
 
   case 60:
 /* Line 1787 of yacc.c  */
-#line 419 "parser.y"
+#line 423 "parser.y"
     { (yyval.blk) = gen_noop(); }
     break;
 
   case 61:
 /* Line 1787 of yacc.c  */
-#line 422 "parser.y"
+#line 426 "parser.y"
     { 
   (yyval.blk)=gen_noop(); 
 }
@@ -2433,25 +2437,25 @@ yyreduce:
 
   case 62:
 /* Line 1787 of yacc.c  */
-#line 425 "parser.y"
+#line 429 "parser.y"
     { (yyval.blk) = (yyvsp[(1) - (1)].blk); }
     break;
 
   case 63:
 /* Line 1787 of yacc.c  */
-#line 426 "parser.y"
+#line 430 "parser.y"
     { (yyval.blk)=block_join((yyvsp[(1) - (3)].blk), (yyvsp[(3) - (3)].blk)); }
     break;
 
   case 64:
 /* Line 1787 of yacc.c  */
-#line 427 "parser.y"
+#line 431 "parser.y"
     { (yyval.blk) = (yyvsp[(3) - (3)].blk); }
     break;
 
   case 65:
 /* Line 1787 of yacc.c  */
-#line 430 "parser.y"
+#line 434 "parser.y"
     { 
   (yyval.blk) = gen_dictpair(gen_op_const(LOADK, (yyvsp[(1) - (3)].literal)), (yyvsp[(3) - (3)].blk));
  }
@@ -2459,7 +2463,7 @@ yyreduce:
 
   case 66:
 /* Line 1787 of yacc.c  */
-#line 433 "parser.y"
+#line 437 "parser.y"
     {
   (yyval.blk) = gen_dictpair((yyvsp[(1) - (3)].blk), (yyvsp[(3) - (3)].blk));
   }
@@ -2467,7 +2471,7 @@ yyreduce:
 
   case 67:
 /* Line 1787 of yacc.c  */
-#line 436 "parser.y"
+#line 440 "parser.y"
     {
   (yyval.blk) = gen_dictpair(gen_op_const(LOADK, jv_copy((yyvsp[(1) - (1)].literal))),
                     gen_index(gen_noop(), gen_op_const(LOADK, (yyvsp[(1) - (1)].literal))));
@@ -2476,7 +2480,7 @@ yyreduce:
 
   case 68:
 /* Line 1787 of yacc.c  */
-#line 440 "parser.y"
+#line 444 "parser.y"
     {
   (yyval.blk) = gen_dictpair((yyvsp[(2) - (5)].blk), (yyvsp[(5) - (5)].blk));
   }
@@ -2484,13 +2488,13 @@ yyreduce:
 
   case 69:
 /* Line 1787 of yacc.c  */
-#line 443 "parser.y"
+#line 447 "parser.y"
     { (yyval.blk) = (yyvsp[(5) - (5)].blk); }
     break;
 
 
 /* Line 1787 of yacc.c  */
-#line 2494 "parser.gen.c"
+#line 2498 "parser.gen.c"
       default: break;
     }
   /* User semantic actions sometimes alter yychar, and that requires
@@ -2541,7 +2545,7 @@ yyerrlab:
     {
       ++yynerrs;
 #if ! YYERROR_VERBOSE
-      yyerror (&yylloc, answer, errors, locations, lexer, YY_("syntax error"));
+      yyerror (&yylloc, answer, errors, locations, lexer_param_ptr, YY_("syntax error"));
 #else
 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
                                         yyssp, yytoken)
@@ -2568,7 +2572,7 @@ yyerrlab:
                 yymsgp = yymsg;
               }
           }
-        yyerror (&yylloc, answer, errors, locations, lexer, yymsgp);
+        yyerror (&yylloc, answer, errors, locations, lexer_param_ptr, yymsgp);
         if (yysyntax_error_status == 2)
           goto yyexhaustedlab;
       }
@@ -2592,7 +2596,7 @@ yyerrlab:
       else
        {
          yydestruct ("Error: discarding",
-                     yytoken, &yylval, &yylloc, answer, errors, locations, lexer);
+                     yytoken, &yylval, &yylloc, answer, errors, locations, lexer_param_ptr);
          yychar = YYEMPTY;
        }
     }
@@ -2649,7 +2653,7 @@ yyerrlab1:
 
       yyerror_range[1] = *yylsp;
       yydestruct ("Error: popping",
-                 yystos[yystate], yyvsp, yylsp, answer, errors, locations, lexer);
+                 yystos[yystate], yyvsp, yylsp, answer, errors, locations, lexer_param_ptr);
       YYPOPSTACK (1);
       yystate = *yyssp;
       YY_STACK_PRINT (yyss, yyssp);
@@ -2689,7 +2693,7 @@ yyabortlab:
 | yyexhaustedlab -- memory exhaustion comes here.  |
 `-------------------------------------------------*/
 yyexhaustedlab:
-  yyerror (&yylloc, answer, errors, locations, lexer, YY_("memory exhausted"));
+  yyerror (&yylloc, answer, errors, locations, lexer_param_ptr, YY_("memory exhausted"));
   yyresult = 2;
   /* Fall through.  */
 #endif
@@ -2701,7 +2705,7 @@ yyreturn:
          user semantic actions for why this is necessary.  */
       yytoken = YYTRANSLATE (yychar);
       yydestruct ("Cleanup: discarding lookahead",
-                  yytoken, &yylval, &yylloc, answer, errors, locations, lexer);
+                  yytoken, &yylval, &yylloc, answer, errors, locations, lexer_param_ptr);
     }
   /* Do not reclaim the symbols of the rule which action triggered
      this YYABORT or YYACCEPT.  */
@@ -2710,7 +2714,7 @@ yyreturn:
   while (yyssp != yyss)
     {
       yydestruct ("Cleanup: popping",
-                 yystos[*yyssp], yyvsp, yylsp, answer, errors, locations, lexer);
+                 yystos[*yyssp], yyvsp, yylsp, answer, errors, locations, lexer_param_ptr);
       YYPOPSTACK (1);
     }
 #ifndef yyoverflow
@@ -2727,19 +2731,19 @@ yyreturn:
 
 
 /* Line 2048 of yacc.c  */
-#line 444 "parser.y"
+#line 448 "parser.y"
 
 
 int jq_parse(struct locfile* locations, block* answer) {
-  yyscan_t scanner;
+  struct lexer_param scanner;
   YY_BUFFER_STATE buf;
-  jq_yylex_init_extra(0, &scanner);
-  buf = jq_yy_scan_bytes(locations->data, locations->length, scanner);
+  jq_yylex_init_extra(0, &scanner.lexer);
+  buf = jq_yy_scan_bytes(locations->data, locations->length, scanner.lexer);
   int errors = 0;
   *answer = gen_noop();
-  yyparse(answer, &errors, locations, scanner);
-  jq_yy_delete_buffer(buf, scanner);
-  jq_yylex_destroy(scanner);
+  yyparse(answer, &errors, locations, &scanner);
+  jq_yy_delete_buffer(buf, scanner.lexer);
+  jq_yylex_destroy(scanner.lexer);
   if (errors > 0) {
     block_free(*answer);
     *answer = gen_noop();
index d29c12a032a21a180d7f1e51335041a3ef3cd267..0e5c8007a4657b650b9401c96dd5ac7158c123f2 100644 (file)
@@ -138,7 +138,7 @@ int yyparse ();
 #endif
 #else /* ! YYPARSE_PARAM */
 #if defined __STDC__ || defined __cplusplus
-int yyparse (block* answer, int* errors, struct locfile* locations, yyscan_t lexer);
+int yyparse (block* answer, int* errors, struct locfile* locations, struct lexer_param* lexer_param_ptr);
 #else
 int yyparse ();
 #endif