util_expr_parse.c revision 429a8397b16b663be30cce927a20458ef2e7488a
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* A Bison parser, made by GNU Bison 2.7.12-4996. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Bison implementation for Yacc-like parsers in C
e07d9cb85217949d497b02d7211de8a197d2f2ebzf Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
e07d9cb85217949d497b02d7211de8a197d2f2ebzf This program is free software: you can redistribute it and/or modify
e07d9cb85217949d497b02d7211de8a197d2f2ebzf it under the terms of the GNU General Public License as published by
e07d9cb85217949d497b02d7211de8a197d2f2ebzf the Free Software Foundation, either version 3 of the License, or
e07d9cb85217949d497b02d7211de8a197d2f2ebzf (at your option) any later version.
e07d9cb85217949d497b02d7211de8a197d2f2ebzf This program is distributed in the hope that it will be useful,
e07d9cb85217949d497b02d7211de8a197d2f2ebzf but WITHOUT ANY WARRANTY; without even the implied warranty of
e07d9cb85217949d497b02d7211de8a197d2f2ebzf MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
e07d9cb85217949d497b02d7211de8a197d2f2ebzf GNU General Public License for more details.
e07d9cb85217949d497b02d7211de8a197d2f2ebzf You should have received a copy of the GNU General Public License
e07d9cb85217949d497b02d7211de8a197d2f2ebzf along with this program. If not, see <http://www.gnu.org/licenses/>. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* As a special exception, you may create a larger work that contains
e07d9cb85217949d497b02d7211de8a197d2f2ebzf part or all of the Bison parser skeleton and distribute that work
e07d9cb85217949d497b02d7211de8a197d2f2ebzf under terms of your choice, so long as that work isn't itself a
e07d9cb85217949d497b02d7211de8a197d2f2ebzf parser generator using the skeleton or a modified version thereof
e07d9cb85217949d497b02d7211de8a197d2f2ebzf as a parser skeleton. Alternatively, if you modify or redistribute
e07d9cb85217949d497b02d7211de8a197d2f2ebzf the parser skeleton itself, you may (at your option) remove this
e07d9cb85217949d497b02d7211de8a197d2f2ebzf special exception, which will cause the skeleton and the resulting
e07d9cb85217949d497b02d7211de8a197d2f2ebzf Bison output files to be licensed under the GNU General Public
e07d9cb85217949d497b02d7211de8a197d2f2ebzf License without this special exception.
e07d9cb85217949d497b02d7211de8a197d2f2ebzf This special exception was added by the Free Software Foundation in
e07d9cb85217949d497b02d7211de8a197d2f2ebzf version 2.2 of Bison. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* C LALR(1) parser skeleton written by Richard Stallman, by
e07d9cb85217949d497b02d7211de8a197d2f2ebzf simplifying the original so-called "semantic" parser. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* All symbols defined below should begin with yy or YY, to avoid
e07d9cb85217949d497b02d7211de8a197d2f2ebzf infringing on user name space. This should be done even for local
e07d9cb85217949d497b02d7211de8a197d2f2ebzf variables, as they might otherwise be expanded by user macros.
e07d9cb85217949d497b02d7211de8a197d2f2ebzf There are some unavoidable exceptions within include files to
e07d9cb85217949d497b02d7211de8a197d2f2ebzf define necessary library symbols; they are noted "INFRINGES ON
da14cebe459d3275048785f25bd869cb09b5307fEric Cheng USER NAME SPACE" below. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Identify Bison output. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Bison version. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Skeleton name. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Pure parsers. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Push parsers. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Pull parsers. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Substitute the variable and function names. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Copy the first part of user declarations. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 371 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 371 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Enabling verbose error messages. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* In a future release of Bison, this section will be replaced
e07d9cb85217949d497b02d7211de8a197d2f2ebzf by #include "util_expr_parse.h". */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Enabling traces. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Tokens. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* Put the tokens into the symbol table, so that GDB and other debuggers
e07d9cb85217949d497b02d7211de8a197d2f2ebzf know about them. */
fe3e6e3a98f98e7ab1a751934c0116fb914b9c82Quaker Fang#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
e07d9cb85217949d497b02d7211de8a197d2f2ebzftypedef union YYSTYPE
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 387 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 387 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf# define yystype YYSTYPE /* obsolescent; will be withdrawn */
afdda45f890ee5dfc86e5131a30b11b354d51633Vasumathi Sundaram - Sun Microsystems#if defined __STDC__ || defined __cplusplus
e07d9cb85217949d497b02d7211de8a197d2f2ebzf#else /* ! YYPARSE_PARAM */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf#endif /* ! YYPARSE_PARAM */
5644143a6cf1e70bc2e78d5140970830aae0e8cdQuaker Fang#endif /* !YY_AP_EXPR_YY_UTIL_EXPR_PARSE_H_INCLUDED */
5644143a6cf1e70bc2e78d5140970830aae0e8cdQuaker Fang/* Copy the second part of user declarations. */
5644143a6cf1e70bc2e78d5140970830aae0e8cdQuaker Fang/* Line 390 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 390 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf#ifdef short
e07d9cb85217949d497b02d7211de8a197d2f2ebzftypedef unsigned char yytype_uint8;
e07d9cb85217949d497b02d7211de8a197d2f2ebzftypedef signed char yytype_int8;
e07d9cb85217949d497b02d7211de8a197d2f2ebzftypedef short int yytype_int8;
e07d9cb85217949d497b02d7211de8a197d2f2ebzftypedef unsigned short int yytype_uint16;
e07d9cb85217949d497b02d7211de8a197d2f2ebzftypedef short int yytype_int16;
e07d9cb85217949d497b02d7211de8a197d2f2ebzf# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
e07d9cb85217949d497b02d7211de8a197d2f2ebzf# define YYSIZE_T unsigned int
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* This feature is available in gcc versions 2.5 and later. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Suppress unused-variable warnings by "using" E. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf# define YYUSE(E) ((void) (E))
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Identity function, used to suppress warnings about constant conditions. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf# define YYID(N) (N)
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* The parser invokes alloca or malloc; define the necessary symbols. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* Use EXIT_SUCCESS as a witness for stdlib.h. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* Pacify GCC's `empty if-body' warning. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* The OS might guarantee only one guard page at the bottom of the stack,
e07d9cb85217949d497b02d7211de8a197d2f2ebzf and a page size can be as small as 4096 bytes. So we cannot safely
e07d9cb85217949d497b02d7211de8a197d2f2ebzf invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
e07d9cb85217949d497b02d7211de8a197d2f2ebzf to allow for a few compiler-allocated temporary stack slots. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf# if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
e07d9cb85217949d497b02d7211de8a197d2f2ebzfvoid *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf# if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
e07d9cb85217949d497b02d7211de8a197d2f2ebzf#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf#if (! defined yyoverflow \
e07d9cb85217949d497b02d7211de8a197d2f2ebzf && (! defined __cplusplus \
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* A type that is properly aligned for any stack member. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* The size of the maximum gap between one aligned stack and the next. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* The size of an array large to enough to hold all stacks, each with
e07d9cb85217949d497b02d7211de8a197d2f2ebzf N elements. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf# define YYSTACK_BYTES(N) \
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Relocate STACK from its old location to the new one. The
e07d9cb85217949d497b02d7211de8a197d2f2ebzf local variables YYSIZE and YYSTACKSIZE give the old and new number of
e07d9cb85217949d497b02d7211de8a197d2f2ebzf elements in the stack, and YYPTR gives the new location of the
e07d9cb85217949d497b02d7211de8a197d2f2ebzf stack. Advance YYPTR to a properly aligned location for the next
e07d9cb85217949d497b02d7211de8a197d2f2ebzf yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
e07d9cb85217949d497b02d7211de8a197d2f2ebzf while (YYID (0))
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Copy COUNT objects from SRC to DST. The source and destination do
e07d9cb85217949d497b02d7211de8a197d2f2ebzf not overlap. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf while (YYID (0))
e07d9cb85217949d497b02d7211de8a197d2f2ebzf#endif /* !YYCOPY_NEEDED */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* YYFINAL -- State number of the termination state. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* YYLAST -- Last index in YYTABLE. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* YYNTOKENS -- Number of terminals. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* YYNNTS -- Number of nonterminals. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* YYNRULES -- Number of rules. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* YYNRULES -- Number of states. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* YYRHS -- A `-1'-separated list of the rules' RHS. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
e07d9cb85217949d497b02d7211de8a197d2f2ebzf First, the terminals, then, starting at YYNTOKENS, nonterminals. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzfstatic const char *const yytname[] =
e07d9cb85217949d497b02d7211de8a197d2f2ebzf "\"boolean expression\"", "\"string expression\"", "\"error token\"",
e07d9cb85217949d497b02d7211de8a197d2f2ebzf "\"number\"", "\"identifier\"", "\"cstring\"", "\"regex\"",
e07d9cb85217949d497b02d7211de8a197d2f2ebzf "\"unary operator\"", "\"binary operator\"", "\"start of string\"",
e07d9cb85217949d497b02d7211de8a197d2f2ebzf "\"end of variable name\"", "\"integer equal\"", "\"integer not equal\"",
1a932f2eab9b00d713acc4205d96ca2485bf2712Quaker Fang "\"integer less than\"", "\"integer less or equal\"",
e07d9cb85217949d497b02d7211de8a197d2f2ebzf "\"integer greater than\"", "\"integer greater or equal\"",
e07d9cb85217949d497b02d7211de8a197d2f2ebzf "\"regex match\"", "\"regex non-match\"", "\"contained in\"",
e07d9cb85217949d497b02d7211de8a197d2f2ebzf "\"string equal\"", "\"string not equal\"", "\"string less than\"",
e07d9cb85217949d497b02d7211de8a197d2f2ebzf "\"string greater or equal\"", "\"string concatenation\"",
e07d9cb85217949d497b02d7211de8a197d2f2ebzf "\"logical or\"", "\"logical and\"", "\"logical not\"", "\"function\"",
e07d9cb85217949d497b02d7211de8a197d2f2ebzf "\"listfunction\"", "\"stringpart\"", "\"variable\"", "\"rebackref\"",
e07d9cb85217949d497b02d7211de8a197d2f2ebzf "'('", "')'", "'{'", "'}'", "','", "':'", "$accept", "root", "expr",
e07d9cb85217949d497b02d7211de8a197d2f2ebzf "comparison", "wordlist", "words", "string", "strpart", "var", "word",
e07d9cb85217949d497b02d7211de8a197d2f2ebzf "regex", "backref", "lstfunccall", "strfunccall", YY_NULL
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
e07d9cb85217949d497b02d7211de8a197d2f2ebzf token YYLEX-NUM. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
e07d9cb85217949d497b02d7211de8a197d2f2ebzf Performed when YYTABLE doesn't specify something else to do. Zero
e07d9cb85217949d497b02d7211de8a197d2f2ebzf means the default is an error. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* YYDEFGOTO[NTERM-NUM]. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
e07d9cb85217949d497b02d7211de8a197d2f2ebzf STATE-NUM. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* YYPGOTO[NTERM-NUM]. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
e07d9cb85217949d497b02d7211de8a197d2f2ebzf positive, shift that token. If negative, reduce the rule which
e07d9cb85217949d497b02d7211de8a197d2f2ebzf number is the opposite. If YYTABLE_NINF, syntax error. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
e07d9cb85217949d497b02d7211de8a197d2f2ebzf symbol of state STATE-NUM. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Like YYERROR except do call yyerror. This remains here temporarily
e07d9cb85217949d497b02d7211de8a197d2f2ebzf to ease the transition to the new meaning of YYERROR, for GCC.
e07d9cb85217949d497b02d7211de8a197d2f2ebzf Once GCC version 2 has supplanted version 1, this can go. However,
e07d9cb85217949d497b02d7211de8a197d2f2ebzf YYFAIL appears to be in use. Nevertheless, it is formally deprecated
e07d9cb85217949d497b02d7211de8a197d2f2ebzf in Bison 2.4.2's NEWS entry, where a plan to phase it out is
e07d9cb85217949d497b02d7211de8a197d2f2ebzf discussed. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf#if defined YYFAIL
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* This is here to suppress warnings from the GCC cpp's
e07d9cb85217949d497b02d7211de8a197d2f2ebzf -Wunused-macros. Normally we don't worry about that warning, but
e07d9cb85217949d497b02d7211de8a197d2f2ebzf some users do, and we want to make it easy for users to remove
e07d9cb85217949d497b02d7211de8a197d2f2ebzf YYFAIL uses, which will produce warnings from Bison 2.5. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzfwhile (YYID (0))
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Error token number */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* This macro is provided for backward compatibility. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* YYLEX -- calling `yylex' with the right arguments. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Enable debugging if requested. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf} while (YYID (0))
e07d9cb85217949d497b02d7211de8a197d2f2ebzf} while (YYID (0))
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/*--------------------------------.
e07d9cb85217949d497b02d7211de8a197d2f2ebzf| Print this symbol on YYOUTPUT. |
e07d9cb85217949d497b02d7211de8a197d2f2ebzf`--------------------------------*/
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/*ARGSUSED*/
e07d9cb85217949d497b02d7211de8a197d2f2ebzfstatic void
e07d9cb85217949d497b02d7211de8a197d2f2ebzfyy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, ap_expr_parse_ctx_t *ctx)
e07d9cb85217949d497b02d7211de8a197d2f2ebzfstatic void
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/*--------------------------------.
e07d9cb85217949d497b02d7211de8a197d2f2ebzf| Print this symbol on YYOUTPUT. |
e07d9cb85217949d497b02d7211de8a197d2f2ebzf`--------------------------------*/
e07d9cb85217949d497b02d7211de8a197d2f2ebzfstatic void
e07d9cb85217949d497b02d7211de8a197d2f2ebzfyy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, ap_expr_parse_ctx_t *ctx)
e07d9cb85217949d497b02d7211de8a197d2f2ebzfstatic void
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/*------------------------------------------------------------------.
e07d9cb85217949d497b02d7211de8a197d2f2ebzf| yy_stack_print -- Print the state stack from its BOTTOM up to its |
e07d9cb85217949d497b02d7211de8a197d2f2ebzf| TOP (included). |
e07d9cb85217949d497b02d7211de8a197d2f2ebzf`------------------------------------------------------------------*/
e07d9cb85217949d497b02d7211de8a197d2f2ebzfstatic void
e07d9cb85217949d497b02d7211de8a197d2f2ebzfyy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
e07d9cb85217949d497b02d7211de8a197d2f2ebzfstatic void
e07d9cb85217949d497b02d7211de8a197d2f2ebzf} while (YYID (0))
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/*------------------------------------------------.
e07d9cb85217949d497b02d7211de8a197d2f2ebzf| Report that the YYRULE is going to be reduced. |
e07d9cb85217949d497b02d7211de8a197d2f2ebzf`------------------------------------------------*/
e07d9cb85217949d497b02d7211de8a197d2f2ebzfstatic void
e07d9cb85217949d497b02d7211de8a197d2f2ebzfyy_reduce_print (YYSTYPE *yyvsp, int yyrule, ap_expr_parse_ctx_t *ctx)
e07d9cb85217949d497b02d7211de8a197d2f2ebzfstatic void
e07d9cb85217949d497b02d7211de8a197d2f2ebzf YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* The symbols being reduced. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf} while (YYID (0))
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Nonzero means print parse trace. It is left uninitialized so that
e07d9cb85217949d497b02d7211de8a197d2f2ebzf multiple parsers can coexist. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf#else /* !YYDEBUG */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf#endif /* !YYDEBUG */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* YYINITDEPTH -- initial size of the parser's stacks. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
e07d9cb85217949d497b02d7211de8a197d2f2ebzf if the built-in stack extension method is used).
e07d9cb85217949d497b02d7211de8a197d2f2ebzf Do not make this value too large; the results are undefined if
e07d9cb85217949d497b02d7211de8a197d2f2ebzf YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
e07d9cb85217949d497b02d7211de8a197d2f2ebzf evaluated with infinite-precision integer arithmetic. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Return the length of YYSTR. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf const char *yystr;
e07d9cb85217949d497b02d7211de8a197d2f2ebzf# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
e07d9cb85217949d497b02d7211de8a197d2f2ebzf YYDEST. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzfstatic char *
e07d9cb85217949d497b02d7211de8a197d2f2ebzfstatic char *
e07d9cb85217949d497b02d7211de8a197d2f2ebzf const char *yysrc;
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
e07d9cb85217949d497b02d7211de8a197d2f2ebzf quotes and backslashes, so that it's suitable for yyerror. The
e07d9cb85217949d497b02d7211de8a197d2f2ebzf heuristic is that double-quoting is unnecessary unless the string
e07d9cb85217949d497b02d7211de8a197d2f2ebzf contains an apostrophe, a comma, or backslash (other than
e07d9cb85217949d497b02d7211de8a197d2f2ebzf backslash-backslash). YYSTR is taken from yytname. If YYRES is
e07d9cb85217949d497b02d7211de8a197d2f2ebzf null, do not copy; instead, return the length of what the result
e07d9cb85217949d497b02d7211de8a197d2f2ebzf would have been. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf switch (*++yyp)
e07d9cb85217949d497b02d7211de8a197d2f2ebzf case '\'':
e07d9cb85217949d497b02d7211de8a197d2f2ebzf case '\\':
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* Fall through. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
e07d9cb85217949d497b02d7211de8a197d2f2ebzf about the unexpected token YYTOKEN for the state stack whose top is
1a932f2eab9b00d713acc4205d96ca2485bf2712Quaker Fang Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
e07d9cb85217949d497b02d7211de8a197d2f2ebzf not large enough to hold the message. In that case, also set
e07d9cb85217949d497b02d7211de8a197d2f2ebzf *YYMSG_ALLOC to the required number of bytes. Return 2 if the
e07d9cb85217949d497b02d7211de8a197d2f2ebzf required number of bytes is too large to store. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* Internationalized format string. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* Arguments of yyformat. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* Number of reported tokens (one for the "unexpected", one per
e07d9cb85217949d497b02d7211de8a197d2f2ebzf "expected"). */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* There are many possibilities here to consider:
e07d9cb85217949d497b02d7211de8a197d2f2ebzf - Assume YYFAIL is not used. It's too flawed to consider. See
e07d9cb85217949d497b02d7211de8a197d2f2ebzf <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
e07d9cb85217949d497b02d7211de8a197d2f2ebzf for details. YYERROR is fine as it does not invoke this
e07d9cb85217949d497b02d7211de8a197d2f2ebzf - If this state is a consistent state with a default action, then
e07d9cb85217949d497b02d7211de8a197d2f2ebzf the only way this function was invoked is if the default action
e07d9cb85217949d497b02d7211de8a197d2f2ebzf is an error action. In that case, don't check for expected
e07d9cb85217949d497b02d7211de8a197d2f2ebzf tokens because there are none.
e07d9cb85217949d497b02d7211de8a197d2f2ebzf - The only way there can be no lookahead present (in yychar) is if
1a932f2eab9b00d713acc4205d96ca2485bf2712Quaker Fang this state is a consistent state with a default action. Thus,
e07d9cb85217949d497b02d7211de8a197d2f2ebzf detecting the absence of a lookahead is sufficient to determine
e07d9cb85217949d497b02d7211de8a197d2f2ebzf that there is no unexpected or expected token to report. In that
e07d9cb85217949d497b02d7211de8a197d2f2ebzf case, just report a simple "syntax error".
e07d9cb85217949d497b02d7211de8a197d2f2ebzf - Don't assume there isn't a lookahead just because this state is a
e07d9cb85217949d497b02d7211de8a197d2f2ebzf consistent state with a default action. There might have been a
e07d9cb85217949d497b02d7211de8a197d2f2ebzf previous inconsistent state, consistent state with a non-default
e07d9cb85217949d497b02d7211de8a197d2f2ebzf action, or user semantic action that manipulated yychar.
e07d9cb85217949d497b02d7211de8a197d2f2ebzf - Of course, the expected token list depends on states to have
e07d9cb85217949d497b02d7211de8a197d2f2ebzf correct lookahead information, and it depends on the parser not
e07d9cb85217949d497b02d7211de8a197d2f2ebzf to perform extra reductions after fetching a lookahead from the
e07d9cb85217949d497b02d7211de8a197d2f2ebzf scanner and before detecting a syntax error. Thus, state merging
e07d9cb85217949d497b02d7211de8a197d2f2ebzf (from LALR or IELR) and default reductions corrupt the expected
e07d9cb85217949d497b02d7211de8a197d2f2ebzf token list. However, the list is correct for canonical LR with
e07d9cb85217949d497b02d7211de8a197d2f2ebzf one exception: it will still contain any token that will not be
e07d9cb85217949d497b02d7211de8a197d2f2ebzf accepted due to an error action in a later state.
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* Start YYX at -YYN if negative to avoid negative indexes in
e07d9cb85217949d497b02d7211de8a197d2f2ebzf YYCHECK. In other words, skip the first -YYN actions for
e07d9cb85217949d497b02d7211de8a197d2f2ebzf this state because they are default actions. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* Stay within bounds of both yycheck and yytname. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
e07d9cb85217949d497b02d7211de8a197d2f2ebzf YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
1a932f2eab9b00d713acc4205d96ca2485bf2712Quaker Fang# define YYCASE_(N, S) \
e07d9cb85217949d497b02d7211de8a197d2f2ebzf YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
1a932f2eab9b00d713acc4205d96ca2485bf2712Quaker Fang YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
e07d9cb85217949d497b02d7211de8a197d2f2ebzf YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
e07d9cb85217949d497b02d7211de8a197d2f2ebzf YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
e07d9cb85217949d497b02d7211de8a197d2f2ebzf if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* Avoid sprintf, as that infringes on the user's name space.
e07d9cb85217949d497b02d7211de8a197d2f2ebzf Don't have undefined behavior even if the translation
e07d9cb85217949d497b02d7211de8a197d2f2ebzf produced a string with the wrong number of "%s"s. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf#endif /* YYERROR_VERBOSE */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/*-----------------------------------------------.
e07d9cb85217949d497b02d7211de8a197d2f2ebzf| Release the memory associated to this symbol. |
e07d9cb85217949d497b02d7211de8a197d2f2ebzf`-----------------------------------------------*/
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/*ARGSUSED*/
e07d9cb85217949d497b02d7211de8a197d2f2ebzfstatic void
e07d9cb85217949d497b02d7211de8a197d2f2ebzfyydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, ap_expr_parse_ctx_t *ctx)
e07d9cb85217949d497b02d7211de8a197d2f2ebzfstatic void
e07d9cb85217949d497b02d7211de8a197d2f2ebzf const char *yymsg;
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/*----------.
e07d9cb85217949d497b02d7211de8a197d2f2ebzf| yyparse. |
e07d9cb85217949d497b02d7211de8a197d2f2ebzf`----------*/
e07d9cb85217949d497b02d7211de8a197d2f2ebzf#else /* ! YYPARSE_PARAM */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* The lookahead symbol. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Suppress an incorrect diagnostic about yylval being uninitialized. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Default value used for initialization, for pacifying older GCCs
e07d9cb85217949d497b02d7211de8a197d2f2ebzf or non-GCC compilers. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* The semantic value of the lookahead symbol. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* Number of syntax errors so far. */
ff3124eff995e6cd8ebd8c6543648e0670920034ff /* Number of tokens to shift before error messages enabled. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* The stacks and their tools:
e07d9cb85217949d497b02d7211de8a197d2f2ebzf `yyss': related to states.
e07d9cb85217949d497b02d7211de8a197d2f2ebzf `yyvs': related to semantic values.
e07d9cb85217949d497b02d7211de8a197d2f2ebzf Refer to the stacks through separate pointers, to allow yyoverflow
e07d9cb85217949d497b02d7211de8a197d2f2ebzf to reallocate them elsewhere. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* The state stack. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* The semantic value stack. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* Lookahead token as an internal (translated) token number. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* The variables used to return semantic value and location from the
e07d9cb85217949d497b02d7211de8a197d2f2ebzf action routines. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* Buffer for error messages, and its allocated size. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* The number of symbols on the RHS of the reduced rule.
e07d9cb85217949d497b02d7211de8a197d2f2ebzf Keep to zero when no symbol should be popped. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/*------------------------------------------------------------.
e07d9cb85217949d497b02d7211de8a197d2f2ebzf| yynewstate -- Push a new state, which is found in yystate. |
e07d9cb85217949d497b02d7211de8a197d2f2ebzf`------------------------------------------------------------*/
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* In all cases, when you get here, the value and location stacks
e07d9cb85217949d497b02d7211de8a197d2f2ebzf have just been pushed. So pushing a state here evens the stacks. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* Get the current used size of the three stacks, in elements. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* Give user a chance to reallocate the stack. Use copies of
e07d9cb85217949d497b02d7211de8a197d2f2ebzf these so that the &'s don't force the real ones into
e07d9cb85217949d497b02d7211de8a197d2f2ebzf memory. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* Each stack pointer address is followed by the size of the
e07d9cb85217949d497b02d7211de8a197d2f2ebzf data in use in that stack, in bytes. This used to be a
e07d9cb85217949d497b02d7211de8a197d2f2ebzf conditional around just the two extra args, but that might
e07d9cb85217949d497b02d7211de8a197d2f2ebzf be undefined if yyoverflow is a macro. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf#else /* no yyoverflow */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* Extend the stack our own way. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
e07d9cb85217949d497b02d7211de8a197d2f2ebzf#endif /* no yyoverflow */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf (unsigned long int) yystacksize));
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/*-----------.
e07d9cb85217949d497b02d7211de8a197d2f2ebzf| yybackup. |
e07d9cb85217949d497b02d7211de8a197d2f2ebzf`-----------*/
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* Do appropriate processing given the current state. Read a
e07d9cb85217949d497b02d7211de8a197d2f2ebzf lookahead token if we need one and don't already have one. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* First try to decide what to do without reference to lookahead token. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* Not known => get a lookahead token if don't already have one. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* If the proper action on seeing token YYTOKEN is to reduce or to
e07d9cb85217949d497b02d7211de8a197d2f2ebzf detect an error, take that action. */
fe3e6e3a98f98e7ab1a751934c0116fb914b9c82Quaker Fang if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* Count tokens shifted since error; after three, turn off error
e07d9cb85217949d497b02d7211de8a197d2f2ebzf status. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* Shift the lookahead token. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* Discard the shifted token. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/*-----------------------------------------------------------.
e07d9cb85217949d497b02d7211de8a197d2f2ebzf| yydefault -- do the default action for the current state. |
e07d9cb85217949d497b02d7211de8a197d2f2ebzf`-----------------------------------------------------------*/
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/*-----------------------------.
e07d9cb85217949d497b02d7211de8a197d2f2ebzf| yyreduce -- Do a reduction. |
e07d9cb85217949d497b02d7211de8a197d2f2ebzf`-----------------------------*/
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* yyn is the number of a rule to reduce with. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* If YYLEN is nonzero, implement the default value of the action:
e07d9cb85217949d497b02d7211de8a197d2f2ebzf `$$ = $1'.
e07d9cb85217949d497b02d7211de8a197d2f2ebzf Otherwise, the following line sets YYVAL to garbage.
e07d9cb85217949d497b02d7211de8a197d2f2ebzf This behavior is undocumented and Bison
e07d9cb85217949d497b02d7211de8a197d2f2ebzf users should not rely upon it. Assigning to YYVAL
e07d9cb85217949d497b02d7211de8a197d2f2ebzf unconditionally makes the parser a bit smaller, and it avoids a
e07d9cb85217949d497b02d7211de8a197d2f2ebzf GCC warning that YYVAL may be used uninitialized. */
ff3124eff995e6cd8ebd8c6543648e0670920034ff/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf { (yyval.exVal) = ap_expr_make(op_True, NULL, NULL, ctx); }
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf { (yyval.exVal) = ap_expr_make(op_False, NULL, NULL, ctx); }
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
fb91fd8a302dfb13e250bbefb6a3970c2edc3ae3zf { (yyval.exVal) = ap_expr_make(op_Not, (yyvsp[(2) - (2)].exVal), NULL, ctx); }
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf { (yyval.exVal) = ap_expr_make(op_Or, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); }
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf { (yyval.exVal) = ap_expr_make(op_And, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); }
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf { (yyval.exVal) = ap_expr_make(op_Comp, (yyvsp[(1) - (1)].exVal), NULL, ctx); }
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf { (yyval.exVal) = ap_expr_unary_op_make( (yyvsp[(1) - (2)].cpVal), (yyvsp[(2) - (2)].exVal), ctx); }
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf { (yyval.exVal) = ap_expr_binary_op_make((yyvsp[(2) - (3)].cpVal), (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); }
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf { (yyval.exVal) = ap_expr_make(op_EQ, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); }
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf { (yyval.exVal) = ap_expr_make(op_NE, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); }
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf { (yyval.exVal) = ap_expr_make(op_LT, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); }
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf { (yyval.exVal) = ap_expr_make(op_LE, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); }
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf { (yyval.exVal) = ap_expr_make(op_GT, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); }
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf { (yyval.exVal) = ap_expr_make(op_GE, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); }
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf { (yyval.exVal) = ap_expr_make(op_STR_EQ, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); }
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf { (yyval.exVal) = ap_expr_make(op_STR_NE, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); }
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf { (yyval.exVal) = ap_expr_make(op_STR_LT, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); }
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf { (yyval.exVal) = ap_expr_make(op_STR_LE, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); }
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf { (yyval.exVal) = ap_expr_make(op_STR_GT, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); }
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf { (yyval.exVal) = ap_expr_make(op_STR_GE, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); }
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf { (yyval.exVal) = ap_expr_make(op_IN, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); }
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf { (yyval.exVal) = ap_expr_make(op_REG, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); }
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf { (yyval.exVal) = ap_expr_make(op_NRE, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); }
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf { (yyval.exVal) = ap_expr_make(op_ListElement, (yyvsp[(1) - (1)].exVal), NULL, ctx); }
fb91fd8a302dfb13e250bbefb6a3970c2edc3ae3zf/* Line 1787 of yacc.c */
fb91fd8a302dfb13e250bbefb6a3970c2edc3ae3zf { (yyval.exVal) = ap_expr_make(op_ListElement, (yyvsp[(3) - (3)].exVal), (yyvsp[(1) - (3)].exVal), ctx); }
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf { (yyval.exVal) = ap_expr_make(op_Concat, (yyvsp[(1) - (2)].exVal), (yyvsp[(2) - (2)].exVal), ctx); }
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf { (yyval.exVal) = ap_expr_make(op_String, (yyvsp[(1) - (1)].cpVal), NULL, ctx); }
1a932f2eab9b00d713acc4205d96ca2485bf2712Quaker Fang/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf { (yyval.exVal) = ap_expr_var_make((yyvsp[(2) - (3)].cpVal), ctx); }
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf { (yyval.exVal) = ap_expr_str_func_make((yyvsp[(2) - (5)].cpVal), (yyvsp[(4) - (5)].exVal), ctx); }
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf { (yyval.exVal) = ap_expr_make(op_Digit, (yyvsp[(1) - (1)].cpVal), NULL, ctx); }
1a932f2eab9b00d713acc4205d96ca2485bf2712Quaker Fang/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf { (yyval.exVal) = ap_expr_make(op_Concat, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); }
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf { (yyval.exVal) = ap_expr_make(op_String, "", NULL, ctx); }
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf if ((regex = ap_pregcomp(ctx->pool, (yyvsp[(1) - (1)].cpVal),
e07d9cb85217949d497b02d7211de8a197d2f2ebzf (yyval.exVal) = ap_expr_make(op_Regex, regex, NULL, ctx);
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf if ((regex = ap_pregcomp(ctx->pool, (yyvsp[(1) - (1)].cpVal),
e07d9cb85217949d497b02d7211de8a197d2f2ebzf (yyval.exVal) = ap_expr_make(op_Regex, regex, NULL, ctx);
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf (yyval.exVal) = ap_expr_make(op_RegexBackref, n, NULL, ctx);
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf { (yyval.exVal) = ap_expr_list_func_make((yyvsp[(1) - (4)].cpVal), (yyvsp[(3) - (4)].exVal), ctx); }
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf { (yyval.exVal) = ap_expr_str_func_make((yyvsp[(1) - (4)].cpVal), (yyvsp[(3) - (4)].exVal), ctx); }
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 1787 of yacc.c */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf default: break;
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* User semantic actions sometimes alter yychar, and that requires
e07d9cb85217949d497b02d7211de8a197d2f2ebzf that yytoken be updated with the new translation. We take the
1a932f2eab9b00d713acc4205d96ca2485bf2712Quaker Fang approach of translating immediately before every use of yytoken.
e07d9cb85217949d497b02d7211de8a197d2f2ebzf One alternative is translating here after every semantic action,
e07d9cb85217949d497b02d7211de8a197d2f2ebzf but that translation would be missed if the semantic action invokes
e07d9cb85217949d497b02d7211de8a197d2f2ebzf YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
e07d9cb85217949d497b02d7211de8a197d2f2ebzf if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
e07d9cb85217949d497b02d7211de8a197d2f2ebzf incorrect destructor might then be invoked immediately. In the
e07d9cb85217949d497b02d7211de8a197d2f2ebzf case of YYERROR or YYBACKUP, subsequent parser actions might lead
e07d9cb85217949d497b02d7211de8a197d2f2ebzf to an incorrect destructor call or verbose syntax error message
e07d9cb85217949d497b02d7211de8a197d2f2ebzf before the lookahead is translated. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* Now `shift' the result of the reduction. Determine what state
e07d9cb85217949d497b02d7211de8a197d2f2ebzf that goes to, based on the state we popped back to and the rule
e07d9cb85217949d497b02d7211de8a197d2f2ebzf number reduced by. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/*------------------------------------.
e07d9cb85217949d497b02d7211de8a197d2f2ebzf| yyerrlab -- here on detecting error |
e07d9cb85217949d497b02d7211de8a197d2f2ebzf`------------------------------------*/
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* Make sure we have latest lookahead translation. See comments at
e07d9cb85217949d497b02d7211de8a197d2f2ebzf user semantic actions for why this is necessary. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* If not already recovering from an error, report this error. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* If just tried and failed to reuse lookahead token after an
e07d9cb85217949d497b02d7211de8a197d2f2ebzf error, discard it. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* Return failure if at end of input. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* Else will try to reuse lookahead token after shifting the error
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/*---------------------------------------------------.
e07d9cb85217949d497b02d7211de8a197d2f2ebzf| yyerrorlab -- error raised explicitly by YYERROR. |
e07d9cb85217949d497b02d7211de8a197d2f2ebzf`---------------------------------------------------*/
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* Pacify compilers like GCC when the user code never invokes
e07d9cb85217949d497b02d7211de8a197d2f2ebzf YYERROR and the label yyerrorlab therefore never appears in user
e07d9cb85217949d497b02d7211de8a197d2f2ebzf if (/*CONSTCOND*/ 0)
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* Do not reclaim the symbols of the rule which action triggered
e07d9cb85217949d497b02d7211de8a197d2f2ebzf this YYERROR. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/*-------------------------------------------------------------.
e07d9cb85217949d497b02d7211de8a197d2f2ebzf| yyerrlab1 -- common code for both syntax error and YYERROR. |
e07d9cb85217949d497b02d7211de8a197d2f2ebzf`-------------------------------------------------------------*/
e07d9cb85217949d497b02d7211de8a197d2f2ebzf yyerrstatus = 3; /* Each real token shifted decrements this. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* Pop the current state because it cannot handle the error token. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* Shift the error token. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/*-------------------------------------.
e07d9cb85217949d497b02d7211de8a197d2f2ebzf| yyacceptlab -- YYACCEPT comes here. |
e07d9cb85217949d497b02d7211de8a197d2f2ebzf`-------------------------------------*/
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/*-----------------------------------.
e07d9cb85217949d497b02d7211de8a197d2f2ebzf| yyabortlab -- YYABORT comes here. |
e07d9cb85217949d497b02d7211de8a197d2f2ebzf`-----------------------------------*/
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/*-------------------------------------------------.
e07d9cb85217949d497b02d7211de8a197d2f2ebzf| yyexhaustedlab -- memory exhaustion comes here. |
e07d9cb85217949d497b02d7211de8a197d2f2ebzf`-------------------------------------------------*/
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* Fall through. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* Make sure we have latest lookahead translation. See comments at
e07d9cb85217949d497b02d7211de8a197d2f2ebzf user semantic actions for why this is necessary. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* Do not reclaim the symbols of the rule which action triggered
e07d9cb85217949d497b02d7211de8a197d2f2ebzf this YYABORT or YYACCEPT. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf /* Make sure YYID is used. */
e07d9cb85217949d497b02d7211de8a197d2f2ebzf/* Line 2050 of yacc.c */
1a932f2eab9b00d713acc4205d96ca2485bf2712Quaker Fang /* s is allocated on the stack */