/src/httpd/server/util_expr_parse.c
| Line | Count | Source | 
| 1 |  | /* A Bison parser, made by GNU Bison 3.0.5.  */ | 
| 2 |  |  | 
| 3 |  | /* Bison implementation for Yacc-like parsers in C | 
| 4 |  |  | 
| 5 |  |    Copyright (C) 1984, 1989-1990, 2000-2015, 2018 Free Software Foundation, Inc. | 
| 6 |  |  | 
| 7 |  |    This program is free software: you can redistribute it and/or modify | 
| 8 |  |    it under the terms of the GNU General Public License as published by | 
| 9 |  |    the Free Software Foundation, either version 3 of the License, or | 
| 10 |  |    (at your option) any later version. | 
| 11 |  |  | 
| 12 |  |    This program is distributed in the hope that it will be useful, | 
| 13 |  |    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
| 14 |  |    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
| 15 |  |    GNU General Public License for more details. | 
| 16 |  |  | 
| 17 |  |    You should have received a copy of the GNU General Public License | 
| 18 |  |    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */ | 
| 19 |  |  | 
| 20 |  | /* As a special exception, you may create a larger work that contains | 
| 21 |  |    part or all of the Bison parser skeleton and distribute that work | 
| 22 |  |    under terms of your choice, so long as that work isn't itself a | 
| 23 |  |    parser generator using the skeleton or a modified version thereof | 
| 24 |  |    as a parser skeleton.  Alternatively, if you modify or redistribute | 
| 25 |  |    the parser skeleton itself, you may (at your option) remove this | 
| 26 |  |    special exception, which will cause the skeleton and the resulting | 
| 27 |  |    Bison output files to be licensed under the GNU General Public | 
| 28 |  |    License without this special exception. | 
| 29 |  |  | 
| 30 |  |    This special exception was added by the Free Software Foundation in | 
| 31 |  |    version 2.2 of Bison.  */ | 
| 32 |  |  | 
| 33 |  | /* C LALR(1) parser skeleton written by Richard Stallman, by | 
| 34 |  |    simplifying the original so-called "semantic" parser.  */ | 
| 35 |  |  | 
| 36 |  | /* All symbols defined below should begin with yy or YY, to avoid | 
| 37 |  |    infringing on user name space.  This should be done even for local | 
| 38 |  |    variables, as they might otherwise be expanded by user macros. | 
| 39 |  |    There are some unavoidable exceptions within include files to | 
| 40 |  |    define necessary library symbols; they are noted "INFRINGES ON | 
| 41 |  |    USER NAME SPACE" below.  */ | 
| 42 |  |  | 
| 43 |  | /* Identify Bison output.  */ | 
| 44 |  | #define YYBISON 1 | 
| 45 |  |  | 
| 46 |  | /* Bison version.  */ | 
| 47 |  | #define YYBISON_VERSION "3.0.5" | 
| 48 |  |  | 
| 49 |  | /* Skeleton name.  */ | 
| 50 |  | #define YYSKELETON_NAME "yacc.c" | 
| 51 |  |  | 
| 52 |  | /* Pure parsers.  */ | 
| 53 |  | #define YYPURE 1 | 
| 54 |  |  | 
| 55 |  | /* Push parsers.  */ | 
| 56 |  | #define YYPUSH 0 | 
| 57 |  |  | 
| 58 |  | /* Pull parsers.  */ | 
| 59 |  | #define YYPULL 1 | 
| 60 |  |  | 
| 61 |  |  | 
| 62 |  | /* Substitute the variable and function names.  */ | 
| 63 |  | #define yyparse         ap_expr_yyparse | 
| 64 | 179k | #define yylex           ap_expr_yylex | 
| 65 | 851 | #define yyerror         ap_expr_yyerror | 
| 66 |  | #define yydebug         ap_expr_yydebug | 
| 67 | 2.11k | #define yynerrs         ap_expr_yynerrs | 
| 68 |  |  | 
| 69 |  |  | 
| 70 |  | /* Copy the first part of user declarations.  */ | 
| 71 |  | #line 31 "util_expr_parse.y" /* yacc.c:339  */ | 
| 72 |  |  | 
| 73 |  | #include "util_expr_private.h" | 
| 74 |  |  | 
| 75 |  | #line 76 "util_expr_parse.c" /* yacc.c:339  */ | 
| 76 |  |  | 
| 77 |  | # ifndef YY_NULLPTR | 
| 78 |  | #  if defined __cplusplus && 201103L <= __cplusplus | 
| 79 |  | #   define YY_NULLPTR nullptr | 
| 80 |  | #  else | 
| 81 | 4.15k | #   define YY_NULLPTR 0 | 
| 82 |  | #  endif | 
| 83 |  | # endif | 
| 84 |  |  | 
| 85 |  | /* Enabling verbose error messages.  */ | 
| 86 |  | #ifdef YYERROR_VERBOSE | 
| 87 |  | # undef YYERROR_VERBOSE | 
| 88 |  | # define YYERROR_VERBOSE 1 | 
| 89 |  | #else | 
| 90 |  | # define YYERROR_VERBOSE 1 | 
| 91 |  | #endif | 
| 92 |  |  | 
| 93 |  | /* In a future release of Bison, this section will be replaced | 
| 94 |  |    by #include "util_expr_parse.h".  */ | 
| 95 |  | #ifndef YY_AP_EXPR_YY_UTIL_EXPR_PARSE_H_INCLUDED | 
| 96 |  | # define YY_AP_EXPR_YY_UTIL_EXPR_PARSE_H_INCLUDED | 
| 97 |  | /* Debug traces.  */ | 
| 98 |  | #ifndef YYDEBUG | 
| 99 |  | # define YYDEBUG 0 | 
| 100 |  | #endif | 
| 101 |  | #if YYDEBUG | 
| 102 |  | extern int ap_expr_yydebug; | 
| 103 |  | #endif | 
| 104 |  |  | 
| 105 |  | /* Token type.  */ | 
| 106 |  | #ifndef YYTOKENTYPE | 
| 107 |  | # define YYTOKENTYPE | 
| 108 |  |   enum yytokentype | 
| 109 |  |   { | 
| 110 |  |     T_TRUE = 258, | 
| 111 |  |     T_FALSE = 259, | 
| 112 |  |     T_EXPR_BOOL = 260, | 
| 113 |  |     T_EXPR_STRING = 261, | 
| 114 |  |     T_ERROR = 262, | 
| 115 |  |     T_DIGIT = 263, | 
| 116 |  |     T_ID = 264, | 
| 117 |  |     T_STRING = 265, | 
| 118 |  |     T_REGEX = 266, | 
| 119 |  |     T_REGSUB = 267, | 
| 120 |  |     T_REG_MATCH = 268, | 
| 121 |  |     T_REG_SUBST = 269, | 
| 122 |  |     T_REG_FLAGS = 270, | 
| 123 |  |     T_BACKREF = 271, | 
| 124 |  |     T_OP_UNARY = 272, | 
| 125 |  |     T_OP_BINARY = 273, | 
| 126 |  |     T_STR_BEGIN = 274, | 
| 127 |  |     T_STR_END = 275, | 
| 128 |  |     T_VAR_BEGIN = 276, | 
| 129 |  |     T_VAR_END = 277, | 
| 130 |  |     T_VAREXP_BEGIN = 278, | 
| 131 |  |     T_VAREXP_END = 279, | 
| 132 |  |     T_OP_EQ = 280, | 
| 133 |  |     T_OP_NE = 281, | 
| 134 |  |     T_OP_LT = 282, | 
| 135 |  |     T_OP_LE = 283, | 
| 136 |  |     T_OP_GT = 284, | 
| 137 |  |     T_OP_GE = 285, | 
| 138 |  |     T_OP_REG = 286, | 
| 139 |  |     T_OP_NRE = 287, | 
| 140 |  |     T_OP_IN = 288, | 
| 141 |  |     T_OP_STR_EQ = 289, | 
| 142 |  |     T_OP_STR_NE = 290, | 
| 143 |  |     T_OP_STR_LT = 291, | 
| 144 |  |     T_OP_STR_LE = 292, | 
| 145 |  |     T_OP_STR_GT = 293, | 
| 146 |  |     T_OP_STR_GE = 294, | 
| 147 |  |     T_OP_CONCAT = 295, | 
| 148 |  |     T_OP_JOIN = 296, | 
| 149 |  |     T_OP_SPLIT = 297, | 
| 150 |  |     T_OP_SUB = 298, | 
| 151 |  |     T_OP_OR = 299, | 
| 152 |  |     T_OP_AND = 300, | 
| 153 |  |     T_OP_NOT = 301 | 
| 154 |  |   }; | 
| 155 |  | #endif | 
| 156 |  |  | 
| 157 |  | /* Value type.  */ | 
| 158 |  | #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED | 
| 159 |  |  | 
| 160 |  | union YYSTYPE | 
| 161 |  | { | 
| 162 |  | #line 35 "util_expr_parse.y" /* yacc.c:355  */ | 
| 163 |  |  | 
| 164 |  |     char      *cpVal; | 
| 165 |  |     ap_expr_t *exVal; | 
| 166 |  |     int        num; | 
| 167 |  |  | 
| 168 |  | #line 169 "util_expr_parse.c" /* yacc.c:355  */ | 
| 169 |  | }; | 
| 170 |  |  | 
| 171 |  | typedef union YYSTYPE YYSTYPE; | 
| 172 |  | # define YYSTYPE_IS_TRIVIAL 1 | 
| 173 |  | # define YYSTYPE_IS_DECLARED 1 | 
| 174 |  | #endif | 
| 175 |  |  | 
| 176 |  |  | 
| 177 |  |  | 
| 178 |  | int ap_expr_yyparse (ap_expr_parse_ctx_t *ctx); | 
| 179 |  |  | 
| 180 |  | #endif /* !YY_AP_EXPR_YY_UTIL_EXPR_PARSE_H_INCLUDED  */ | 
| 181 |  |  | 
| 182 |  | /* Copy the second part of user declarations.  */ | 
| 183 |  | #line 118 "util_expr_parse.y" /* yacc.c:358  */ | 
| 184 |  |  | 
| 185 |  | #include "util_expr_private.h" | 
| 186 | 179k | #define yyscanner ctx->scanner | 
| 187 |  |  | 
| 188 |  | int ap_expr_yylex(YYSTYPE *lvalp, void *scanner); | 
| 189 |  |  | 
| 190 |  | #line 191 "util_expr_parse.c" /* yacc.c:358  */ | 
| 191 |  |  | 
| 192 |  | #ifdef short | 
| 193 |  | # undef short | 
| 194 |  | #endif | 
| 195 |  |  | 
| 196 |  | #ifdef YYTYPE_UINT8 | 
| 197 |  | typedef YYTYPE_UINT8 yytype_uint8; | 
| 198 |  | #else | 
| 199 |  | typedef unsigned char yytype_uint8; | 
| 200 |  | #endif | 
| 201 |  |  | 
| 202 |  | #ifdef YYTYPE_INT8 | 
| 203 |  | typedef YYTYPE_INT8 yytype_int8; | 
| 204 |  | #else | 
| 205 |  | typedef signed char yytype_int8; | 
| 206 |  | #endif | 
| 207 |  |  | 
| 208 |  | #ifdef YYTYPE_UINT16 | 
| 209 |  | typedef YYTYPE_UINT16 yytype_uint16; | 
| 210 |  | #else | 
| 211 |  | typedef unsigned short int yytype_uint16; | 
| 212 |  | #endif | 
| 213 |  |  | 
| 214 |  | #ifdef YYTYPE_INT16 | 
| 215 |  | typedef YYTYPE_INT16 yytype_int16; | 
| 216 |  | #else | 
| 217 |  | typedef short int yytype_int16; | 
| 218 |  | #endif | 
| 219 |  |  | 
| 220 |  | #ifndef YYSIZE_T | 
| 221 |  | # ifdef __SIZE_TYPE__ | 
| 222 | 11.0k | #  define YYSIZE_T __SIZE_TYPE__ | 
| 223 |  | # elif defined size_t | 
| 224 |  | #  define YYSIZE_T size_t | 
| 225 |  | # elif ! defined YYSIZE_T | 
| 226 |  | #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */ | 
| 227 |  | #  define YYSIZE_T size_t | 
| 228 |  | # else | 
| 229 |  | #  define YYSIZE_T unsigned int | 
| 230 |  | # endif | 
| 231 |  | #endif | 
| 232 |  |  | 
| 233 | 3.30k | #define YYSIZE_MAXIMUM ((YYSIZE_T) -1) | 
| 234 |  |  | 
| 235 |  | #ifndef YY_ | 
| 236 |  | # if defined YYENABLE_NLS && YYENABLE_NLS | 
| 237 |  | #  if ENABLE_NLS | 
| 238 |  | #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */ | 
| 239 |  | #   define YY_(Msgid) dgettext ("bison-runtime", Msgid) | 
| 240 |  | #  endif | 
| 241 |  | # endif | 
| 242 |  | # ifndef YY_ | 
| 243 | 851 | #  define YY_(Msgid) Msgid | 
| 244 |  | # endif | 
| 245 |  | #endif | 
| 246 |  |  | 
| 247 |  | #ifndef YY_ATTRIBUTE | 
| 248 |  | # if (defined __GNUC__                                               \ | 
| 249 |  |       && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \ | 
| 250 |  |      || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C | 
| 251 |  | #  define YY_ATTRIBUTE(Spec) __attribute__(Spec) | 
| 252 |  | # else | 
| 253 |  | #  define YY_ATTRIBUTE(Spec) /* empty */ | 
| 254 |  | # endif | 
| 255 |  | #endif | 
| 256 |  |  | 
| 257 |  | #ifndef YY_ATTRIBUTE_PURE | 
| 258 |  | # define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__)) | 
| 259 |  | #endif | 
| 260 |  |  | 
| 261 |  | #ifndef YY_ATTRIBUTE_UNUSED | 
| 262 |  | # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) | 
| 263 |  | #endif | 
| 264 |  |  | 
| 265 |  | #if !defined _Noreturn \ | 
| 266 |  |      && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) | 
| 267 |  | # if defined _MSC_VER && 1200 <= _MSC_VER | 
| 268 |  | #  define _Noreturn __declspec (noreturn) | 
| 269 |  | # else | 
| 270 |  | #  define _Noreturn YY_ATTRIBUTE ((__noreturn__)) | 
| 271 |  | # endif | 
| 272 |  | #endif | 
| 273 |  |  | 
| 274 |  | /* Suppress unused-variable warnings by "using" E.  */ | 
| 275 |  | #if ! defined lint || defined __GNUC__ | 
| 276 | 212k | # define YYUSE(E) ((void) (E)) | 
| 277 |  | #else | 
| 278 |  | # define YYUSE(E) /* empty */ | 
| 279 |  | #endif | 
| 280 |  |  | 
| 281 |  | #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ | 
| 282 |  | /* Suppress an incorrect diagnostic about yylval being uninitialized.  */ | 
| 283 |  | # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ | 
| 284 |  |     _Pragma ("GCC diagnostic push") \ | 
| 285 |  |     _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ | 
| 286 |  |     _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") | 
| 287 |  | # define YY_IGNORE_MAYBE_UNINITIALIZED_END \ | 
| 288 |  |     _Pragma ("GCC diagnostic pop") | 
| 289 |  | #else | 
| 290 | 2.53k | # define YY_INITIAL_VALUE(Value) Value | 
| 291 |  | #endif | 
| 292 |  | #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN | 
| 293 |  | # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN | 
| 294 |  | # define YY_IGNORE_MAYBE_UNINITIALIZED_END | 
| 295 |  | #endif | 
| 296 |  | #ifndef YY_INITIAL_VALUE | 
| 297 |  | # define YY_INITIAL_VALUE(Value) /* Nothing. */ | 
| 298 |  | #endif | 
| 299 |  |  | 
| 300 |  |  | 
| 301 |  | #if ! defined yyoverflow || YYERROR_VERBOSE | 
| 302 |  |  | 
| 303 |  | /* The parser invokes alloca or malloc; define the necessary symbols.  */ | 
| 304 |  |  | 
| 305 |  | # ifdef YYSTACK_USE_ALLOCA | 
| 306 |  | #  if YYSTACK_USE_ALLOCA | 
| 307 |  | #   ifdef __GNUC__ | 
| 308 |  | #    define YYSTACK_ALLOC __builtin_alloca | 
| 309 |  | #   elif defined __BUILTIN_VA_ARG_INCR | 
| 310 |  | #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */ | 
| 311 |  | #   elif defined _AIX | 
| 312 |  | #    define YYSTACK_ALLOC __alloca | 
| 313 |  | #   elif defined _MSC_VER | 
| 314 |  | #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */ | 
| 315 |  | #    define alloca _alloca | 
| 316 |  | #   else | 
| 317 |  | #    define YYSTACK_ALLOC alloca | 
| 318 |  | #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS | 
| 319 |  | #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ | 
| 320 |  |       /* Use EXIT_SUCCESS as a witness for stdlib.h.  */ | 
| 321 |  | #     ifndef EXIT_SUCCESS | 
| 322 |  | #      define EXIT_SUCCESS 0 | 
| 323 |  | #     endif | 
| 324 |  | #    endif | 
| 325 |  | #   endif | 
| 326 |  | #  endif | 
| 327 |  | # endif | 
| 328 |  |  | 
| 329 |  | # ifdef YYSTACK_ALLOC | 
| 330 |  |    /* Pacify GCC's 'empty if-body' warning.  */ | 
| 331 |  | #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) | 
| 332 |  | #  ifndef YYSTACK_ALLOC_MAXIMUM | 
| 333 |  |     /* The OS might guarantee only one guard page at the bottom of the stack, | 
| 334 |  |        and a page size can be as small as 4096 bytes.  So we cannot safely | 
| 335 |  |        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number | 
| 336 |  |        to allow for a few compiler-allocated temporary stack slots.  */ | 
| 337 |  | #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ | 
| 338 |  | #  endif | 
| 339 |  | # else | 
| 340 | 128 | #  define YYSTACK_ALLOC YYMALLOC | 
| 341 | 128 | #  define YYSTACK_FREE YYFREE | 
| 342 |  | #  ifndef YYSTACK_ALLOC_MAXIMUM | 
| 343 | 3.30k | #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM | 
| 344 |  | #  endif | 
| 345 |  | #  if (defined __cplusplus && ! defined EXIT_SUCCESS \ | 
| 346 |  |        && ! ((defined YYMALLOC || defined malloc) \ | 
| 347 |  |              && (defined YYFREE || defined free))) | 
| 348 |  | #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ | 
| 349 |  | #   ifndef EXIT_SUCCESS | 
| 350 |  | #    define EXIT_SUCCESS 0 | 
| 351 |  | #   endif | 
| 352 |  | #  endif | 
| 353 |  | #  ifndef YYMALLOC | 
| 354 | 128 | #   define YYMALLOC malloc | 
| 355 |  | #   if ! defined malloc && ! defined EXIT_SUCCESS | 
| 356 |  | void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ | 
| 357 |  | #   endif | 
| 358 |  | #  endif | 
| 359 |  | #  ifndef YYFREE | 
| 360 | 128 | #   define YYFREE free | 
| 361 |  | #   if ! defined free && ! defined EXIT_SUCCESS | 
| 362 |  | void free (void *); /* INFRINGES ON USER NAME SPACE */ | 
| 363 |  | #   endif | 
| 364 |  | #  endif | 
| 365 |  | # endif | 
| 366 |  | #endif /* ! defined yyoverflow || YYERROR_VERBOSE */ | 
| 367 |  |  | 
| 368 |  |  | 
| 369 |  | #if (! defined yyoverflow \ | 
| 370 |  |      && (! defined __cplusplus \ | 
| 371 |  |          || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) | 
| 372 |  |  | 
| 373 |  | /* A type that is properly aligned for any stack member.  */ | 
| 374 |  | union yyalloc | 
| 375 |  | { | 
| 376 |  |   yytype_int16 yyss_alloc; | 
| 377 |  |   YYSTYPE yyvs_alloc; | 
| 378 |  | }; | 
| 379 |  |  | 
| 380 |  | /* The size of the maximum gap between one aligned stack and the next.  */ | 
| 381 | 381 | # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) | 
| 382 |  |  | 
| 383 |  | /* The size of an array large to enough to hold all stacks, each with | 
| 384 |  |    N elements.  */ | 
| 385 |  | # define YYSTACK_BYTES(N) \ | 
| 386 | 127 |      ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ | 
| 387 | 127 |       + YYSTACK_GAP_MAXIMUM) | 
| 388 |  |  | 
| 389 |  | # define YYCOPY_NEEDED 1 | 
| 390 |  |  | 
| 391 |  | /* Relocate STACK from its old location to the new one.  The | 
| 392 |  |    local variables YYSIZE and YYSTACKSIZE give the old and new number of | 
| 393 |  |    elements in the stack, and YYPTR gives the new location of the | 
| 394 |  |    stack.  Advance YYPTR to a properly aligned location for the next | 
| 395 |  |    stack.  */ | 
| 396 |  | # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \ | 
| 397 | 254 |     do                                                                  \ | 
| 398 | 254 |       {                                                                 \ | 
| 399 | 254 |         YYSIZE_T yynewbytes;                                            \ | 
| 400 | 254 |         YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \ | 
| 401 | 254 |         Stack = &yyptr->Stack_alloc;                                    \ | 
| 402 | 254 |         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ | 
| 403 | 254 |         yyptr += yynewbytes / sizeof (*yyptr);                          \ | 
| 404 | 254 |       }                                                                 \ | 
| 405 | 254 |     while (0) | 
| 406 |  |  | 
| 407 |  | #endif | 
| 408 |  |  | 
| 409 |  | #if defined YYCOPY_NEEDED && YYCOPY_NEEDED | 
| 410 |  | /* Copy COUNT objects from SRC to DST.  The source and destination do | 
| 411 |  |    not overlap.  */ | 
| 412 |  | # ifndef YYCOPY | 
| 413 |  | #  if defined __GNUC__ && 1 < __GNUC__ | 
| 414 |  | #   define YYCOPY(Dst, Src, Count) \ | 
| 415 | 254 |       __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) | 
| 416 |  | #  else | 
| 417 |  | #   define YYCOPY(Dst, Src, Count)              \ | 
| 418 |  |       do                                        \ | 
| 419 |  |         {                                       \ | 
| 420 |  |           YYSIZE_T yyi;                         \ | 
| 421 |  |           for (yyi = 0; yyi < (Count); yyi++)   \ | 
| 422 |  |             (Dst)[yyi] = (Src)[yyi];            \ | 
| 423 |  |         }                                       \ | 
| 424 |  |       while (0) | 
| 425 |  | #  endif | 
| 426 |  | # endif | 
| 427 |  | #endif /* !YYCOPY_NEEDED */ | 
| 428 |  |  | 
| 429 |  | /* YYFINAL -- State number of the termination state.  */ | 
| 430 | 296k | #define YYFINAL  31 | 
| 431 |  | /* YYLAST -- Last index in YYTABLE.  */ | 
| 432 | 503k | #define YYLAST   274 | 
| 433 |  |  | 
| 434 |  | /* YYNTOKENS -- Number of terminals.  */ | 
| 435 | 161k | #define YYNTOKENS  53 | 
| 436 |  | /* YYNNTS -- Number of nonterminals.  */ | 
| 437 |  | #define YYNNTS  18 | 
| 438 |  | /* YYNRULES -- Number of rules.  */ | 
| 439 |  | #define YYNRULES  71 | 
| 440 |  | /* YYNSTATES -- Number of states.  */ | 
| 441 |  | #define YYNSTATES  154 | 
| 442 |  |  | 
| 443 |  | /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned | 
| 444 |  |    by yylex, with out-of-bounds checking.  */ | 
| 445 | 0 | #define YYUNDEFTOK  2 | 
| 446 | 193k | #define YYMAXUTOK   301 | 
| 447 |  |  | 
| 448 |  | #define YYTRANSLATE(YYX)                                                \ | 
| 449 | 194k |   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) | 
| 450 |  |  | 
| 451 |  | /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM | 
| 452 |  |    as returned by yylex, without out-of-bounds checking.  */ | 
| 453 |  | static const yytype_uint8 yytranslate[] = | 
| 454 |  | { | 
| 455 |  |        0,     2,     2,     2,     2,     2,     2,     2,     2,     2, | 
| 456 |  |        2,     2,     2,     2,     2,     2,     2,     2,     2,     2, | 
| 457 |  |        2,     2,     2,     2,     2,     2,     2,     2,     2,     2, | 
| 458 |  |        2,     2,     2,     2,     2,     2,     2,     2,     2,     2, | 
| 459 |  |       47,    48,     2,     2,    52,     2,     2,     2,     2,     2, | 
| 460 |  |        2,     2,     2,     2,     2,     2,     2,     2,    51,     2, | 
| 461 |  |        2,     2,     2,     2,     2,     2,     2,     2,     2,     2, | 
| 462 |  |        2,     2,     2,     2,     2,     2,     2,     2,     2,     2, | 
| 463 |  |        2,     2,     2,     2,     2,     2,     2,     2,     2,     2, | 
| 464 |  |        2,     2,     2,     2,     2,     2,     2,     2,     2,     2, | 
| 465 |  |        2,     2,     2,     2,     2,     2,     2,     2,     2,     2, | 
| 466 |  |        2,     2,     2,     2,     2,     2,     2,     2,     2,     2, | 
| 467 |  |        2,     2,     2,    49,     2,    50,     2,     2,     2,     2, | 
| 468 |  |        2,     2,     2,     2,     2,     2,     2,     2,     2,     2, | 
| 469 |  |        2,     2,     2,     2,     2,     2,     2,     2,     2,     2, | 
| 470 |  |        2,     2,     2,     2,     2,     2,     2,     2,     2,     2, | 
| 471 |  |        2,     2,     2,     2,     2,     2,     2,     2,     2,     2, | 
| 472 |  |        2,     2,     2,     2,     2,     2,     2,     2,     2,     2, | 
| 473 |  |        2,     2,     2,     2,     2,     2,     2,     2,     2,     2, | 
| 474 |  |        2,     2,     2,     2,     2,     2,     2,     2,     2,     2, | 
| 475 |  |        2,     2,     2,     2,     2,     2,     2,     2,     2,     2, | 
| 476 |  |        2,     2,     2,     2,     2,     2,     2,     2,     2,     2, | 
| 477 |  |        2,     2,     2,     2,     2,     2,     2,     2,     2,     2, | 
| 478 |  |        2,     2,     2,     2,     2,     2,     2,     2,     2,     2, | 
| 479 |  |        2,     2,     2,     2,     2,     2,     2,     2,     2,     2, | 
| 480 |  |        2,     2,     2,     2,     2,     2,     1,     2,     3,     4, | 
| 481 |  |        5,     6,     7,     8,     9,    10,    11,    12,    13,    14, | 
| 482 |  |       15,    16,    17,    18,    19,    20,    21,    22,    23,    24, | 
| 483 |  |       25,    26,    27,    28,    29,    30,    31,    32,    33,    34, | 
| 484 |  |       35,    36,    37,    38,    39,    40,    41,    42,    43,    44, | 
| 485 |  |       45,    46 | 
| 486 |  | }; | 
| 487 |  |  | 
| 488 |  | #if YYDEBUG | 
| 489 |  |   /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */ | 
| 490 |  | static const yytype_uint8 yyrline[] = | 
| 491 |  | { | 
| 492 |  |        0,   128,   128,   129,   130,   133,   134,   135,   138,   139, | 
| 493 |  |      140,   141,   142,   143,   144,   145,   146,   147,   150,   151, | 
| 494 |  |      152,   153,   154,   155,   156,   157,   158,   159,   160,   161, | 
| 495 |  |      162,   163,   164,   167,   168,   169,   170,   171,   172,   173, | 
| 496 |  |      174,   175,   178,   179,   180,   181,   184,   185,   188,   189, | 
| 497 |  |      190,   191,   192,   195,   196,   199,   203,   204,   207,   208, | 
| 498 |  |      209,   210,   213,   214,   215,   216,   219,   220,   223,   232, | 
| 499 |  |      241,   242 | 
| 500 |  | }; | 
| 501 |  | #endif | 
| 502 |  |  | 
| 503 |  | #if YYDEBUG || YYERROR_VERBOSE || 1 | 
| 504 |  | /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. | 
| 505 |  |    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */ | 
| 506 |  | static const char *const yytname[] = | 
| 507 |  | { | 
| 508 |  |   "$end", "error", "$undefined", "\"true\"", "\"false\"", | 
| 509 |  |   "\"boolean expression\"", "\"string expression\"", "\"error token\"", | 
| 510 |  |   "\"number\"", "\"identifier\"", "\"string literal\"", | 
| 511 |  |   "\"start of matching regex\"", "\"start of substitution regex\"", | 
| 512 |  |   "\"pattern of the regex\"", "\"substitution of the regex\"", | 
| 513 |  |   "\"pattern flags of the regex\"", "\"regex back reference\"", | 
| 514 |  |   "\"unary operator\"", "\"binary operator\"", "\"start of string\"", | 
| 515 |  |   "\"end of string\"", "\"start of variable name\"", | 
| 516 |  |   "\"end of variable name\"", "\"start of variable expression\"", | 
| 517 |  |   "\"end of variable expression\"", "\"integer equal\"", | 
| 518 |  |   "\"integer not equal\"", "\"integer less than\"", | 
| 519 |  |   "\"integer less or equal\"", "\"integer greater than\"", | 
| 520 |  |   "\"integer greater or equal\"", "\"regex match\"", "\"regex non-match\"", | 
| 521 |  |   "\"contained in\"", "\"string equal\"", "\"string not equal\"", | 
| 522 |  |   "\"string less than\"", "\"string less or equal\"", | 
| 523 |  |   "\"string greater than\"", "\"string greater or equal\"", | 
| 524 |  |   "\"string concatenation\"", "\"join operator\"", "\"split operator\"", | 
| 525 |  |   "\"substitute operator\"", "\"logical or\"", "\"logical and\"", | 
| 526 |  |   "\"logical not\"", "'('", "')'", "'{'", "'}'", "':'", "','", "$accept", | 
| 527 |  |   "cond", "comp", "strfunc", "listfunc", "list", "words", "word", "string", | 
| 528 |  |   "substr", "var", "regex", "regsub", "regany", "split", "join", "sub", | 
| 529 |  |   "expr", YY_NULLPTR | 
| 530 |  | }; | 
| 531 |  | #endif | 
| 532 |  |  | 
| 533 |  | # ifdef YYPRINT | 
| 534 |  | /* YYTOKNUM[NUM] -- (External) token number corresponding to the | 
| 535 |  |    (internal) symbol number NUM (which must be that of a token).  */ | 
| 536 |  | static const yytype_uint16 yytoknum[] = | 
| 537 |  | { | 
| 538 |  |        0,   256,   257,   258,   259,   260,   261,   262,   263,   264, | 
| 539 |  |      265,   266,   267,   268,   269,   270,   271,   272,   273,   274, | 
| 540 |  |      275,   276,   277,   278,   279,   280,   281,   282,   283,   284, | 
| 541 |  |      285,   286,   287,   288,   289,   290,   291,   292,   293,   294, | 
| 542 |  |      295,   296,   297,   298,   299,   300,   301,    40,    41,   123, | 
| 543 |  |      125,    58,    44 | 
| 544 |  | }; | 
| 545 |  | # endif | 
| 546 |  |  | 
| 547 |  | #define YYPACT_NINF -38 | 
| 548 |  |  | 
| 549 |  | #define yypact_value_is_default(Yystate) \ | 
| 550 | 343k |   (!!((Yystate) == (-38))) | 
| 551 |  |  | 
| 552 |  | #define YYTABLE_NINF -1 | 
| 553 |  |  | 
| 554 |  | #define yytable_value_is_error(Yytable_value) \ | 
| 555 | 0 |   0 | 
| 556 |  |  | 
| 557 |  |   /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing | 
| 558 |  |      STATE-NUM.  */ | 
| 559 |  | static const yytype_int16 yypact[] = | 
| 560 |  | { | 
| 561 |  |      148,   126,   101,   -38,     9,   -38,   -38,   -38,   -38,   -33, | 
| 562 |  |      -38,   171,    93,    22,   126,    52,    -4,   126,   126,    18, | 
| 563 |  |      -38,   -38,   170,   -38,   -38,   -38,   -38,   -38,   136,   -38, | 
| 564 |  |      -38,   -38,   171,   171,     1,   -38,    66,     2,    -5,   220, | 
| 565 |  |       32,     5,    55,   171,   -38,    13,   -38,    77,    81,    46, | 
| 566 |  |      -38,    96,   195,   126,   126,   171,   171,   171,   171,   171, | 
| 567 |  |      171,   171,    95,    95,    55,   171,   171,   171,   171,   171, | 
| 568 |  |      171,   171,   -38,    83,   -22,   -25,   -38,   -38,   101,   -38, | 
| 569 |  |      -38,   171,   135,    57,   -38,   -38,   104,    55,   -14,   110, | 
| 570 |  |      -27,   171,   101,   112,   171,   -38,   -38,   117,   -38,     1, | 
| 571 |  |        1,     1,     1,     1,     1,     1,   -38,   -38,   -38,     1, | 
| 572 |  |        1,     1,     1,     1,     1,     1,   -38,   -38,   171,   116, | 
| 573 |  |      -20,   151,   118,   142,   120,   -38,   171,   -38,     1,   251, | 
| 574 |  |      171,     1,   -38,   -38,   -38,   -38,   142,   124,   142,   -38, | 
| 575 |  |        1,   -38,    27,   -38,    44,   127,    48,   171,   -38,   -38, | 
| 576 |  |      -38,   -38,    26,   -38 | 
| 577 |  | }; | 
| 578 |  |  | 
| 579 |  |   /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. | 
| 580 |  |      Performed when YYTABLE does not specify something else to do.  Zero | 
| 581 |  |      means the default is an error.  */ | 
| 582 |  | static const yytype_uint8 yydefact[] = | 
| 583 |  | { | 
| 584 |  |        0,     0,     0,     4,     0,     8,     9,    17,    33,     0, | 
| 585 |  |       52,     0,     0,     0,     0,     0,     0,     0,     0,     3, | 
| 586 |  |       13,    40,     0,    37,    39,    38,     7,    46,     2,     5, | 
| 587 |  |       47,     1,     0,     0,    14,    34,     0,     0,     0,     0, | 
| 588 |  |        0,     0,     0,     0,    43,    58,    42,     0,     0,     0, | 
| 589 |  |       10,     0,     0,     0,     0,     0,     0,     0,     0,     0, | 
| 590 |  |        0,     0,     0,     0,     0,     0,     0,     0,     0,     0, | 
| 591 |  |        0,     0,     6,     0,     0,     0,    35,    48,     0,    50, | 
| 592 |  |       51,     0,     0,     0,    70,    71,     0,     0,     0,     0, | 
| 593 |  |       66,     0,     0,     0,     0,    16,    41,    11,    12,    15, | 
| 594 |  |       18,    19,    20,    21,    22,    23,    30,    31,    32,    24, | 
| 595 |  |       25,    26,    27,    28,    29,    36,    54,    53,     0,     0, | 
| 596 |  |        0,     0,     0,     0,     0,    45,     0,    44,    60,     0, | 
| 597 |  |        0,    56,    67,    49,    55,    68,     0,     0,     0,    62, | 
| 598 |  |       64,    45,     0,    69,     0,     0,     0,     0,    61,    57, | 
| 599 |  |       63,    65,     0,    53 | 
| 600 |  | }; | 
| 601 |  |  | 
| 602 |  |   /* YYPGOTO[NTERM-NUM].  */ | 
| 603 |  | static const yytype_int8 yypgoto[] = | 
| 604 |  | { | 
| 605 |  |      -38,    19,   -38,   -38,   -38,   -13,   -37,   -11,    -7,   -24, | 
| 606 |  |       -1,    58,    -6,    91,   -38,   -38,   -38,   -38 | 
| 607 |  | }; | 
| 608 |  |  | 
| 609 |  |   /* YYDEFGOTO[NTERM-NUM].  */ | 
| 610 |  | static const yytype_int8 yydefgoto[] = | 
| 611 |  | { | 
| 612 |  |       -1,    19,    20,    21,    44,   124,    73,    22,    28,    29, | 
| 613 |  |       23,    84,    85,    86,    46,    24,    25,     4 | 
| 614 |  | }; | 
| 615 |  |  | 
| 616 |  |   /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If | 
| 617 |  |      positive, shift that token.  If negative, reduce the rule whose | 
| 618 |  |      number is the opposite.  If YYTABLE_NINF, syntax error.  */ | 
| 619 |  | static const yytype_uint8 yytable[] = | 
| 620 |  | { | 
| 621 |  |       34,    30,    45,    39,    72,    36,    89,    52,    47,    31, | 
| 622 |  |       49,    30,    72,    71,    32,    71,    82,    47,    71,    79, | 
| 623 |  |       71,    74,    75,    96,    77,   118,   117,    30,   134,    88, | 
| 624 |  |      118,    37,    90,    38,   125,    30,    50,    51,   126,    53, | 
| 625 |  |       54,    71,    93,    48,    99,   100,   101,   102,   103,   104, | 
| 626 |  |      105,   108,    83,    78,   109,   110,   111,   112,   113,   114, | 
| 627 |  |      115,    40,    53,    54,    40,    91,    71,    71,    82,    47, | 
| 628 |  |      120,   119,    97,    98,   153,   148,    27,    30,   118,    81, | 
| 629 |  |      128,   132,    10,   131,    71,   129,    76,    13,    71,    14, | 
| 630 |  |       92,    30,   149,    47,    41,    72,   151,    41,    94,    42, | 
| 631 |  |       26,    43,    87,    27,    43,    72,    82,    90,    26,    10, | 
| 632 |  |      139,    27,   140,    35,    13,   142,    14,    10,    30,   144, | 
| 633 |  |      106,   107,    13,   145,    14,   146,    27,    75,    30,     5, | 
| 634 |  |        6,   116,    10,     7,     8,     9,   152,    13,   133,    14, | 
| 635 |  |       53,    54,    10,    11,    95,    12,    27,    13,   121,    14, | 
| 636 |  |        8,   137,    10,     1,     2,     3,   123,    13,    10,    14, | 
| 637 |  |      127,    12,    54,    13,   130,    14,   135,    15,   141,    16, | 
| 638 |  |      136,   147,    17,    18,   122,   150,     0,     0,     0,     8, | 
| 639 |  |        9,     0,     0,    15,    41,    16,     0,    10,    55,   138, | 
| 640 |  |       12,    43,    13,     0,    14,    56,    57,    58,    59,    60, | 
| 641 |  |       61,    62,    63,    64,    65,    66,    67,    68,    69,    70, | 
| 642 |  |       71,     0,    15,    55,    16,     0,     0,     0,    33,     0, | 
| 643 |  |       56,    57,    58,    59,    60,    61,    62,    63,    64,    65, | 
| 644 |  |       66,    67,    68,    69,    70,    71,     0,     0,    55,     0, | 
| 645 |  |        0,     0,     0,    96,    80,    56,    57,    58,    59,    60, | 
| 646 |  |       61,    62,    63,    64,    65,    66,    67,    68,    69,    70, | 
| 647 |  |       71,    27,     0,     0,     0,     0,   143,    10,     0,     0, | 
| 648 |  |        0,     0,    13,     0,    14 | 
| 649 |  | }; | 
| 650 |  |  | 
| 651 |  | static const yytype_int16 yycheck[] = | 
| 652 |  | { | 
| 653 |  |       11,     2,    15,    14,    28,    12,    43,    18,    12,     0, | 
| 654 |  |       16,    12,    36,    40,    47,    40,    11,    12,    40,    24, | 
| 655 |  |       40,    32,    33,    48,    22,    52,    48,    28,    48,    42, | 
| 656 |  |       52,     9,    43,    14,    48,    36,    17,    18,    52,    44, | 
| 657 |  |       45,    40,    48,    47,    55,    56,    57,    58,    59,    60, | 
| 658 |  |       61,    64,    47,    51,    65,    66,    67,    68,    69,    70, | 
| 659 |  |       71,     9,    44,    45,     9,    52,    40,    40,    11,    12, | 
| 660 |  |       81,    78,    53,    54,    48,    48,    10,    78,    52,    47, | 
| 661 |  |       91,   118,    16,    94,    40,    92,    20,    21,    40,    23, | 
| 662 |  |       13,    92,    48,    12,    42,   119,    48,    42,    52,    47, | 
| 663 |  |        7,    49,    47,    10,    49,   129,    11,   118,     7,    16, | 
| 664 |  |      123,    10,   123,    20,    21,   126,    23,    16,   119,   130, | 
| 665 |  |       62,    63,    21,   136,    23,   136,    10,   138,   129,     3, | 
| 666 |  |        4,    48,    16,     7,     8,     9,   147,    21,    22,    23, | 
| 667 |  |       44,    45,    16,    17,    48,    19,    10,    21,    13,    23, | 
| 668 |  |        8,     9,    16,     5,     6,     7,    52,    21,    16,    23, | 
| 669 |  |       50,    19,    45,    21,    52,    23,    15,    41,    48,    43, | 
| 670 |  |       52,    47,    46,    47,    83,    48,    -1,    -1,    -1,     8, | 
| 671 |  |        9,    -1,    -1,    41,    42,    43,    -1,    16,    18,    47, | 
| 672 |  |       19,    49,    21,    -1,    23,    25,    26,    27,    28,    29, | 
| 673 |  |       30,    31,    32,    33,    34,    35,    36,    37,    38,    39, | 
| 674 |  |       40,    -1,    41,    18,    43,    -1,    -1,    -1,    47,    -1, | 
| 675 |  |       25,    26,    27,    28,    29,    30,    31,    32,    33,    34, | 
| 676 |  |       35,    36,    37,    38,    39,    40,    -1,    -1,    18,    -1, | 
| 677 |  |       -1,    -1,    -1,    48,    24,    25,    26,    27,    28,    29, | 
| 678 |  |       30,    31,    32,    33,    34,    35,    36,    37,    38,    39, | 
| 679 |  |       40,    10,    -1,    -1,    -1,    -1,    15,    16,    -1,    -1, | 
| 680 |  |       -1,    -1,    21,    -1,    23 | 
| 681 |  | }; | 
| 682 |  |  | 
| 683 |  |   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing | 
| 684 |  |      symbol of state STATE-NUM.  */ | 
| 685 |  | static const yytype_uint8 yystos[] = | 
| 686 |  | { | 
| 687 |  |        0,     5,     6,     7,    70,     3,     4,     7,     8,     9, | 
| 688 |  |       16,    17,    19,    21,    23,    41,    43,    46,    47,    54, | 
| 689 |  |       55,    56,    60,    63,    68,    69,     7,    10,    61,    62, | 
| 690 |  |       63,     0,    47,    47,    60,    20,    61,     9,    54,    60, | 
| 691 |  |        9,    42,    47,    49,    57,    58,    67,    12,    47,    65, | 
| 692 |  |       54,    54,    60,    44,    45,    18,    25,    26,    27,    28, | 
| 693 |  |       29,    30,    31,    32,    33,    34,    35,    36,    37,    38, | 
| 694 |  |       39,    40,    62,    59,    60,    60,    20,    22,    51,    24, | 
| 695 |  |       24,    47,    11,    47,    64,    65,    66,    47,    58,    59, | 
| 696 |  |       60,    52,    13,    65,    52,    48,    48,    54,    54,    60, | 
| 697 |  |       60,    60,    60,    60,    60,    60,    64,    64,    58,    60, | 
| 698 |  |       60,    60,    60,    60,    60,    60,    48,    48,    52,    61, | 
| 699 |  |       60,    13,    66,    52,    58,    48,    52,    50,    60,    61, | 
| 700 |  |       52,    60,    59,    22,    48,    15,    52,     9,    47,    58, | 
| 701 |  |       60,    48,    60,    15,    60,    58,    60,    47,    48,    48, | 
| 702 |  |       48,    48,    60,    48 | 
| 703 |  | }; | 
| 704 |  |  | 
| 705 |  |   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */ | 
| 706 |  | static const yytype_uint8 yyr1[] = | 
| 707 |  | { | 
| 708 |  |        0,    53,    70,    70,    70,    61,    61,    61,    54,    54, | 
| 709 |  |       54,    54,    54,    54,    54,    54,    54,    54,    55,    55, | 
| 710 |  |       55,    55,    55,    55,    55,    55,    55,    55,    55,    55, | 
| 711 |  |       55,    55,    55,    60,    60,    60,    60,    60,    60,    60, | 
| 712 |  |       60,    60,    58,    58,    58,    58,    62,    62,    63,    63, | 
| 713 |  |       63,    63,    63,    56,    56,    57,    69,    69,    68,    68, | 
| 714 |  |       68,    68,    67,    67,    67,    67,    59,    59,    64,    65, | 
| 715 |  |       66,    66 | 
| 716 |  | }; | 
| 717 |  |  | 
| 718 |  |   /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */ | 
| 719 |  | static const yytype_uint8 yyr2[] = | 
| 720 |  | { | 
| 721 |  |        0,     2,     2,     2,     1,     1,     2,     1,     1,     1, | 
| 722 |  |        2,     3,     3,     1,     2,     3,     3,     1,     3,     3, | 
| 723 |  |        3,     3,     3,     3,     3,     3,     3,     3,     3,     3, | 
| 724 |  |        3,     3,     3,     1,     2,     3,     3,     1,     1,     1, | 
| 725 |  |        1,     3,     1,     1,     3,     3,     1,     1,     3,     5, | 
| 726 |  |        3,     3,     1,     4,     4,     4,     4,     6,     2,     4, | 
| 727 |  |        4,     6,     4,     6,     4,     6,     1,     3,     3,     4, | 
| 728 |  |        1,     1 | 
| 729 |  | }; | 
| 730 |  |  | 
| 731 |  |  | 
| 732 |  | #define yyerrok         (yyerrstatus = 0) | 
| 733 |  | #define yyclearin       (yychar = YYEMPTY) | 
| 734 | 377k | #define YYEMPTY         (-2) | 
| 735 | 198k | #define YYEOF           0 | 
| 736 |  |  | 
| 737 | 344 | #define YYACCEPT        goto yyacceptlab | 
| 738 | 923 | #define YYABORT         goto yyabortlab | 
| 739 | 8 | #define YYERROR         goto yyerrorlab | 
| 740 |  |  | 
| 741 |  |  | 
| 742 |  | #define YYRECOVERING()  (!!yyerrstatus) | 
| 743 |  |  | 
| 744 |  | #define YYBACKUP(Token, Value)                                  \ | 
| 745 |  | do                                                              \ | 
| 746 |  |   if (yychar == YYEMPTY)                                        \ | 
| 747 |  |     {                                                           \ | 
| 748 |  |       yychar = (Token);                                         \ | 
| 749 |  |       yylval = (Value);                                         \ | 
| 750 |  |       YYPOPSTACK (yylen);                                       \ | 
| 751 |  |       yystate = *yyssp;                                         \ | 
| 752 |  |       goto yybackup;                                            \ | 
| 753 |  |     }                                                           \ | 
| 754 |  |   else                                                          \ | 
| 755 |  |     {                                                           \ | 
| 756 |  |       yyerror (ctx, YY_("syntax error: cannot back up")); \ | 
| 757 |  |       YYERROR;                                                  \ | 
| 758 |  |     }                                                           \ | 
| 759 |  | while (0) | 
| 760 |  |  | 
| 761 |  | /* Error token number */ | 
| 762 | 109k | #define YYTERROR        1 | 
| 763 |  | #define YYERRCODE       256 | 
| 764 |  |  | 
| 765 |  |  | 
| 766 |  |  | 
| 767 |  | /* Enable debugging if requested.  */ | 
| 768 |  | #if YYDEBUG | 
| 769 |  |  | 
| 770 |  | # ifndef YYFPRINTF | 
| 771 |  | #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */ | 
| 772 |  | #  define YYFPRINTF fprintf | 
| 773 |  | # endif | 
| 774 |  |  | 
| 775 |  | # define YYDPRINTF(Args)                        \ | 
| 776 |  | do {                                            \ | 
| 777 |  |   if (yydebug)                                  \ | 
| 778 |  |     YYFPRINTF Args;                             \ | 
| 779 |  | } while (0) | 
| 780 |  |  | 
| 781 |  | /* This macro is provided for backward compatibility. */ | 
| 782 |  | #ifndef YY_LOCATION_PRINT | 
| 783 |  | # define YY_LOCATION_PRINT(File, Loc) ((void) 0) | 
| 784 |  | #endif | 
| 785 |  |  | 
| 786 |  |  | 
| 787 |  | # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \ | 
| 788 |  | do {                                                                      \ | 
| 789 |  |   if (yydebug)                                                            \ | 
| 790 |  |     {                                                                     \ | 
| 791 |  |       YYFPRINTF (stderr, "%s ", Title);                                   \ | 
| 792 |  |       yy_symbol_print (stderr,                                            \ | 
| 793 |  |                   Type, Value, ctx); \ | 
| 794 |  |       YYFPRINTF (stderr, "\n");                                           \ | 
| 795 |  |     }                                                                     \ | 
| 796 |  | } while (0) | 
| 797 |  |  | 
| 798 |  |  | 
| 799 |  | /*----------------------------------------. | 
| 800 |  | | Print this symbol's value on YYOUTPUT.  | | 
| 801 |  | `----------------------------------------*/ | 
| 802 |  |  | 
| 803 |  | static void | 
| 804 |  | yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, ap_expr_parse_ctx_t *ctx) | 
| 805 |  | { | 
| 806 |  |   FILE *yyo = yyoutput; | 
| 807 |  |   YYUSE (yyo); | 
| 808 |  |   YYUSE (ctx); | 
| 809 |  |   if (!yyvaluep) | 
| 810 |  |     return; | 
| 811 |  | # ifdef YYPRINT | 
| 812 |  |   if (yytype < YYNTOKENS) | 
| 813 |  |     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); | 
| 814 |  | # endif | 
| 815 |  |   YYUSE (yytype); | 
| 816 |  | } | 
| 817 |  |  | 
| 818 |  |  | 
| 819 |  | /*--------------------------------. | 
| 820 |  | | Print this symbol on YYOUTPUT.  | | 
| 821 |  | `--------------------------------*/ | 
| 822 |  |  | 
| 823 |  | static void | 
| 824 |  | yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, ap_expr_parse_ctx_t *ctx) | 
| 825 |  | { | 
| 826 |  |   YYFPRINTF (yyoutput, "%s %s (", | 
| 827 |  |              yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); | 
| 828 |  |  | 
| 829 |  |   yy_symbol_value_print (yyoutput, yytype, yyvaluep, ctx); | 
| 830 |  |   YYFPRINTF (yyoutput, ")"); | 
| 831 |  | } | 
| 832 |  |  | 
| 833 |  | /*------------------------------------------------------------------. | 
| 834 |  | | yy_stack_print -- Print the state stack from its BOTTOM up to its | | 
| 835 |  | | TOP (included).                                                   | | 
| 836 |  | `------------------------------------------------------------------*/ | 
| 837 |  |  | 
| 838 |  | static void | 
| 839 |  | yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) | 
| 840 |  | { | 
| 841 |  |   YYFPRINTF (stderr, "Stack now"); | 
| 842 |  |   for (; yybottom <= yytop; yybottom++) | 
| 843 |  |     { | 
| 844 |  |       int yybot = *yybottom; | 
| 845 |  |       YYFPRINTF (stderr, " %d", yybot); | 
| 846 |  |     } | 
| 847 |  |   YYFPRINTF (stderr, "\n"); | 
| 848 |  | } | 
| 849 |  |  | 
| 850 |  | # define YY_STACK_PRINT(Bottom, Top)                            \ | 
| 851 |  | do {                                                            \ | 
| 852 |  |   if (yydebug)                                                  \ | 
| 853 |  |     yy_stack_print ((Bottom), (Top));                           \ | 
| 854 |  | } while (0) | 
| 855 |  |  | 
| 856 |  |  | 
| 857 |  | /*------------------------------------------------. | 
| 858 |  | | Report that the YYRULE is going to be reduced.  | | 
| 859 |  | `------------------------------------------------*/ | 
| 860 |  |  | 
| 861 |  | static void | 
| 862 |  | yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, ap_expr_parse_ctx_t *ctx) | 
| 863 |  | { | 
| 864 |  |   unsigned long int yylno = yyrline[yyrule]; | 
| 865 |  |   int yynrhs = yyr2[yyrule]; | 
| 866 |  |   int yyi; | 
| 867 |  |   YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", | 
| 868 |  |              yyrule - 1, yylno); | 
| 869 |  |   /* The symbols being reduced.  */ | 
| 870 |  |   for (yyi = 0; yyi < yynrhs; yyi++) | 
| 871 |  |     { | 
| 872 |  |       YYFPRINTF (stderr, "   $%d = ", yyi + 1); | 
| 873 |  |       yy_symbol_print (stderr, | 
| 874 |  |                        yystos[yyssp[yyi + 1 - yynrhs]], | 
| 875 |  |                        &(yyvsp[(yyi + 1) - (yynrhs)]) | 
| 876 |  |                                               , ctx); | 
| 877 |  |       YYFPRINTF (stderr, "\n"); | 
| 878 |  |     } | 
| 879 |  | } | 
| 880 |  |  | 
| 881 |  | # define YY_REDUCE_PRINT(Rule)          \ | 
| 882 |  | do {                                    \ | 
| 883 |  |   if (yydebug)                          \ | 
| 884 |  |     yy_reduce_print (yyssp, yyvsp, Rule, ctx); \ | 
| 885 |  | } while (0) | 
| 886 |  |  | 
| 887 |  | /* Nonzero means print parse trace.  It is left uninitialized so that | 
| 888 |  |    multiple parsers can coexist.  */ | 
| 889 |  | int yydebug; | 
| 890 |  | #else /* !YYDEBUG */ | 
| 891 |  | # define YYDPRINTF(Args) | 
| 892 |  | # define YY_SYMBOL_PRINT(Title, Type, Value, Location) | 
| 893 |  | # define YY_STACK_PRINT(Bottom, Top) | 
| 894 |  | # define YY_REDUCE_PRINT(Rule) | 
| 895 |  | #endif /* !YYDEBUG */ | 
| 896 |  |  | 
| 897 |  |  | 
| 898 |  | /* YYINITDEPTH -- initial size of the parser's stacks.  */ | 
| 899 |  | #ifndef YYINITDEPTH | 
| 900 | 1.26k | # define YYINITDEPTH 200 | 
| 901 |  | #endif | 
| 902 |  |  | 
| 903 |  | /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only | 
| 904 |  |    if the built-in stack extension method is used). | 
| 905 |  |  | 
| 906 |  |    Do not make this value too large; the results are undefined if | 
| 907 |  |    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) | 
| 908 |  |    evaluated with infinite-precision integer arithmetic.  */ | 
| 909 |  |  | 
| 910 |  | #ifndef YYMAXDEPTH | 
| 911 | 259 | # define YYMAXDEPTH 10000 | 
| 912 |  | #endif | 
| 913 |  |  | 
| 914 |  |  | 
| 915 |  | #if YYERROR_VERBOSE | 
| 916 |  |  | 
| 917 |  | # ifndef yystrlen | 
| 918 |  | #  if defined __GLIBC__ && defined _STRING_H | 
| 919 | 1.60k | #   define yystrlen strlen | 
| 920 |  | #  else | 
| 921 |  | /* Return the length of YYSTR.  */ | 
| 922 |  | static YYSIZE_T | 
| 923 |  | yystrlen (const char *yystr) | 
| 924 |  | { | 
| 925 |  |   YYSIZE_T yylen; | 
| 926 |  |   for (yylen = 0; yystr[yylen]; yylen++) | 
| 927 |  |     continue; | 
| 928 |  |   return yylen; | 
| 929 |  | } | 
| 930 |  | #  endif | 
| 931 |  | # endif | 
| 932 |  |  | 
| 933 |  | # ifndef yystpcpy | 
| 934 |  | #  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE | 
| 935 | 754 | #   define yystpcpy stpcpy | 
| 936 |  | #  else | 
| 937 |  | /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in | 
| 938 |  |    YYDEST.  */ | 
| 939 |  | static char * | 
| 940 |  | yystpcpy (char *yydest, const char *yysrc) | 
| 941 |  | { | 
| 942 |  |   char *yyd = yydest; | 
| 943 |  |   const char *yys = yysrc; | 
| 944 |  |  | 
| 945 |  |   while ((*yyd++ = *yys++) != '\0') | 
| 946 |  |     continue; | 
| 947 |  |  | 
| 948 |  |   return yyd - 1; | 
| 949 |  | } | 
| 950 |  | #  endif | 
| 951 |  | # endif | 
| 952 |  |  | 
| 953 |  | # ifndef yytnamerr | 
| 954 |  | /* Copy to YYRES the contents of YYSTR after stripping away unnecessary | 
| 955 |  |    quotes and backslashes, so that it's suitable for yyerror.  The | 
| 956 |  |    heuristic is that double-quoting is unnecessary unless the string | 
| 957 |  |    contains an apostrophe, a comma, or backslash (other than | 
| 958 |  |    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is | 
| 959 |  |    null, do not copy; instead, return the length of what the result | 
| 960 |  |    would have been.  */ | 
| 961 |  | static YYSIZE_T | 
| 962 |  | yytnamerr (char *yyres, const char *yystr) | 
| 963 | 4.61k | { | 
| 964 | 4.61k |   if (*yystr == '"') | 
| 965 | 3.10k |     { | 
| 966 | 3.10k |       YYSIZE_T yyn = 0; | 
| 967 | 3.10k |       char const *yyp = yystr; | 
| 968 |  |  | 
| 969 | 3.10k |       for (;;) | 
| 970 | 46.0k |         switch (*++yyp) | 
| 971 | 46.0k |           { | 
| 972 | 0 |           case '\'': | 
| 973 | 0 |           case ',': | 
| 974 | 0 |             goto do_not_strip_quotes; | 
| 975 |  |  | 
| 976 | 0 |           case '\\': | 
| 977 | 0 |             if (*++yyp != '\\') | 
| 978 | 0 |               goto do_not_strip_quotes; | 
| 979 |  |             /* Fall through.  */ | 
| 980 | 42.9k |           default: | 
| 981 | 42.9k |             if (yyres) | 
| 982 | 8.50k |               yyres[yyn] = *yyp; | 
| 983 | 42.9k |             yyn++; | 
| 984 | 42.9k |             break; | 
| 985 |  |  | 
| 986 | 3.10k |           case '"': | 
| 987 | 3.10k |             if (yyres) | 
| 988 | 556 |               yyres[yyn] = '\0'; | 
| 989 | 3.10k |             return yyn; | 
| 990 | 46.0k |           } | 
| 991 | 0 |     do_not_strip_quotes: ; | 
| 992 | 0 |     } | 
| 993 |  |  | 
| 994 | 1.50k |   if (! yyres) | 
| 995 | 755 |     return yystrlen (yystr); | 
| 996 |  |  | 
| 997 | 754 |   return yystpcpy (yyres, yystr) - yyres; | 
| 998 | 1.50k | } | 
| 999 |  | # endif | 
| 1000 |  |  | 
| 1001 |  | /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message | 
| 1002 |  |    about the unexpected token YYTOKEN for the state stack whose top is | 
| 1003 |  |    YYSSP. | 
| 1004 |  |  | 
| 1005 |  |    Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is | 
| 1006 |  |    not large enough to hold the message.  In that case, also set | 
| 1007 |  |    *YYMSG_ALLOC to the required number of bytes.  Return 2 if the | 
| 1008 |  |    required number of bytes is too large to store.  */ | 
| 1009 |  | static int | 
| 1010 |  | yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, | 
| 1011 |  |                 yytype_int16 *yyssp, int yytoken) | 
| 1012 | 850 | { | 
| 1013 | 850 |   YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); | 
| 1014 | 850 |   YYSIZE_T yysize = yysize0; | 
| 1015 | 850 |   enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; | 
| 1016 |  |   /* Internationalized format string. */ | 
| 1017 | 850 |   const char *yyformat = YY_NULLPTR; | 
| 1018 |  |   /* Arguments of yyformat. */ | 
| 1019 | 850 |   char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; | 
| 1020 |  |   /* Number of reported tokens (one for the "unexpected", one per | 
| 1021 |  |      "expected"). */ | 
| 1022 | 850 |   int yycount = 0; | 
| 1023 |  |  | 
| 1024 |  |   /* There are many possibilities here to consider: | 
| 1025 |  |      - If this state is a consistent state with a default action, then | 
| 1026 |  |        the only way this function was invoked is if the default action | 
| 1027 |  |        is an error action.  In that case, don't check for expected | 
| 1028 |  |        tokens because there are none. | 
| 1029 |  |      - The only way there can be no lookahead present (in yychar) is if | 
| 1030 |  |        this state is a consistent state with a default action.  Thus, | 
| 1031 |  |        detecting the absence of a lookahead is sufficient to determine | 
| 1032 |  |        that there is no unexpected or expected token to report.  In that | 
| 1033 |  |        case, just report a simple "syntax error". | 
| 1034 |  |      - Don't assume there isn't a lookahead just because this state is a | 
| 1035 |  |        consistent state with a default action.  There might have been a | 
| 1036 |  |        previous inconsistent state, consistent state with a non-default | 
| 1037 |  |        action, or user semantic action that manipulated yychar. | 
| 1038 |  |      - Of course, the expected token list depends on states to have | 
| 1039 |  |        correct lookahead information, and it depends on the parser not | 
| 1040 |  |        to perform extra reductions after fetching a lookahead from the | 
| 1041 |  |        scanner and before detecting a syntax error.  Thus, state merging | 
| 1042 |  |        (from LALR or IELR) and default reductions corrupt the expected | 
| 1043 |  |        token list.  However, the list is correct for canonical LR with | 
| 1044 |  |        one exception: it will still contain any token that will not be | 
| 1045 |  |        accepted due to an error action in a later state. | 
| 1046 |  |   */ | 
| 1047 | 850 |   if (yytoken != YYEMPTY) | 
| 1048 | 850 |     { | 
| 1049 | 850 |       int yyn = yypact[*yyssp]; | 
| 1050 | 850 |       yyarg[yycount++] = yytname[yytoken]; | 
| 1051 | 850 |       if (!yypact_value_is_default (yyn)) | 
| 1052 | 850 |         { | 
| 1053 |  |           /* Start YYX at -YYN if negative to avoid negative indexes in | 
| 1054 |  |              YYCHECK.  In other words, skip the first -YYN actions for | 
| 1055 |  |              this state because they are default actions.  */ | 
| 1056 | 850 |           int yyxbegin = yyn < 0 ? -yyn : 0; | 
| 1057 |  |           /* Stay within bounds of both yycheck and yytname.  */ | 
| 1058 | 850 |           int yychecklim = YYLAST - yyn + 1; | 
| 1059 | 850 |           int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; | 
| 1060 | 850 |           int yyx; | 
| 1061 |  |  | 
| 1062 | 25.1k |           for (yyx = yyxbegin; yyx < yyxend; ++yyx) | 
| 1063 | 24.7k |             if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR | 
| 1064 | 0 |                 && !yytable_value_is_error (yytable[yyx + yyn])) | 
| 1065 | 2.95k |               { | 
| 1066 | 2.95k |                 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) | 
| 1067 | 498 |                   { | 
| 1068 | 498 |                     yycount = 1; | 
| 1069 | 498 |                     yysize = yysize0; | 
| 1070 | 498 |                     break; | 
| 1071 | 498 |                   } | 
| 1072 | 2.45k |                 yyarg[yycount++] = yytname[yyx]; | 
| 1073 | 2.45k |                 { | 
| 1074 | 2.45k |                   YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); | 
| 1075 | 2.45k |                   if (! (yysize <= yysize1 | 
| 1076 | 2.45k |                          && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) | 
| 1077 | 0 |                     return 2; | 
| 1078 | 2.45k |                   yysize = yysize1; | 
| 1079 | 2.45k |                 } | 
| 1080 | 2.45k |               } | 
| 1081 | 850 |         } | 
| 1082 | 850 |     } | 
| 1083 |  |  | 
| 1084 | 850 |   switch (yycount) | 
| 1085 | 850 |     { | 
| 1086 | 0 | # define YYCASE_(N, S)                      \ | 
| 1087 | 850 |       case N:                               \ | 
| 1088 | 850 |         yyformat = S;                       \ | 
| 1089 | 850 |       break | 
| 1090 | 0 |     default: /* Avoid compiler warnings. */ | 
| 1091 | 0 |       YYCASE_(0, YY_("syntax error")); | 
| 1092 | 498 |       YYCASE_(1, YY_("syntax error, unexpected %s")); | 
| 1093 | 301 |       YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); | 
| 1094 | 11 |       YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); | 
| 1095 | 19 |       YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); | 
| 1096 | 850 |       YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); | 
| 1097 | 850 | # undef YYCASE_ | 
| 1098 | 850 |     } | 
| 1099 |  |  | 
| 1100 | 850 |   { | 
| 1101 | 850 |     YYSIZE_T yysize1 = yysize + yystrlen (yyformat); | 
| 1102 | 850 |     if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) | 
| 1103 | 0 |       return 2; | 
| 1104 | 850 |     yysize = yysize1; | 
| 1105 | 850 |   } | 
| 1106 |  |  | 
| 1107 | 850 |   if (*yymsg_alloc < yysize) | 
| 1108 | 1 |     { | 
| 1109 | 1 |       *yymsg_alloc = 2 * yysize; | 
| 1110 | 1 |       if (! (yysize <= *yymsg_alloc | 
| 1111 | 1 |              && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) | 
| 1112 | 0 |         *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; | 
| 1113 | 1 |       return 1; | 
| 1114 | 1 |     } | 
| 1115 |  |  | 
| 1116 |  |   /* Avoid sprintf, as that infringes on the user's name space. | 
| 1117 |  |      Don't have undefined behavior even if the translation | 
| 1118 |  |      produced a string with the wrong number of "%s"s.  */ | 
| 1119 | 849 |   { | 
| 1120 | 849 |     char *yyp = *yymsg; | 
| 1121 | 849 |     int yyi = 0; | 
| 1122 | 28.0k |     while ((*yyp = *yyformat) != '\0') | 
| 1123 | 27.1k |       if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) | 
| 1124 | 1.31k |         { | 
| 1125 | 1.31k |           yyp += yytnamerr (yyp, yyarg[yyi++]); | 
| 1126 | 1.31k |           yyformat += 2; | 
| 1127 | 1.31k |         } | 
| 1128 | 25.8k |       else | 
| 1129 | 25.8k |         { | 
| 1130 | 25.8k |           yyp++; | 
| 1131 | 25.8k |           yyformat++; | 
| 1132 | 25.8k |         } | 
| 1133 | 849 |   } | 
| 1134 | 849 |   return 0; | 
| 1135 | 850 | } | 
| 1136 |  | #endif /* YYERROR_VERBOSE */ | 
| 1137 |  |  | 
| 1138 |  | /*-----------------------------------------------. | 
| 1139 |  | | Release the memory associated to this symbol.  | | 
| 1140 |  | `-----------------------------------------------*/ | 
| 1141 |  |  | 
| 1142 |  | static void | 
| 1143 |  | yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, ap_expr_parse_ctx_t *ctx) | 
| 1144 | 70.7k | { | 
| 1145 | 70.7k |   YYUSE (yyvaluep); | 
| 1146 | 70.7k |   YYUSE (ctx); | 
| 1147 | 70.7k |   if (!yymsg) | 
| 1148 | 0 |     yymsg = "Deleting"; | 
| 1149 | 70.7k |   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); | 
| 1150 |  |  | 
| 1151 | 70.7k |   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN | 
| 1152 | 70.7k |   YYUSE (yytype); | 
| 1153 | 70.7k |   YY_IGNORE_MAYBE_UNINITIALIZED_END | 
| 1154 | 70.7k | } | 
| 1155 |  |  | 
| 1156 |  |  | 
| 1157 |  |  | 
| 1158 |  |  | 
| 1159 |  | /*----------. | 
| 1160 |  | | yyparse.  | | 
| 1161 |  | `----------*/ | 
| 1162 |  |  | 
| 1163 |  | int | 
| 1164 |  | yyparse (ap_expr_parse_ctx_t *ctx) | 
| 1165 | 1.26k | { | 
| 1166 |  | /* The lookahead symbol.  */ | 
| 1167 | 1.26k | int yychar; | 
| 1168 |  |  | 
| 1169 |  |  | 
| 1170 |  | /* The semantic value of the lookahead symbol.  */ | 
| 1171 |  | /* Default value used for initialization, for pacifying older GCCs | 
| 1172 |  |    or non-GCC compilers.  */ | 
| 1173 | 1.26k | YY_INITIAL_VALUE (static YYSTYPE yyval_default;) | 
| 1174 | 1.26k | YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); | 
| 1175 |  |  | 
| 1176 |  |     /* Number of syntax errors so far.  */ | 
| 1177 | 1.26k |     int yynerrs; | 
| 1178 |  |  | 
| 1179 | 1.26k |     int yystate; | 
| 1180 |  |     /* Number of tokens to shift before error messages enabled.  */ | 
| 1181 | 1.26k |     int yyerrstatus; | 
| 1182 |  |  | 
| 1183 |  |     /* The stacks and their tools: | 
| 1184 |  |        'yyss': related to states. | 
| 1185 |  |        'yyvs': related to semantic values. | 
| 1186 |  |  | 
| 1187 |  |        Refer to the stacks through separate pointers, to allow yyoverflow | 
| 1188 |  |        to reallocate them elsewhere.  */ | 
| 1189 |  |  | 
| 1190 |  |     /* The state stack.  */ | 
| 1191 | 1.26k |     yytype_int16 yyssa[YYINITDEPTH]; | 
| 1192 | 1.26k |     yytype_int16 *yyss; | 
| 1193 | 1.26k |     yytype_int16 *yyssp; | 
| 1194 |  |  | 
| 1195 |  |     /* The semantic value stack.  */ | 
| 1196 | 1.26k |     YYSTYPE yyvsa[YYINITDEPTH]; | 
| 1197 | 1.26k |     YYSTYPE *yyvs; | 
| 1198 | 1.26k |     YYSTYPE *yyvsp; | 
| 1199 |  |  | 
| 1200 | 1.26k |     YYSIZE_T yystacksize; | 
| 1201 |  |  | 
| 1202 | 1.26k |   int yyn; | 
| 1203 | 1.26k |   int yyresult; | 
| 1204 |  |   /* Lookahead token as an internal (translated) token number.  */ | 
| 1205 | 1.26k |   int yytoken = 0; | 
| 1206 |  |   /* The variables used to return semantic value and location from the | 
| 1207 |  |      action routines.  */ | 
| 1208 | 1.26k |   YYSTYPE yyval; | 
| 1209 |  |  | 
| 1210 | 1.26k | #if YYERROR_VERBOSE | 
| 1211 |  |   /* Buffer for error messages, and its allocated size.  */ | 
| 1212 | 1.26k |   char yymsgbuf[128]; | 
| 1213 | 1.26k |   char *yymsg = yymsgbuf; | 
| 1214 | 1.26k |   YYSIZE_T yymsg_alloc = sizeof yymsgbuf; | 
| 1215 | 1.26k | #endif | 
| 1216 |  |  | 
| 1217 | 187k | #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N)) | 
| 1218 |  |  | 
| 1219 |  |   /* The number of symbols on the RHS of the reduced rule. | 
| 1220 |  |      Keep to zero when no symbol should be popped.  */ | 
| 1221 | 1.26k |   int yylen = 0; | 
| 1222 |  |  | 
| 1223 | 1.26k |   yyssp = yyss = yyssa; | 
| 1224 | 1.26k |   yyvsp = yyvs = yyvsa; | 
| 1225 | 1.26k |   yystacksize = YYINITDEPTH; | 
| 1226 |  |  | 
| 1227 | 1.26k |   YYDPRINTF ((stderr, "Starting parse\n")); | 
| 1228 |  |  | 
| 1229 | 1.26k |   yystate = 0; | 
| 1230 | 1.26k |   yyerrstatus = 0; | 
| 1231 | 1.26k |   yynerrs = 0; | 
| 1232 | 1.26k |   yychar = YYEMPTY; /* Cause a token to be read.  */ | 
| 1233 | 1.26k |   goto yysetstate; | 
| 1234 |  |  | 
| 1235 |  |   /* TODO: compiler warning that this is unused, and it seems to */ | 
| 1236 | 0 |   (void)yynerrs; | 
| 1237 |  | /*------------------------------------------------------------. | 
| 1238 |  | | yynewstate -- Push a new state, which is found in yystate.  | | 
| 1239 |  | `------------------------------------------------------------*/ | 
| 1240 | 295k |  yynewstate: | 
| 1241 |  |   /* In all cases, when you get here, the value and location stacks | 
| 1242 |  |      have just been pushed.  So pushing a state here evens the stacks.  */ | 
| 1243 | 295k |   yyssp++; | 
| 1244 |  |  | 
| 1245 | 296k |  yysetstate: | 
| 1246 | 296k |   *yyssp = yystate; | 
| 1247 |  |  | 
| 1248 | 296k |   if (yyss + yystacksize - 1 <= yyssp) | 
| 1249 | 129 |     { | 
| 1250 |  |       /* Get the current used size of the three stacks, in elements.  */ | 
| 1251 | 129 |       YYSIZE_T yysize = yyssp - yyss + 1; | 
| 1252 |  |  | 
| 1253 |  | #ifdef yyoverflow | 
| 1254 |  |       { | 
| 1255 |  |         /* Give user a chance to reallocate the stack.  Use copies of | 
| 1256 |  |            these so that the &'s don't force the real ones into | 
| 1257 |  |            memory.  */ | 
| 1258 |  |         YYSTYPE *yyvs1 = yyvs; | 
| 1259 |  |         yytype_int16 *yyss1 = yyss; | 
| 1260 |  |  | 
| 1261 |  |         /* Each stack pointer address is followed by the size of the | 
| 1262 |  |            data in use in that stack, in bytes.  This used to be a | 
| 1263 |  |            conditional around just the two extra args, but that might | 
| 1264 |  |            be undefined if yyoverflow is a macro.  */ | 
| 1265 |  |         yyoverflow (YY_("memory exhausted"), | 
| 1266 |  |                     &yyss1, yysize * sizeof (*yyssp), | 
| 1267 |  |                     &yyvs1, yysize * sizeof (*yyvsp), | 
| 1268 |  |                     &yystacksize); | 
| 1269 |  |  | 
| 1270 |  |         yyss = yyss1; | 
| 1271 |  |         yyvs = yyvs1; | 
| 1272 |  |       } | 
| 1273 |  | #else /* no yyoverflow */ | 
| 1274 |  | # ifndef YYSTACK_RELOCATE | 
| 1275 |  |       goto yyexhaustedlab; | 
| 1276 |  | # else | 
| 1277 |  |       /* Extend the stack our own way.  */ | 
| 1278 | 129 |       if (YYMAXDEPTH <= yystacksize) | 
| 1279 | 2 |         goto yyexhaustedlab; | 
| 1280 | 127 |       yystacksize *= 2; | 
| 1281 | 127 |       if (YYMAXDEPTH < yystacksize) | 
| 1282 | 3 |         yystacksize = YYMAXDEPTH; | 
| 1283 |  |  | 
| 1284 | 127 |       { | 
| 1285 | 127 |         yytype_int16 *yyss1 = yyss; | 
| 1286 | 127 |         union yyalloc *yyptr = | 
| 1287 | 127 |           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); | 
| 1288 | 127 |         if (! yyptr) | 
| 1289 | 0 |           goto yyexhaustedlab; | 
| 1290 | 127 |         YYSTACK_RELOCATE (yyss_alloc, yyss); | 
| 1291 | 127 |         YYSTACK_RELOCATE (yyvs_alloc, yyvs); | 
| 1292 | 127 | #  undef YYSTACK_RELOCATE | 
| 1293 | 127 |         if (yyss1 != yyssa) | 
| 1294 | 66 |           YYSTACK_FREE (yyss1); | 
| 1295 | 127 |       } | 
| 1296 | 0 | # endif | 
| 1297 | 0 | #endif /* no yyoverflow */ | 
| 1298 |  |  | 
| 1299 | 0 |       yyssp = yyss + yysize - 1; | 
| 1300 | 127 |       yyvsp = yyvs + yysize - 1; | 
| 1301 |  |  | 
| 1302 | 127 |       YYDPRINTF ((stderr, "Stack size increased to %lu\n", | 
| 1303 | 127 |                   (unsigned long int) yystacksize)); | 
| 1304 |  |  | 
| 1305 | 127 |       if (yyss + yystacksize - 1 <= yyssp) | 
| 1306 | 0 |         YYABORT; | 
| 1307 | 127 |     } | 
| 1308 |  |  | 
| 1309 | 296k |   YYDPRINTF ((stderr, "Entering state %d\n", yystate)); | 
| 1310 |  |  | 
| 1311 | 296k |   if (yystate == YYFINAL) | 
| 1312 | 344 |     YYACCEPT; | 
| 1313 |  |  | 
| 1314 | 296k |   goto yybackup; | 
| 1315 |  |  | 
| 1316 |  | /*-----------. | 
| 1317 |  | | yybackup.  | | 
| 1318 |  | `-----------*/ | 
| 1319 | 296k | yybackup: | 
| 1320 |  |  | 
| 1321 |  |   /* Do appropriate processing given the current state.  Read a | 
| 1322 |  |      lookahead token if we need one and don't already have one.  */ | 
| 1323 |  |  | 
| 1324 |  |   /* First try to decide what to do without reference to lookahead token.  */ | 
| 1325 | 296k |   yyn = yypact[yystate]; | 
| 1326 | 296k |   if (yypact_value_is_default (yyn)) | 
| 1327 | 101k |     goto yydefault; | 
| 1328 |  |  | 
| 1329 |  |   /* Not known => get a lookahead token if don't already have one.  */ | 
| 1330 |  |  | 
| 1331 |  |   /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */ | 
| 1332 | 195k |   if (yychar == YYEMPTY) | 
| 1333 | 179k |     { | 
| 1334 | 179k |       YYDPRINTF ((stderr, "Reading a token: ")); | 
| 1335 | 179k |       yychar = yylex (&yylval, yyscanner); | 
| 1336 | 179k |     } | 
| 1337 |  |  | 
| 1338 | 195k |   if (yychar <= YYEOF) | 
| 1339 | 3.04k |     { | 
| 1340 | 3.04k |       yychar = yytoken = YYEOF; | 
| 1341 | 3.04k |       YYDPRINTF ((stderr, "Now at end of input.\n")); | 
| 1342 | 3.04k |     } | 
| 1343 | 191k |   else | 
| 1344 | 191k |     { | 
| 1345 | 191k |       yytoken = YYTRANSLATE (yychar); | 
| 1346 | 191k |       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); | 
| 1347 | 191k |     } | 
| 1348 |  |  | 
| 1349 |  |   /* If the proper action on seeing token YYTOKEN is to reduce or to | 
| 1350 |  |      detect an error, take that action.  */ | 
| 1351 | 195k |   yyn += yytoken; | 
| 1352 | 195k |   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) | 
| 1353 | 16.6k |     goto yydefault; | 
| 1354 | 178k |   yyn = yytable[yyn]; | 
| 1355 | 178k |   if (yyn <= 0) | 
| 1356 | 0 |     { | 
| 1357 | 0 |       if (yytable_value_is_error (yyn)) | 
| 1358 | 0 |         goto yyerrlab; | 
| 1359 | 0 |       yyn = -yyn; | 
| 1360 | 0 |       goto yyreduce; | 
| 1361 | 0 |     } | 
| 1362 |  |  | 
| 1363 |  |   /* Count tokens shifted since error; after three, turn off error | 
| 1364 |  |      status.  */ | 
| 1365 | 178k |   if (yyerrstatus) | 
| 1366 | 0 |     yyerrstatus--; | 
| 1367 |  |  | 
| 1368 |  |   /* Shift the lookahead token.  */ | 
| 1369 | 178k |   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); | 
| 1370 |  |  | 
| 1371 |  |   /* Discard the shifted token.  */ | 
| 1372 | 178k |   yychar = YYEMPTY; | 
| 1373 |  |  | 
| 1374 | 178k |   yystate = yyn; | 
| 1375 | 178k |   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN | 
| 1376 | 178k |   *++yyvsp = yylval; | 
| 1377 | 178k |   YY_IGNORE_MAYBE_UNINITIALIZED_END | 
| 1378 |  |  | 
| 1379 | 178k |   goto yynewstate; | 
| 1380 |  |  | 
| 1381 |  |  | 
| 1382 |  | /*-----------------------------------------------------------. | 
| 1383 |  | | yydefault -- do the default action for the current state.  | | 
| 1384 |  | `-----------------------------------------------------------*/ | 
| 1385 | 117k | yydefault: | 
| 1386 | 117k |   yyn = yydefact[yystate]; | 
| 1387 | 117k |   if (yyn == 0) | 
| 1388 | 849 |     goto yyerrlab; | 
| 1389 | 116k |   goto yyreduce; | 
| 1390 |  |  | 
| 1391 |  |  | 
| 1392 |  | /*-----------------------------. | 
| 1393 |  | | yyreduce -- Do a reduction.  | | 
| 1394 |  | `-----------------------------*/ | 
| 1395 | 116k | yyreduce: | 
| 1396 |  |   /* yyn is the number of a rule to reduce with.  */ | 
| 1397 | 116k |   yylen = yyr2[yyn]; | 
| 1398 |  |  | 
| 1399 |  |   /* If YYLEN is nonzero, implement the default value of the action: | 
| 1400 |  |      '$$ = $1'. | 
| 1401 |  |  | 
| 1402 |  |      Otherwise, the following line sets YYVAL to garbage. | 
| 1403 |  |      This behavior is undocumented and Bison | 
| 1404 |  |      users should not rely upon it.  Assigning to YYVAL | 
| 1405 |  |      unconditionally makes the parser a bit smaller, and it avoids a | 
| 1406 |  |      GCC warning that YYVAL may be used uninitialized.  */ | 
| 1407 | 116k |   yyval = yyvsp[1-yylen]; | 
| 1408 |  |  | 
| 1409 |  |  | 
| 1410 | 116k |   YY_REDUCE_PRINT (yyn); | 
| 1411 | 116k |   switch (yyn) | 
| 1412 | 116k |     { | 
| 1413 | 0 |         case 2: | 
| 1414 | 0 | #line 128 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1415 | 0 |     { ctx->expr = (yyvsp[0].exVal); } | 
| 1416 | 0 | #line 1415 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1417 | 0 |     break; | 
| 1418 |  |  | 
| 1419 | 415 |   case 3: | 
| 1420 | 415 | #line 129 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1421 | 415 |     { ctx->expr = (yyvsp[0].exVal); } | 
| 1422 | 415 | #line 1421 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1423 | 415 |     break; | 
| 1424 |  |  | 
| 1425 | 0 |   case 4: | 
| 1426 | 0 | #line 130 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1427 | 0 |     { YYABORT; } | 
| 1428 | 0 | #line 1427 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1429 | 0 |     break; | 
| 1430 |  |  | 
| 1431 | 4.78k |   case 5: | 
| 1432 | 4.78k | #line 133 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1433 | 4.78k |     { (yyval.exVal) = (yyvsp[0].exVal); } | 
| 1434 | 4.78k | #line 1433 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1435 | 4.78k |     break; | 
| 1436 |  |  | 
| 1437 | 9.92k |   case 6: | 
| 1438 | 9.92k | #line 134 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1439 | 9.92k |     { (yyval.exVal) = ap_expr_concat_make((yyvsp[-1].exVal), (yyvsp[0].exVal), ctx); } | 
| 1440 | 9.92k | #line 1439 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1441 | 9.92k |     break; | 
| 1442 |  |  | 
| 1443 | 54 |   case 7: | 
| 1444 | 54 | #line 135 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1445 | 54 |     { YYABORT; } | 
| 1446 | 0 | #line 1445 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1447 | 0 |     break; | 
| 1448 |  |  | 
| 1449 | 379 |   case 8: | 
| 1450 | 379 | #line 138 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1451 | 379 |     { (yyval.exVal) = ap_expr_make(op_True,        NULL, NULL, ctx); } | 
| 1452 | 379 | #line 1451 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1453 | 379 |     break; | 
| 1454 |  |  | 
| 1455 | 276 |   case 9: | 
| 1456 | 276 | #line 139 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1457 | 276 |     { (yyval.exVal) = ap_expr_make(op_False,       NULL, NULL, ctx); } | 
| 1458 | 276 | #line 1457 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1459 | 276 |     break; | 
| 1460 |  |  | 
| 1461 | 689 |   case 10: | 
| 1462 | 689 | #line 140 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1463 | 689 |     { (yyval.exVal) = ap_expr_make(op_Not,         (yyvsp[0].exVal),   NULL, ctx); } | 
| 1464 | 689 | #line 1463 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1465 | 689 |     break; | 
| 1466 |  |  | 
| 1467 | 4.88k |   case 11: | 
| 1468 | 4.88k | #line 141 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1469 | 4.88k |     { (yyval.exVal) = ap_expr_make(op_Or,          (yyvsp[-2].exVal),   (yyvsp[0].exVal),   ctx); } | 
| 1470 | 4.88k | #line 1469 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1471 | 4.88k |     break; | 
| 1472 |  |  | 
| 1473 | 3.58k |   case 12: | 
| 1474 | 3.58k | #line 142 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1475 | 3.58k |     { (yyval.exVal) = ap_expr_make(op_And,         (yyvsp[-2].exVal),   (yyvsp[0].exVal),   ctx); } | 
| 1476 | 3.58k | #line 1475 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1477 | 3.58k |     break; | 
| 1478 |  |  | 
| 1479 | 7.15k |   case 13: | 
| 1480 | 7.15k | #line 143 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1481 | 7.15k |     { (yyval.exVal) = ap_expr_make(op_Comp,        (yyvsp[0].exVal),   NULL, ctx); } | 
| 1482 | 7.15k | #line 1481 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1483 | 7.15k |     break; | 
| 1484 |  |  | 
| 1485 | 459 |   case 14: | 
| 1486 | 459 | #line 144 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1487 | 459 |     { (yyval.exVal) = ap_expr_unary_op_make(       (yyvsp[-1].cpVal),   (yyvsp[0].exVal),   ctx); } | 
| 1488 | 459 | #line 1487 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1489 | 459 |     break; | 
| 1490 |  |  | 
| 1491 | 832 |   case 15: | 
| 1492 | 832 | #line 145 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1493 | 832 |     { (yyval.exVal) = ap_expr_binary_op_make((yyvsp[-1].cpVal),   (yyvsp[-2].exVal),   (yyvsp[0].exVal),   ctx); } | 
| 1494 | 832 | #line 1493 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1495 | 832 |     break; | 
| 1496 |  |  | 
| 1497 | 390 |   case 16: | 
| 1498 | 390 | #line 146 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1499 | 390 |     { (yyval.exVal) = (yyvsp[-1].exVal); } | 
| 1500 | 390 | #line 1499 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1501 | 390 |     break; | 
| 1502 |  |  | 
| 1503 | 12 |   case 17: | 
| 1504 | 12 | #line 147 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1505 | 12 |     { YYABORT; } | 
| 1506 | 0 | #line 1505 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1507 | 0 |     break; | 
| 1508 |  |  | 
| 1509 | 556 |   case 18: | 
| 1510 | 556 | #line 150 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1511 | 556 |     { (yyval.exVal) = ap_expr_make(op_EQ,      (yyvsp[-2].exVal), (yyvsp[0].exVal), ctx); } | 
| 1512 | 556 | #line 1511 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1513 | 556 |     break; | 
| 1514 |  |  | 
| 1515 | 418 |   case 19: | 
| 1516 | 418 | #line 151 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1517 | 418 |     { (yyval.exVal) = ap_expr_make(op_NE,      (yyvsp[-2].exVal), (yyvsp[0].exVal), ctx); } | 
| 1518 | 418 | #line 1517 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1519 | 418 |     break; | 
| 1520 |  |  | 
| 1521 | 427 |   case 20: | 
| 1522 | 427 | #line 152 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1523 | 427 |     { (yyval.exVal) = ap_expr_make(op_LT,      (yyvsp[-2].exVal), (yyvsp[0].exVal), ctx); } | 
| 1524 | 427 | #line 1523 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1525 | 427 |     break; | 
| 1526 |  |  | 
| 1527 | 547 |   case 21: | 
| 1528 | 547 | #line 153 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1529 | 547 |     { (yyval.exVal) = ap_expr_make(op_LE,      (yyvsp[-2].exVal), (yyvsp[0].exVal), ctx); } | 
| 1530 | 547 | #line 1529 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1531 | 547 |     break; | 
| 1532 |  |  | 
| 1533 | 522 |   case 22: | 
| 1534 | 522 | #line 154 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1535 | 522 |     { (yyval.exVal) = ap_expr_make(op_GT,      (yyvsp[-2].exVal), (yyvsp[0].exVal), ctx); } | 
| 1536 | 522 | #line 1535 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1537 | 522 |     break; | 
| 1538 |  |  | 
| 1539 | 431 |   case 23: | 
| 1540 | 431 | #line 155 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1541 | 431 |     { (yyval.exVal) = ap_expr_make(op_GE,      (yyvsp[-2].exVal), (yyvsp[0].exVal), ctx); } | 
| 1542 | 431 | #line 1541 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1543 | 431 |     break; | 
| 1544 |  |  | 
| 1545 | 673 |   case 24: | 
| 1546 | 673 | #line 156 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1547 | 673 |     { (yyval.exVal) = ap_expr_make(op_STR_EQ,  (yyvsp[-2].exVal), (yyvsp[0].exVal), ctx); } | 
| 1548 | 673 | #line 1547 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1549 | 673 |     break; | 
| 1550 |  |  | 
| 1551 | 228 |   case 25: | 
| 1552 | 228 | #line 157 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1553 | 228 |     { (yyval.exVal) = ap_expr_make(op_STR_NE,  (yyvsp[-2].exVal), (yyvsp[0].exVal), ctx); } | 
| 1554 | 228 | #line 1553 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1555 | 228 |     break; | 
| 1556 |  |  | 
| 1557 | 411 |   case 26: | 
| 1558 | 411 | #line 158 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1559 | 411 |     { (yyval.exVal) = ap_expr_make(op_STR_LT,  (yyvsp[-2].exVal), (yyvsp[0].exVal), ctx); } | 
| 1560 | 411 | #line 1559 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1561 | 411 |     break; | 
| 1562 |  |  | 
| 1563 | 105 |   case 27: | 
| 1564 | 105 | #line 159 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1565 | 105 |     { (yyval.exVal) = ap_expr_make(op_STR_LE,  (yyvsp[-2].exVal), (yyvsp[0].exVal), ctx); } | 
| 1566 | 105 | #line 1565 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1567 | 105 |     break; | 
| 1568 |  |  | 
| 1569 | 561 |   case 28: | 
| 1570 | 561 | #line 160 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1571 | 561 |     { (yyval.exVal) = ap_expr_make(op_STR_GT,  (yyvsp[-2].exVal), (yyvsp[0].exVal), ctx); } | 
| 1572 | 561 | #line 1571 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1573 | 561 |     break; | 
| 1574 |  |  | 
| 1575 | 203 |   case 29: | 
| 1576 | 203 | #line 161 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1577 | 203 |     { (yyval.exVal) = ap_expr_make(op_STR_GE,  (yyvsp[-2].exVal), (yyvsp[0].exVal), ctx); } | 
| 1578 | 203 | #line 1577 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1579 | 203 |     break; | 
| 1580 |  |  | 
| 1581 | 632 |   case 30: | 
| 1582 | 632 | #line 162 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1583 | 632 |     { (yyval.exVal) = ap_expr_make(op_REG,     (yyvsp[-2].exVal), (yyvsp[0].exVal), ctx); } | 
| 1584 | 632 | #line 1583 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1585 | 632 |     break; | 
| 1586 |  |  | 
| 1587 | 854 |   case 31: | 
| 1588 | 854 | #line 163 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1589 | 854 |     { (yyval.exVal) = ap_expr_make(op_NRE,     (yyvsp[-2].exVal), (yyvsp[0].exVal), ctx); } | 
| 1590 | 854 | #line 1589 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1591 | 854 |     break; | 
| 1592 |  |  | 
| 1593 | 586 |   case 32: | 
| 1594 | 586 | #line 164 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1595 | 586 |     { (yyval.exVal) = ap_expr_make(op_IN,      (yyvsp[-2].exVal), (yyvsp[0].exVal), ctx); } | 
| 1596 | 586 | #line 1595 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1597 | 586 |     break; | 
| 1598 |  |  | 
| 1599 | 18.3k |   case 33: | 
| 1600 | 18.3k | #line 167 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1601 | 18.3k |     { (yyval.exVal) = ap_expr_make(op_Digit,  (yyvsp[0].cpVal), NULL, ctx); } | 
| 1602 | 18.3k | #line 1601 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1603 | 18.3k |     break; | 
| 1604 |  |  | 
| 1605 | 2.12k |   case 34: | 
| 1606 | 2.12k | #line 168 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1607 | 2.12k |     { (yyval.exVal) = ap_expr_make(op_String, "", NULL, ctx); } | 
| 1608 | 2.12k | #line 1607 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1609 | 2.12k |     break; | 
| 1610 |  |  | 
| 1611 | 618 |   case 35: | 
| 1612 | 618 | #line 169 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1613 | 618 |     { (yyval.exVal) = (yyvsp[-1].exVal); } | 
| 1614 | 618 | #line 1613 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1615 | 618 |     break; | 
| 1616 |  |  | 
| 1617 | 1.78k |   case 36: | 
| 1618 | 1.78k | #line 170 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1619 | 1.78k |     { (yyval.exVal) = ap_expr_make(op_Concat, (yyvsp[-2].exVal), (yyvsp[0].exVal),   ctx); } | 
| 1620 | 1.78k | #line 1619 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1621 | 1.78k |     break; | 
| 1622 |  |  | 
| 1623 | 894 |   case 37: | 
| 1624 | 894 | #line 171 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1625 | 894 |     { (yyval.exVal) = (yyvsp[0].exVal); } | 
| 1626 | 894 | #line 1625 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1627 | 894 |     break; | 
| 1628 |  |  | 
| 1629 | 3.13k |   case 38: | 
| 1630 | 3.13k | #line 172 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1631 | 3.13k |     { (yyval.exVal) = (yyvsp[0].exVal); } | 
| 1632 | 3.13k | #line 1631 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1633 | 3.13k |     break; | 
| 1634 |  |  | 
| 1635 | 1.33k |   case 39: | 
| 1636 | 1.33k | #line 173 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1637 | 1.33k |     { (yyval.exVal) = (yyvsp[0].exVal); } | 
| 1638 | 1.33k | #line 1637 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1639 | 1.33k |     break; | 
| 1640 |  |  | 
| 1641 | 2.15k |   case 40: | 
| 1642 | 2.15k | #line 174 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1643 | 2.15k |     { (yyval.exVal) = (yyvsp[0].exVal); } | 
| 1644 | 2.15k | #line 1643 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1645 | 2.15k |     break; | 
| 1646 |  |  | 
| 1647 | 704 |   case 41: | 
| 1648 | 704 | #line 175 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1649 | 704 |     { (yyval.exVal) = (yyvsp[-1].exVal); } | 
| 1650 | 704 | #line 1649 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1651 | 704 |     break; | 
| 1652 |  |  | 
| 1653 | 866 |   case 42: | 
| 1654 | 866 | #line 178 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1655 | 866 |     { (yyval.exVal) = (yyvsp[0].exVal); } | 
| 1656 | 866 | #line 1655 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1657 | 866 |     break; | 
| 1658 |  |  | 
| 1659 | 1.56k |   case 43: | 
| 1660 | 1.56k | #line 179 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1661 | 1.56k |     { (yyval.exVal) = (yyvsp[0].exVal); } | 
| 1662 | 1.56k | #line 1661 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1663 | 1.56k |     break; | 
| 1664 |  |  | 
| 1665 | 0 |   case 44: | 
| 1666 | 0 | #line 180 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1667 | 0 |     { (yyval.exVal) = (yyvsp[-1].exVal); } | 
| 1668 | 0 | #line 1667 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1669 | 0 |     break; | 
| 1670 |  |  | 
| 1671 | 268 |   case 45: | 
| 1672 | 268 | #line 181 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1673 | 268 |     { (yyval.exVal) = (yyvsp[-1].exVal); } | 
| 1674 | 268 | #line 1673 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1675 | 268 |     break; | 
| 1676 |  |  | 
| 1677 | 9.35k |   case 46: | 
| 1678 | 9.35k | #line 184 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1679 | 9.35k |     { (yyval.exVal) = ap_expr_make(op_String, (yyvsp[0].cpVal), NULL, ctx); } | 
| 1680 | 9.35k | #line 1679 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1681 | 9.35k |     break; | 
| 1682 |  |  | 
| 1683 | 5.35k |   case 47: | 
| 1684 | 5.35k | #line 185 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1685 | 5.35k |     { (yyval.exVal) = (yyvsp[0].exVal); } | 
| 1686 | 5.35k | #line 1685 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1687 | 5.35k |     break; | 
| 1688 |  |  | 
| 1689 | 0 |   case 48: | 
| 1690 | 0 | #line 188 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1691 | 0 |     { (yyval.exVal) = ap_expr_var_make((yyvsp[-1].cpVal), ctx); } | 
| 1692 | 0 | #line 1691 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1693 | 0 |     break; | 
| 1694 |  |  | 
| 1695 | 0 |   case 49: | 
| 1696 | 0 | #line 189 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1697 | 0 |     { (yyval.exVal) = ap_expr_str_func_make((yyvsp[-3].cpVal), (yyvsp[-1].exVal), ctx); } | 
| 1698 | 0 | #line 1697 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1699 | 0 |     break; | 
| 1700 |  |  | 
| 1701 | 0 |   case 50: | 
| 1702 | 0 | #line 190 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1703 | 0 |     { (yyval.exVal) = ap_expr_make(op_Bool, (yyvsp[-1].exVal), NULL, ctx); } | 
| 1704 | 0 | #line 1703 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1705 | 0 |     break; | 
| 1706 |  |  | 
| 1707 | 0 |   case 51: | 
| 1708 | 0 | #line 191 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1709 | 0 |     { (yyval.exVal) = ap_expr_make(op_Word, (yyvsp[-1].exVal), NULL, ctx); } | 
| 1710 | 0 | #line 1709 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1711 | 0 |     break; | 
| 1712 |  |  | 
| 1713 | 6.24k |   case 52: | 
| 1714 | 6.24k | #line 192 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1715 | 6.24k |     { (yyval.exVal) = ap_expr_backref_make((yyvsp[0].num), ctx); } | 
| 1716 | 6.24k | #line 1715 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1717 | 6.24k |     break; | 
| 1718 |  |  | 
| 1719 | 1.41k |   case 53: | 
| 1720 | 1.41k | #line 195 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1721 | 1.41k |     { (yyval.exVal) = ap_expr_str_func_make((yyvsp[-3].cpVal), (yyvsp[-1].exVal), ctx); } | 
| 1722 | 1.41k | #line 1721 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1723 | 1.41k |     break; | 
| 1724 |  |  | 
| 1725 | 743 |   case 54: | 
| 1726 | 743 | #line 196 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1727 | 743 |     { (yyval.exVal) = ap_expr_str_func_make((yyvsp[-3].cpVal), (yyvsp[-1].exVal), ctx); } | 
| 1728 | 743 | #line 1727 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1729 | 743 |     break; | 
| 1730 |  |  | 
| 1731 | 1.56k |   case 55: | 
| 1732 | 1.56k | #line 199 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1733 | 1.56k |     { (yyval.exVal) = ap_expr_list_func_make((yyvsp[-3].cpVal), (yyvsp[-1].exVal), ctx); } | 
| 1734 | 1.56k | #line 1733 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1735 | 1.56k |     break; | 
| 1736 |  |  | 
| 1737 | 251 |   case 56: | 
| 1738 | 251 | #line 203 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1739 | 251 |     { (yyval.exVal) = ap_expr_make(op_Sub, (yyvsp[0].exVal), (yyvsp[-2].exVal), ctx); } | 
| 1740 | 251 | #line 1739 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1741 | 251 |     break; | 
| 1742 |  |  | 
| 1743 | 2.88k |   case 57: | 
| 1744 | 2.88k | #line 204 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1745 | 2.88k |     { (yyval.exVal) = ap_expr_make(op_Sub, (yyvsp[-1].exVal), (yyvsp[-3].exVal), ctx); } | 
| 1746 | 2.88k | #line 1745 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1747 | 2.88k |     break; | 
| 1748 |  |  | 
| 1749 | 781 |   case 58: | 
| 1750 | 781 | #line 207 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1751 | 781 |     { (yyval.exVal) = ap_expr_make(op_Join, (yyvsp[0].exVal), NULL, ctx); } | 
| 1752 | 781 | #line 1751 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1753 | 781 |     break; | 
| 1754 |  |  | 
| 1755 | 0 |   case 59: | 
| 1756 | 0 | #line 208 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1757 | 0 |     { (yyval.exVal) = ap_expr_make(op_Join, (yyvsp[-1].exVal), NULL, ctx); } | 
| 1758 | 0 | #line 1757 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1759 | 0 |     break; | 
| 1760 |  |  | 
| 1761 | 387 |   case 60: | 
| 1762 | 387 | #line 209 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1763 | 387 |     { (yyval.exVal) = ap_expr_make(op_Join, (yyvsp[-2].exVal), (yyvsp[0].exVal),   ctx); } | 
| 1764 | 387 | #line 1763 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1765 | 387 |     break; | 
| 1766 |  |  | 
| 1767 | 170 |   case 61: | 
| 1768 | 170 | #line 210 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1769 | 170 |     { (yyval.exVal) = ap_expr_make(op_Join, (yyvsp[-3].exVal), (yyvsp[-1].exVal),   ctx); } | 
| 1770 | 170 | #line 1769 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1771 | 170 |     break; | 
| 1772 |  |  | 
| 1773 | 311 |   case 62: | 
| 1774 | 311 | #line 213 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1775 | 311 |     { (yyval.exVal) = ap_expr_make(op_Split, (yyvsp[0].exVal), (yyvsp[-2].exVal), ctx); } | 
| 1776 | 311 | #line 1775 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1777 | 311 |     break; | 
| 1778 |  |  | 
| 1779 | 186 |   case 63: | 
| 1780 | 186 | #line 214 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1781 | 186 |     { (yyval.exVal) = ap_expr_make(op_Split, (yyvsp[-1].exVal), (yyvsp[-3].exVal), ctx); } | 
| 1782 | 186 | #line 1781 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1783 | 186 |     break; | 
| 1784 |  |  | 
| 1785 | 178 |   case 64: | 
| 1786 | 178 | #line 215 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1787 | 178 |     { (yyval.exVal) = ap_expr_make(op_Split, (yyvsp[0].exVal), (yyvsp[-2].exVal), ctx); } | 
| 1788 | 178 | #line 1787 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1789 | 178 |     break; | 
| 1790 |  |  | 
| 1791 | 191 |   case 65: | 
| 1792 | 191 | #line 216 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1793 | 191 |     { (yyval.exVal) = ap_expr_make(op_Split, (yyvsp[-1].exVal), (yyvsp[-3].exVal), ctx); } | 
| 1794 | 191 | #line 1793 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1795 | 191 |     break; | 
| 1796 |  |  | 
| 1797 | 757 |   case 66: | 
| 1798 | 757 | #line 219 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1799 | 757 |     { (yyval.exVal) = ap_expr_make(op_ListElement, (yyvsp[0].exVal), NULL, ctx); } | 
| 1800 | 757 | #line 1799 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1801 | 757 |     break; | 
| 1802 |  |  | 
| 1803 | 1.08k |   case 67: | 
| 1804 | 1.08k | #line 220 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1805 | 1.08k |     { (yyval.exVal) = ap_expr_make(op_ListElement, (yyvsp[-2].exVal), (yyvsp[0].exVal),   ctx); } | 
| 1806 | 1.08k | #line 1805 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1807 | 1.08k |     break; | 
| 1808 |  |  | 
| 1809 | 3.72k |   case 68: | 
| 1810 | 3.72k | #line 223 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1811 | 3.72k |     { | 
| 1812 | 3.72k |                 ap_expr_t *e = ap_expr_regex_make((yyvsp[-1].cpVal), NULL, (yyvsp[0].cpVal), ctx); | 
| 1813 | 3.72k |                 if (!e) { | 
| 1814 | 7 |                     ctx->error = "Failed to compile regular expression"; | 
| 1815 | 7 |                     YYERROR; | 
| 1816 | 7 |                 } | 
| 1817 | 3.71k |                 (yyval.exVal) = e; | 
| 1818 | 3.71k |             } | 
| 1819 | 0 | #line 1818 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1820 | 0 |     break; | 
| 1821 |  |  | 
| 1822 | 4.10k |   case 69: | 
| 1823 | 4.10k | #line 232 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1824 | 4.10k |     { | 
| 1825 | 4.10k |                 ap_expr_t *e = ap_expr_regex_make((yyvsp[-2].cpVal), (yyvsp[-1].exVal), (yyvsp[0].cpVal), ctx); | 
| 1826 | 4.10k |                 if (!e) { | 
| 1827 | 1 |                     ctx->error = "Failed to compile regular expression"; | 
| 1828 | 1 |                     YYERROR; | 
| 1829 | 1 |                 } | 
| 1830 | 4.09k |                 (yyval.exVal) = e; | 
| 1831 | 4.09k |             } | 
| 1832 | 0 | #line 1831 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1833 | 0 |     break; | 
| 1834 |  |  | 
| 1835 | 2.22k |   case 70: | 
| 1836 | 2.22k | #line 241 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1837 | 2.22k |     { (yyval.exVal) = (yyvsp[0].exVal); } | 
| 1838 | 2.22k | #line 1837 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1839 | 2.22k |     break; | 
| 1840 |  |  | 
| 1841 | 176 |   case 71: | 
| 1842 | 176 | #line 242 "util_expr_parse.y" /* yacc.c:1648  */ | 
| 1843 | 176 |     { (yyval.exVal) = (yyvsp[0].exVal); } | 
| 1844 | 176 | #line 1843 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1845 | 176 |     break; | 
| 1846 |  |  | 
| 1847 |  |  | 
| 1848 | 0 | #line 1847 "util_expr_parse.c" /* yacc.c:1648  */ | 
| 1849 | 0 |       default: break; | 
| 1850 | 116k |     } | 
| 1851 |  |   /* User semantic actions sometimes alter yychar, and that requires | 
| 1852 |  |      that yytoken be updated with the new translation.  We take the | 
| 1853 |  |      approach of translating immediately before every use of yytoken. | 
| 1854 |  |      One alternative is translating here after every semantic action, | 
| 1855 |  |      but that translation would be missed if the semantic action invokes | 
| 1856 |  |      YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or | 
| 1857 |  |      if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an | 
| 1858 |  |      incorrect destructor might then be invoked immediately.  In the | 
| 1859 |  |      case of YYERROR or YYBACKUP, subsequent parser actions might lead | 
| 1860 |  |      to an incorrect destructor call or verbose syntax error message | 
| 1861 |  |      before the lookahead is translated.  */ | 
| 1862 | 116k |   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); | 
| 1863 |  |  | 
| 1864 | 116k |   YYPOPSTACK (yylen); | 
| 1865 | 116k |   yylen = 0; | 
| 1866 | 116k |   YY_STACK_PRINT (yyss, yyssp); | 
| 1867 |  |  | 
| 1868 | 116k |   *++yyvsp = yyval; | 
| 1869 |  |  | 
| 1870 |  |   /* Now 'shift' the result of the reduction.  Determine what state | 
| 1871 |  |      that goes to, based on the state we popped back to and the rule | 
| 1872 |  |      number reduced by.  */ | 
| 1873 |  |  | 
| 1874 | 116k |   yyn = yyr1[yyn]; | 
| 1875 |  |  | 
| 1876 | 116k |   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; | 
| 1877 | 116k |   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) | 
| 1878 | 73.9k |     yystate = yytable[yystate]; | 
| 1879 | 42.8k |   else | 
| 1880 | 42.8k |     yystate = yydefgoto[yyn - YYNTOKENS]; | 
| 1881 |  |  | 
| 1882 | 116k |   goto yynewstate; | 
| 1883 |  |  | 
| 1884 |  |  | 
| 1885 |  | /*--------------------------------------. | 
| 1886 |  | | yyerrlab -- here on detecting error.  | | 
| 1887 |  | `--------------------------------------*/ | 
| 1888 | 849 | yyerrlab: | 
| 1889 |  |   /* Make sure we have latest lookahead translation.  See comments at | 
| 1890 |  |      user semantic actions for why this is necessary.  */ | 
| 1891 | 849 |   yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); | 
| 1892 |  |  | 
| 1893 |  |   /* If not already recovering from an error, report this error.  */ | 
| 1894 | 849 |   if (!yyerrstatus) | 
| 1895 | 849 |     { | 
| 1896 | 849 |       ++yynerrs; | 
| 1897 |  | #if ! YYERROR_VERBOSE | 
| 1898 |  |       yyerror (ctx, YY_("syntax error")); | 
| 1899 |  | #else | 
| 1900 | 850 | # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ | 
| 1901 | 850 |                                         yyssp, yytoken) | 
| 1902 | 849 |       { | 
| 1903 | 849 |         char const *yymsgp = YY_("syntax error"); | 
| 1904 | 849 |         int yysyntax_error_status; | 
| 1905 | 849 |         yysyntax_error_status = YYSYNTAX_ERROR; | 
| 1906 | 849 |         if (yysyntax_error_status == 0) | 
| 1907 | 848 |           yymsgp = yymsg; | 
| 1908 | 1 |         else if (yysyntax_error_status == 1) | 
| 1909 | 1 |           { | 
| 1910 | 1 |             if (yymsg != yymsgbuf) | 
| 1911 | 0 |               YYSTACK_FREE (yymsg); | 
| 1912 | 1 |             yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); | 
| 1913 | 1 |             if (!yymsg) | 
| 1914 | 0 |               { | 
| 1915 | 0 |                 yymsg = yymsgbuf; | 
| 1916 | 0 |                 yymsg_alloc = sizeof yymsgbuf; | 
| 1917 | 0 |                 yysyntax_error_status = 2; | 
| 1918 | 0 |               } | 
| 1919 | 1 |             else | 
| 1920 | 1 |               { | 
| 1921 | 1 |                 yysyntax_error_status = YYSYNTAX_ERROR; | 
| 1922 | 1 |                 yymsgp = yymsg; | 
| 1923 | 1 |               } | 
| 1924 | 1 |           } | 
| 1925 | 849 |         yyerror (ctx, yymsgp); | 
| 1926 | 849 |         if (yysyntax_error_status == 2) | 
| 1927 | 0 |           goto yyexhaustedlab; | 
| 1928 | 849 |       } | 
| 1929 | 849 | # undef YYSYNTAX_ERROR | 
| 1930 | 849 | #endif | 
| 1931 | 849 |     } | 
| 1932 |  |  | 
| 1933 |  |  | 
| 1934 |  |  | 
| 1935 | 849 |   if (yyerrstatus == 3) | 
| 1936 | 0 |     { | 
| 1937 |  |       /* If just tried and failed to reuse lookahead token after an | 
| 1938 |  |          error, discard it.  */ | 
| 1939 |  | 
 | 
| 1940 | 0 |       if (yychar <= YYEOF) | 
| 1941 | 0 |         { | 
| 1942 |  |           /* Return failure if at end of input.  */ | 
| 1943 | 0 |           if (yychar == YYEOF) | 
| 1944 | 0 |             YYABORT; | 
| 1945 | 0 |         } | 
| 1946 | 0 |       else | 
| 1947 | 0 |         { | 
| 1948 | 0 |           yydestruct ("Error: discarding", | 
| 1949 | 0 |                       yytoken, &yylval, ctx); | 
| 1950 | 0 |           yychar = YYEMPTY; | 
| 1951 | 0 |         } | 
| 1952 | 0 |     } | 
| 1953 |  |  | 
| 1954 |  |   /* Else will try to reuse lookahead token after shifting the error | 
| 1955 |  |      token.  */ | 
| 1956 | 849 |   goto yyerrlab1; | 
| 1957 |  |  | 
| 1958 |  |  | 
| 1959 |  | /*---------------------------------------------------. | 
| 1960 |  | | yyerrorlab -- error raised explicitly by YYERROR.  | | 
| 1961 |  | `---------------------------------------------------*/ | 
| 1962 | 849 | yyerrorlab: | 
| 1963 |  |  | 
| 1964 |  |   /* Pacify compilers like GCC when the user code never invokes | 
| 1965 |  |      YYERROR and the label yyerrorlab therefore never appears in user | 
| 1966 |  |      code.  */ | 
| 1967 | 8 |   if (/*CONSTCOND*/ 0) | 
| 1968 | 0 |      goto yyerrorlab; | 
| 1969 |  |  | 
| 1970 |  |   /* Do not reclaim the symbols of the rule whose action triggered | 
| 1971 |  |      this YYERROR.  */ | 
| 1972 | 8 |   YYPOPSTACK (yylen); | 
| 1973 | 8 |   yylen = 0; | 
| 1974 | 8 |   YY_STACK_PRINT (yyss, yyssp); | 
| 1975 | 8 |   yystate = *yyssp; | 
| 1976 | 8 |   goto yyerrlab1; | 
| 1977 |  |  | 
| 1978 |  |  | 
| 1979 |  | /*-------------------------------------------------------------. | 
| 1980 |  | | yyerrlab1 -- common code for both syntax error and YYERROR.  | | 
| 1981 |  | `-------------------------------------------------------------*/ | 
| 1982 | 857 | yyerrlab1: | 
| 1983 | 857 |   yyerrstatus = 3;      /* Each real token shifted decrements this.  */ | 
| 1984 |  |  | 
| 1985 | 857 |   for (;;) | 
| 1986 | 46.2k |     { | 
| 1987 | 46.2k |       yyn = yypact[yystate]; | 
| 1988 | 46.2k |       if (!yypact_value_is_default (yyn)) | 
| 1989 | 46.2k |         { | 
| 1990 | 46.2k |           yyn += YYTERROR; | 
| 1991 | 46.2k |           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) | 
| 1992 | 0 |             { | 
| 1993 | 0 |               yyn = yytable[yyn]; | 
| 1994 | 0 |               if (0 < yyn) | 
| 1995 | 0 |                 break; | 
| 1996 | 0 |             } | 
| 1997 | 46.2k |         } | 
| 1998 |  |  | 
| 1999 |  |       /* Pop the current state because it cannot handle the error token.  */ | 
| 2000 | 46.2k |       if (yyssp == yyss) | 
| 2001 | 857 |         YYABORT; | 
| 2002 |  |  | 
| 2003 |  |  | 
| 2004 | 45.3k |       yydestruct ("Error: popping", | 
| 2005 | 45.3k |                   yystos[yystate], yyvsp, ctx); | 
| 2006 | 45.3k |       YYPOPSTACK (1); | 
| 2007 | 45.3k |       yystate = *yyssp; | 
| 2008 | 45.3k |       YY_STACK_PRINT (yyss, yyssp); | 
| 2009 | 45.3k |     } | 
| 2010 |  |  | 
| 2011 | 0 |   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN | 
| 2012 | 0 |   *++yyvsp = yylval; | 
| 2013 | 0 |   YY_IGNORE_MAYBE_UNINITIALIZED_END | 
| 2014 |  |  | 
| 2015 |  |  | 
| 2016 |  |   /* Shift the error token.  */ | 
| 2017 | 0 |   YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); | 
| 2018 |  | 
 | 
