diff options
author | Stephen Dolan <mu@netsoc.tcd.ie> | 2012-10-25 00:13:39 +0100 |
---|---|---|
committer | Stephen Dolan <mu@netsoc.tcd.ie> | 2012-10-25 00:13:39 +0100 |
commit | 72691b490943bcaa921a53375585cac83327c432 (patch) | |
tree | b363f1df43949c7d42e943bba55b6a24884318e7 /parser.gen.c | |
parent | 033d9b2fd55b1fef0f17ce91d864c55e07f3ee5d (diff) |
Fix a bug in string parsing. Closes #35
Diffstat (limited to 'parser.gen.c')
-rw-r--r-- | parser.gen.c | 763 |
1 files changed, 428 insertions, 335 deletions
diff --git a/parser.gen.c b/parser.gen.c index 32a2a205..4abc81e7 100644 --- a/parser.gen.c +++ b/parser.gen.c @@ -1,8 +1,8 @@ -/* A Bison parser, made by GNU Bison 2.6.2. */ +/* A Bison parser, made by GNU Bison 2.5. */ /* Bison implementation for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc. + Copyright (C) 1984, 1989-1990, 2000-2011 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 @@ -44,7 +44,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "2.6.2" +#define YYBISON_VERSION "2.5" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -58,11 +58,14 @@ /* Pull parsers. */ #define YYPULL 1 +/* Using locations. */ +#define YYLSP_NEEDED 1 /* Copy the first part of user declarations. */ -/* Line 336 of yacc.c */ + +/* Line 268 of yacc.c */ #line 1 "parser.y" #include <stdio.h> @@ -72,16 +75,14 @@ struct lexer_param; -/* Line 336 of yacc.c */ -#line 77 "parser.gen.c" -# ifndef YY_NULL -# if defined __cplusplus && 201103L <= __cplusplus -# define YY_NULL nullptr -# else -# define YY_NULL 0 -# endif -# endif +/* Line 268 of yacc.c */ +#line 81 "parser.gen.c" + +/* Enabling traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif /* Enabling verbose error messages. */ #ifdef YYERROR_VERBOSE @@ -91,19 +92,14 @@ struct lexer_param; # define YYERROR_VERBOSE 1 #endif -/* In a future release of Bison, this section will be replaced - by #include "parser.gen.h". */ -#ifndef YY_PARSER_GEN_H -# define YY_PARSER_GEN_H -/* Enabling traces. */ -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif -#if YYDEBUG -extern int yydebug; +/* Enabling the token table. */ +#ifndef YYTOKEN_TABLE +# define YYTOKEN_TABLE 0 #endif + /* "%code requires" blocks. */ -/* Line 350 of yacc.c */ + +/* Line 288 of yacc.c */ #line 9 "parser.y" #include "locfile.h" @@ -120,8 +116,9 @@ extern int yydebug; } while (0) -/* Line 350 of yacc.c */ -#line 125 "parser.gen.c" + +/* Line 288 of yacc.c */ +#line 122 "parser.gen.c" /* Tokens. */ #ifndef YYTOKENTYPE @@ -161,17 +158,20 @@ extern int yydebug; #endif + #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE { -/* Line 350 of yacc.c */ + +/* Line 293 of yacc.c */ #line 27 "parser.y" jv literal; block blk; -/* Line 350 of yacc.c */ + +/* Line 293 of yacc.c */ #line 176 "parser.gen.c" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 @@ -193,24 +193,9 @@ typedef struct YYLTYPE #endif -#ifdef YYPARSE_PARAM -#if defined __STDC__ || defined __cplusplus -int yyparse (void *YYPARSE_PARAM); -#else -int yyparse (); -#endif -#else /* ! YYPARSE_PARAM */ -#if defined __STDC__ || defined __cplusplus -int yyparse (block* answer, int* errors, struct locfile* locations, struct lexer_param* lexer_param_ptr); -#else -int yyparse (); -#endif -#endif /* ! YYPARSE_PARAM */ - -#endif /* !YY_PARSER_GEN_H */ - /* Copy the second part of user declarations. */ -/* Line 353 of yacc.c */ + +/* Line 343 of yacc.c */ #line 89 "parser.y" #include "lexer.gen.h" @@ -303,8 +288,9 @@ static block gen_update(block a, block op, int optype) { } -/* Line 353 of yacc.c */ -#line 308 "parser.gen.c" + +/* Line 343 of yacc.c */ +#line 294 "parser.gen.c" #ifdef short # undef short @@ -410,7 +396,6 @@ YYID (yyi) # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ - /* Use EXIT_SUCCESS as a witness for stdlib.h. */ # ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 # endif @@ -504,20 +489,20 @@ union yyalloc #endif #if defined YYCOPY_NEEDED && YYCOPY_NEEDED -/* Copy COUNT objects from SRC to DST. The source and destination do +/* Copy COUNT objects from FROM to TO. The source and destination do not overlap. */ # ifndef YYCOPY # if defined __GNUC__ && 1 < __GNUC__ -# define YYCOPY(Dst, Src, Count) \ - __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) +# define YYCOPY(To, From, Count) \ + __builtin_memcpy (To, From, (Count) * sizeof (*(From))) # else -# define YYCOPY(Dst, Src, Count) \ - do \ - { \ - YYSIZE_T yyi; \ - for (yyi = 0; yyi < (Count); yyi++) \ - (Dst)[yyi] = (Src)[yyi]; \ - } \ +# define YYCOPY(To, From, Count) \ + do \ + { \ + YYSIZE_T yyi; \ + for (yyi = 0; yyi < (Count); yyi++) \ + (To)[yyi] = (From)[yyi]; \ + } \ while (YYID (0)) # endif # endif @@ -586,8 +571,8 @@ static const yytype_uint16 yyprhs[] = 0, 0, 3, 5, 7, 8, 11, 14, 21, 27, 31, 35, 39, 43, 47, 51, 55, 59, 63, 67, 71, 75, 79, 83, 87, 91, 95, 99, 103, 107, - 111, 115, 119, 121, 123, 127, 133, 142, 143, 146, - 151, 157, 161, 165, 167, 169, 173, 176, 181, 185, + 111, 115, 119, 121, 125, 131, 140, 141, 144, 149, + 155, 159, 163, 165, 167, 171, 174, 179, 183, 185, 187, 191, 195, 198, 202, 205, 207, 212, 216, 220, 225, 229, 230, 232, 236, 240, 244, 248, 250, 256 }; @@ -606,14 +591,14 @@ static const yytype_int8 yyrhs[] = 39, 53, -1, 53, 21, 53, -1, 53, 40, 53, -1, 53, 22, 53, -1, 53, 6, 53, -1, 53, 7, 53, -1, 53, 35, 53, -1, 53, 36, 53, - -1, 53, 24, 53, -1, 53, 25, 53, -1, 54, - -1, 59, -1, 26, 56, 30, -1, 10, 4, 42, - 53, 31, -1, 10, 4, 43, 4, 44, 42, 53, - 31, -1, -1, 56, 27, -1, 56, 28, 53, 29, - -1, 14, 53, 12, 53, 57, -1, 13, 53, 15, - -1, 58, 32, 58, -1, 59, -1, 45, -1, 59, - 45, 4, -1, 45, 4, -1, 59, 46, 53, 47, - -1, 59, 46, 47, -1, 5, -1, 43, 53, 44, + -1, 53, 24, 53, -1, 53, 25, 53, -1, 59, + -1, 26, 56, 30, -1, 10, 4, 42, 53, 31, + -1, 10, 4, 43, 4, 44, 42, 53, 31, -1, + -1, 56, 27, -1, 56, 28, 53, 29, -1, 14, + 53, 12, 53, 57, -1, 13, 53, 15, -1, 58, + 32, 58, -1, 59, -1, 45, -1, 59, 45, 4, + -1, 45, 4, -1, 59, 46, 53, 47, -1, 59, + 46, 47, -1, 5, -1, 54, -1, 43, 53, 44, -1, 46, 53, 47, -1, 46, 47, -1, 48, 60, 49, -1, 41, 4, -1, 4, -1, 4, 43, 53, 44, -1, 43, 1, 44, -1, 46, 1, 47, -1, @@ -630,14 +615,14 @@ static const yytype_uint16 yyrline[] = 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 + 303, 307, 311, 316, 321, 327, 335, 338, 341, 347, + 350, 355, 359, 365, 368, 371, 375, 378, 381, 384, + 387, 390, 393, 396, 401, 405, 409, 419, 420, 421, + 422, 425, 428, 429, 430, 433, 436, 439, 443, 446 }; #endif -#if YYDEBUG || YYERROR_VERBOSE || 1 +#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = @@ -651,7 +636,7 @@ static const char *const yytname[] = "'>'", "'+'", "'-'", "'*'", "'/'", "'$'", "':'", "'('", "')'", "'.'", "'['", "']'", "'{'", "'}'", "$accept", "TopLevel", "FuncDefs", "Exp", "String", "FuncDef", "QQString", "ElseBody", "ExpD", "Term", "MkDict", - "MkDictPair", YY_NULL + "MkDictPair", 0 }; #endif @@ -674,8 +659,8 @@ static const yytype_uint8 yyr1[] = 0, 50, 51, 51, 52, 52, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 53, 54, 55, 55, 56, 56, 56, - 57, 57, 58, 58, 59, 59, 59, 59, 59, 59, + 53, 53, 53, 54, 55, 55, 56, 56, 56, 57, + 57, 58, 58, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 60, 60, 60, 60, 61, 61, 61, 61, 61 }; @@ -686,8 +671,8 @@ static const yytype_uint8 yyr2[] = 0, 2, 1, 1, 0, 2, 2, 6, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 1, 1, 3, 5, 8, 0, 2, 4, - 5, 3, 3, 1, 1, 3, 2, 4, 3, 1, + 3, 3, 1, 3, 5, 8, 0, 2, 4, 5, + 3, 3, 1, 1, 3, 2, 4, 3, 1, 1, 3, 3, 2, 3, 2, 1, 4, 3, 3, 4, 3, 0, 1, 3, 3, 3, 3, 1, 5, 5 }; @@ -697,21 +682,21 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 4, 55, 49, 0, 0, 37, 0, 0, 44, 0, - 0, 0, 3, 2, 32, 4, 33, 0, 0, 0, - 0, 0, 54, 0, 0, 46, 0, 52, 0, 0, + 4, 55, 48, 0, 0, 36, 0, 0, 43, 0, + 0, 0, 3, 2, 49, 4, 32, 0, 0, 0, + 0, 0, 54, 0, 0, 45, 0, 52, 0, 0, 67, 0, 0, 0, 62, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 6, - 0, 0, 0, 0, 0, 0, 9, 0, 38, 0, - 34, 57, 50, 58, 51, 0, 60, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 9, 0, 37, 0, + 33, 57, 50, 58, 51, 0, 60, 0, 0, 0, 0, 53, 0, 26, 27, 13, 12, 11, 15, 19, 21, 23, 25, 14, 30, 31, 16, 17, 10, 28, - 29, 18, 20, 22, 24, 0, 45, 0, 48, 0, - 56, 0, 0, 0, 0, 0, 64, 65, 43, 0, - 0, 66, 63, 0, 59, 47, 35, 0, 0, 0, - 8, 39, 0, 0, 0, 0, 0, 0, 0, 42, - 69, 68, 7, 0, 41, 0, 36, 0, 40 + 29, 18, 20, 22, 24, 0, 44, 0, 47, 0, + 56, 0, 0, 0, 0, 0, 64, 65, 42, 0, + 0, 66, 63, 0, 59, 46, 34, 0, 0, 0, + 8, 38, 0, 0, 0, 0, 0, 0, 0, 41, + 69, 68, 7, 0, 40, 0, 35, 0, 39 }; /* YYDEFGOTO[NTERM-NUM]. */ @@ -733,13 +718,13 @@ static const yytype_int16 yypact[] = 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, -75, 645, 22, 71, 101, 365, 175, 72, -75, 175, -75, 175, - -75, -75, -75, -75, -75, 73, -75, 146, 34, 400, - 146, -75, 73, 785, 785, 715, 791, 765, 740, 740, + -75, -75, -75, -75, -75, 73, -75, 161, 34, 400, + 161, -75, 73, 785, 785, 715, 791, 765, 740, 740, 740, 740, 740, 740, 785, 785, 680, 715, 740, 785, 785, -15, -15, -75, -75, 76, -75, 37, -75, 253, -75, 470, 41, 435, 505, 48, -75, 54, -19, 45, 49, 54, -75, 60, -75, -75, -75, 51, 175, 175, - -75, -75, 146, 146, 146, 175, 175, 540, 575, -75, + -75, -75, 161, 161, 161, 175, 175, 540, 575, -75, 54, 54, 680, 610, -75, 175, -75, 435, -75 }; @@ -771,12 +756,12 @@ static const yytype_int16 yytable[] = 0, 7, -61, 8, 9, 27, 10, 5, 137, 138, 23, 0, 0, 1, 2, 142, 143, 0, 0, 3, 4, 0, 6, 0, 7, 147, 8, 9, 108, 10, - 1, 2, 0, 78, 0, 5, 1, 2, 0, 0, - 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 78, 0, 5, 1, 2, 0, 0, + 0, 0, 3, 4, 0, 1, 2, 0, 0, 0, 6, 0, 7, 0, 8, 9, 0, 10, 5, 1, - 2, 0, 0, 0, 0, 3, 4, 6, 0, 7, - 0, 8, 9, 6, 10, 7, 0, 8, 9, 0, - 10, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 0, 3, 4, 5, 0, 0, + 0, 0, 0, 6, 0, 7, 0, 8, 9, 0, + 10, 5, 6, 0, 7, 0, 8, 9, 0, 10, 0, 0, 0, 0, 0, 0, 6, 0, 7, 0, 8, 9, 0, 10, 36, 37, 38, 0, 0, 0, 0, 0, 0, 0, 39, 40, 41, 42, 43, 44, @@ -865,12 +850,12 @@ static const yytype_int16 yycheck[] = -1, 43, 49, 45, 46, 47, 48, 26, 128, 129, 1, -1, -1, 4, 5, 135, 136, -1, -1, 10, 11, -1, 41, -1, 43, 145, 45, 46, 47, 48, - 4, 5, -1, 1, -1, 26, 4, 5, -1, -1, - -1, -1, 10, 11, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1, -1, 26, 4, 5, -1, -1, + -1, -1, 10, 11, -1, 4, 5, -1, -1, -1, 41, -1, 43, -1, 45, 46, -1, 48, 26, 4, - 5, -1, -1, -1, -1, 10, 11, 41, -1, 43, - -1, 45, 46, 41, 48, 43, -1, 45, 46, -1, - 48, 26, -1, -1, -1, -1, -1, -1, -1, -1, + 5, -1, -1, -1, -1, 10, 11, 26, -1, -1, + -1, -1, -1, 41, -1, 43, -1, 45, 46, -1, + 48, 26, 41, -1, 43, -1, 45, 46, -1, 48, -1, -1, -1, -1, -1, -1, 41, -1, 43, -1, 45, 46, -1, 48, 6, 7, 8, -1, -1, -1, -1, -1, -1, -1, 16, 17, 18, 19, 20, 21, @@ -984,18 +969,17 @@ static const yytype_uint8 yystos[] = #define YYRECOVERING() (!!yyerrstatus) -#define YYBACKUP(Token, Value) \ -do \ - if (yychar == YYEMPTY) \ - { \ - yychar = (Token); \ - yylval = (Value); \ - YYPOPSTACK (yylen); \ - yystate = *yyssp; \ - goto yybackup; \ - } \ - else \ - { \ +#define YYBACKUP(Token, Value) \ +do \ + if (yychar == YYEMPTY && yylen == 1) \ + { \ + yychar = (Token); \ + yylval = (Value); \ + YYPOPSTACK (1); \ + goto yybackup; \ + } \ + else \ + { \ yyerror (&yylloc, answer, errors, locations, lexer_param_ptr, YY_("syntax error: cannot back up")); \ YYERROR; \ } \ @@ -1005,33 +989,32 @@ while (YYID (0)) #define YYTERROR 1 #define YYERRCODE 256 + /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. If N is 0, then set CURRENT to the empty location which ends the previous symbol: RHS[0] (always defined). */ +#define YYRHSLOC(Rhs, K) ((Rhs)[K]) #ifndef YYLLOC_DEFAULT -# define YYLLOC_DEFAULT(Current, Rhs, N) \ - do \ - if (YYID (N)) \ - { \ - (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ - (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ - (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ - (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ - } \ - else \ - { \ - (Current).first_line = (Current).last_line = \ - YYRHSLOC (Rhs, 0).last_line; \ - (Current).first_column = (Current).last_column = \ - YYRHSLOC (Rhs, 0).last_column; \ - } \ +# define YYLLOC_DEFAULT(Current, Rhs, N) \ + do \ + if (YYID (N)) \ + { \ + (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ + (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ + (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ + (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ + } \ + else \ + { \ + (Current).first_line = (Current).last_line = \ + YYRHSLOC (Rhs, 0).last_line; \ + (Current).first_column = (Current).last_column = \ + YYRHSLOC (Rhs, 0).last_column; \ + } \ while (YYID (0)) #endif -#define YYRHSLOC(Rhs, K) ((Rhs)[K]) - - /* YY_LOCATION_PRINT -- Print the location on the stream. This macro was not mandated originally: define only if we know @@ -1105,8 +1088,6 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, answer, errors, struct lexer_param* lexer_param_ptr; #endif { - FILE *yyo = yyoutput; - YYUSE (yyo); if (!yyvaluep) return; YYUSE (yylocationp); @@ -1375,12 +1356,12 @@ static int yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, yytype_int16 *yyssp, int yytoken) { - YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]); + YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]); YYSIZE_T yysize = yysize0; YYSIZE_T yysize1; enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; /* Internationalized format string. */ - const char *yyformat = YY_NULL; + const char *yyformat = 0; /* Arguments of yyformat. */ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; /* Number of reported tokens (one for the "unexpected", one per @@ -1440,7 +1421,7 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, break; } yyarg[yycount++] = yytname[yyx]; - yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]); + yysize1 = yysize + yytnamerr (0, yytname[yyx]); if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) return 2; @@ -1535,96 +1516,122 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, answer, errors, locations, lex switch (yytype) { - case 4: /* IDENT */ -/* Line 1381 of yacc.c */ + case 4: /* "IDENT" */ + +/* Line 1391 of yacc.c */ #line 32 "parser.y" - { jv_free(((*yyvaluep).literal)); }; -/* Line 1381 of yacc.c */ -#line 1544 "parser.gen.c" + { jv_free((yyvaluep->literal)); }; + +/* Line 1391 of yacc.c */ +#line 1527 "parser.gen.c" break; - case 5: /* LITERAL */ -/* Line 1381 of yacc.c */ + case 5: /* "LITERAL" */ + +/* Line 1391 of yacc.c */ #line 32 "parser.y" - { jv_free(((*yyvaluep).literal)); }; -/* Line 1381 of yacc.c */ -#line 1551 "parser.gen.c" + { jv_free((yyvaluep->literal)); }; + +/* Line 1391 of yacc.c */ +#line 1536 "parser.gen.c" break; - case 27: /* QQSTRING_TEXT */ -/* Line 1381 of yacc.c */ + case 27: /* "QQSTRING_TEXT" */ + +/* Line 1391 of yacc.c */ #line 32 "parser.y" - { jv_free(((*yyvaluep).literal)); }; -/* Line 1381 of yacc.c */ -#line 1558 "parser.gen.c" + { jv_free((yyvaluep->literal)); }; + +/* Line 1391 of yacc.c */ +#line 1545 "parser.gen.c" break; - case 52: /* FuncDefs */ -/* Line 1381 of yacc.c */ + case 52: /* "FuncDefs" */ + +/* Line 1391 of yacc.c */ #line 33 "parser.y" - { block_free(((*yyvaluep).blk)); }; -/* Line 1381 of yacc.c */ -#line 1565 "parser.gen.c" + { block_free((yyvaluep->blk)); }; + +/* Line 1391 of yacc.c */ +#line 1554 "parser.gen.c" break; - case 53: /* Exp */ -/* Line 1381 of yacc.c */ + case 53: /* "Exp" */ + +/* Line 1391 of yacc.c */ #line 33 "parser.y" - { block_free(((*yyvaluep).blk)); }; -/* Line 1381 of yacc.c */ -#line 1572 "parser.gen.c" + { block_free((yyvaluep->blk)); }; + +/* Line 1391 of yacc.c */ +#line 1563 "parser.gen.c" break; - case 54: /* String */ -/* Line 1381 of yacc.c */ + case 54: /* "String" */ + +/* Line 1391 of yacc.c */ #line 33 "parser.y" - { block_free(((*yyvaluep).blk)); }; -/* Line 1381 of yacc.c */ -#line 1579 "parser.gen.c" + { block_free((yyvaluep->blk)); }; + +/* Line 1391 of yacc.c */ +#line 1572 "parser.gen.c" break; - case 55: /* FuncDef */ -/* Line 1381 of yacc.c */ + case 55: /* "FuncDef" */ + +/* Line 1391 of yacc.c */ #line 33 "parser.y" - { block_free(((*yyvaluep).blk)); }; -/* Line 1381 of yacc.c */ -#line 1586 "parser.gen.c" + { block_free((yyvaluep->blk)); }; + +/* Line 1391 of yacc.c */ +#line 1581 "parser.gen.c" break; - case 56: /* QQString */ -/* Line 1381 of yacc.c */ + case 56: /* "QQString" */ + +/* Line 1391 of yacc.c */ #line 33 "parser.y" - { block_free(((*yyvaluep).blk)); }; -/* Line 1381 of yacc.c */ -#line 1593 "parser.gen.c" + { block_free((yyvaluep->blk)); }; + +/* Line 1391 of yacc.c */ +#line 1590 "parser.gen.c" break; - case 57: /* ElseBody */ -/* Line 1381 of yacc.c */ + case 57: /* "ElseBody" */ + +/* Line 1391 of yacc.c */ #line 33 "parser.y" - { block_free(((*yyvaluep).blk)); }; -/* Line 1381 of yacc.c */ -#line 1600 "parser.gen.c" + { block_free((yyvaluep->blk)); }; + +/* Line 1391 of yacc.c */ +#line 1599 "parser.gen.c" break; - case 58: /* ExpD */ -/* Line 1381 of yacc.c */ + case 58: /* "ExpD" */ + +/* Line 1391 of yacc.c */ #line 33 "parser.y" - { block_free(((*yyvaluep).blk)); }; -/* Line 1381 of yacc.c */ -#line 1607 "parser.gen.c" + { block_free((yyvaluep->blk)); }; + +/* Line 1391 of yacc.c */ +#line 1608 "parser.gen.c" break; - case 59: /* Term */ -/* Line 1381 of yacc.c */ + case 59: /* "Term" */ + +/* Line 1391 of yacc.c */ #line 33 "parser.y" - { block_free(((*yyvaluep).blk)); }; -/* Line 1381 of yacc.c */ -#line 1614 "parser.gen.c" + { block_free((yyvaluep->blk)); }; + +/* Line 1391 of yacc.c */ +#line 1617 "parser.gen.c" break; - case 60: /* MkDict */ -/* Line 1381 of yacc.c */ + case 60: /* "MkDict" */ + +/* Line 1391 of yacc.c */ #line 33 "parser.y" - { block_free(((*yyvaluep).blk)); }; -/* Line 1381 of yacc.c */ -#line 1621 "parser.gen.c" + { block_free((yyvaluep->blk)); }; + +/* Line 1391 of yacc.c */ +#line 1626 "parser.gen.c" break; - case 61: /* MkDictPair */ -/* Line 1381 of yacc.c */ + case 61: /* "MkDictPair" */ + +/* Line 1391 of yacc.c */ #line 33 "parser.y" - { block_free(((*yyvaluep).blk)); }; -/* Line 1381 of yacc.c */ -#line 1628 "parser.gen.c" + { block_free((yyvaluep->blk)); }; + +/* Line 1391 of yacc.c */ +#line 1635 "parser.gen.c" break; default: @@ -1633,6 +1640,20 @@ yydestruct (yymsg, yytype, yyvaluep, yylocationp, answer, errors, locations, lex } +/* Prevent warnings from -Wmissing-prototypes. */ +#ifdef YYPARSE_PARAM +#if defined __STDC__ || defined __cplusplus +int yyparse (void *YYPARSE_PARAM); +#else +int yyparse (); +#endif +#else /* ! YYPARSE_PARAM */ +#if defined __STDC__ || defined __cplusplus +int yyparse (block* answer, int* errors, struct locfile* locations, struct lexer_param* lexer_param_ptr); +#else +int yyparse (); +#endif +#endif /* ! YYPARSE_PARAM */ /*----------. @@ -1685,7 +1706,7 @@ YYLTYPE yylloc; `yyvs': related to semantic values. `yyls': related to locations. - Refer to the stacks through separate pointers, to allow yyoverflow + Refer to the stacks thru separate pointers, to allow yyoverflow to reallocate them elsewhere. */ /* The state stack. */ @@ -1756,6 +1777,7 @@ YYLTYPE yylloc; yylloc.first_line = yylloc.last_line = 1; yylloc.first_column = yylloc.last_column = 1; #endif + goto yysetstate; /*------------------------------------------------------------. @@ -1939,7 +1961,8 @@ yyreduce: switch (yyn) { case 2: -/* Line 1787 of yacc.c */ + +/* Line 1806 of yacc.c */ #line 183 "parser.y" { *answer = (yyvsp[(1) - (1)].blk); @@ -1947,7 +1970,8 @@ yyreduce: break; case 3: -/* Line 1787 of yacc.c */ + +/* Line 1806 of yacc.c */ #line 186 "parser.y" { *answer = (yyvsp[(1) - (1)].blk); @@ -1955,7 +1979,8 @@ yyreduce: break; case 4: -/* Line 1787 of yacc.c */ + +/* Line 1806 of yacc.c */ #line 191 "parser.y" { (yyval.blk) = gen_noop(); @@ -1963,7 +1988,8 @@ yyreduce: break; case 5: -/* Line 1787 of yacc.c */ + +/* Line 1806 of yacc.c */ #line 194 "parser.y" { (yyval.blk) = block_join((yyvsp[(1) - (2)].blk), (yyvsp[(2) - (2)].blk)); @@ -1971,7 +1997,8 @@ yyreduce: break; case 6: -/* Line 1787 of yacc.c */ + +/* Line 1806 of yacc.c */ #line 199 "parser.y" { (yyval.blk) = block_bind((yyvsp[(1) - (2)].blk), (yyvsp[(2) - (2)].blk), OP_IS_CALL_PSEUDO); @@ -1979,7 +2006,8 @@ yyreduce: break; case 7: -/* Line 1787 of yacc.c */ + +/* Line 1806 of yacc.c */ #line 203 "parser.y" { (yyval.blk) = gen_op_simple(DUP); @@ -1990,7 +2018,8 @@ yyreduce: break; case 8: -/* Line 1787 of yacc.c */ + +/* Line 1806 of yacc.c */ #line 210 "parser.y" { (yyval.blk) = gen_cond((yyvsp[(2) - (5)].blk), (yyvsp[(4) - (5)].blk), (yyvsp[(5) - (5)].blk)); @@ -1998,7 +2027,8 @@ yyreduce: break; case 9: -/* Line 1787 of yacc.c */ + +/* Line 1806 of yacc.c */ #line 213 "parser.y" { FAIL((yyloc), "Possibly unterminated 'if' statment"); @@ -2007,7 +2037,8 @@ yyreduce: break; case 10: -/* Line 1787 of yacc.c */ + +/* Line 1806 of yacc.c */ #line 218 "parser.y" { block assign = gen_op_simple(DUP); @@ -2020,7 +2051,8 @@ yyreduce: break; case 11: -/* Line 1787 of yacc.c */ + +/* Line 1806 of yacc.c */ #line 227 "parser.y" { (yyval.blk) = gen_or((yyvsp[(1) - (3)].blk), (yyvsp[(3) - (3)].blk)); @@ -2028,7 +2060,8 @@ yyreduce: break; case 12: -/* Line 1787 of yacc.c */ + +/* Line 1806 of yacc.c */ #line 231 "parser.y" { (yyval.blk) = gen_and((yyvsp[(1) - (3)].blk), (yyvsp[(3) - (3)].blk)); @@ -2036,7 +2069,8 @@ yyreduce: break; case 13: -/* Line 1787 of yacc.c */ + +/* Line 1806 of yacc.c */ #line 235 "parser.y" { (yyval.blk) = gen_definedor((yyvsp[(1) - (3)].blk), (yyvsp[(3) - (3)].blk)); @@ -2044,7 +2078,8 @@ yyreduce: break; case 14: -/* Line 1787 of yacc.c */ + +/* Line 1806 of yacc.c */ #line 239 "parser.y" { (yyval.blk) = gen_update((yyvsp[(1) - (3)].blk), gen_definedor(gen_noop(), (yyvsp[(3) - (3)].blk)), 0); @@ -2052,7 +2087,8 @@ yyreduce: break; case 15: -/* Line 1787 of yacc.c */ + +/* Line 1806 of yacc.c */ #line 243 "parser.y" { (yyval.blk) = gen_update((yyvsp[(1) - (3)].blk), (yyvsp[(3) - (3)].blk), 0); @@ -2060,7 +2096,8 @@ yyreduce: break; case 16: -/* Line 1787 of yacc.c */ + +/* Line 1806 of yacc.c */ #line 247 "parser.y" { (yyval.blk) = block_join((yyvsp[(1) - (3)].blk), (yyvsp[(3) - (3)].blk)); @@ -2068,7 +2105,8 @@ yyreduce: break; case 17: -/* Line 1787 of yacc.c */ + +/* Line 1806 of yacc.c */ #line 251 "parser.y" { (yyval.blk) = gen_both((yyvsp[(1) - (3)].blk), (yyvsp[(3) - (3)].blk)); @@ -2076,7 +2114,8 @@ yyreduce: break; case 18: -/* Line 1787 of yacc.c */ + +/* Line 1806 of yacc.c */ #line 255 "parser.y" { (yyval.blk) = gen_binop((yyvsp[(1) - (3)].blk), (yyvsp[(3) - (3)].blk), '+'); @@ -2084,7 +2123,8 @@ yyreduce: break; case 19: -/* Line 1787 of yacc.c */ + +/* Line 1806 of yacc.c */ #line 259 "parser.y" { (yyval.blk) = gen_update((yyvsp[(1) - (3)].blk), (yyvsp[(3) - (3)].blk), '+'); @@ -2092,7 +2132,8 @@ yyreduce: break; case 20: -/* Line 1787 of yacc.c */ + +/* Line 1806 of yacc.c */ #line 263 "parser.y" { (yyval.blk) = gen_binop((yyvsp[(1) - (3)].blk), (yyvsp[(3) - (3)].blk), '-'); @@ -2100,7 +2141,8 @@ yyreduce: break; case 21: -/* Line 1787 of yacc.c */ + +/* Line 1806 of yacc.c */ #line 267 "parser.y" { (yyval.blk) = gen_update((yyvsp[(1) - (3)].blk), (yyvsp[(3) - (3)].blk), '-'); @@ -2108,7 +2150,8 @@ yyreduce: break; case 22: -/* Line 1787 of yacc.c */ + +/* Line 1806 of yacc.c */ #line 271 "parser.y" { (yyval.blk) = gen_binop((yyvsp[(1) - (3)].blk), (yyvsp[(3) - (3)].blk), '*'); @@ -2116,7 +2159,8 @@ yyreduce: break; case 23: -/* Line 1787 of yacc.c */ + +/* Line 1806 of yacc.c */ #line 275 "parser.y" { (yyval.blk) = gen_update((yyvsp[(1) - (3)].blk), (yyvsp[(3) - (3)].blk), '*'); @@ -2124,7 +2168,8 @@ yyreduce: break; case 24: -/* Line 1787 of yacc.c */ + +/* Line 1806 of yacc.c */ #line 279 "parser.y" { (yyval.blk) = gen_binop((yyvsp[(1) - (3)].blk), (yyvsp[(3) - (3)].blk), '/'); @@ -2132,7 +2177,8 @@ yyreduce: break; case 25: -/* Line 1787 of yacc.c */ + +/* Line 1806 of yacc.c */ #line 283 "parser.y" { (yyval.blk) = gen_update((yyvsp[(1) - (3)].blk), (yyvsp[(3) - (3)].blk), '/'); @@ -2140,7 +2186,8 @@ yyreduce: break; case 26: -/* Line 1787 of yacc.c */ + +/* Line 1806 of yacc.c */ #line 287 "parser.y" { (yyval.blk) = gen_binop((yyvsp[(1) - (3)].blk), (yyvsp[(3) - (3)].blk), EQ); @@ -2148,7 +2195,8 @@ yyreduce: break; case 27: -/* Line 1787 of yacc.c */ + +/* Line 1806 of yacc.c */ #line 291 "parser.y" { (yyval.blk) = gen_binop((yyvsp[(1) - (3)].blk), (yyvsp[(3) - (3)].blk), NEQ); @@ -2156,7 +2204,8 @@ yyreduce: break; case 28: -/* Line 1787 of yacc.c */ + +/* Line 1806 of yacc.c */ #line 295 "parser.y" { (yyval.blk) = gen_binop((yyvsp[(1) - (3)].blk), (yyvsp[(3) - (3)].blk), '<'); @@ -2164,7 +2213,8 @@ yyreduce: break; case 29: -/* Line 1787 of yacc.c */ + +/* Line 1806 of yacc.c */ #line 299 "parser.y" { (yyval.blk) = gen_binop((yyvsp[(1) - (3)].blk), (yyvsp[(3) - (3)].blk), '>'); @@ -2172,7 +2222,8 @@ yyreduce: break; case 30: -/* Line 1787 of yacc.c */ + +/* Line 1806 of yacc.c */ #line 303 "parser.y" { (yyval.blk) = gen_binop((yyvsp[(1) - (3)].blk), (yyvsp[(3) - (3)].blk), LESSEQ); @@ -2180,7 +2231,8 @@ yyreduce: break; case 31: -/* Line 1787 of yacc.c */ + +/* Line 1806 of yacc.c */ #line 307 "parser.y" { (yyval.blk) = gen_binop((yyvsp[(1) - (3)].blk), (yyvsp[(3) - (3)].blk), GREATEREQ); @@ -2188,32 +2240,27 @@ yyreduce: break; case 32: -/* Line 1787 of yacc.c */ -#line 311 "parser.y" - { - (yyval.blk) = (yyvsp[(1) - (1)].blk); -} - break; - case 33: -/* Line 1787 of yacc.c */ -#line 315 "parser.y" +/* Line 1806 of yacc.c */ +#line 311 "parser.y" { (yyval.blk) = (yyvsp[(1) - (1)].blk); } break; - case 34: -/* Line 1787 of yacc.c */ -#line 320 "parser.y" + case 33: + +/* Line 1806 of yacc.c */ +#line 316 "parser.y" { (yyval.blk) = (yyvsp[(2) - (3)].blk); } break; - case 35: -/* Line 1787 of yacc.c */ -#line 325 "parser.y" + case 34: + +/* Line 1806 of yacc.c */ +#line 321 "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); @@ -2221,9 +2268,10 @@ yyreduce: } break; - case 36: -/* Line 1787 of yacc.c */ -#line 331 "parser.y" + case 35: + +/* Line 1806 of yacc.c */ +#line 327 "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 |