diff --git a/ast_expr2.c b/ast_expr2.c index 39928d5f7b..adc58e74d2 100644 --- a/ast_expr2.c +++ b/ast_expr2.c @@ -1,4 +1,4 @@ -/* A Bison parser, made by GNU Bison 1.875d. */ +/* A Bison parser, made by GNU Bison 2.0. */ /* Skeleton parser for Yacc-like parsing with Bison, Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. @@ -45,8 +45,7 @@ /* Using locations. */ #define YYLSP_NEEDED 1 -/* If NAME_PREFIX is specified substitute the variables and functions - names. */ +/* Substitute the variable and function names. */ #define yyparse ast_yyparse #define yylex ast_yylex #define yyerror ast_yyerror @@ -238,7 +237,12 @@ int ast_yyerror(const char *,YYLTYPE *, struct parse_io *); some useful info about the error. Not as easy as it looks, but it is possible. */ #define ast_yyerror(x) ast_yyerror(x,&yyloc,parseio) - +#define DESTROY(x) { \ +if ((x)->type == AST_EXPR_numeric_string || (x)->type == AST_EXPR_string) \ + free((x)->u.s); \ + (x)->u.s = 0; \ + free(x); \ +} /* Enabling traces. */ @@ -255,12 +259,12 @@ int ast_yyerror(const char *,YYLTYPE *, struct parse_io *); #endif #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) -#line 137 "ast_expr2.y" +#line 142 "ast_expr2.y" typedef union YYSTYPE { struct val *val; } YYSTYPE; -/* Line 191 of yacc.c. */ -#line 264 "ast_expr2.c" +/* Line 190 of yacc.c. */ +#line 268 "ast_expr2.c" # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 # define YYSTYPE_IS_TRIVIAL 1 @@ -281,13 +285,13 @@ typedef struct YYLTYPE /* Copy the second part of user declarations. */ -#line 141 "ast_expr2.y" +#line 146 "ast_expr2.y" extern int ast_yylex __P((YYSTYPE *, YYLTYPE *, yyscan_t)); -/* Line 214 of yacc.c. */ -#line 291 "ast_expr2.c" +/* Line 213 of yacc.c. */ +#line 295 "ast_expr2.c" #if ! defined (yyoverflow) || YYERROR_VERBOSE @@ -302,14 +306,10 @@ extern int ast_yylex __P((YYSTYPE *, YYLTYPE *, yyscan_t)); # ifdef YYSTACK_USE_ALLOCA # if YYSTACK_USE_ALLOCA -# define YYSTACK_ALLOC alloca -# endif -# else -# if defined (alloca) || defined (_ALLOCA_H) -# define YYSTACK_ALLOC alloca -# else # ifdef __GNUC__ # define YYSTACK_ALLOC __builtin_alloca +# else +# define YYSTACK_ALLOC alloca # endif # endif # endif @@ -473,9 +473,9 @@ static const yysigned_char yyrhs[] = /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const unsigned char yyrline[] = { - 0, 160, 160, 168, 169, 172, 175, 178, 181, 184, - 187, 190, 193, 196, 199, 202, 205, 208, 211, 214, - 217, 220, 223 + 0, 165, 165, 175, 176, 180, 184, 188, 192, 196, + 200, 204, 208, 212, 216, 220, 224, 228, 232, 236, + 240, 244, 248 }; #endif @@ -660,20 +660,53 @@ do \ } \ while (0) + #define YYTERROR 1 #define YYERRCODE 256 -/* YYLLOC_DEFAULT -- Compute the default location (before the actions - are run). */ +/* 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) \ - ((Current).first_line = (Rhs)[1].first_line, \ - (Current).first_column = (Rhs)[1].first_column, \ - (Current).last_line = (Rhs)[N].last_line, \ - (Current).last_column = (Rhs)[N].last_column) +# define YYLLOC_DEFAULT(Current, Rhs, N) \ + do \ + if (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 (0) +#endif + + +/* YY_LOCATION_PRINT -- Print the location on the stream. + This macro was not mandated originally: define only if we know + we won't break user code: when these are the locations we know. */ + +#ifndef YY_LOCATION_PRINT +# if YYLTYPE_IS_TRIVIAL +# define YY_LOCATION_PRINT(File, Loc) \ + fprintf (File, "%d.%d-%d.%d", \ + (Loc).first_line, (Loc).first_column, \ + (Loc).last_line, (Loc).last_column) +# else +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +# endif #endif + /* YYLEX -- calling `yylex' with the right arguments. */ #ifdef YYLEX_PARAM @@ -696,19 +729,13 @@ do { \ YYFPRINTF Args; \ } while (0) -# define YYDSYMPRINT(Args) \ -do { \ - if (yydebug) \ - yysymprint Args; \ -} while (0) - -# define YYDSYMPRINTF(Title, Token, Value, Location) \ +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ do { \ if (yydebug) \ { \ YYFPRINTF (stderr, "%s ", Title); \ yysymprint (stderr, \ - Token, Value, Location); \ + Type, Value, Location); \ YYFPRINTF (stderr, "\n"); \ } \ } while (0) @@ -775,8 +802,7 @@ do { \ int yydebug; #else /* !YYDEBUG */ # define YYDPRINTF(Args) -# define YYDSYMPRINT(Args) -# define YYDSYMPRINTF(Title, Token, Value, Location) +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) # define YY_STACK_PRINT(Bottom, Top) # define YY_REDUCE_PRINT(Rule) #endif /* !YYDEBUG */ @@ -794,10 +820,6 @@ int yydebug; SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH) evaluated with infinite-precision integer arithmetic. */ -#if defined (YYMAXDEPTH) && YYMAXDEPTH == 0 -# undef YYMAXDEPTH -#endif - #ifndef YYMAXDEPTH # define YYMAXDEPTH 10000 #endif @@ -881,15 +903,17 @@ yysymprint (yyoutput, yytype, yyvaluep, yylocationp) (void) yylocationp; if (yytype < YYNTOKENS) - { - YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); -# ifdef YYPRINT - YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); -# endif - } + YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); else YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); + YY_LOCATION_PRINT (yyoutput, *yylocationp); + fprintf (yyoutput, ": "); + +# ifdef YYPRINT + if (yytype < YYNTOKENS) + YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); +# endif switch (yytype) { default: @@ -905,10 +929,11 @@ yysymprint (yyoutput, yytype, yyvaluep, yylocationp) #if defined (__STDC__) || defined (__cplusplus) static void -yydestruct (int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp) +yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp) #else static void -yydestruct (yytype, yyvaluep, yylocationp) +yydestruct (yymsg, yytype, yyvaluep, yylocationp) + const char *yymsg; int yytype; YYSTYPE *yyvaluep; YYLTYPE *yylocationp; @@ -918,6 +943,10 @@ yydestruct (yytype, yyvaluep, yylocationp) (void) yyvaluep; (void) yylocationp; + if (!yymsg) + yymsg = "Deleting"; + YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); + switch (yytype) { @@ -970,15 +999,15 @@ yyparse () #endif #endif { - /* The lookahead symbol. */ + /* The look-ahead symbol. */ int yychar; -/* The semantic value of the lookahead symbol. */ +/* The semantic value of the look-ahead symbol. */ YYSTYPE yylval; /* Number of syntax errors so far. */ int yynerrs; -/* Location data for the lookahead symbol. */ +/* Location data for the look-ahead symbol. */ YYLTYPE yylloc; register int yystate; @@ -986,7 +1015,7 @@ YYLTYPE yylloc; int yyresult; /* Number of tokens to shift before error messages enabled. */ int yyerrstatus; - /* Lookahead token as an internal (translated) token number. */ + /* Look-ahead token as an internal (translated) token number. */ int yytoken = 0; /* Three stacks and their tools: @@ -1011,7 +1040,8 @@ YYLTYPE yylloc; YYLTYPE yylsa[YYINITDEPTH]; YYLTYPE *yyls = yylsa; YYLTYPE *yylsp; - YYLTYPE *yylerrsp; + /* The locations where the error started and ended. */ + YYLTYPE yyerror_range[2]; #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) @@ -1041,6 +1071,15 @@ YYLTYPE yylloc; yyssp = yyss; yyvsp = yyvs; yylsp = yyls; +#if YYLTYPE_IS_TRIVIAL + /* Initialize the default location before parsing starts. */ + yylloc.first_line = yylloc.last_line = 1; + yylloc.first_column = yylloc.last_column = 0; +#endif + + + yyvsp[0] = yylval; + yylsp[0] = yylloc; goto yysetstate; @@ -1131,18 +1170,18 @@ YYLTYPE yylloc; yybackup: /* Do appropriate processing given the current state. */ -/* Read a lookahead token if we need one and don't already have one. */ +/* Read a look-ahead token if we need one and don't already have one. */ /* yyresume: */ - /* First try to decide what to do without reference to lookahead token. */ + /* First try to decide what to do without reference to look-ahead token. */ yyn = yypact[yystate]; if (yyn == YYPACT_NINF) goto yydefault; - /* Not known => get a lookahead token if don't already have one. */ + /* Not known => get a look-ahead token if don't already have one. */ - /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ + /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); @@ -1157,7 +1196,7 @@ yybackup: else { yytoken = YYTRANSLATE (yychar); - YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc); + YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); } /* If the proper action on seeing token YYTOKEN is to reduce or to @@ -1177,8 +1216,8 @@ yybackup: if (yyn == YYFINAL) YYACCEPT; - /* Shift the lookahead token. */ - YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken])); + /* Shift the look-ahead token. */ + YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); /* Discard the token being shifted unless it is eof. */ if (yychar != YYEOF) @@ -1229,158 +1268,180 @@ yyreduce: switch (yyn) { case 2: -#line 160 "ast_expr2.y" +#line 165 "ast_expr2.y" { ((struct parse_io *)parseio)->val = (struct val *)calloc(sizeof(struct val),1); - ((struct parse_io *)parseio)->val->type = yyval.val->type; - if( yyval.val->type == AST_EXPR_integer ) - ((struct parse_io *)parseio)->val->u.i = yyval.val->u.i; + ((struct parse_io *)parseio)->val->type = (yyvsp[0].val)->type; + if( (yyvsp[0].val)->type == AST_EXPR_integer ) + ((struct parse_io *)parseio)->val->u.i = (yyvsp[0].val)->u.i; else - ((struct parse_io *)parseio)->val->u.s = yyval.val->u.s; ;} + ((struct parse_io *)parseio)->val->u.s = (yyvsp[0].val)->u.s; + free((yyvsp[0].val)); + ;} break; case 3: -#line 168 "ast_expr2.y" - { yyval.val= yyvsp[0].val;;} +#line 175 "ast_expr2.y" + { (yyval.val)= (yyvsp[0].val);;} break; case 4: -#line 169 "ast_expr2.y" - { yyval.val = yyvsp[-1].val; - yyloc.first_column = yylsp[-2].first_column; yyloc.last_column = yylsp[0].last_column; - yyloc.first_line=0; yyloc.last_line=0;;} +#line 176 "ast_expr2.y" + { (yyval.val) = (yyvsp[-1].val); + (yyloc).first_column = (yylsp[-2]).first_column; (yyloc).last_column = (yylsp[0]).last_column; + (yyloc).first_line=0; (yyloc).last_line=0; + DESTROY((yyvsp[-2].val)); DESTROY((yyvsp[0].val)); ;} break; case 5: -#line 172 "ast_expr2.y" - { yyval.val = op_or (yyvsp[-2].val, yyvsp[0].val); - yyloc.first_column = yylsp[-2].first_column; yyloc.last_column = yylsp[0].last_column; - yyloc.first_line=0; yyloc.last_line=0;;} +#line 180 "ast_expr2.y" + { (yyval.val) = op_or ((yyvsp[-2].val), (yyvsp[0].val)); + DESTROY((yyvsp[-1].val)); + (yyloc).first_column = (yylsp[-2]).first_column; (yyloc).last_column = (yylsp[0]).last_column; + (yyloc).first_line=0; (yyloc).last_line=0;;} break; case 6: -#line 175 "ast_expr2.y" - { yyval.val = op_and (yyvsp[-2].val, yyvsp[0].val); - yyloc.first_column = yylsp[-2].first_column; yyloc.last_column = yylsp[0].last_column; - yyloc.first_line=0; yyloc.last_line=0;;} +#line 184 "ast_expr2.y" + { (yyval.val) = op_and ((yyvsp[-2].val), (yyvsp[0].val)); + DESTROY((yyvsp[-1].val)); + (yyloc).first_column = (yylsp[-2]).first_column; (yyloc).last_column = (yylsp[0]).last_column; + (yyloc).first_line=0; (yyloc).last_line=0;;} break; case 7: -#line 178 "ast_expr2.y" - { yyval.val = op_eq (yyvsp[-2].val, yyvsp[0].val); - yyloc.first_column = yylsp[-2].first_column; yyloc.last_column = yylsp[0].last_column; - yyloc.first_line=0; yyloc.last_line=0;;} +#line 188 "ast_expr2.y" + { (yyval.val) = op_eq ((yyvsp[-2].val), (yyvsp[0].val)); + DESTROY((yyvsp[-1].val)); + (yyloc).first_column = (yylsp[-2]).first_column; (yyloc).last_column = (yylsp[0]).last_column; + (yyloc).first_line=0; (yyloc).last_line=0;;} break; case 8: -#line 181 "ast_expr2.y" - { yyval.val = op_gt (yyvsp[-2].val, yyvsp[0].val); - yyloc.first_column = yylsp[-2].first_column; yyloc.last_column = yylsp[0].last_column; - yyloc.first_line=0; yyloc.last_line=0;;} +#line 192 "ast_expr2.y" + { (yyval.val) = op_gt ((yyvsp[-2].val), (yyvsp[0].val)); + DESTROY((yyvsp[-1].val)); + (yyloc).first_column = (yylsp[-2]).first_column; (yyloc).last_column = (yylsp[0]).last_column; + (yyloc).first_line=0; (yyloc).last_line=0;;} break; case 9: -#line 184 "ast_expr2.y" - { yyval.val = op_lt (yyvsp[-2].val, yyvsp[0].val); - yyloc.first_column = yylsp[-2].first_column; yyloc.last_column = yylsp[0].last_column; - yyloc.first_line=0; yyloc.last_line=0;;} +#line 196 "ast_expr2.y" + { (yyval.val) = op_lt ((yyvsp[-2].val), (yyvsp[0].val)); + DESTROY((yyvsp[-1].val)); + (yyloc).first_column = (yylsp[-2]).first_column; (yyloc).last_column = (yylsp[0]).last_column; + (yyloc).first_line=0; (yyloc).last_line=0;;} break; case 10: -#line 187 "ast_expr2.y" - { yyval.val = op_ge (yyvsp[-2].val, yyvsp[0].val); - yyloc.first_column = yylsp[-2].first_column; yyloc.last_column = yylsp[0].last_column; - yyloc.first_line=0; yyloc.last_line=0;;} +#line 200 "ast_expr2.y" + { (yyval.val) = op_ge ((yyvsp[-2].val), (yyvsp[0].val)); + DESTROY((yyvsp[-1].val)); + (yyloc).first_column = (yylsp[-2]).first_column; (yyloc).last_column = (yylsp[0]).last_column; + (yyloc).first_line=0; (yyloc).last_line=0;;} break; case 11: -#line 190 "ast_expr2.y" - { yyval.val = op_le (yyvsp[-2].val, yyvsp[0].val); - yyloc.first_column = yylsp[-2].first_column; yyloc.last_column = yylsp[0].last_column; - yyloc.first_line=0; yyloc.last_line=0;;} +#line 204 "ast_expr2.y" + { (yyval.val) = op_le ((yyvsp[-2].val), (yyvsp[0].val)); + DESTROY((yyvsp[-1].val)); + (yyloc).first_column = (yylsp[-2]).first_column; (yyloc).last_column = (yylsp[0]).last_column; + (yyloc).first_line=0; (yyloc).last_line=0;;} break; case 12: -#line 193 "ast_expr2.y" - { yyval.val = op_ne (yyvsp[-2].val, yyvsp[0].val); - yyloc.first_column = yylsp[-2].first_column; yyloc.last_column = yylsp[0].last_column; - yyloc.first_line=0; yyloc.last_line=0;;} +#line 208 "ast_expr2.y" + { (yyval.val) = op_ne ((yyvsp[-2].val), (yyvsp[0].val)); + DESTROY((yyvsp[-1].val)); + (yyloc).first_column = (yylsp[-2]).first_column; (yyloc).last_column = (yylsp[0]).last_column; + (yyloc).first_line=0; (yyloc).last_line=0;;} break; case 13: -#line 196 "ast_expr2.y" - { yyval.val = op_plus (yyvsp[-2].val, yyvsp[0].val); - yyloc.first_column = yylsp[-2].first_column; yyloc.last_column = yylsp[0].last_column; - yyloc.first_line=0; yyloc.last_line=0;;} +#line 212 "ast_expr2.y" + { (yyval.val) = op_plus ((yyvsp[-2].val), (yyvsp[0].val)); + DESTROY((yyvsp[-1].val)); + (yyloc).first_column = (yylsp[-2]).first_column; (yyloc).last_column = (yylsp[0]).last_column; + (yyloc).first_line=0; (yyloc).last_line=0;;} break; case 14: -#line 199 "ast_expr2.y" - { yyval.val = op_minus (yyvsp[-2].val, yyvsp[0].val); - yyloc.first_column = yylsp[-2].first_column; yyloc.last_column = yylsp[0].last_column; - yyloc.first_line=0; yyloc.last_line=0;;} +#line 216 "ast_expr2.y" + { (yyval.val) = op_minus ((yyvsp[-2].val), (yyvsp[0].val)); + DESTROY((yyvsp[-1].val)); + (yyloc).first_column = (yylsp[-2]).first_column; (yyloc).last_column = (yylsp[0]).last_column; + (yyloc).first_line=0; (yyloc).last_line=0;;} break; case 15: -#line 202 "ast_expr2.y" - { yyval.val = op_negate (yyvsp[0].val); - yyloc.first_column = yylsp[-1].first_column; yyloc.last_column = yylsp[0].last_column; - yyloc.first_line=0; yyloc.last_line=0;;} +#line 220 "ast_expr2.y" + { (yyval.val) = op_negate ((yyvsp[0].val)); + DESTROY((yyvsp[-1].val)); + (yyloc).first_column = (yylsp[-1]).first_column; (yyloc).last_column = (yylsp[0]).last_column; + (yyloc).first_line=0; (yyloc).last_line=0;;} break; case 16: -#line 205 "ast_expr2.y" - { yyval.val = op_compl (yyvsp[0].val); - yyloc.first_column = yylsp[-1].first_column; yyloc.last_column = yylsp[0].last_column; - yyloc.first_line=0; yyloc.last_line=0;;} +#line 224 "ast_expr2.y" + { (yyval.val) = op_compl ((yyvsp[0].val)); + DESTROY((yyvsp[-1].val)); + (yyloc).first_column = (yylsp[-1]).first_column; (yyloc).last_column = (yylsp[0]).last_column; + (yyloc).first_line=0; (yyloc).last_line=0;;} break; case 17: -#line 208 "ast_expr2.y" - { yyval.val = op_times (yyvsp[-2].val, yyvsp[0].val); - yyloc.first_column = yylsp[-2].first_column; yyloc.last_column = yylsp[0].last_column; - yyloc.first_line=0; yyloc.last_line=0;;} +#line 228 "ast_expr2.y" + { (yyval.val) = op_times ((yyvsp[-2].val), (yyvsp[0].val)); + DESTROY((yyvsp[-1].val)); + (yyloc).first_column = (yylsp[-2]).first_column; (yyloc).last_column = (yylsp[0]).last_column; + (yyloc).first_line=0; (yyloc).last_line=0;;} break; case 18: -#line 211 "ast_expr2.y" - { yyval.val = op_div (yyvsp[-2].val, yyvsp[0].val); - yyloc.first_column = yylsp[-2].first_column; yyloc.last_column = yylsp[0].last_column; - yyloc.first_line=0; yyloc.last_line=0;;} +#line 232 "ast_expr2.y" + { (yyval.val) = op_div ((yyvsp[-2].val), (yyvsp[0].val)); + DESTROY((yyvsp[-1].val)); + (yyloc).first_column = (yylsp[-2]).first_column; (yyloc).last_column = (yylsp[0]).last_column; + (yyloc).first_line=0; (yyloc).last_line=0;;} break; case 19: -#line 214 "ast_expr2.y" - { yyval.val = op_rem (yyvsp[-2].val, yyvsp[0].val); - yyloc.first_column = yylsp[-2].first_column; yyloc.last_column = yylsp[0].last_column; - yyloc.first_line=0; yyloc.last_line=0;;} +#line 236 "ast_expr2.y" + { (yyval.val) = op_rem ((yyvsp[-2].val), (yyvsp[0].val)); + DESTROY((yyvsp[-1].val)); + (yyloc).first_column = (yylsp[-2]).first_column; (yyloc).last_column = (yylsp[0]).last_column; + (yyloc).first_line=0; (yyloc).last_line=0;;} break; case 20: -#line 217 "ast_expr2.y" - { yyval.val = op_colon (yyvsp[-2].val, yyvsp[0].val); - yyloc.first_column = yylsp[-2].first_column; yyloc.last_column = yylsp[0].last_column; - yyloc.first_line=0; yyloc.last_line=0;;} +#line 240 "ast_expr2.y" + { (yyval.val) = op_colon ((yyvsp[-2].val), (yyvsp[0].val)); + DESTROY((yyvsp[-1].val)); + (yyloc).first_column = (yylsp[-2]).first_column; (yyloc).last_column = (yylsp[0]).last_column; + (yyloc).first_line=0; (yyloc).last_line=0;;} break; case 21: -#line 220 "ast_expr2.y" - { yyval.val = op_eqtilde (yyvsp[-2].val, yyvsp[0].val); - yyloc.first_column = yylsp[-2].first_column; yyloc.last_column = yylsp[0].last_column; - yyloc.first_line=0; yyloc.last_line=0;;} +#line 244 "ast_expr2.y" + { (yyval.val) = op_eqtilde ((yyvsp[-2].val), (yyvsp[0].val)); + DESTROY((yyvsp[-1].val)); + (yyloc).first_column = (yylsp[-2]).first_column; (yyloc).last_column = (yylsp[0]).last_column; + (yyloc).first_line=0; (yyloc).last_line=0;;} break; case 22: -#line 223 "ast_expr2.y" - { yyval.val = op_cond (yyvsp[-4].val, yyvsp[-2].val, yyvsp[0].val); - yyloc.first_column = yylsp[-4].first_column; yyloc.last_column = yylsp[-2].last_column; - yyloc.first_line=0; yyloc.last_line=0;;} +#line 248 "ast_expr2.y" + { (yyval.val) = op_cond ((yyvsp[-4].val), (yyvsp[-2].val), (yyvsp[0].val)); + DESTROY((yyvsp[-3].val)); + DESTROY((yyvsp[-1].val)); + (yyloc).first_column = (yylsp[-4]).first_column; (yyloc).last_column = (yylsp[-2]).last_column; + (yyloc).first_line=0; (yyloc).last_line=0;;} break; } -/* Line 1010 of yacc.c. */ -#line 1384 "ast_expr2.c" +/* Line 1037 of yacc.c. */ +#line 1445 "ast_expr2.c" yyvsp -= yylen; yyssp -= yylen; @@ -1476,11 +1537,11 @@ yyerrlab: yyerror ("syntax error"); } - yylerrsp = yylsp; + yyerror_range[0] = yylloc; if (yyerrstatus == 3) { - /* If just tried and failed to reuse lookahead token after an + /* If just tried and failed to reuse look-ahead token after an error, discard it. */ if (yychar <= YYEOF) @@ -1490,23 +1551,22 @@ yyerrlab: if (yychar == YYEOF) for (;;) { + yyerror_range[0] = *yylsp; YYPOPSTACK; if (yyssp == yyss) YYABORT; - YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp); - yydestruct (yystos[*yyssp], yyvsp, yylsp); + yydestruct ("Error: popping", + yystos[*yyssp], yyvsp, yylsp); } } else { - YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc); - yydestruct (yytoken, &yylval, &yylloc); + yydestruct ("Error: discarding", yytoken, &yylval, &yylloc); yychar = YYEMPTY; - *++yylerrsp = yylloc; } } - /* Else will try to reuse lookahead token after shifting the error + /* Else will try to reuse look-ahead token after shifting the error token. */ goto yyerrlab1; @@ -1523,12 +1583,11 @@ yyerrorlab: goto yyerrorlab; #endif + yyerror_range[0] = yylsp[1-yylen]; + yylsp -= yylen; yyvsp -= yylen; yyssp -= yylen; yystate = *yyssp; - yylerrsp = yylsp; - *++yylerrsp = yyloc; - yylsp -= yylen; goto yyerrlab1; @@ -1556,8 +1615,8 @@ yyerrlab1: if (yyssp == yyss) YYABORT; - YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp); - yydestruct (yystos[yystate], yyvsp, yylsp); + yyerror_range[0] = *yylsp; + yydestruct ("Error: popping", yystos[yystate], yyvsp, yylsp); YYPOPSTACK; yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); @@ -1566,12 +1625,17 @@ yyerrlab1: if (yyn == YYFINAL) YYACCEPT; - YYDPRINTF ((stderr, "Shifting error token, ")); - *++yyvsp = yylval; - YYLLOC_DEFAULT (yyloc, yylsp, yylerrsp - yylsp); + + yyerror_range[1] = yylloc; + /* Using YYLLOC is tempting, but would change the location of + the look-ahead. YYLOC is available though. */ + YYLLOC_DEFAULT (yyloc, yyerror_range - 1, 2); *++yylsp = yyloc; + /* Shift the error token. */ + YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); + yystate = yyn; goto yynewstate; @@ -1587,6 +1651,9 @@ yyacceptlab: | yyabortlab -- YYABORT comes here. | `-----------------------------------*/ yyabortlab: + yydestruct ("Error: discarding lookahead", + yytoken, &yylval, &yylloc); + yychar = YYEMPTY; yyresult = 1; goto yyreturn; @@ -1609,7 +1676,7 @@ yyreturn: } -#line 228 "ast_expr2.y" +#line 255 "ast_expr2.y" static struct val * @@ -1666,6 +1733,7 @@ free_value (struct val *vp) } if (vp->type == AST_EXPR_string || vp->type == AST_EXPR_numeric_string) free (vp->u.s); + free(vp); } diff --git a/ast_expr2.h b/ast_expr2.h index e214e83322..1afe7d1809 100644 --- a/ast_expr2.h +++ b/ast_expr2.h @@ -1,4 +1,4 @@ -/* A Bison parser, made by GNU Bison 1.875d. */ +/* A Bison parser, made by GNU Bison 2.0. */ /* Skeleton parser for Yacc-like parsing with Bison, Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. @@ -78,11 +78,11 @@ #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) -#line 137 "ast_expr2.y" +#line 142 "ast_expr2.y" typedef union YYSTYPE { struct val *val; } YYSTYPE; -/* Line 1285 of yacc.c. */ +/* Line 1318 of yacc.c. */ #line 87 "ast_expr2.h" # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 diff --git a/ast_expr2f.c b/ast_expr2f.c index 71f62ee0b9..3079eb901d 100644 --- a/ast_expr2f.c +++ b/ast_expr2f.c @@ -347,266 +347,266 @@ static yyconst flex_int16_t yy_nxt[][128] = }, { - 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, - 6, 4, 4, 5, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 5, 7, 8, 9, 9, 10, 11, 9, - 12, 13, 14, 15, 9, 16, 9, 17, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, 19, 9, - 20, 21, 22, 23, 9, 9, 9, 9, 9, 9, - - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 4, 9, 4, 9, 9, 4, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 24, 9, 4, 4 + 7, 8, 8, 8, 8, 8, 8, 8, 8, 9, + 10, 8, 8, 9, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 9, 11, 12, 13, 14, 15, 16, 13, + 17, 18, 19, 20, 13, 21, 13, 22, 23, 23, + 23, 23, 23, 23, 23, 23, 23, 23, 24, 13, + 25, 26, 27, 28, 13, 13, 13, 13, 13, 13, + + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 8, 13, 8, 13, 13, 8, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 8, 29, 8, 8, 8 }, { - 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, - 6, 4, 4, 5, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 5, 7, 8, 9, 9, 10, 11, 9, - - 12, 13, 14, 15, 9, 16, 9, 17, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, 19, 9, - 20, 21, 22, 23, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 4, 9, 4, 9, 9, 4, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 24, 9, 4, 4 + 7, 8, 8, 8, 8, 8, 8, 8, 8, 9, + 10, 8, 8, 9, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 9, 11, 12, 13, 14, 15, 16, 13, + + 17, 18, 19, 20, 13, 21, 13, 22, 23, 23, + 23, 23, 23, 23, 23, 23, 23, 23, 24, 13, + 25, 26, 27, 28, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 8, 13, 8, 13, 13, 8, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 8, 29, 8, 8, 8 }, { - -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, - - -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, - -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, - -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, - -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, - -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, - -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, - -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, - -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, - -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, - -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, - - -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, - -3, -3, -3, -3, -3, -3, -3, -3 + 7, 30, 30, 30, 30, 30, 30, 30, 30, 30, + + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 31, 30, 32, 30, 30 }, { - 3, -4, -4, -4, -4, -4, -4, -4, -4, -4, - -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, - -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, - -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, - -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, - -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, - -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, - -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, - - -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, - -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, - -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, - -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, - -4, -4, -4, -4, -4, -4, -4, -4 + 7, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 31, 30, 32, 30, 30 }, { - 3, -5, -5, -5, -5, -5, -5, -5, -5, -5, - -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, - -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, - -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, - -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, - - -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, - -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, - -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, - -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, - -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, - -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, - -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, - -5, -5, -5, -5, -5, -5, -5, -5 + 7, 33, 33, 33, 33, 33, 33, 33, 33, 34, + 34, 33, 33, 34, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 34, 34, 33, 33, 35, 34, 34, 33, + 34, 34, 34, 34, 33, 34, 33, 34, 33, 33, + + 33, 33, 33, 33, 33, 33, 33, 33, 34, 33, + 34, 34, 34, 34, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 34, 33, 33, 33 }, { - 3, -6, -6, -6, -6, -6, -6, -6, -6, -6, - -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, - - -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, - -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, - -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, - -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, - -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, - -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, - -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, - -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, - -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, - -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, - - -6, -6, -6, -6, -6, -6, -6, -6 + 7, 33, 33, 33, 33, 33, 33, 33, 33, 34, + 34, 33, 33, 34, 33, 33, 33, 33, 33, 33, + + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 34, 34, 33, 33, 35, 34, 34, 33, + 34, 34, 34, 34, 33, 34, 33, 34, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 34, 33, + 34, 34, 34, 34, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + + 33, 33, 33, 33, 34, 33, 33, 33 }, { - 3, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, - -7, -7, -7, 25, -7, 25, 25, 25, -7, 25, - -7, -7, -7, -7, 25, -7, 25, -7, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, -7, 25, - -7, 26, -7, -7, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - - 25, -7, 25, -7, 25, 25, -7, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, -7, 25, -7, -7 + -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, + -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, + -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, + -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, + -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, + -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, + -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, + + -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, + -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, + -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, + -7, -7, -7, -7, -7, -7, -7, -7 }, { - 3, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 28, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27 + 7, -8, -8, -8, -8, -8, -8, -8, -8, -8, + -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, + -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, + -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, + -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, + -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, + + -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, + -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, + -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, + -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, + -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, + -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, + -8, -8, -8, -8, -8, -8, -8, -8 }, { - 3, -9, -9, -9, -9, -9, -9, -9, -9, -9, + 7, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, - -9, -9, -9, 25, -9, 25, 25, 25, -9, 25, - -9, -9, -9, -9, 25, -9, 25, -9, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, -9, 25, - -9, -9, -9, -9, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, -9, 25, -9, 25, 25, -9, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, -9, 25, -9, -9 + -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, + -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, + -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, + -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, + -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, + -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, + -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, + -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, + -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, + -9, -9, -9, -9, -9, -9, -9, -9 }, { - 3, -10, -10, -10, -10, -10, -10, -10, -10, -10, + 7, -10, -10, -10, -10, -10, -10, -10, -10, -10, + -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, + -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, + -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, + -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, + -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, + -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, + -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, + -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, + -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, + -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, - -10, -10, -10, 25, -10, 25, 25, 25, -10, 25, - -10, -10, -10, -10, 25, -10, 25, -10, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, -10, 25, - -10, -10, -10, -10, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, -10, 25, -10, 25, 25, -10, 25, 25, 25, - - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, -10, 25, -10, -10 + -10, -10, -10, -10, -10, -10, -10, -10 }, { - 3, -11, -11, -11, -11, -11, -11, -11, -11, -11, + 7, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, - -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, - -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, - -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, - -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, - - -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, - -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, - -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, - -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, - -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, - -11, -11, -11, -11, -11, -11, -11, -11 + -11, -11, -11, 36, -11, 36, 36, 36, -11, 36, + -11, -11, -11, -11, 36, -11, 36, -11, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, -11, 36, + -11, 37, -11, -11, 36, 36, 36, 36, 36, 36, + + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, -11, 36, -11, 36, 36, -11, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 36, 36, -11, -11, -11, -11, -11 }, { - 3, -12, -12, -12, -12, -12, -12, -12, -12, -12, - -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, - -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, - -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, - - -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, - -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, - -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, - -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, - -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, - -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, - -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, - -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, - -12, -12, -12, -12, -12, -12, -12, -12 + 7, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 39, 38, 38, 38, 38, 38, + + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38 }, { - 3, -13, -13, -13, -13, -13, -13, -13, -13, -13, + 7, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - - -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, - -13, -13, -13, -13, -13, -13, -13, -13 + -13, -13, -13, 36, -13, 36, 36, 36, -13, 36, + -13, -13, -13, -13, 36, -13, 36, -13, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, -13, 36, + -13, -13, -13, -13, 36, 36, 36, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, -13, 36, -13, 36, 36, -13, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 36, 36, -13, -13, -13, -13, -13 }, { - 3, -14, -14, -14, -14, -14, -14, -14, -14, -14, - -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, - -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, - -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, - -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, - -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, - -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, - -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, - - -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, + 7, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, - -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, - -14, -14, -14, -14, -14, -14, -14, -14 + -14, -14, -14, 36, -14, 36, 36, 36, -14, 36, + -14, -14, -14, -14, 36, -14, 36, -14, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, -14, 36, + -14, -14, -14, -14, 36, 36, 36, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, -14, 36, -14, 36, 36, -14, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 36, 36, 40, -14, -14, -14, -14 }, { - 3, -15, -15, -15, -15, -15, -15, -15, -15, -15, - -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, - -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, - -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, - -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, - - -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, - -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, + 7, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, - -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, - -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, - -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, - -15, -15, -15, -15, -15, -15, -15, -15 + -15, -15, -15, 36, -15, 36, 36, 36, -15, 36, + -15, -15, -15, -15, 36, -15, 36, -15, 36, 36, + + 36, 36, 36, 36, 36, 36, 36, 36, -15, 36, + -15, -15, -15, -15, 36, 36, 36, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, -15, 36, -15, 36, 36, -15, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 36, 36, -15, -15, -15, -15, -15 }, { - 3, -16, -16, -16, -16, -16, -16, -16, -16, -16, + 7, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, @@ -624,7 +624,7 @@ static yyconst flex_int16_t yy_nxt[][128] = }, { - 3, -17, -17, -17, -17, -17, -17, -17, -17, -17, + 7, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, @@ -641,30 +641,30 @@ static yyconst flex_int16_t yy_nxt[][128] = }, { - 3, -18, -18, -18, -18, -18, -18, -18, -18, -18, + 7, -18, -18, -18, -18, -18, -18, -18, -18, -18, + -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, - -18, -18, -18, 25, -18, 25, 25, 25, -18, 25, - -18, -18, -18, -18, 25, -18, 25, -18, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, -18, 25, - - -18, -18, -18, -18, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, -18, 25, -18, 25, 25, -18, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, -18, 25, -18, -18 + -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, + -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, + + -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, + -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, + -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, + -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, + -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, + -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, + -18, -18, -18, -18, -18, -18, -18, -18 }, { - 3, -19, -19, -19, -19, -19, -19, -19, -19, -19, + 7, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, - -19, -19, -19, -19, -19, -19, -19, -19, 30, -19, + -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, @@ -676,13 +676,13 @@ static yyconst flex_int16_t yy_nxt[][128] = }, { - 3, -20, -20, -20, -20, -20, -20, -20, -20, -20, + 7, -20, -20, -20, -20, -20, -20, -20, -20, -20, + -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, - -20, 31, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, @@ -693,7 +693,7 @@ static yyconst flex_int16_t yy_nxt[][128] = }, { - 3, -21, -21, -21, -21, -21, -21, -21, -21, -21, + 7, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, @@ -710,14 +710,14 @@ static yyconst flex_int16_t yy_nxt[][128] = }, { - 3, -22, -22, -22, -22, -22, -22, -22, -22, -22, + 7, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, - -22, 32, -22, -22, -22, -22, -22, -22, -22, -22, + -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, @@ -727,30 +727,30 @@ static yyconst flex_int16_t yy_nxt[][128] = }, { - 3, -23, -23, -23, -23, -23, -23, -23, -23, -23, + 7, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, - -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, - -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, - -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, - -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, - -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, - -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, - -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, - -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, - - -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, - -23, -23, -23, -23, -23, -23, -23, -23 + -23, -23, -23, 36, -23, 36, 36, 36, -23, 36, + -23, -23, -23, -23, 36, -23, 36, -23, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, -23, 36, + -23, -23, -23, -23, 36, 36, 36, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, -23, 36, -23, 36, 36, -23, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 36, 36, -23, -23, -23, -23, -23 }, { - 3, -24, -24, -24, -24, -24, -24, -24, -24, -24, - -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, + 7, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, + -24, -24, -24, -24, -24, -24, -24, -24, 42, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, @@ -762,24 +762,24 @@ static yyconst flex_int16_t yy_nxt[][128] = }, { - 3, -25, -25, -25, -25, -25, -25, -25, -25, -25, + 7, -25, -25, -25, -25, -25, -25, -25, -25, -25, + -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, + -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, + -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, + -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, + + -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, + -25, 43, -25, -25, -25, -25, -25, -25, -25, -25, + -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, + -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, + -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, - -25, -25, -25, 25, -25, 25, 25, 25, -25, 25, - -25, -25, -25, -25, 25, -25, 25, -25, 25, 25, - - 25, 25, 25, 25, 25, 25, 25, 25, -25, 25, - -25, -25, -25, -25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, -25, 25, -25, 25, 25, -25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, -25, 25, -25, -25 + -25, -25, -25, -25, -25, -25, -25, -25 }, { - 3, -26, -26, -26, -26, -26, -26, -26, -26, -26, + 7, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, @@ -797,24 +797,24 @@ static yyconst flex_int16_t yy_nxt[][128] = }, { - 3, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 28, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27 + 7, -27, -27, -27, -27, -27, -27, -27, -27, -27, + -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, + -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, + -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, + -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, + -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, + -27, 44, -27, -27, -27, -27, -27, -27, -27, -27, + -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, + -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, + + -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, + -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, + -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, + -27, -27, -27, -27, -27, -27, -27, -27 }, { - 3, -28, -28, -28, -28, -28, -28, -28, -28, -28, + 7, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, @@ -831,42 +831,42 @@ static yyconst flex_int16_t yy_nxt[][128] = }, { - 3, -29, -29, -29, -29, -29, -29, -29, -29, -29, + 7, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, - -29, -29, -29, 25, -29, 25, 25, 25, -29, 25, - -29, -29, -29, -29, 25, -29, 25, -29, 29, 29, - 29, 29, 29, 29, 29, 29, 29, 29, -29, 25, - -29, -29, -29, -29, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, -29, 25, -29, 25, 25, -29, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, -29, 25, -29, -29 + -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, + -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, + -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, + -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, + -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, + -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, + -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, + -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, + -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, + -29, -29, -29, -29, -29, -29, -29, -29 }, { - 3, -30, -30, -30, -30, -30, -30, -30, -30, -30, - -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, - -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, - -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, - -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, - -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, - -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, - -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, - -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, - -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, - - -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, - -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, - -30, -30, -30, -30, -30, -30, -30, -30 + 7, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 46, 45, 47, 45, 45 }, { - 3, -31, -31, -31, -31, -31, -31, -31, -31, -31, + 7, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, @@ -883,7 +883,7 @@ static yyconst flex_int16_t yy_nxt[][128] = }, { - 3, -32, -32, -32, -32, -32, -32, -32, -32, -32, + 7, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, @@ -899,6 +899,301 @@ static yyconst flex_int16_t yy_nxt[][128] = -32, -32, -32, -32, -32, -32, -32, -32 }, + { + 7, 48, 48, 48, 48, 48, 48, 48, 48, -33, + + -33, 48, 48, -33, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, -33, -33, 48, 48, -33, -33, -33, 48, + -33, -33, -33, -33, 48, -33, 48, -33, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, -33, 48, + -33, -33, -33, -33, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, -33, 48, 48, 48 + }, + + { + 7, -34, -34, -34, -34, -34, -34, -34, -34, -34, + -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, + -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, + -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, + -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, + -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, + -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, + -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, + + -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, + -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, + -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, + -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, + -34, -34, -34, -34, -34, -34, -34, -34 + }, + + { + 7, -35, -35, -35, -35, -35, -35, -35, -35, -35, + -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, + -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, + -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, + -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, + + -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, + -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, + -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, + -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, + -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, + -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, + -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, + -35, -35, -35, 49, -35, -35, -35, -35 + }, + + { + 7, -36, -36, -36, -36, -36, -36, -36, -36, -36, + -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, + + -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, + -36, -36, -36, 36, -36, 36, 36, 36, -36, 36, + -36, -36, -36, -36, 36, -36, 36, -36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, -36, 36, + -36, -36, -36, -36, 36, 36, 36, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, -36, 36, -36, 36, 36, -36, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + + 36, 36, 36, -36, -36, -36, -36, -36 + }, + + { + 7, -37, -37, -37, -37, -37, -37, -37, -37, -37, + -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, + -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, + -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, + -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, + -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, + -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, + -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, + -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, + + -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, + -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, + -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, + -37, -37, -37, -37, -37, -37, -37, -37 + }, + + { + 7, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 39, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38 + }, + + { + 7, -39, -39, -39, -39, -39, -39, -39, -39, -39, + -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, + -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, + + -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, + -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, + -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, + -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, + -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, + -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, + -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, + -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, + -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, + -39, -39, -39, -39, -39, -39, -39, -39 + + }, + + { + 7, -40, -40, -40, -40, -40, -40, -40, -40, -40, + -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, + -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, + -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, + -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, + -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, + -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, + -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, + -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, + -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, + + -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, + -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, + -40, -40, -40, -40, -40, -40, -40, -40 + }, + + { + 7, -41, -41, -41, -41, -41, -41, -41, -41, -41, + -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, + -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, + -41, -41, -41, 36, -41, 36, 36, 36, -41, 36, + -41, -41, -41, -41, 36, -41, 36, -41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, -41, 36, + -41, -41, -41, -41, 36, 36, 36, 36, 36, 36, + + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, -41, 36, -41, 36, 36, -41, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 36, 36, -41, -41, -41, -41, -41 + }, + + { + 7, -42, -42, -42, -42, -42, -42, -42, -42, -42, + -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, + -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, + -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, + + -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, + -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, + -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, + -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, + -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, + -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, + -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, + -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, + -42, -42, -42, -42, -42, -42, -42, -42 + }, + + { + 7, -43, -43, -43, -43, -43, -43, -43, -43, -43, + + -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, + -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, + -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, + -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, + -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, + -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, + -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, + -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, + -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, + -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, + + -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, + -43, -43, -43, -43, -43, -43, -43, -43 + }, + + { + 7, -44, -44, -44, -44, -44, -44, -44, -44, -44, + -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, + -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, + -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, + -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, + -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, + -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, + -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, + + -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, + -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, + -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, + -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, + -44, -44, -44, -44, -44, -44, -44, -44 + }, + + { + 7, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 46, 45, 47, 45, 45 + }, + + { + 7, -46, -46, -46, -46, -46, -46, -46, -46, -46, + -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, + + -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, + -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, + -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, + -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, + -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, + -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, + -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, + -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, + -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, + -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, + + -46, -46, -46, -46, -46, -46, -46, -46 + }, + + { + 7, -47, -47, -47, -47, -47, -47, -47, -47, -47, + -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, + -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, + -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, + -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, + -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, + -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, + -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, + -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, + + -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, + -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, + -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, + -47, -47, -47, -47, -47, -47, -47, -47 + }, + + { + 7, 48, 48, 48, 48, 48, 48, 48, 48, -48, + -48, 48, 48, -48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, -48, -48, 48, 48, -48, -48, -48, 48, + -48, -48, -48, -48, 48, -48, 48, -48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, -48, 48, + + -48, -48, -48, -48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, -48, 48, 48, 48 + }, + + { + 7, -49, -49, -49, -49, -49, -49, -49, -49, -49, + -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, + -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, + + -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, + -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, + -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, + -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, + -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, + -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, + -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, + -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, + -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, + -49, -49, -49, -49, -49, -49, -49, -49 + + }, + } ; static yy_state_type yy_get_previous_state (yyscan_t yyscanner ); @@ -911,13 +1206,14 @@ static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner ); */ #define YY_DO_BEFORE_ACTION \ yyg->yytext_ptr = yy_bp; \ - yyleng = (size_t) (yy_cp - yy_bp); \ + yyg->yytext_ptr -= yyg->yy_more_len; \ + yyleng = (size_t) (yy_cp - yyg->yytext_ptr); \ yyg->yy_hold_char = *yy_cp; \ *yy_cp = '\0'; \ yyg->yy_c_buf_p = yy_cp; -#define YY_NUM_RULES 24 -#define YY_END_OF_BUFFER 25 +#define YY_NUM_RULES 30 +#define YY_END_OF_BUFFER 31 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -925,31 +1221,38 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[33] = +static yyconst flex_int16_t yy_accept[50] = { 0, - 0, 0, 25, 24, 19, 21, 23, 24, 23, 13, - 2, 17, 18, 11, 9, 10, 12, 22, 15, 5, - 3, 4, 14, 1, 23, 8, 0, 20, 22, 16, - 7, 6 + 0, 0, 0, 0, 27, 27, 31, 30, 20, 22, + 24, 30, 24, 24, 13, 2, 17, 18, 11, 9, + 10, 12, 23, 15, 5, 3, 4, 14, 1, 30, + 26, 25, 27, 28, 28, 24, 8, 0, 21, 19, + 23, 16, 7, 6, 0, 26, 25, 27, 29 } ; -static yyconst yy_state_type yy_NUL_trans[33] = +static yyconst yy_state_type yy_NUL_trans[50] = { 0, - 4, 4, 0, 0, 0, 0, 0, 27, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, - 0, 0 + 8, 8, 30, 30, 33, 33, 0, 0, 0, 0, + 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, + 0, 0, 48, 0, 0, 0, 0, 38, 0, 0, + 0, 0, 0, 0, 45, 0, 0, 48, 0 } ; /* The intent behind this definition is that it'll catch * any uses of REJECT which flex missed. */ #define REJECT reject_used_but_not_detected -#define yymore() yymore_used_but_not_detected -#define YY_MORE_ADJ 0 +#define yymore() (yyg->yy_more_flag = 1) +#define YY_MORE_ADJ yyg->yy_more_len #define YY_RESTORE_YY_MORE_OFFSET #line 1 "ast_expr2.fl" #line 2 "ast_expr2.fl" +/*! \file + * + * \brief Dialplan Expression Parser + */ + #include #include #include @@ -995,18 +1298,19 @@ struct parse_io void ast_yyset_column(int column_no, yyscan_t yyscanner); int ast_yyget_column(yyscan_t yyscanner); +static int curlycount = 0; -#line 1000 "ast_expr2f.c" +#line 1304 "ast_expr2f.c" #define INITIAL 0 +#define var 1 +#define trail 2 -#ifndef YY_NO_UNISTD_H /* Special case for "unistd.h", since it is non-ANSI. We include it way * down here because we want the user's section 1 to have been scanned first. * The user has a chance to override it with an option. */ #include -#endif #ifndef YY_EXTRA_TYPE #define YY_EXTRA_TYPE void * @@ -1213,10 +1517,10 @@ YY_DECL register int yy_act; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; -#line 58 "ast_expr2.fl" +#line 64 "ast_expr2.fl" -#line 1220 "ast_expr2f.c" +#line 1524 "ast_expr2f.c" yylval = yylval_param; @@ -1250,6 +1554,12 @@ YY_DECL while ( 1 ) /* loops until end-of-file is reached */ { + yyg->yy_more_len = 0; + if ( yyg->yy_more_flag ) + { + yyg->yy_more_len = yyg->yy_c_buf_p - yyg->yytext_ptr; + yyg->yy_more_flag = 0; + } yy_cp = yyg->yy_c_buf_p; /* Support of yytext. */ @@ -1293,130 +1603,169 @@ do_action: /* This label is used only to access EOF actions. */ case 1: YY_RULE_SETUP -#line 60 "ast_expr2.fl" +#line 66 "ast_expr2.fl" { SET_COLUMNS; SET_STRING; return TOK_OR;} YY_BREAK case 2: YY_RULE_SETUP -#line 61 "ast_expr2.fl" +#line 67 "ast_expr2.fl" { SET_COLUMNS; SET_STRING; return TOK_AND;} YY_BREAK case 3: YY_RULE_SETUP -#line 62 "ast_expr2.fl" +#line 68 "ast_expr2.fl" { SET_COLUMNS; SET_STRING; return TOK_EQ;} YY_BREAK case 4: YY_RULE_SETUP -#line 63 "ast_expr2.fl" +#line 69 "ast_expr2.fl" { SET_COLUMNS; SET_STRING; return TOK_GT;} YY_BREAK case 5: YY_RULE_SETUP -#line 64 "ast_expr2.fl" +#line 70 "ast_expr2.fl" { SET_COLUMNS; SET_STRING; return TOK_LT;} YY_BREAK case 6: YY_RULE_SETUP -#line 65 "ast_expr2.fl" +#line 71 "ast_expr2.fl" { SET_COLUMNS; SET_STRING; return TOK_GE;} YY_BREAK case 7: YY_RULE_SETUP -#line 66 "ast_expr2.fl" +#line 72 "ast_expr2.fl" { SET_COLUMNS; SET_STRING; return TOK_LE;} YY_BREAK case 8: YY_RULE_SETUP -#line 67 "ast_expr2.fl" +#line 73 "ast_expr2.fl" { SET_COLUMNS; SET_STRING; return TOK_NE;} YY_BREAK case 9: YY_RULE_SETUP -#line 68 "ast_expr2.fl" +#line 74 "ast_expr2.fl" { SET_COLUMNS; SET_STRING; return TOK_PLUS;} YY_BREAK case 10: YY_RULE_SETUP -#line 69 "ast_expr2.fl" +#line 75 "ast_expr2.fl" { SET_COLUMNS; SET_STRING; return TOK_MINUS;} YY_BREAK case 11: YY_RULE_SETUP -#line 70 "ast_expr2.fl" +#line 76 "ast_expr2.fl" { SET_COLUMNS; SET_STRING; return TOK_MULT;} YY_BREAK case 12: YY_RULE_SETUP -#line 71 "ast_expr2.fl" +#line 77 "ast_expr2.fl" { SET_COLUMNS; SET_STRING; return TOK_DIV;} YY_BREAK case 13: YY_RULE_SETUP -#line 72 "ast_expr2.fl" +#line 78 "ast_expr2.fl" { SET_COLUMNS; SET_STRING; return TOK_MOD;} YY_BREAK case 14: YY_RULE_SETUP -#line 73 "ast_expr2.fl" +#line 79 "ast_expr2.fl" { SET_COLUMNS; SET_STRING; return TOK_COND;} YY_BREAK case 15: YY_RULE_SETUP -#line 74 "ast_expr2.fl" +#line 80 "ast_expr2.fl" { SET_COLUMNS; SET_STRING; return TOK_COLON;} YY_BREAK case 16: YY_RULE_SETUP -#line 75 "ast_expr2.fl" +#line 81 "ast_expr2.fl" { SET_COLUMNS; SET_STRING; return TOK_COLONCOLON;} YY_BREAK case 17: YY_RULE_SETUP -#line 76 "ast_expr2.fl" +#line 82 "ast_expr2.fl" { SET_COLUMNS; SET_STRING; return TOK_LP;} YY_BREAK case 18: YY_RULE_SETUP -#line 77 "ast_expr2.fl" +#line 83 "ast_expr2.fl" { SET_COLUMNS; SET_STRING; return TOK_RP;} YY_BREAK case 19: YY_RULE_SETUP -#line 79 "ast_expr2.fl" -{} +#line 84 "ast_expr2.fl" +{/* gather the contents of ${} expressions, with trailing stuff, into a single TOKEN. They are much more complex now than they used to be */ + curlycount = 0; BEGIN(var); yymore();} YY_BREAK case 20: -/* rule 20 can match eol */ YY_RULE_SETUP -#line 80 "ast_expr2.fl" -{SET_COLUMNS; SET_STRING; return TOKEN;} +#line 87 "ast_expr2.fl" +{} YY_BREAK case 21: /* rule 21 can match eol */ YY_RULE_SETUP -#line 82 "ast_expr2.fl" -{/* what to do with eol */} +#line 88 "ast_expr2.fl" +{SET_COLUMNS; SET_STRING; return TOKEN;} YY_BREAK case 22: +/* rule 22 can match eol */ YY_RULE_SETUP -#line 83 "ast_expr2.fl" +#line 90 "ast_expr2.fl" +{/* what to do with eol */} + YY_BREAK +case 23: +YY_RULE_SETUP +#line 91 "ast_expr2.fl" { SET_COLUMNS; /* the original behavior of the expression parser was to bring in numbers as a numeric string */ SET_NUMERIC_STRING; return TOKEN;} YY_BREAK -case 23: +case 24: YY_RULE_SETUP -#line 86 "ast_expr2.fl" +#line 94 "ast_expr2.fl" {SET_COLUMNS; SET_STRING; return TOKEN;} YY_BREAK -case 24: +case 25: +/* rule 25 can match eol */ YY_RULE_SETUP -#line 88 "ast_expr2.fl" +#line 96 "ast_expr2.fl" +{curlycount--; if(curlycount < 0){ BEGIN(trail); yymore();} else { yymore();}} + YY_BREAK +case 26: +/* rule 26 can match eol */ +YY_RULE_SETUP +#line 97 "ast_expr2.fl" +{curlycount++; yymore(); } + YY_BREAK +case 27: +YY_RULE_SETUP +#line 98 "ast_expr2.fl" +{BEGIN(0); SET_COLUMNS; SET_STRING; return TOKEN;} + YY_BREAK +case 28: +/* rule 28 can match eol */ +YY_RULE_SETUP +#line 99 "ast_expr2.fl" +{char c = yytext[yyleng-1]; BEGIN(0); unput(c); SET_COLUMNS; SET_STRING; return TOKEN;} + YY_BREAK +case 29: +YY_RULE_SETUP +#line 100 "ast_expr2.fl" +{curlycount = 0; BEGIN(var); yymore(); } + YY_BREAK +case YY_STATE_EOF(trail): +#line 101 "ast_expr2.fl" +{BEGIN(0); SET_COLUMNS; SET_STRING; return TOKEN; /* actually, if an expr is only a variable ref, this could happen a LOT */} + YY_BREAK +case 30: +YY_RULE_SETUP +#line 103 "ast_expr2.fl" ECHO; YY_BREAK -#line 1419 "ast_expr2f.c" +#line 1767 "ast_expr2f.c" case YY_STATE_EOF(INITIAL): +case YY_STATE_EOF(var): yyterminate(); case YY_END_OF_BUFFER: @@ -2156,16 +2505,16 @@ YY_BUFFER_STATE ast_yy_scan_buffer (char * base, yy_size_t size , yyscan_t yys /** Setup the input buffer state to scan a string. The next call to ast_yylex() will * scan from a @e copy of @a str. - * @param yy_str a NUL-terminated string to scan + * @param str a NUL-terminated string to scan * @param yyscanner The scanner object. * @return the newly allocated buffer state object. * @note If you want to scan bytes that may contain NUL values, then use * ast_yy_scan_bytes() instead. */ -YY_BUFFER_STATE ast_yy_scan_string (yyconst char * yy_str , yyscan_t yyscanner) +YY_BUFFER_STATE ast_yy_scan_string (yyconst char * str , yyscan_t yyscanner) { - return ast_yy_scan_bytes(yy_str,strlen(yy_str) ,yyscanner); + return ast_yy_scan_bytes(str,strlen(str) ,yyscanner); } /** Setup the input buffer state to scan the given bytes. The next call to ast_yylex() will @@ -2332,7 +2681,7 @@ void ast_yyset_lineno (int line_number , yyscan_t yyscanner) } /** Set the current column. - * @param column_no + * @param line_number * @param yyscanner The scanner object. */ void ast_yyset_column (int column_no , yyscan_t yyscanner) @@ -2547,7 +2896,7 @@ void ast_yyfree (void * ptr , yyscan_t yyscanner) #undef YY_DECL_IS_OURS #undef YY_DECL #endif -#line 88 "ast_expr2.fl" +#line 103 "ast_expr2.fl" @@ -2594,6 +2943,7 @@ int ast_expr(char *expr, char *buf, int length) ast_copy_string(buf, io.val->u.s, length); #endif /* STANDALONE */ return_value = strlen(buf); + free(io.val->u.s); } free(io.val); } @@ -2608,15 +2958,6 @@ int ast_yyerror (const char *s, yyltype *loc, struct parse_io *parseio ) int i=0; spacebuf[0] = 0; -#ifdef WHEN_LOC_MEANS_SOMETHING - if( loc->first_column > 7990 ) /* if things get out of whack, why crash? */ - loc->first_column = 7990; - if( loc->last_column > 7990 ) - loc->last_column = 7990; - for(i=0;ifirst_column;i++) spacebuf[i] = ' '; - for( ;ilast_column;i++) spacebuf[i] = '^'; - spacebuf[i] = 0; -#endif for(i=0;i< (int)(yytext - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf);i++) spacebuf2[i] = ' '; /* uh... assuming yyg is defined, then I can use the yycolumn macro, which is the same thing as... get this: yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_bs_column