| 2019 | 0 |   yystate = yyn; | 
| 2020 | 0 |   goto yynewstate; | 
| 2021 |  |  | 
| 2022 |  |  | 
| 2023 |  | /*-------------------------------------. | 
| 2024 |  | | yyacceptlab -- YYACCEPT comes here.  | | 
| 2025 |  | `-------------------------------------*/ | 
| 2026 | 344 | yyacceptlab: | 
| 2027 | 344 |   yyresult = 0; | 
| 2028 | 344 |   goto yyreturn; | 
| 2029 |  |  | 
| 2030 |  | /*-----------------------------------. | 
| 2031 |  | | yyabortlab -- YYABORT comes here.  | | 
| 2032 |  | `-----------------------------------*/ | 
| 2033 | 923 | yyabortlab: | 
| 2034 | 923 |   yyresult = 1; | 
| 2035 | 923 |   goto yyreturn; | 
| 2036 |  |  | 
| 2037 | 0 | #if !defined yyoverflow || YYERROR_VERBOSE | 
| 2038 |  | /*-------------------------------------------------. | 
| 2039 |  | | yyexhaustedlab -- memory exhaustion comes here.  | | 
| 2040 |  | `-------------------------------------------------*/ | 
| 2041 | 2 | yyexhaustedlab: | 
| 2042 | 2 |   yyerror (ctx, YY_("memory exhausted")); | 
| 2043 | 2 |   yyresult = 2; | 
| 2044 |  |   /* Fall through.  */ | 
| 2045 | 2 | #endif | 
| 2046 |  |  | 
| 2047 | 1.26k | yyreturn: | 
| 2048 | 1.26k |   if (yychar != YYEMPTY) | 
| 2049 | 849 |     { | 
| 2050 |  |       /* Make sure we have latest lookahead translation.  See comments at | 
| 2051 |  |          user semantic actions for why this is necessary.  */ | 
| 2052 | 849 |       yytoken = YYTRANSLATE (yychar); | 
| 2053 | 849 |       yydestruct ("Cleanup: discarding lookahead", | 
| 2054 | 849 |                   yytoken, &yylval, ctx); | 
| 2055 | 849 |     } | 
| 2056 |  |   /* Do not reclaim the symbols of the rule whose action triggered | 
| 2057 |  |      this YYABORT or YYACCEPT.  */ | 
| 2058 | 1.26k |   YYPOPSTACK (yylen); | 
| 2059 | 1.26k |   YY_STACK_PRINT (yyss, yyssp); | 
| 2060 | 25.7k |   while (yyssp != yyss) | 
| 2061 | 24.4k |     { | 
| 2062 | 24.4k |       yydestruct ("Cleanup: popping", | 
| 2063 | 24.4k |                   yystos[*yyssp], yyvsp, ctx); | 
| 2064 | 24.4k |       YYPOPSTACK (1); | 
| 2065 | 24.4k |     } | 
| 2066 | 1.26k | #ifndef yyoverflow | 
| 2067 | 1.26k |   if (yyss != yyssa) | 
| 2068 | 61 |     YYSTACK_FREE (yyss); | 
| 2069 | 1.26k | #endif | 
| 2070 | 1.26k | #if YYERROR_VERBOSE | 
| 2071 | 1.26k |   if (yymsg != yymsgbuf) | 
| 2072 | 1 |     YYSTACK_FREE (yymsg); | 
| 2073 | 1.26k | #endif | 
| 2074 | 1.26k |   return yyresult; | 
| 2075 | 2 | } | 
| 2076 |  | #line 245 "util_expr_parse.y" /* yacc.c:1907  */ | 
| 2077 |  |  | 
| 2078 |  |  | 
| 2079 |  | void yyerror(ap_expr_parse_ctx_t *ctx, const char *s) | 
| 2080 | 851 | { | 
| 2081 |  |     /* s is allocated on the stack */ | 
| 2082 | 851 |     ctx->error = apr_pstrdup(ctx->ptemp, s); | 
| 2083 | 851 | } | 
| 2084 |  |  |