server/util_expr_eval.c:597: error: INTEGER_OVERFLOW_L2
  ([0, +oo] - 1):unsigned64 by call to `ap_expr_yyparse`.

server/util_expr_eval.c:595:5: Call
593.     ctx.at_start    = 1;
594. 
595.     ap_expr_yylex_init(&ctx.scanner);
         ^
596.     ap_expr_yyset_extra(&ctx, ctx.scanner);
597.     rc = ap_expr_yyparse(&ctx);

server/util_expr_scan.c:2676:12: Call
  2674.     memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
  2675. 
  2676.     return yy_init_globals ( *ptr_yy_globals );
                   ^
  2677. }
  2678. 

server/util_expr_scan.c:2724:5: Assignment
    2722.     yyg->yy_buffer_stack = NULL;
    2723.     yyg->yy_buffer_stack_top = 0;
    2724.     yyg->yy_buffer_stack_max = 0;
              ^
    2725.     yyg->yy_c_buf_p = NULL;
    2726.     yyg->yy_init = 0;

server/util_expr_eval.c:597:10: Call
595.     ap_expr_yylex_init(&ctx.scanner);
596.     ap_expr_yyset_extra(&ctx, ctx.scanner);
597.     rc = ap_expr_yyparse(&ctx);
              ^
598.     ap_expr_yylex_destroy(ctx.scanner);
599. 

server/util_expr_parse.c:1163:1: Parameter `ctx->scanner->yy_buffer_stack_max`
  1161. `----------*/
  1162. 
  1163. int
        ^
  1164. yyparse (ap_expr_parse_ctx_t *ctx)
  1165. {

server/util_expr_parse.c:1333:16: Call
  1331.     {
  1332.       YYDPRINTF ((stderr, "Reading a token: "));
  1333.       yychar = yylex (&yylval, yyscanner);
                       ^
  1334.     }
  1335. 

server/util_expr_scan.c:971:1: Parameter `yyscanner->yy_buffer_stack_max`
    969. /** The main scanner function which does all the work.
    970.  */
    971. YY_DECL
         ^
    972. {
    973. 	yy_state_type yy_current_state;

server/util_expr_scan.c:998:4: Call
     996. 
     997. 		if ( ! YY_CURRENT_BUFFER ) {
     998. 			ap_expr_yyensure_buffer_stack (yyscanner);
             ^
     999. 			YY_CURRENT_BUFFER_LVALUE =
    1000. 				ap_expr_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);

server/util_expr_scan.c:2319:1: <LHS trace>
2317.  *  Guarantees space for at least one push.
2318.  */
2319. static void ap_expr_yyensure_buffer_stack (yyscan_t yyscanner)
      ^
2320. {
2321. 	int num_to_alloc;

server/util_expr_scan.c:2319:1: Parameter `yyscanner->yy_buffer_stack_max`
      2317.  *  Guarantees space for at least one push.
      2318.  */
      2319. static void ap_expr_yyensure_buffer_stack (yyscan_t yyscanner)
            ^
      2320. {
      2321. 	int num_to_alloc;

server/util_expr_scan.c:2344:6: Binary operation: ([0, +oo] - 1):unsigned64 by call to `ap_expr_yyparse` 
      2342. 	}
      2343. 
      2344. 	if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
                 ^
      2345. 
      2346. 		/* Increase the buffer to prepare for a possible push. */

static void ap_expr_yyensure_buffer_stack (yyscan_t yyscanner)
{
	int num_to_alloc;
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
	if (!yyg->yy_buffer_stack) {
      num_to_alloc = 1;
		yyg->yy_buffer_stack = (struct yy_buffer_state**)ap_expr_yyalloc
								(num_to_alloc * sizeof(struct yy_buffer_state*)
								, yyscanner);
		if ( ! yyg->yy_buffer_stack )
			YY_FATAL_ERROR( "out of dynamic memory in ap_expr_yyensure_buffer_stack()" );
		memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
		yyg->yy_buffer_stack_max = num_to_alloc;
		yyg->yy_buffer_stack_top = 0;
		return;
	}
	if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
		yy_size_t grow_size = 8  ;
		num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
		yyg->yy_buffer_stack = (struct yy_buffer_state**)ap_expr_yyrealloc
								(yyg->yy_buffer_stack,
								num_to_alloc * sizeof(struct yy_buffer_state*)
								, yyscanner);
		if ( ! yyg->yy_buffer_stack )
			YY_FATAL_ERROR( "out of dynamic memory in ap_expr_yyensure_buffer_stack()" );
		memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
		yyg->yy_buffer_stack_max = num_to_alloc;
	}
}
['AP_DECLARE(const char *) ap_expr_parse(apr_pool_t *pool, apr_pool_t *ptemp,\n                                       ap_expr_info_t *info, const char *expr,\n                                       ap_expr_lookup_fn_t *lookup_fn)\n{\n    ap_expr_parse_ctx_t ctx;\n    int rc;\n    memset(&ctx, 0, sizeof ctx);\n    ctx.pool     = pool;\n    ctx.ptemp    = ptemp;\n    ctx.inputbuf = expr;\n    ctx.inputlen = strlen(expr);\n    ctx.inputptr = ctx.inputbuf;\n    ctx.flags    = info->flags;\n    ctx.lookup_fn   = lookup_fn ? lookup_fn : ap_expr_lookup_default;\n    ctx.at_start    = 1;\n    ap_expr_yylex_init(&ctx.scanner);\n    ap_expr_yyset_extra(&ctx, ctx.scanner);\n    rc = ap_expr_yyparse(&ctx);\n    ap_expr_yylex_destroy(ctx.scanner);\n    if (ctx.error) {\n        if (ctx.error2)\n            return apr_psprintf(pool, "%s: %s", ctx.error, ctx.error2);\n        else\n            return ctx.error;\n    }\n    else if (ctx.error2) {\n        return ctx.error2;\n    }\n    if (rc)\n        return "syntax error";\n#ifdef AP_EXPR_DEBUG\n    if (ctx.expr)\n        expr_dump_tree(ctx.expr, NULL, APLOG_NOTICE, 2);\n#endif\n    info->root_node = ctx.expr;\n    return NULL;\n}', 'int ap_expr_yylex_init(yyscan_t* ptr_yy_globals)\n{\n    if (ptr_yy_globals == NULL){\n        errno = EINVAL;\n        return 1;\n    }\n    *ptr_yy_globals = (yyscan_t) ap_expr_yyalloc ( sizeof( struct yyguts_t ), NULL );\n    if (*ptr_yy_globals == NULL){\n        errno = ENOMEM;\n        return 1;\n    }\n    memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));\n    return yy_init_globals ( *ptr_yy_globals );\n}', 'static int yy_init_globals (yyscan_t yyscanner)\n{\n    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;\n    yyg->yy_buffer_stack = NULL;\n    yyg->yy_buffer_stack_top = 0;\n    yyg->yy_buffer_stack_max = 0;\n    yyg->yy_c_buf_p = NULL;\n    yyg->yy_init = 0;\n    yyg->yy_start = 0;\n    yyg->yy_start_stack_ptr = 0;\n    yyg->yy_start_stack_depth = 0;\n    yyg->yy_start_stack =  NULL;\n#ifdef YY_STDINIT\n    yyin = stdin;\n    yyout = stdout;\n#else\n    yyin = NULL;\n    yyout = NULL;\n#endif\n    return 0;\n}', 'int\nyyparse (ap_expr_parse_ctx_t *ctx)\n{\nint yychar;\nYY_INITIAL_VALUE (static YYSTYPE yyval_default;)\nYYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);\n    int yynerrs;\n    int yystate;\n    int yyerrstatus;\n    yytype_int16 yyssa[YYINITDEPTH];\n    yytype_int16 *yyss;\n    yytype_int16 *yyssp;\n    YYSTYPE yyvsa[YYINITDEPTH];\n    YYSTYPE *yyvs;\n    YYSTYPE *yyvsp;\n    YYSIZE_T yystacksize;\n  int yyn;\n  int yyresult;\n  int yytoken = 0;\n  YYSTYPE yyval;\n#if YYERROR_VERBOSE\n  char yymsgbuf[128];\n  char *yymsg = yymsgbuf;\n  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;\n#endif\n#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))\n  int yylen = 0;\n  yyssp = yyss = yyssa;\n  yyvsp = yyvs = yyvsa;\n  yystacksize = YYINITDEPTH;\n  YYDPRINTF ((stderr, "Starting parse\\n"));\n  yystate = 0;\n  yyerrstatus = 0;\n  yynerrs = 0;\n  yychar = YYEMPTY;\n  goto yysetstate;\n yynewstate:\n  yyssp++;\n yysetstate:\n  *yyssp = yystate;\n  if (yyss + yystacksize - 1 <= yyssp)\n    {\n      YYSIZE_T yysize = yyssp - yyss + 1;\n#ifdef yyoverflow\n      {\n        YYSTYPE *yyvs1 = yyvs;\n        yytype_int16 *yyss1 = yyss;\n        yyoverflow (YY_("memory exhausted"),\n                    &yyss1, yysize * sizeof (*yyssp),\n                    &yyvs1, yysize * sizeof (*yyvsp),\n                    &yystacksize);\n        yyss = yyss1;\n        yyvs = yyvs1;\n      }\n#else\n# ifndef YYSTACK_RELOCATE\n      goto yyexhaustedlab;\n# else\n      if (YYMAXDEPTH <= yystacksize)\n        goto yyexhaustedlab;\n      yystacksize *= 2;\n      if (YYMAXDEPTH < yystacksize)\n        yystacksize = YYMAXDEPTH;\n      {\n        yytype_int16 *yyss1 = yyss;\n        union yyalloc *yyptr =\n          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));\n        if (! yyptr)\n          goto yyexhaustedlab;\n        YYSTACK_RELOCATE (yyss_alloc, yyss);\n        YYSTACK_RELOCATE (yyvs_alloc, yyvs);\n#  undef YYSTACK_RELOCATE\n        if (yyss1 != yyssa)\n          YYSTACK_FREE (yyss1);\n      }\n# endif\n#endif\n      yyssp = yyss + yysize - 1;\n      yyvsp = yyvs + yysize - 1;\n      YYDPRINTF ((stderr, "Stack size increased to %lu\\n",\n                  (unsigned long int) yystacksize));\n      if (yyss + yystacksize - 1 <= yyssp)\n        YYABORT;\n    }\n  YYDPRINTF ((stderr, "Entering state %d\\n", yystate));\n  if (yystate == YYFINAL)\n    YYACCEPT;\n  goto yybackup;\nyybackup:\n  yyn = yypact[yystate];\n  if (yypact_value_is_default (yyn))\n    goto yydefault;\n  if (yychar == YYEMPTY)\n    {\n      YYDPRINTF ((stderr, "Reading a token: "));\n      yychar = yylex (&yylval, yyscanner);\n    }\n  if (yychar <= YYEOF)\n    {\n      yychar = yytoken = YYEOF;\n      YYDPRINTF ((stderr, "Now at end of input.\\n"));\n    }\n  else\n    {\n      yytoken = YYTRANSLATE (yychar);\n      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);\n    }\n  yyn += yytoken;\n  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)\n    goto yydefault;\n  yyn = yytable[yyn];\n  if (yyn <= 0)\n    {\n      if (yytable_value_is_error (yyn))\n        goto yyerrlab;\n      yyn = -yyn;\n      goto yyreduce;\n    }\n  if (yyerrstatus)\n    yyerrstatus--;\n  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);\n  yychar = YYEMPTY;\n  yystate = yyn;\n  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN\n  *++yyvsp = yylval;\n  YY_IGNORE_MAYBE_UNINITIALIZED_END\n  goto yynewstate;\nyydefault:\n  yyn = yydefact[yystate];\n  if (yyn == 0)\n    goto yyerrlab;\n  goto yyreduce;\nyyreduce:\n  yylen = yyr2[yyn];\n  yyval = yyvsp[1-yylen];\n  YY_REDUCE_PRINT (yyn);\n  switch (yyn)\n    {\n        case 2:\n#line 128 "util_expr_parse.y"\n    { ctx->expr = (yyvsp[0].exVal); }\n#line 1415 "util_expr_parse.c"\n    break;\n  case 3:\n#line 129 "util_expr_parse.y"\n    { ctx->expr = (yyvsp[0].exVal); }\n#line 1421 "util_expr_parse.c"\n    break;\n  case 4:\n#line 130 "util_expr_parse.y"\n    { YYABORT; }\n#line 1427 "util_expr_parse.c"\n    break;\n  case 5:\n#line 133 "util_expr_parse.y"\n    { (yyval.exVal) = (yyvsp[0].exVal); }\n#line 1433 "util_expr_parse.c"\n    break;\n  case 6:\n#line 134 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_concat_make((yyvsp[-1].exVal), (yyvsp[0].exVal), ctx); }\n#line 1439 "util_expr_parse.c"\n    break;\n  case 7:\n#line 135 "util_expr_parse.y"\n    { YYABORT; }\n#line 1445 "util_expr_parse.c"\n    break;\n  case 8:\n#line 138 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_make(op_True,        NULL, NULL, ctx); }\n#line 1451 "util_expr_parse.c"\n    break;\n  case 9:\n#line 139 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_make(op_False,       NULL, NULL, ctx); }\n#line 1457 "util_expr_parse.c"\n    break;\n  case 10:\n#line 140 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_make(op_Not,         (yyvsp[0].exVal),   NULL, ctx); }\n#line 1463 "util_expr_parse.c"\n    break;\n  case 11:\n#line 141 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_make(op_Or,          (yyvsp[-2].exVal),   (yyvsp[0].exVal),   ctx); }\n#line 1469 "util_expr_parse.c"\n    break;\n  case 12:\n#line 142 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_make(op_And,         (yyvsp[-2].exVal),   (yyvsp[0].exVal),   ctx); }\n#line 1475 "util_expr_parse.c"\n    break;\n  case 13:\n#line 143 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_make(op_Comp,        (yyvsp[0].exVal),   NULL, ctx); }\n#line 1481 "util_expr_parse.c"\n    break;\n  case 14:\n#line 144 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_unary_op_make(       (yyvsp[-1].cpVal),   (yyvsp[0].exVal),   ctx); }\n#line 1487 "util_expr_parse.c"\n    break;\n  case 15:\n#line 145 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_binary_op_make((yyvsp[-1].cpVal),   (yyvsp[-2].exVal),   (yyvsp[0].exVal),   ctx); }\n#line 1493 "util_expr_parse.c"\n    break;\n  case 16:\n#line 146 "util_expr_parse.y"\n    { (yyval.exVal) = (yyvsp[-1].exVal); }\n#line 1499 "util_expr_parse.c"\n    break;\n  case 17:\n#line 147 "util_expr_parse.y"\n    { YYABORT; }\n#line 1505 "util_expr_parse.c"\n    break;\n  case 18:\n#line 150 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_make(op_EQ,      (yyvsp[-2].exVal), (yyvsp[0].exVal), ctx); }\n#line 1511 "util_expr_parse.c"\n    break;\n  case 19:\n#line 151 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_make(op_NE,      (yyvsp[-2].exVal), (yyvsp[0].exVal), ctx); }\n#line 1517 "util_expr_parse.c"\n    break;\n  case 20:\n#line 152 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_make(op_LT,      (yyvsp[-2].exVal), (yyvsp[0].exVal), ctx); }\n#line 1523 "util_expr_parse.c"\n    break;\n  case 21:\n#line 153 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_make(op_LE,      (yyvsp[-2].exVal), (yyvsp[0].exVal), ctx); }\n#line 1529 "util_expr_parse.c"\n    break;\n  case 22:\n#line 154 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_make(op_GT,      (yyvsp[-2].exVal), (yyvsp[0].exVal), ctx); }\n#line 1535 "util_expr_parse.c"\n    break;\n  case 23:\n#line 155 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_make(op_GE,      (yyvsp[-2].exVal), (yyvsp[0].exVal), ctx); }\n#line 1541 "util_expr_parse.c"\n    break;\n  case 24:\n#line 156 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_make(op_STR_EQ,  (yyvsp[-2].exVal), (yyvsp[0].exVal), ctx); }\n#line 1547 "util_expr_parse.c"\n    break;\n  case 25:\n#line 157 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_make(op_STR_NE,  (yyvsp[-2].exVal), (yyvsp[0].exVal), ctx); }\n#line 1553 "util_expr_parse.c"\n    break;\n  case 26:\n#line 158 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_make(op_STR_LT,  (yyvsp[-2].exVal), (yyvsp[0].exVal), ctx); }\n#line 1559 "util_expr_parse.c"\n    break;\n  case 27:\n#line 159 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_make(op_STR_LE,  (yyvsp[-2].exVal), (yyvsp[0].exVal), ctx); }\n#line 1565 "util_expr_parse.c"\n    break;\n  case 28:\n#line 160 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_make(op_STR_GT,  (yyvsp[-2].exVal), (yyvsp[0].exVal), ctx); }\n#line 1571 "util_expr_parse.c"\n    break;\n  case 29:\n#line 161 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_make(op_STR_GE,  (yyvsp[-2].exVal), (yyvsp[0].exVal), ctx); }\n#line 1577 "util_expr_parse.c"\n    break;\n  case 30:\n#line 162 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_make(op_REG,     (yyvsp[-2].exVal), (yyvsp[0].exVal), ctx); }\n#line 1583 "util_expr_parse.c"\n    break;\n  case 31:\n#line 163 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_make(op_NRE,     (yyvsp[-2].exVal), (yyvsp[0].exVal), ctx); }\n#line 1589 "util_expr_parse.c"\n    break;\n  case 32:\n#line 164 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_make(op_IN,      (yyvsp[-2].exVal), (yyvsp[0].exVal), ctx); }\n#line 1595 "util_expr_parse.c"\n    break;\n  case 33:\n#line 167 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_make(op_Digit,  (yyvsp[0].cpVal), NULL, ctx); }\n#line 1601 "util_expr_parse.c"\n    break;\n  case 34:\n#line 168 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_make(op_String, "", NULL, ctx); }\n#line 1607 "util_expr_parse.c"\n    break;\n  case 35:\n#line 169 "util_expr_parse.y"\n    { (yyval.exVal) = (yyvsp[-1].exVal); }\n#line 1613 "util_expr_parse.c"\n    break;\n  case 36:\n#line 170 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_make(op_Concat, (yyvsp[-2].exVal), (yyvsp[0].exVal),   ctx); }\n#line 1619 "util_expr_parse.c"\n    break;\n  case 37:\n#line 171 "util_expr_parse.y"\n    { (yyval.exVal) = (yyvsp[0].exVal); }\n#line 1625 "util_expr_parse.c"\n    break;\n  case 38:\n#line 172 "util_expr_parse.y"\n    { (yyval.exVal) = (yyvsp[0].exVal); }\n#line 1631 "util_expr_parse.c"\n    break;\n  case 39:\n#line 173 "util_expr_parse.y"\n    { (yyval.exVal) = (yyvsp[0].exVal); }\n#line 1637 "util_expr_parse.c"\n    break;\n  case 40:\n#line 174 "util_expr_parse.y"\n    { (yyval.exVal) = (yyvsp[0].exVal); }\n#line 1643 "util_expr_parse.c"\n    break;\n  case 41:\n#line 175 "util_expr_parse.y"\n    { (yyval.exVal) = (yyvsp[-1].exVal); }\n#line 1649 "util_expr_parse.c"\n    break;\n  case 42:\n#line 178 "util_expr_parse.y"\n    { (yyval.exVal) = (yyvsp[0].exVal); }\n#line 1655 "util_expr_parse.c"\n    break;\n  case 43:\n#line 179 "util_expr_parse.y"\n    { (yyval.exVal) = (yyvsp[0].exVal); }\n#line 1661 "util_expr_parse.c"\n    break;\n  case 44:\n#line 180 "util_expr_parse.y"\n    { (yyval.exVal) = (yyvsp[-1].exVal); }\n#line 1667 "util_expr_parse.c"\n    break;\n  case 45:\n#line 181 "util_expr_parse.y"\n    { (yyval.exVal) = (yyvsp[-1].exVal); }\n#line 1673 "util_expr_parse.c"\n    break;\n  case 46:\n#line 184 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_make(op_String, (yyvsp[0].cpVal), NULL, ctx); }\n#line 1679 "util_expr_parse.c"\n    break;\n  case 47:\n#line 185 "util_expr_parse.y"\n    { (yyval.exVal) = (yyvsp[0].exVal); }\n#line 1685 "util_expr_parse.c"\n    break;\n  case 48:\n#line 188 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_var_make((yyvsp[-1].cpVal), ctx); }\n#line 1691 "util_expr_parse.c"\n    break;\n  case 49:\n#line 189 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_str_func_make((yyvsp[-3].cpVal), (yyvsp[-1].exVal), ctx); }\n#line 1697 "util_expr_parse.c"\n    break;\n  case 50:\n#line 190 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_make(op_Bool, (yyvsp[-1].exVal), NULL, ctx); }\n#line 1703 "util_expr_parse.c"\n    break;\n  case 51:\n#line 191 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_make(op_Word, (yyvsp[-1].exVal), NULL, ctx); }\n#line 1709 "util_expr_parse.c"\n    break;\n  case 52:\n#line 192 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_backref_make((yyvsp[0].num), ctx); }\n#line 1715 "util_expr_parse.c"\n    break;\n  case 53:\n#line 195 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_str_func_make((yyvsp[-3].cpVal), (yyvsp[-1].exVal), ctx); }\n#line 1721 "util_expr_parse.c"\n    break;\n  case 54:\n#line 196 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_str_func_make((yyvsp[-3].cpVal), (yyvsp[-1].exVal), ctx); }\n#line 1727 "util_expr_parse.c"\n    break;\n  case 55:\n#line 199 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_list_func_make((yyvsp[-3].cpVal), (yyvsp[-1].exVal), ctx); }\n#line 1733 "util_expr_parse.c"\n    break;\n  case 56:\n#line 203 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_make(op_Sub, (yyvsp[0].exVal), (yyvsp[-2].exVal), ctx); }\n#line 1739 "util_expr_parse.c"\n    break;\n  case 57:\n#line 204 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_make(op_Sub, (yyvsp[-1].exVal), (yyvsp[-3].exVal), ctx); }\n#line 1745 "util_expr_parse.c"\n    break;\n  case 58:\n#line 207 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_make(op_Join, (yyvsp[0].exVal), NULL, ctx); }\n#line 1751 "util_expr_parse.c"\n    break;\n  case 59:\n#line 208 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_make(op_Join, (yyvsp[-1].exVal), NULL, ctx); }\n#line 1757 "util_expr_parse.c"\n    break;\n  case 60:\n#line 209 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_make(op_Join, (yyvsp[-2].exVal), (yyvsp[0].exVal),   ctx); }\n#line 1763 "util_expr_parse.c"\n    break;\n  case 61:\n#line 210 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_make(op_Join, (yyvsp[-3].exVal), (yyvsp[-1].exVal),   ctx); }\n#line 1769 "util_expr_parse.c"\n    break;\n  case 62:\n#line 213 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_make(op_Split, (yyvsp[0].exVal), (yyvsp[-2].exVal), ctx); }\n#line 1775 "util_expr_parse.c"\n    break;\n  case 63:\n#line 214 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_make(op_Split, (yyvsp[-1].exVal), (yyvsp[-3].exVal), ctx); }\n#line 1781 "util_expr_parse.c"\n    break;\n  case 64:\n#line 215 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_make(op_Split, (yyvsp[0].exVal), (yyvsp[-2].exVal), ctx); }\n#line 1787 "util_expr_parse.c"\n    break;\n  case 65:\n#line 216 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_make(op_Split, (yyvsp[-1].exVal), (yyvsp[-3].exVal), ctx); }\n#line 1793 "util_expr_parse.c"\n    break;\n  case 66:\n#line 219 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_make(op_ListElement, (yyvsp[0].exVal), NULL, ctx); }\n#line 1799 "util_expr_parse.c"\n    break;\n  case 67:\n#line 220 "util_expr_parse.y"\n    { (yyval.exVal) = ap_expr_make(op_ListElement, (yyvsp[-2].exVal), (yyvsp[0].exVal),   ctx); }\n#line 1805 "util_expr_parse.c"\n    break;\n  case 68:\n#line 223 "util_expr_parse.y"\n    {\n                ap_expr_t *e = ap_expr_regex_make((yyvsp[-1].cpVal), NULL, (yyvsp[0].cpVal), ctx);\n                if (!e) {\n                    ctx->error = "Failed to compile regular expression";\n                    YYERROR;\n                }\n                (yyval.exVal) = e;\n            }\n#line 1818 "util_expr_parse.c"\n    break;\n  case 69:\n#line 232 "util_expr_parse.y"\n    {\n                ap_expr_t *e = ap_expr_regex_make((yyvsp[-2].cpVal), (yyvsp[-1].exVal), (yyvsp[0].cpVal), ctx);\n                if (!e) {\n                    ctx->error = "Failed to compile regular expression";\n                    YYERROR;\n                }\n                (yyval.exVal) = e;\n            }\n#line 1831 "util_expr_parse.c"\n    break;\n  case 70:\n#line 241 "util_expr_parse.y"\n    { (yyval.exVal) = (yyvsp[0].exVal); }\n#line 1837 "util_expr_parse.c"\n    break;\n  case 71:\n#line 242 "util_expr_parse.y"\n    { (yyval.exVal) = (yyvsp[0].exVal); }\n#line 1843 "util_expr_parse.c"\n    break;\n#line 1847 "util_expr_parse.c"\n      default: break;\n    }\n  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);\n  YYPOPSTACK (yylen);\n  yylen = 0;\n  YY_STACK_PRINT (yyss, yyssp);\n  *++yyvsp = yyval;\n  yyn = yyr1[yyn];\n  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;\n  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)\n    yystate = yytable[yystate];\n  else\n    yystate = yydefgoto[yyn - YYNTOKENS];\n  goto yynewstate;\nyyerrlab:\n  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);\n  if (!yyerrstatus)\n    {\n      ++yynerrs;\n#if ! YYERROR_VERBOSE\n      yyerror (ctx, YY_("syntax error"));\n#else\n# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \\\n                                        yyssp, yytoken)\n      {\n        char const *yymsgp = YY_("syntax error");\n        int yysyntax_error_status;\n        yysyntax_error_status = YYSYNTAX_ERROR;\n        if (yysyntax_error_status == 0)\n          yymsgp = yymsg;\n        else if (yysyntax_error_status == 1)\n          {\n            if (yymsg != yymsgbuf)\n              YYSTACK_FREE (yymsg);\n            yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);\n            if (!yymsg)\n              {\n                yymsg = yymsgbuf;\n                yymsg_alloc = sizeof yymsgbuf;\n                yysyntax_error_status = 2;\n              }\n            else\n              {\n                yysyntax_error_status = YYSYNTAX_ERROR;\n                yymsgp = yymsg;\n              }\n          }\n        yyerror (ctx, yymsgp);\n        if (yysyntax_error_status == 2)\n          goto yyexhaustedlab;\n      }\n# undef YYSYNTAX_ERROR\n#endif\n    }\n  if (yyerrstatus == 3)\n    {\n      if (yychar <= YYEOF)\n        {\n          if (yychar == YYEOF)\n            YYABORT;\n        }\n      else\n        {\n          yydestruct ("Error: discarding",\n                      yytoken, &yylval, ctx);\n          yychar = YYEMPTY;\n        }\n    }\n  goto yyerrlab1;\nyyerrorlab:\n  if (  0)\n     goto yyerrorlab;\n  YYPOPSTACK (yylen);\n  yylen = 0;\n  YY_STACK_PRINT (yyss, yyssp);\n  yystate = *yyssp;\n  goto yyerrlab1;\nyyerrlab1:\n  yyerrstatus = 3;\n  for (;;)\n    {\n      yyn = yypact[yystate];\n      if (!yypact_value_is_default (yyn))\n        {\n          yyn += YYTERROR;\n          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)\n            {\n              yyn = yytable[yyn];\n              if (0 < yyn)\n                break;\n            }\n        }\n      if (yyssp == yyss)\n        YYABORT;\n      yydestruct ("Error: popping",\n                  yystos[yystate], yyvsp, ctx);\n      YYPOPSTACK (1);\n      yystate = *yyssp;\n      YY_STACK_PRINT (yyss, yyssp);\n    }\n  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN\n  *++yyvsp = yylval;\n  YY_IGNORE_MAYBE_UNINITIALIZED_END\n  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);\n  yystate = yyn;\n  goto yynewstate;\nyyacceptlab:\n  yyresult = 0;\n  goto yyreturn;\nyyabortlab:\n  yyresult = 1;\n  goto yyreturn;\n#if !defined yyoverflow || YYERROR_VERBOSE\nyyexhaustedlab:\n  yyerror (ctx, YY_("memory exhausted"));\n  yyresult = 2;\n#endif\nyyreturn:\n  if (yychar != YYEMPTY)\n    {\n      yytoken = YYTRANSLATE (yychar);\n      yydestruct ("Cleanup: discarding lookahead",\n                  yytoken, &yylval, ctx);\n    }\n  YYPOPSTACK (yylen);\n  YY_STACK_PRINT (yyss, yyssp);\n  while (yyssp != yyss)\n    {\n      yydestruct ("Cleanup: popping",\n                  yystos[*yyssp], yyvsp, ctx);\n      YYPOPSTACK (1);\n    }\n#ifndef yyoverflow\n  if (yyss != yyssa)\n    YYSTACK_FREE (yyss);\n#endif\n#if YYERROR_VERBOSE\n  if (yymsg != yymsgbuf)\n    YYSTACK_FREE (yymsg);\n#endif\n  return yyresult;\n}', 'YY_DECL\n{\n\tyy_state_type yy_current_state;\n\tchar *yy_cp, *yy_bp;\n\tint yy_act;\n    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;\n    yylval = yylval_param;\n\tif ( !yyg->yy_init )\n\t\t{\n\t\tyyg->yy_init = 1;\n#ifdef YY_USER_INIT\n\t\tYY_USER_INIT;\n#endif\n\t\tif ( ! yyg->yy_start )\n\t\t\tyyg->yy_start = 1;\n\t\tif ( ! yyin )\n\t\t\tyyin = stdin;\n\t\tif ( ! yyout )\n\t\t\tyyout = stdout;\n\t\tif ( ! YY_CURRENT_BUFFER ) {\n\t\t\tap_expr_yyensure_buffer_stack (yyscanner);\n\t\t\tYY_CURRENT_BUFFER_LVALUE =\n\t\t\t\tap_expr_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);\n\t\t}\n\t\tap_expr_yy_load_buffer_state(yyscanner );\n\t\t}\n\t{\n#line 179 "util_expr_scan.l"\n  if (yyextra->at_start) {\n    yyextra->at_start = 0;\n    if (yyextra->flags & AP_EXPR_FLAG_STRING_RESULT) {\n        STATE_PUSH(str, 1);\n        return T_EXPR_STRING;\n    }\n    else {\n        STATE_PUSH(expr, 1);\n        return T_EXPR_BOOL;\n    }\n  }\n#line 1031 "util_expr_scan.c"\n\twhile (  1 )\n\t\t{\n\t\tyy_cp = yyg->yy_c_buf_p;\n\t\t*yy_cp = yyg->yy_hold_char;\n\t\tyy_bp = yy_cp;\n\t\tyy_current_state = yyg->yy_start;\nyy_match:\n\t\tdo\n\t\t\t{\n\t\t\tYY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;\n\t\t\tif ( yy_accept[yy_current_state] )\n\t\t\t\t{\n\t\t\t\tyyg->yy_last_accepting_state = yy_current_state;\n\t\t\t\tyyg->yy_last_accepting_cpos = yy_cp;\n\t\t\t\t}\n\t\t\twhile ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )\n\t\t\t\t{\n\t\t\t\tyy_current_state = (int) yy_def[yy_current_state];\n\t\t\t\tif ( yy_current_state >= 155 )\n\t\t\t\t\tyy_c = yy_meta[(unsigned int) yy_c];\n\t\t\t\t}\n\t\t\tyy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];\n\t\t\t++yy_cp;\n\t\t\t}\n\t\twhile ( yy_current_state != 154 );\n\t\tyy_cp = yyg->yy_last_accepting_cpos;\n\t\tyy_current_state = yyg->yy_last_accepting_state;\nyy_find_action:\n\t\tyy_act = yy_accept[yy_current_state];\n\t\tYY_DO_BEFORE_ACTION;\ndo_action:\n\t\tswitch ( yy_act )\n\t{\n\t\t\tcase 0:\n\t\t\t*yy_cp = yyg->yy_hold_char;\n\t\t\tyy_cp = yyg->yy_last_accepting_cpos;\n\t\t\tyy_current_state = yyg->yy_last_accepting_state;\n\t\t\tgoto yy_find_action;\ncase YY_STATE_EOF(str):\n#line 201 "util_expr_scan.l"\n{\n    STATE_POP(0);\n    if (YY_START != INITIAL) {\n        PERROR("Unterminated string");\n    }\n    yylval->cpVal = STR_RETURN();\n    STACK_POP();\n    return T_STRING;\n}\n\tYY_BREAK\ncase YY_STATE_EOF(expr):\n#line 210 "util_expr_scan.l"\n{\n    STATE_POP(1);\n    if (YY_START != INITIAL) {\n        PERROR("Unterminated expression");\n    }\n}\n\tYY_BREAK\ncase 1:\nYY_RULE_SETUP\n#line 217 "util_expr_scan.l"\n{\n    if (yytext[0] == str_stop) {\n        if (!STR_EMPTY()) {\n            yyless(0);\n            yylval->cpVal = STR_RETURN();\n            return T_STRING;\n        }\n        STATE_POP(1);\n        return T_STR_END;\n    }\n    STR_APPEND_NOCHECK(yytext[0]);\n}\n\tYY_BREAK\ncase 2:\nYY_RULE_SETUP\n#line 231 "util_expr_scan.l"\n{\n    if (!STR_EMPTY()) {\n        yyless(0);\n        yylval->cpVal = STR_RETURN();\n        return T_STRING;\n    }\n    yylval->num = yytext[1] - \'0\';\n    return T_BACKREF;\n}\n\tYY_BREAK\ncase 3:\nYY_RULE_SETUP\n#line 242 "util_expr_scan.l"\n{\n    if (!STR_EMPTY()) {\n        yyless(0);\n        yylval->cpVal = STR_RETURN();\n        return T_STRING;\n    }\n    STATE_PUSH(var, 1);\n    return T_VAR_BEGIN;\n}\n\tYY_BREAK\ncase 4:\nYY_RULE_SETUP\n#line 252 "util_expr_scan.l"\n{\n    if (!STR_EMPTY()) {\n        yyless(0);\n        yylval->cpVal = STR_RETURN();\n        return T_STRING;\n    }\n    STATE_PUSH(expr, 1);\n    return T_VAREXP_BEGIN;\n}\n\tYY_BREAK\ncase 5:\nYY_RULE_SETUP\n#line 263 "util_expr_scan.l"\n{\n    PERROR("Bad character escape sequence");\n}\n\tYY_BREAK\ncase 6:\nYY_RULE_SETUP\n#line 266 "util_expr_scan.l"\n{\n    int result;\n    (void)sscanf(yytext+1, "%o", &result);\n    STR_APPEND_NOCHECK(result);\n}\n\tYY_BREAK\ncase 7:\nYY_RULE_SETUP\n#line 271 "util_expr_scan.l"\n{\n    int result;\n    (void)sscanf(yytext+1, "%x", &result);\n    STR_APPEND_NOCHECK(result);\n}\n\tYY_BREAK\ncase 8:\nYY_RULE_SETUP\n#line 276 "util_expr_scan.l"\n{ STR_APPEND_NOCHECK(\'\\n\'); }\n\tYY_BREAK\ncase 9:\nYY_RULE_SETUP\n#line 277 "util_expr_scan.l"\n{ STR_APPEND_NOCHECK(\'\\r\'); }\n\tYY_BREAK\ncase 10:\nYY_RULE_SETUP\n#line 278 "util_expr_scan.l"\n{ STR_APPEND_NOCHECK(\'\\t\'); }\n\tYY_BREAK\ncase 11:\nYY_RULE_SETUP\n#line 279 "util_expr_scan.l"\n{ STR_APPEND_NOCHECK(\'\\b\'); }\n\tYY_BREAK\ncase 12:\nYY_RULE_SETUP\n#line 280 "util_expr_scan.l"\n{ STR_APPEND_NOCHECK(\'\\f\'); }\n\tYY_BREAK\ncase 13:\nYY_RULE_SETUP\n#line 281 "util_expr_scan.l"\n{ STR_APPEND_CHECK(yytext[1], 1); }\n\tYY_BREAK\ncase 14:\nYY_RULE_SETUP\n#line 283 "util_expr_scan.l"\n{\n    PERROR("Unterminated string or variable");\n}\n\tYY_BREAK\ncase 15:\nYY_RULE_SETUP\n#line 287 "util_expr_scan.l"\n{\n    STR_APPEND_CHECK(yytext[0], 1);\n}\n\tYY_BREAK\ncase 16:\nYY_RULE_SETUP\n#line 291 "util_expr_scan.l"\n{\n}\n\tYY_BREAK\ncase 17:\nYY_RULE_SETUP\n#line 295 "util_expr_scan.l"\n{\n    STATE_PUSH(str, 1);\n    str_stop = yytext[0];\n    return T_STR_BEGIN;\n}\n\tYY_BREAK\ncase 18:\nYY_RULE_SETUP\n#line 301 "util_expr_scan.l"\n{\n    STATE_PUSH(expr, 1);\n    return T_VAREXP_BEGIN;\n}\n\tYY_BREAK\ncase 19:\nYY_RULE_SETUP\n#line 305 "util_expr_scan.l"\n{\n    STATE_POP(1);\n    return T_VAREXP_END;\n}\n\tYY_BREAK\ncase 20:\nYY_RULE_SETUP\n#line 311 "util_expr_scan.l"\n{\n    STATE_PUSH(var, 1);\n    return T_VAR_BEGIN;\n}\n\tYY_BREAK\ncase 21:\nYY_RULE_SETUP\n#line 315 "util_expr_scan.l"\n{\n    yylval->cpVal = apr_pstrdup(yyextra->pool, yytext);\n    return T_ID;\n}\n\tYY_BREAK\ncase 22:\nYY_RULE_SETUP\n#line 319 "util_expr_scan.l"\n{\n    STATE_PUSH(vararg, 0);\n    return yytext[0];\n}\n\tYY_BREAK\ncase 23:\nYY_RULE_SETUP\n#line 323 "util_expr_scan.l"\n{\n    yyless(0);\n    yylval->cpVal = STR_RETURN();\n    STATE_POP(0);\n    return T_STRING;\n}\n\tYY_BREAK\ncase 24:\nYY_RULE_SETUP\n#line 329 "util_expr_scan.l"\n{\n    STR_APPEND_CHECK(yytext[0], 1);\n}\n\tYY_BREAK\ncase 25:\nYY_RULE_SETUP\n#line 332 "util_expr_scan.l"\n{\n    STATE_POP(1);\n    return T_VAR_END;\n}\n\tYY_BREAK\ncase 26:\nYY_RULE_SETUP\n#line 336 "util_expr_scan.l"\n{\n    PERROR_CHAR("Unexpected variable character ", yytext[0]);\n}\n\tYY_BREAK\ncase YY_STATE_EOF(var):\ncase YY_STATE_EOF(vararg):\n#line 339 "util_expr_scan.l"\n{\n    PERROR("Unterminated variable");\n}\n\tYY_BREAK\ncase 27:\nYY_RULE_SETUP\n#line 347 "util_expr_scan.l"\n{\n    STATE_PUSH(regex, 1);\n    str_stop = yytext[0];\n    str_flag = \'m\';\n    return T_REGEX;\n}\n\tYY_BREAK\ncase 28:\nYY_RULE_SETUP\n#line 353 "util_expr_scan.l"\n{\n    STATE_PUSH(regex, 1);\n    str_stop = yytext[1];\n    str_flag = yytext[0];\n    return (str_flag == \'m\') ? T_REGEX : T_REGSUB;\n}\n\tYY_BREAK\ncase 29:\nYY_RULE_SETUP\n#line 359 "util_expr_scan.l"\n{\n    if (yytext[0] == str_stop) {\n        yylval->cpVal = STR_RETURN();\n        STATE_POP(0);\n        if (str_flag == \'m\') {\n            STATE_PUSH(regflags, 0);\n        }\n        else {\n            STATE_PUSH(regsub, 0);\n        }\n        return T_REG_MATCH;\n    }\n    STR_APPEND_CHECK(yytext[0], 1);\n}\n\tYY_BREAK\ncase 30:\nYY_RULE_SETUP\n#line 373 "util_expr_scan.l"\n{\n    if (yytext[0] == str_stop) {\n        yylval->cpVal = STR_RETURN();\n        STATE_POP(0);\n        STATE_PUSH(regflags, 0);\n        return T_STRING;\n    }\n    STR_APPEND_CHECK(yytext[0], 1);\n}\n\tYY_BREAK\ncase 31:\nYY_RULE_SETUP\n#line 382 "util_expr_scan.l"\n{\n    if (!ap_strchr_c("ismg", yytext[0])) {\n        if (apr_isalnum(yytext[0])) {\n            PERROR("Invalid regexp flag(s)");\n        }\n        yyless(0);\n        yylval->cpVal = STR_RETURN();\n        STATE_POP(1);\n        return T_REG_FLAGS;\n    }\n    STR_APPEND_NOCHECK(yytext[0]);\n}\n\tYY_BREAK\ncase YY_STATE_EOF(regflags):\n#line 394 "util_expr_scan.l"\n{\n    yylval->cpVal = STR_RETURN();\n    STATE_POP(1);\n    return T_REG_FLAGS;\n}\n\tYY_BREAK\ncase YY_STATE_EOF(regex):\ncase YY_STATE_EOF(regsub):\n#line 399 "util_expr_scan.l"\n{\n    PERROR("Unterminated regexp");\n}\n\tYY_BREAK\ncase 32:\nYY_RULE_SETUP\n#line 403 "util_expr_scan.l"\n{\n    yylval->num = yytext[1] - \'0\';\n    return T_BACKREF;\n}\n\tYY_BREAK\ncase 33:\nYY_RULE_SETUP\n#line 411 "util_expr_scan.l"\n{ return T_OP_STR_EQ; }\n\tYY_BREAK\ncase 34:\nYY_RULE_SETUP\n#line 412 "util_expr_scan.l"\n{ return T_OP_STR_NE; }\n\tYY_BREAK\ncase 35:\nYY_RULE_SETUP\n#line 413 "util_expr_scan.l"\n{ return T_OP_STR_LT; }\n\tYY_BREAK\ncase 36:\nYY_RULE_SETUP\n#line 414 "util_expr_scan.l"\n{ return T_OP_STR_LE; }\n\tYY_BREAK\ncase 37:\nYY_RULE_SETUP\n#line 415 "util_expr_scan.l"\n{ return T_OP_STR_GT; }\n\tYY_BREAK\ncase 38:\nYY_RULE_SETUP\n#line 416 "util_expr_scan.l"\n{ return T_OP_STR_GE; }\n\tYY_BREAK\ncase 39:\nYY_RULE_SETUP\n#line 417 "util_expr_scan.l"\n{ return T_OP_REG; }\n\tYY_BREAK\ncase 40:\nYY_RULE_SETUP\n#line 418 "util_expr_scan.l"\n{ return T_OP_NRE; }\n\tYY_BREAK\ncase 41:\nYY_RULE_SETUP\n#line 419 "util_expr_scan.l"\n{ return T_OP_AND; }\n\tYY_BREAK\ncase 42:\nYY_RULE_SETUP\n#line 420 "util_expr_scan.l"\n{ return T_OP_AND; }\n\tYY_BREAK\ncase 43:\nYY_RULE_SETUP\n#line 421 "util_expr_scan.l"\n{ return T_OP_OR; }\n\tYY_BREAK\ncase 44:\nYY_RULE_SETUP\n#line 422 "util_expr_scan.l"\n{ return T_OP_OR; }\n\tYY_BREAK\ncase 45:\nYY_RULE_SETUP\n#line 423 "util_expr_scan.l"\n{ return T_OP_NOT; }\n\tYY_BREAK\ncase 46:\nYY_RULE_SETUP\n#line 424 "util_expr_scan.l"\n{ return T_OP_NOT; }\n\tYY_BREAK\ncase 47:\nYY_RULE_SETUP\n#line 425 "util_expr_scan.l"\n{ return T_OP_CONCAT; }\n\tYY_BREAK\ncase 48:\nYY_RULE_SETUP\n#line 426 "util_expr_scan.l"\n{ return T_OP_IN; }\n\tYY_BREAK\ncase 49:\nYY_RULE_SETUP\n#line 427 "util_expr_scan.l"\n{ return T_OP_EQ; }\n\tYY_BREAK\ncase 50:\nYY_RULE_SETUP\n#line 428 "util_expr_scan.l"\n{ return T_OP_NE; }\n\tYY_BREAK\ncase 51:\nYY_RULE_SETUP\n#line 429 "util_expr_scan.l"\n{ return T_OP_GE; }\n\tYY_BREAK\ncase 52:\nYY_RULE_SETUP\n#line 430 "util_expr_scan.l"\n{ return T_OP_LE; }\n\tYY_BREAK\ncase 53:\nYY_RULE_SETUP\n#line 431 "util_expr_scan.l"\n{ return T_OP_GT; }\n\tYY_BREAK\ncase 54:\nYY_RULE_SETUP\n#line 432 "util_expr_scan.l"\n{ return T_OP_LT; }\n\tYY_BREAK\ncase 55:\nYY_RULE_SETUP\n#line 435 "util_expr_scan.l"\n{ return T_OP_LT; }\n\tYY_BREAK\ncase 56:\nYY_RULE_SETUP\n#line 436 "util_expr_scan.l"\n{ return T_OP_LE; }\n\tYY_BREAK\ncase 57:\nYY_RULE_SETUP\n#line 437 "util_expr_scan.l"\n{ return T_OP_GT; }\n\tYY_BREAK\ncase 58:\nYY_RULE_SETUP\n#line 438 "util_expr_scan.l"\n{ return T_OP_GE; }\n\tYY_BREAK\ncase 59:\nYY_RULE_SETUP\n#line 439 "util_expr_scan.l"\n{ return T_OP_NE; }\n\tYY_BREAK\ncase 60:\nYY_RULE_SETUP\n#line 440 "util_expr_scan.l"\n{ return T_OP_EQ; }\n\tYY_BREAK\ncase 61:\nYY_RULE_SETUP\n#line 441 "util_expr_scan.l"\n{ return T_OP_IN; }\n\tYY_BREAK\ncase 62:\nYY_RULE_SETUP\n#line 443 "util_expr_scan.l"\n{\n    yylval->cpVal = apr_pstrdup(yyextra->pool, yytext + 1);\n    return T_OP_BINARY;\n}\n\tYY_BREAK\ncase 63:\nYY_RULE_SETUP\n#line 448 "util_expr_scan.l"\n{\n    yylval->cpVal = apr_pstrdup(yyextra->pool, yytext + 1);\n    return T_OP_UNARY;\n}\n\tYY_BREAK\ncase 64:\nYY_RULE_SETUP\n#line 454 "util_expr_scan.l"\n{\n    return T_OP_SUB;\n}\n\tYY_BREAK\ncase 65:\nYY_RULE_SETUP\n#line 459 "util_expr_scan.l"\n{\n    return T_OP_JOIN;\n}\n\tYY_BREAK\ncase 66:\nYY_RULE_SETUP\n#line 464 "util_expr_scan.l"\n{\n    return T_OP_SPLIT;\n}\n\tYY_BREAK\ncase 67:\nYY_RULE_SETUP\n#line 471 "util_expr_scan.l"\n{ return T_TRUE; }\n\tYY_BREAK\ncase 68:\nYY_RULE_SETUP\n#line 472 "util_expr_scan.l"\n{ return T_FALSE; }\n\tYY_BREAK\ncase 69:\nYY_RULE_SETUP\n#line 477 "util_expr_scan.l"\n{\n    yylval->cpVal = apr_pstrdup(yyextra->pool, yytext);\n    return T_DIGIT;\n}\n\tYY_BREAK\ncase 70:\nYY_RULE_SETUP\n#line 485 "util_expr_scan.l"\n{\n    yylval->cpVal = apr_pstrdup(yyextra->pool, yytext);\n    return T_ID;\n}\n\tYY_BREAK\ncase 71:\nYY_RULE_SETUP\n#line 493 "util_expr_scan.l"\n{\n    return yytext[0];\n}\n\tYY_BREAK\ncase 72:\nYY_RULE_SETUP\n#line 500 "util_expr_scan.l"\n{\n    PERROR_CHAR("Parse error near character ", yytext[0]);\n}\n\tYY_BREAK\ncase 73:\nYY_RULE_SETUP\n#line 504 "util_expr_scan.l"\nYY_FATAL_ERROR( "flex scanner jammed" );\n\tYY_BREAK\n#line 1678 "util_expr_scan.c"\ncase YY_STATE_EOF(INITIAL):\n\tyyterminate();\n\tcase YY_END_OF_BUFFER:\n\t\t{\n\t\tint yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;\n\t\t*yy_cp = yyg->yy_hold_char;\n\t\tYY_RESTORE_YY_MORE_OFFSET\n\t\tif ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )\n\t\t\t{\n\t\t\tyyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;\n\t\t\tYY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;\n\t\t\tYY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;\n\t\t\t}\n\t\tif ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )\n\t\t\t{\n\t\t\tyy_state_type yy_next_state;\n\t\t\tyyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;\n\t\t\tyy_current_state = yy_get_previous_state( yyscanner );\n\t\t\tyy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);\n\t\t\tyy_bp = yyg->yytext_ptr + YY_MORE_ADJ;\n\t\t\tif ( yy_next_state )\n\t\t\t\t{\n\t\t\t\tyy_cp = ++yyg->yy_c_buf_p;\n\t\t\t\tyy_current_state = yy_next_state;\n\t\t\t\tgoto yy_match;\n\t\t\t\t}\n\t\t\telse\n\t\t\t\t{\n\t\t\t\tyy_cp = yyg->yy_last_accepting_cpos;\n\t\t\t\tyy_current_state = yyg->yy_last_accepting_state;\n\t\t\t\tgoto yy_find_action;\n\t\t\t\t}\n\t\t\t}\n\t\telse switch ( yy_get_next_buffer( yyscanner ) )\n\t\t\t{\n\t\t\tcase EOB_ACT_END_OF_FILE:\n\t\t\t\t{\n\t\t\t\tyyg->yy_did_buffer_switch_on_eof = 0;\n\t\t\t\tif ( ap_expr_yywrap(yyscanner ) )\n\t\t\t\t\t{\n\t\t\t\t\tyyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;\n\t\t\t\t\tyy_act = YY_STATE_EOF(YY_START);\n\t\t\t\t\tgoto do_action;\n\t\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\tif ( ! yyg->yy_did_buffer_switch_on_eof )\n\t\t\t\t\t\tYY_NEW_FILE;\n\t\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\tcase EOB_ACT_CONTINUE_SCAN:\n\t\t\t\tyyg->yy_c_buf_p =\n\t\t\t\t\tyyg->yytext_ptr + yy_amount_of_matched_text;\n\t\t\t\tyy_current_state = yy_get_previous_state( yyscanner );\n\t\t\t\tyy_cp = yyg->yy_c_buf_p;\n\t\t\t\tyy_bp = yyg->yytext_ptr + YY_MORE_ADJ;\n\t\t\t\tgoto yy_match;\n\t\t\tcase EOB_ACT_LAST_MATCH:\n\t\t\t\tyyg->yy_c_buf_p =\n\t\t\t\t&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];\n\t\t\t\tyy_current_state = yy_get_previous_state( yyscanner );\n\t\t\t\tyy_cp = yyg->yy_c_buf_p;\n\t\t\t\tyy_bp = yyg->yytext_ptr + YY_MORE_ADJ;\n\t\t\t\tgoto yy_find_action;\n\t\t\t}\n\t\tbreak;\n\t\t}\n\tdefault:\n\t\tYY_FATAL_ERROR(\n\t\t\t"fatal flex scanner internal error--no action found" );\n\t}\n\t\t}\n\t}\n}', 'static void ap_expr_yyensure_buffer_stack (yyscan_t yyscanner)\n{\n\tint num_to_alloc;\n    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;\n\tif (!yyg->yy_buffer_stack) {\n      num_to_alloc = 1;\n\t\tyyg->yy_buffer_stack = (struct yy_buffer_state**)ap_expr_yyalloc\n\t\t\t\t\t\t\t\t(num_to_alloc * sizeof(struct yy_buffer_state*)\n\t\t\t\t\t\t\t\t, yyscanner);\n\t\tif ( ! yyg->yy_buffer_stack )\n\t\t\tYY_FATAL_ERROR( "out of dynamic memory in ap_expr_yyensure_buffer_stack()" );\n\t\tmemset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));\n\t\tyyg->yy_buffer_stack_max = num_to_alloc;\n\t\tyyg->yy_buffer_stack_top = 0;\n\t\treturn;\n\t}\n\tif (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){\n\t\tyy_size_t grow_size = 8  ;\n\t\tnum_to_alloc = yyg->yy_buffer_stack_max + grow_size;\n\t\tyyg->yy_buffer_stack = (struct yy_buffer_state**)ap_expr_yyrealloc\n\t\t\t\t\t\t\t\t(yyg->yy_buffer_stack,\n\t\t\t\t\t\t\t\tnum_to_alloc * sizeof(struct yy_buffer_state*)\n\t\t\t\t\t\t\t\t, yyscanner);\n\t\tif ( ! yyg->yy_buffer_stack )\n\t\t\tYY_FATAL_ERROR( "out of dynamic memory in ap_expr_yyensure_buffer_stack()" );\n\t\tmemset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));\n\t\tyyg->yy_buffer_stack_max = num_to_alloc;\n\t}\n}']