You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by yl...@apache.org on 2014/12/08 20:46:53 UTC

svn commit: r1643900 - in /httpd/httpd/trunk/server: util_expr_parse.c util_expr_parse.h

Author: ylavic
Date: Mon Dec  8 19:46:53 2014
New Revision: 1643900

URL: http://svn.apache.org/r1643900
Log:
util_expr: sync bison generated source files with server/util_expr_parse.y.

Modified:
    httpd/httpd/trunk/server/util_expr_parse.c
    httpd/httpd/trunk/server/util_expr_parse.h

Modified: httpd/httpd/trunk/server/util_expr_parse.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/server/util_expr_parse.c?rev=1643900&r1=1643899&r2=1643900&view=diff
==============================================================================
--- httpd/httpd/trunk/server/util_expr_parse.c (original)
+++ httpd/httpd/trunk/server/util_expr_parse.c Mon Dec  8 19:46:53 2014
@@ -1,8 +1,8 @@
-/* A Bison parser, made by GNU Bison 2.7.12-4996.  */
+/* A Bison parser, made by GNU Bison 2.5.  */
 
 /* Bison implementation for Yacc-like parsers in C
    
-      Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
+      Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
    
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -44,7 +44,7 @@
 #define YYBISON 1
 
 /* Bison version.  */
-#define YYBISON_VERSION "2.7.12-4996"
+#define YYBISON_VERSION "2.5"
 
 /* Skeleton name.  */
 #define YYSKELETON_NAME "yacc.c"
@@ -58,6 +58,8 @@
 /* Pull parsers.  */
 #define YYPULL 1
 
+/* Using locations.  */
+#define YYLSP_NEEDED 0
 
 /* Substitute the variable and function names.  */
 #define yyparse         ap_expr_yyparse
@@ -68,22 +70,22 @@
 #define yydebug         ap_expr_yydebug
 #define yynerrs         ap_expr_yynerrs
 
+
 /* Copy the first part of user declarations.  */
-/* Line 371 of yacc.c  */
+
+/* Line 268 of yacc.c  */
 #line 31 "util_expr_parse.y"
 
 #include "util_expr_private.h"
 
-/* Line 371 of yacc.c  */
-#line 79 "util_expr_parse.c"
 
-# ifndef YY_NULL
-#  if defined __cplusplus && 201103L <= __cplusplus
-#   define YY_NULL nullptr
-#  else
-#   define YY_NULL 0
-#  endif
-# endif
+/* Line 268 of yacc.c  */
+#line 84 "util_expr_parse.c"
+
+/* Enabling traces.  */
+#ifndef YYDEBUG
+# define YYDEBUG 0
+#endif
 
 /* Enabling verbose error messages.  */
 #ifdef YYERROR_VERBOSE
@@ -93,18 +95,12 @@
 # define YYERROR_VERBOSE 1
 #endif
 
-/* In a future release of Bison, this section will be replaced
-   by #include "util_expr_parse.h".  */
-#ifndef YY_AP_EXPR_YY_UTIL_EXPR_PARSE_H_INCLUDED
-# define YY_AP_EXPR_YY_UTIL_EXPR_PARSE_H_INCLUDED
-/* Enabling traces.  */
-#ifndef YYDEBUG
-# define YYDEBUG 0
-#endif
-#if YYDEBUG
-extern int ap_expr_yydebug;
+/* Enabling the token table.  */
+#ifndef YYTOKEN_TABLE
+# define YYTOKEN_TABLE 0
 #endif
 
+
 /* Tokens.  */
 #ifndef YYTOKENTYPE
 # define YYTOKENTYPE
@@ -151,10 +147,12 @@ extern int ap_expr_yydebug;
 #endif
 
 
+
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
 typedef union YYSTYPE
 {
-/* Line 387 of yacc.c  */
+
+/* Line 293 of yacc.c  */
 #line 35 "util_expr_parse.y"
 
     char      *cpVal;
@@ -162,8 +160,9 @@ typedef union YYSTYPE
     int        num;
 
 
-/* Line 387 of yacc.c  */
-#line 167 "util_expr_parse.c"
+
+/* Line 293 of yacc.c  */
+#line 166 "util_expr_parse.c"
 } YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
@@ -171,24 +170,9 @@ typedef union YYSTYPE
 #endif
 
 
-#ifdef YYPARSE_PARAM
-#if defined __STDC__ || defined __cplusplus
-int ap_expr_yyparse (void *YYPARSE_PARAM);
-#else
-int ap_expr_yyparse ();
-#endif
-#else /* ! YYPARSE_PARAM */
-#if defined __STDC__ || defined __cplusplus
-int ap_expr_yyparse (ap_expr_parse_ctx_t *ctx);
-#else
-int ap_expr_yyparse ();
-#endif
-#endif /* ! YYPARSE_PARAM */
-
-#endif /* !YY_AP_EXPR_YY_UTIL_EXPR_PARSE_H_INCLUDED  */
-
 /* Copy the second part of user declarations.  */
-/* Line 390 of yacc.c  */
+
+/* Line 343 of yacc.c  */
 #line 102 "util_expr_parse.y"
 
 #include "util_expr_private.h"
@@ -196,8 +180,9 @@ int ap_expr_yyparse ();
 
 int ap_expr_yylex(YYSTYPE *lvalp, void *scanner);
 
-/* Line 390 of yacc.c  */
-#line 201 "util_expr_parse.c"
+
+/* Line 343 of yacc.c  */
+#line 186 "util_expr_parse.c"
 
 #ifdef short
 # undef short
@@ -250,33 +235,24 @@ typedef short int yytype_int16;
 # if defined YYENABLE_NLS && YYENABLE_NLS
 #  if ENABLE_NLS
 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
-#   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
+#   define YY_(msgid) dgettext ("bison-runtime", msgid)
 #  endif
 # endif
 # ifndef YY_
-#  define YY_(Msgid) Msgid
-# endif
-#endif
-
-#ifndef __attribute__
-/* This feature is available in gcc versions 2.5 and later.  */
-# if (! defined __GNUC__ || __GNUC__ < 2 \
-      || (__GNUC__ == 2 && __GNUC_MINOR__ < 5))
-#  define __attribute__(Spec) /* empty */
+#  define YY_(msgid) msgid
 # endif
 #endif
 
 /* Suppress unused-variable warnings by "using" E.  */
 #if ! defined lint || defined __GNUC__
-# define YYUSE(E) ((void) (E))
+# define YYUSE(e) ((void) (e))
 #else
-# define YYUSE(E) /* empty */
+# define YYUSE(e) /* empty */
 #endif
 
-
 /* Identity function, used to suppress warnings about constant conditions.  */
 #ifndef lint
-# define YYID(N) (N)
+# define YYID(n) (n)
 #else
 #if (defined __STDC__ || defined __C99__FUNC__ \
      || defined __cplusplus || defined _MSC_VER)
@@ -312,7 +288,6 @@ YYID (yyi)
 #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
      || defined __cplusplus || defined _MSC_VER)
 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
 #     ifndef EXIT_SUCCESS
 #      define EXIT_SUCCESS 0
 #     endif
@@ -404,20 +379,20 @@ union yyalloc
 #endif
 
 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
-/* Copy COUNT objects from SRC to DST.  The source and destination do
+/* Copy COUNT objects from FROM to TO.  The source and destination do
    not overlap.  */
 # ifndef YYCOPY
 #  if defined __GNUC__ && 1 < __GNUC__
-#   define YYCOPY(Dst, Src, Count) \
-      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
+#   define YYCOPY(To, From, Count) \
+      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
 #  else
-#   define YYCOPY(Dst, Src, Count)              \
-      do                                        \
-        {                                       \
-          YYSIZE_T yyi;                         \
-          for (yyi = 0; yyi < (Count); yyi++)   \
-            (Dst)[yyi] = (Src)[yyi];            \
-        }                                       \
+#   define YYCOPY(To, From, Count)		\
+      do					\
+	{					\
+	  YYSIZE_T yyi;				\
+	  for (yyi = 0; yyi < (Count); yyi++)	\
+	    (To)[yyi] = (From)[yyi];		\
+	}					\
       while (YYID (0))
 #  endif
 # endif
@@ -426,16 +401,16 @@ union yyalloc
 /* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  28
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   129
+#define YYLAST   134
 
 /* YYNTOKENS -- Number of terminals.  */
 #define YYNTOKENS  50
 /* YYNNTS -- Number of nonterminals.  */
 #define YYNNTS  14
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  53
+#define YYNRULES  54
 /* YYNRULES -- Number of states.  */
-#define YYNSTATES  96
+#define YYNSTATES  98
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
@@ -489,7 +464,7 @@ static const yytype_uint8 yyprhs[] =
       61,    65,    69,    73,    77,    81,    85,    89,    93,    97,
      101,   103,   107,   109,   113,   116,   118,   120,   122,   124,
      126,   130,   136,   138,   142,   144,   146,   148,   152,   155,
-     157,   159,   161,   166
+     157,   159,   161,   166,   171
 };
 
 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
@@ -512,7 +487,7 @@ static const yytype_int8 yyrhs[] =
       59,    -1,    58,    -1,    61,    -1,    63,    -1,    16,    56,
       17,    -1,    16,    17,    -1,    11,    -1,    12,    -1,    13,
       -1,     9,    44,    59,    45,    -1,     9,    44,    59,    45,
-      -1
+      -1,     9,    44,    55,    45,    -1
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
@@ -523,11 +498,11 @@ static const yytype_uint8 yyrline[] =
      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
      146,   147,   150,   151,   154,   155,   156,   159,   160,   161,
      164,   165,   168,   169,   170,   171,   172,   173,   174,   177,
-     186,   197,   204,   207
+     186,   197,   204,   207,   208
 };
 #endif
 
-#if YYDEBUG || YYERROR_VERBOSE || 1
+#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
 static const char *const yytname[] =
@@ -549,7 +524,7 @@ static const char *const yytname[] =
   "\"listfunction\"", "\"stringpart\"", "\"variable\"", "\"rebackref\"",
   "'('", "')'", "'{'", "'}'", "','", "':'", "$accept", "root", "expr",
   "comparison", "wordlist", "words", "string", "strpart", "var", "word",
-  "regex", "backref", "lstfunccall", "strfunccall", YY_NULL
+  "regex", "backref", "lstfunccall", "strfunccall", 0
 };
 #endif
 
@@ -574,7 +549,7 @@ static const yytype_uint8 yyr1[] =
       53,    53,    53,    53,    53,    53,    53,    53,    53,    53,
       54,    54,    55,    55,    56,    56,    56,    57,    57,    57,
       58,    58,    59,    59,    59,    59,    59,    59,    59,    60,
-      60,    61,    62,    63
+      60,    61,    62,    63,    63
 };
 
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
@@ -585,7 +560,7 @@ static const yytype_uint8 yyr2[] =
        3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
        1,     3,     1,     3,     2,     1,     1,     1,     1,     1,
        3,     5,     1,     3,     1,     1,     1,     3,     2,     1,
-       1,     1,     4,     4
+       1,     1,     4,     4,     4
 };
 
 /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
@@ -598,42 +573,42 @@ static const yytype_uint8 yydefact[] =
       45,    46,    36,    37,     3,    35,    38,    39,     1,     0,
       11,    48,     0,     0,     7,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    34,     0,    47,    40,     0,
-      13,     8,     9,    12,    15,    16,    17,    18,    19,    20,
-      49,    50,    28,    29,     0,     0,    27,    30,    21,    22,
-      23,    24,    25,    26,    43,    53,     0,     0,     0,    32,
-      41,     0,    31,     0,    52,    33
+       0,     0,     0,     0,     0,    34,     0,    32,    47,    40,
+       0,    13,     8,     9,    12,    15,    16,    17,    18,    19,
+      20,    49,    50,    28,    29,     0,     0,    27,    30,    21,
+      22,    23,    24,    25,    26,    43,    54,     0,    53,     0,
+       0,     0,    32,    33,    41,     0,    31,    52
 };
 
 /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int8 yydefgoto[] =
 {
-      -1,     4,    16,    17,    76,    88,    24,    25,    18,    19,
-      72,    20,    77,    21
+      -1,     4,    16,    17,    77,    56,    24,    25,    18,    19,
+      73,    20,    78,    21
 };
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
-#define YYPACT_NINF -30
+#define YYPACT_NINF -41
 static const yytype_int8 yypact[] =
 {
-       2,    60,     7,   -30,    13,   -30,   -30,   -30,   -30,   -29,
-     -30,    43,    73,    12,    60,    60,    -8,   -30,   -30,    85,
-     -30,   -30,   -30,   -30,    79,   -30,   -30,   -30,   -30,    43,
-      25,   -30,   111,   -17,   -30,    17,    60,    60,    43,    43,
-      43,    43,    43,    43,    43,   114,   114,    -4,    43,    43,
-      43,    43,    43,    43,    43,   -30,   -19,   -30,   -30,     7,
-     -30,    -8,   -10,    25,    25,    25,    25,    25,    25,    25,
-     -30,   -30,   -30,   -30,    31,    43,   -30,   -30,    25,    25,
-      25,    25,    25,    25,    25,   -30,    83,    43,    24,    25,
-     -30,    20,   -30,    43,   -30,    25
+      22,    48,    60,   -41,    16,   -41,   -41,   -41,   -41,   -24,
+     -41,   102,     8,    32,    48,    48,   -23,   -41,   -41,    74,
+     -41,   -41,   -41,   -41,    50,   -41,   -41,   -41,   -41,   102,
+      -3,   -41,   116,    23,   -41,    87,    48,    48,   102,   102,
+     102,   102,   102,   102,   102,    68,    68,    -6,   102,   102,
+     102,   102,   102,   102,   102,   -41,   -40,   -28,   -41,   -41,
+      60,   -41,   -23,    28,    -3,    -3,    -3,    -3,    -3,    -3,
+      -3,   -41,   -41,   -41,   -41,    30,   102,   -41,   -41,    -3,
+      -3,    -3,    -3,    -3,    -3,    -3,   -41,   102,   -41,   103,
+     102,    36,    -3,    -3,   -41,   -26,   -41,   -41
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int8 yypgoto[] =
 {
-     -30,   -30,     4,   -30,   -30,   -30,    -9,   -20,    -2,    -5,
-      33,    -1,   -30,   -30
+     -41,   -41,    39,   -41,   -41,     1,   -10,   -20,    -2,    -5,
+      35,    -1,   -41,   -41
 };
 
 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
@@ -642,42 +617,44 @@ static const yytype_int8 yypgoto[] =
 #define YYTABLE_NINF -1
 static const yytype_uint8 yytable[] =
 {
-      26,    27,    58,    32,    55,    74,    30,     1,     2,     3,
-      26,    27,    55,    28,    22,    29,    54,    23,    34,    35,
-      10,    33,    26,    27,    56,    13,    85,    37,    36,    37,
-      26,    27,    59,    63,    64,    65,    66,    67,    68,    69,
-      61,    62,    75,    78,    79,    80,    81,    82,    83,    84,
-      86,     8,     9,    36,    37,    54,    10,    26,    27,    12,
-      54,    13,    60,     5,     6,    94,    55,     7,     8,     9,
-      89,    92,    93,    10,    11,    87,    12,     0,    13,    73,
-      22,     0,    91,    23,    26,    27,    10,     0,    95,    23,
-      31,    13,    10,    23,     0,     0,    10,    13,    14,     0,
-      38,    13,    90,     0,    15,    39,    40,    41,    42,    43,
-      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
-      54,    23,     0,     0,    10,    70,    71,     0,    57,    13
+      26,    27,    32,    75,    55,    86,    30,    54,    87,    54,
+      26,    27,    55,    36,    37,    22,    28,    88,    23,    97,
+      29,    10,    26,    27,    57,    31,    13,     1,     2,     3,
+      26,    27,    54,    64,    65,    66,    67,    68,    69,    70,
+      76,    33,    59,    79,    80,    81,    82,    83,    84,    85,
+      89,     5,     6,    34,    35,     7,     8,     9,    26,    27,
+      23,    10,    11,    10,    12,    37,    13,    22,    13,    55,
+      23,    92,    60,    10,    90,    62,    63,    91,    13,    71,
+      72,    74,    93,    96,    87,    95,    14,    26,    27,    38,
+       0,     0,    15,     0,    39,    40,    41,    42,    43,    44,
+      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
+       8,     9,     0,    23,     0,    10,    10,     0,    12,     0,
+      13,    13,    94,    36,    37,     0,    23,     0,     0,    10,
+       0,     0,    61,    58,    13
 };
 
-#define yypact_value_is_default(Yystate) \
-  (!!((Yystate) == (-30)))
+#define yypact_value_is_default(yystate) \
+  ((yystate) == (-41))
 
-#define yytable_value_is_error(Yytable_value) \
+#define yytable_value_is_error(yytable_value) \
   YYID (0)
 
 static const yytype_int8 yycheck[] =
 {
-       2,     2,    19,    12,    24,     9,    11,     5,     6,     7,
-      12,    12,    32,     0,     7,    44,    35,    10,    14,    15,
-      13,     9,    24,    24,    29,    18,    45,    37,    36,    37,
-      32,    32,    49,    38,    39,    40,    41,    42,    43,    44,
-      36,    37,    46,    48,    49,    50,    51,    52,    53,    54,
-      59,     8,     9,    36,    37,    35,    13,    59,    59,    16,
-      35,    18,    45,     3,     4,    45,    86,     7,     8,     9,
-      75,    47,    48,    13,    14,    44,    16,    -1,    18,    46,
-       7,    -1,    87,    10,    86,    86,    13,    -1,    93,    10,
-      17,    18,    13,    10,    -1,    -1,    13,    18,    38,    -1,
-      15,    18,    19,    -1,    44,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
-      35,    10,    -1,    -1,    13,    11,    12,    -1,    17,    18
+       2,     2,    12,     9,    24,    45,    11,    35,    48,    35,
+      12,    12,    32,    36,    37,     7,     0,    45,    10,    45,
+      44,    13,    24,    24,    29,    17,    18,     5,     6,     7,
+      32,    32,    35,    38,    39,    40,    41,    42,    43,    44,
+      46,     9,    19,    48,    49,    50,    51,    52,    53,    54,
+      60,     3,     4,    14,    15,     7,     8,     9,    60,    60,
+      10,    13,    14,    13,    16,    37,    18,     7,    18,    89,
+      10,    76,    49,    13,    44,    36,    37,    76,    18,    11,
+      12,    46,    87,    47,    48,    90,    38,    89,    89,    15,
+      -1,    -1,    44,    -1,    20,    21,    22,    23,    24,    25,
+      26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
+       8,     9,    -1,    10,    -1,    13,    13,    -1,    16,    -1,
+      18,    18,    19,    36,    37,    -1,    10,    -1,    -1,    13,
+      -1,    -1,    45,    17,    18
 };
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -689,11 +666,11 @@ static const yytype_uint8 yystos[] =
       61,    63,     7,    10,    56,    57,    58,    61,     0,    44,
       59,    17,    56,     9,    52,    52,    36,    37,    15,    20,
       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,    32,    33,    34,    35,    57,    59,    17,    19,    49,
-      45,    52,    52,    59,    59,    59,    59,    59,    59,    59,
-      11,    12,    60,    60,     9,    46,    54,    62,    59,    59,
-      59,    59,    59,    59,    59,    45,    56,    44,    55,    59,
-      19,    59,    47,    48,    45,    59
+      31,    32,    33,    34,    35,    57,    55,    59,    17,    19,
+      49,    45,    52,    52,    59,    59,    59,    59,    59,    59,
+      59,    11,    12,    60,    60,     9,    46,    54,    62,    59,
+      59,    59,    59,    59,    59,    59,    45,    48,    45,    56,
+      44,    55,    59,    59,    19,    59,    47,    45
 };
 
 #define yyerrok		(yyerrstatus = 0)
@@ -723,35 +700,62 @@ static const yytype_uint8 yystos[] =
 
 #define YYRECOVERING()  (!!yyerrstatus)
 
-#define YYBACKUP(Token, Value)                                  \
-do                                                              \
-  if (yychar == YYEMPTY)                                        \
-    {                                                           \
-      yychar = (Token);                                         \
-      yylval = (Value);                                         \
-      YYPOPSTACK (yylen);                                       \
-      yystate = *yyssp;                                         \
-      goto yybackup;                                            \
-    }                                                           \
-  else                                                          \
-    {                                                           \
+#define YYBACKUP(Token, Value)					\
+do								\
+  if (yychar == YYEMPTY && yylen == 1)				\
+    {								\
+      yychar = (Token);						\
+      yylval = (Value);						\
+      YYPOPSTACK (1);						\
+      goto yybackup;						\
+    }								\
+  else								\
+    {								\
       yyerror (ctx, YY_("syntax error: cannot back up")); \
       YYERROR;							\
     }								\
 while (YYID (0))
 
-/* Error token number */
+
 #define YYTERROR	1
 #define YYERRCODE	256
 
 
+/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
+   If N is 0, then set CURRENT to the empty location which ends
+   the previous symbol: RHS[0] (always defined).  */
+
+#define YYRHSLOC(Rhs, K) ((Rhs)[K])
+#ifndef YYLLOC_DEFAULT
+# define YYLLOC_DEFAULT(Current, Rhs, N)				\
+    do									\
+      if (YYID (N))                                                    \
+	{								\
+	  (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;	\
+	  (Current).first_column = YYRHSLOC (Rhs, 1).first_column;	\
+	  (Current).last_line    = YYRHSLOC (Rhs, N).last_line;		\
+	  (Current).last_column  = YYRHSLOC (Rhs, N).last_column;	\
+	}								\
+      else								\
+	{								\
+	  (Current).first_line   = (Current).last_line   =		\
+	    YYRHSLOC (Rhs, 0).last_line;				\
+	  (Current).first_column = (Current).last_column =		\
+	    YYRHSLOC (Rhs, 0).last_column;				\
+	}								\
+    while (YYID (0))
+#endif
+
+
 /* This macro is provided for backward compatibility. */
+
 #ifndef YY_LOCATION_PRINT
 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
 #endif
 
 
 /* YYLEX -- calling `yylex' with the right arguments.  */
+
 #ifdef YYLEX_PARAM
 # define YYLEX yylex (&yylval, YYLEX_PARAM)
 #else
@@ -802,8 +806,6 @@ yy_symbol_value_print (yyoutput, yytype,
     ap_expr_parse_ctx_t *ctx;
 #endif
 {
-  FILE *yyo = yyoutput;
-  YYUSE (yyo);
   if (!yyvaluep)
     return;
   YYUSE (ctx);
@@ -813,7 +815,11 @@ yy_symbol_value_print (yyoutput, yytype,
 # else
   YYUSE (yyoutput);
 # endif
-  YYUSE (yytype);
+  switch (yytype)
+    {
+      default:
+	break;
+    }
 }
 
 
@@ -1054,11 +1060,12 @@ static int
 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
                 yytype_int16 *yyssp, int yytoken)
 {
-  YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
+  YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
   YYSIZE_T yysize = yysize0;
+  YYSIZE_T yysize1;
   enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
   /* Internationalized format string. */
-  const char *yyformat = YY_NULL;
+  const char *yyformat = 0;
   /* Arguments of yyformat. */
   char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
   /* Number of reported tokens (one for the "unexpected", one per
@@ -1118,13 +1125,11 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, c
                     break;
                   }
                 yyarg[yycount++] = yytname[yyx];
-                {
-                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
-                  if (! (yysize <= yysize1
-                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
-                    return 2;
-                  yysize = yysize1;
-                }
+                yysize1 = yysize + yytnamerr (0, yytname[yyx]);
+                if (! (yysize <= yysize1
+                       && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+                  return 2;
+                yysize = yysize1;
               }
         }
     }
@@ -1144,12 +1149,10 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, c
 # undef YYCASE_
     }
 
-  {
-    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
-    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
-      return 2;
-    yysize = yysize1;
-  }
+  yysize1 = yysize + yystrlen (yyformat);
+  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+    return 2;
+  yysize = yysize1;
 
   if (*yymsg_alloc < yysize)
     {
@@ -1207,10 +1210,29 @@ yydestruct (yymsg, yytype, yyvaluep, ctx
     yymsg = "Deleting";
   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
 
-  YYUSE (yytype);
+  switch (yytype)
+    {
+
+      default:
+	break;
+    }
 }
 
 
+/* Prevent warnings from -Wmissing-prototypes.  */
+#ifdef YYPARSE_PARAM
+#if defined __STDC__ || defined __cplusplus
+int yyparse (void *YYPARSE_PARAM);
+#else
+int yyparse ();
+#endif
+#else /* ! YYPARSE_PARAM */
+#if defined __STDC__ || defined __cplusplus
+int yyparse (ap_expr_parse_ctx_t *ctx);
+#else
+int yyparse ();
+#endif
+#endif /* ! YYPARSE_PARAM */
 
 
 /*----------.
@@ -1242,31 +1264,8 @@ yyparse (ctx)
 /* The lookahead symbol.  */
 int yychar;
 
-
-#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
-/* Suppress an incorrect diagnostic about yylval being uninitialized.  */
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
-    _Pragma ("GCC diagnostic push") \
-    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
-    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
-# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
-    _Pragma ("GCC diagnostic pop")
-#else
-/* Default value used for initialization, for pacifying older GCCs
-   or non-GCC compilers.  */
-static YYSTYPE yyval_default;
-# define YY_INITIAL_VALUE(Value) = Value
-#endif
-#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-# define YY_IGNORE_MAYBE_UNINITIALIZED_END
-#endif
-#ifndef YY_INITIAL_VALUE
-# define YY_INITIAL_VALUE(Value) /* Nothing. */
-#endif
-
 /* The semantic value of the lookahead symbol.  */
-YYSTYPE yylval YY_INITIAL_VALUE(yyval_default);
+YYSTYPE yylval;
 
     /* Number of syntax errors so far.  */
     int yynerrs;
@@ -1279,7 +1278,7 @@ YYSTYPE yylval YY_INITIAL_VALUE(yyval_de
        `yyss': related to states.
        `yyvs': related to semantic values.
 
-       Refer to the stacks through separate pointers, to allow yyoverflow
+       Refer to the stacks thru separate pointers, to allow yyoverflow
        to reallocate them elsewhere.  */
 
     /* The state stack.  */
@@ -1297,7 +1296,7 @@ YYSTYPE yylval YY_INITIAL_VALUE(yyval_de
   int yyn;
   int yyresult;
   /* Lookahead token as an internal (translated) token number.  */
-  int yytoken = 0;
+  int yytoken;
   /* The variables used to return semantic value and location from the
      action routines.  */
   YYSTYPE yyval;
@@ -1315,8 +1314,9 @@ YYSTYPE yylval YY_INITIAL_VALUE(yyval_de
      Keep to zero when no symbol should be popped.  */
   int yylen = 0;
 
-  yyssp = yyss = yyssa;
-  yyvsp = yyvs = yyvsa;
+  yytoken = 0;
+  yyss = yyssa;
+  yyvs = yyvsa;
   yystacksize = YYINITDEPTH;
 
   YYDPRINTF ((stderr, "Starting parse\n"));
@@ -1325,6 +1325,14 @@ YYSTYPE yylval YY_INITIAL_VALUE(yyval_de
   yyerrstatus = 0;
   yynerrs = 0;
   yychar = YYEMPTY; /* Cause a token to be read.  */
+
+  /* Initialize stack pointers.
+     Waste one element of value and location stack
+     so that they stay on the same level as the state stack.
+     The wasted elements are never initialized.  */
+  yyssp = yyss;
+  yyvsp = yyvs;
+
   goto yysetstate;
 
 /*------------------------------------------------------------.
@@ -1465,9 +1473,7 @@ yybackup:
   yychar = YYEMPTY;
 
   yystate = yyn;
-  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
   *++yyvsp = yylval;
-  YY_IGNORE_MAYBE_UNINITIALIZED_END
 
   goto yynewstate;
 
@@ -1504,289 +1510,337 @@ yyreduce:
   switch (yyn)
     {
         case 2:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 112 "util_expr_parse.y"
     { ctx->expr = (yyvsp[(2) - (2)].exVal); }
     break;
 
   case 3:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 113 "util_expr_parse.y"
     { ctx->expr = (yyvsp[(2) - (2)].exVal); }
     break;
 
   case 4:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 114 "util_expr_parse.y"
     { YYABORT; }
     break;
 
   case 5:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 117 "util_expr_parse.y"
     { (yyval.exVal) = ap_expr_make(op_True,        NULL, NULL, ctx); }
     break;
 
   case 6:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 118 "util_expr_parse.y"
     { (yyval.exVal) = ap_expr_make(op_False,       NULL, NULL, ctx); }
     break;
 
   case 7:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 119 "util_expr_parse.y"
     { (yyval.exVal) = ap_expr_make(op_Not,         (yyvsp[(2) - (2)].exVal),   NULL, ctx); }
     break;
 
   case 8:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 120 "util_expr_parse.y"
     { (yyval.exVal) = ap_expr_make(op_Or,          (yyvsp[(1) - (3)].exVal),   (yyvsp[(3) - (3)].exVal),   ctx); }
     break;
 
   case 9:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 121 "util_expr_parse.y"
     { (yyval.exVal) = ap_expr_make(op_And,         (yyvsp[(1) - (3)].exVal),   (yyvsp[(3) - (3)].exVal),   ctx); }
     break;
 
   case 10:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 122 "util_expr_parse.y"
     { (yyval.exVal) = ap_expr_make(op_Comp,        (yyvsp[(1) - (1)].exVal),   NULL, ctx); }
     break;
 
   case 11:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 123 "util_expr_parse.y"
     { (yyval.exVal) = ap_expr_unary_op_make(       (yyvsp[(1) - (2)].cpVal),   (yyvsp[(2) - (2)].exVal),   ctx); }
     break;
 
   case 12:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 124 "util_expr_parse.y"
     { (yyval.exVal) = ap_expr_binary_op_make((yyvsp[(2) - (3)].cpVal),   (yyvsp[(1) - (3)].exVal),   (yyvsp[(3) - (3)].exVal),   ctx); }
     break;
 
   case 13:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 125 "util_expr_parse.y"
     { (yyval.exVal) = (yyvsp[(2) - (3)].exVal); }
     break;
 
   case 14:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 126 "util_expr_parse.y"
     { YYABORT; }
     break;
 
   case 15:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 129 "util_expr_parse.y"
     { (yyval.exVal) = ap_expr_make(op_EQ,      (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); }
     break;
 
   case 16:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 130 "util_expr_parse.y"
     { (yyval.exVal) = ap_expr_make(op_NE,      (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); }
     break;
 
   case 17:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 131 "util_expr_parse.y"
     { (yyval.exVal) = ap_expr_make(op_LT,      (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); }
     break;
 
   case 18:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 132 "util_expr_parse.y"
     { (yyval.exVal) = ap_expr_make(op_LE,      (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); }
     break;
 
   case 19:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 133 "util_expr_parse.y"
     { (yyval.exVal) = ap_expr_make(op_GT,      (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); }
     break;
 
   case 20:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 134 "util_expr_parse.y"
     { (yyval.exVal) = ap_expr_make(op_GE,      (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); }
     break;
 
   case 21:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 135 "util_expr_parse.y"
     { (yyval.exVal) = ap_expr_make(op_STR_EQ,  (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); }
     break;
 
   case 22:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 136 "util_expr_parse.y"
     { (yyval.exVal) = ap_expr_make(op_STR_NE,  (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); }
     break;
 
   case 23:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 137 "util_expr_parse.y"
     { (yyval.exVal) = ap_expr_make(op_STR_LT,  (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); }
     break;
 
   case 24:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 138 "util_expr_parse.y"
     { (yyval.exVal) = ap_expr_make(op_STR_LE,  (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); }
     break;
 
   case 25:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 139 "util_expr_parse.y"
     { (yyval.exVal) = ap_expr_make(op_STR_GT,  (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); }
     break;
 
   case 26:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 140 "util_expr_parse.y"
     { (yyval.exVal) = ap_expr_make(op_STR_GE,  (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); }
     break;
 
   case 27:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 141 "util_expr_parse.y"
     { (yyval.exVal) = ap_expr_make(op_IN,      (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); }
     break;
 
   case 28:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 142 "util_expr_parse.y"
     { (yyval.exVal) = ap_expr_make(op_REG,     (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); }
     break;
 
   case 29:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 143 "util_expr_parse.y"
     { (yyval.exVal) = ap_expr_make(op_NRE,     (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); }
     break;
 
   case 30:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 146 "util_expr_parse.y"
     { (yyval.exVal) = (yyvsp[(1) - (1)].exVal); }
     break;
 
   case 31:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 147 "util_expr_parse.y"
     { (yyval.exVal) = (yyvsp[(2) - (3)].exVal); }
     break;
 
   case 32:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 150 "util_expr_parse.y"
     { (yyval.exVal) = ap_expr_make(op_ListElement, (yyvsp[(1) - (1)].exVal), NULL, ctx); }
     break;
 
   case 33:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 151 "util_expr_parse.y"
     { (yyval.exVal) = ap_expr_make(op_ListElement, (yyvsp[(3) - (3)].exVal), (yyvsp[(1) - (3)].exVal),   ctx); }
     break;
 
   case 34:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 154 "util_expr_parse.y"
     { (yyval.exVal) = ap_expr_make(op_Concat, (yyvsp[(1) - (2)].exVal), (yyvsp[(2) - (2)].exVal), ctx); }
     break;
 
   case 35:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 155 "util_expr_parse.y"
     { (yyval.exVal) = (yyvsp[(1) - (1)].exVal); }
     break;
 
   case 36:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 156 "util_expr_parse.y"
     { YYABORT; }
     break;
 
   case 37:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 159 "util_expr_parse.y"
     { (yyval.exVal) = ap_expr_make(op_String, (yyvsp[(1) - (1)].cpVal), NULL, ctx); }
     break;
 
   case 38:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 160 "util_expr_parse.y"
     { (yyval.exVal) = (yyvsp[(1) - (1)].exVal); }
     break;
 
   case 39:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 161 "util_expr_parse.y"
     { (yyval.exVal) = (yyvsp[(1) - (1)].exVal); }
     break;
 
   case 40:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 164 "util_expr_parse.y"
     { (yyval.exVal) = ap_expr_var_make((yyvsp[(2) - (3)].cpVal), ctx); }
     break;
 
   case 41:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 165 "util_expr_parse.y"
     { (yyval.exVal) = ap_expr_str_func_make((yyvsp[(2) - (5)].cpVal), (yyvsp[(4) - (5)].exVal), ctx); }
     break;
 
   case 42:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 168 "util_expr_parse.y"
     { (yyval.exVal) = ap_expr_make(op_Digit,  (yyvsp[(1) - (1)].cpVal), NULL, ctx); }
     break;
 
   case 43:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 169 "util_expr_parse.y"
     { (yyval.exVal) = ap_expr_make(op_Concat, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal),   ctx); }
     break;
 
   case 44:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 170 "util_expr_parse.y"
     { (yyval.exVal) = (yyvsp[(1) - (1)].exVal); }
     break;
 
   case 45:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 171 "util_expr_parse.y"
     { (yyval.exVal) = (yyvsp[(1) - (1)].exVal); }
     break;
 
   case 46:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 172 "util_expr_parse.y"
     { (yyval.exVal) = (yyvsp[(1) - (1)].exVal); }
     break;
 
   case 47:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 173 "util_expr_parse.y"
     { (yyval.exVal) = (yyvsp[(2) - (3)].exVal); }
     break;
 
   case 48:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 174 "util_expr_parse.y"
     { (yyval.exVal) = ap_expr_make(op_String, "", NULL, ctx); }
     break;
 
   case 49:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 177 "util_expr_parse.y"
     {
                 ap_regex_t *regex;
@@ -1800,7 +1854,8 @@ yyreduce:
     break;
 
   case 50:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 186 "util_expr_parse.y"
     {
                 ap_regex_t *regex;
@@ -1814,7 +1869,8 @@ yyreduce:
     break;
 
   case 51:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 197 "util_expr_parse.y"
     {
                 int *n = apr_palloc(ctx->pool, sizeof(int));
@@ -1824,20 +1880,30 @@ yyreduce:
     break;
 
   case 52:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 204 "util_expr_parse.y"
     { (yyval.exVal) = ap_expr_list_func_make((yyvsp[(1) - (4)].cpVal), (yyvsp[(3) - (4)].exVal), ctx); }
     break;
 
   case 53:
-/* Line 1787 of yacc.c  */
+
+/* Line 1806 of yacc.c  */
 #line 207 "util_expr_parse.y"
     { (yyval.exVal) = ap_expr_str_func_make((yyvsp[(1) - (4)].cpVal), (yyvsp[(3) - (4)].exVal), ctx); }
     break;
 
+  case 54:
+
+/* Line 1806 of yacc.c  */
+#line 208 "util_expr_parse.y"
+    { (yyval.exVal) = ap_expr_str_func_make((yyvsp[(1) - (4)].cpVal), (yyvsp[(3) - (4)].exVal), ctx); }
+    break;
+
+
 
-/* Line 1787 of yacc.c  */
-#line 1841 "util_expr_parse.c"
+/* Line 1806 of yacc.c  */
+#line 1907 "util_expr_parse.c"
       default: break;
     }
   /* User semantic actions sometimes alter yychar, and that requires
@@ -2000,9 +2066,7 @@ yyerrlab1:
       YY_STACK_PRINT (yyss, yyssp);
     }
 
-  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
   *++yyvsp = yylval;
-  YY_IGNORE_MAYBE_UNINITIALIZED_END
 
 
   /* Shift the error token.  */
@@ -2026,7 +2090,7 @@ yyabortlab:
   yyresult = 1;
   goto yyreturn;
 
-#if !defined yyoverflow || YYERROR_VERBOSE
+#if !defined(yyoverflow) || YYERROR_VERBOSE
 /*-------------------------------------------------.
 | yyexhaustedlab -- memory exhaustion comes here.  |
 `-------------------------------------------------*/
@@ -2068,8 +2132,9 @@ yyreturn:
 }
 
 
-/* Line 2050 of yacc.c  */
-#line 210 "util_expr_parse.y"
+
+/* Line 2067 of yacc.c  */
+#line 211 "util_expr_parse.y"
 
 
 void yyerror(ap_expr_parse_ctx_t *ctx, const char *s)
@@ -2078,3 +2143,4 @@ void yyerror(ap_expr_parse_ctx_t *ctx, c
     ctx->error = apr_pstrdup(ctx->ptemp, s);
 }
 
+

Modified: httpd/httpd/trunk/server/util_expr_parse.h
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/server/util_expr_parse.h?rev=1643900&r1=1643899&r2=1643900&view=diff
==============================================================================
--- httpd/httpd/trunk/server/util_expr_parse.h (original)
+++ httpd/httpd/trunk/server/util_expr_parse.h Mon Dec  8 19:46:53 2014
@@ -1,8 +1,8 @@
-/* A Bison parser, made by GNU Bison 2.7.12-4996.  */
+/* A Bison parser, made by GNU Bison 2.5.  */
 
 /* Bison interface for Yacc-like parsers in C
    
-      Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
+      Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
    
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -30,15 +30,6 @@
    This special exception was added by the Free Software Foundation in
    version 2.2 of Bison.  */
 
-#ifndef YY_AP_EXPR_YY_UTIL_EXPR_PARSE_H_INCLUDED
-# define YY_AP_EXPR_YY_UTIL_EXPR_PARSE_H_INCLUDED
-/* Enabling traces.  */
-#ifndef YYDEBUG
-# define YYDEBUG 0
-#endif
-#if YYDEBUG
-extern int ap_expr_yydebug;
-#endif
 
 /* Tokens.  */
 #ifndef YYTOKENTYPE
@@ -86,10 +77,12 @@ extern int ap_expr_yydebug;
 #endif
 
 
+
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
 typedef union YYSTYPE
 {
-/* Line 2053 of yacc.c  */
+
+/* Line 2068 of yacc.c  */
 #line 35 "util_expr_parse.y"
 
     char      *cpVal;
@@ -97,8 +90,9 @@ typedef union YYSTYPE
     int        num;
 
 
-/* Line 2053 of yacc.c  */
-#line 102 "util_expr_parse.h"
+
+/* Line 2068 of yacc.c  */
+#line 96 "util_expr_parse.h"
 } YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
@@ -106,18 +100,5 @@ typedef union YYSTYPE
 #endif
 
 
-#ifdef YYPARSE_PARAM
-#if defined __STDC__ || defined __cplusplus
-int ap_expr_yyparse (void *YYPARSE_PARAM);
-#else
-int ap_expr_yyparse ();
-#endif
-#else /* ! YYPARSE_PARAM */
-#if defined __STDC__ || defined __cplusplus
-int ap_expr_yyparse (ap_expr_parse_ctx_t *ctx);
-#else
-int ap_expr_yyparse ();
-#endif
-#endif /* ! YYPARSE_PARAM */
 
-#endif /* !YY_AP_EXPR_YY_UTIL_EXPR_PARSE_H_INCLUDED  */
+



Re: svn commit: r1643900 - in /httpd/httpd/trunk/server: util_expr_parse.c util_expr_parse.h

Posted by Yann Ylavic <yl...@gmail.com>.
Reverted in r1643901.

On Mon, Dec 8, 2014 at 9:01 PM, Yann Ylavic <yl...@gmail.com> wrote:
> On Mon, Dec 8, 2014 at 8:59 PM, Ruediger Pluem <rp...@apache.org> wrote:
>>
>>
>> On 12/08/2014 08:46 PM, ylavic@apache.org wrote:
>>> Author: ylavic
>>> Date: Mon Dec  8 19:46:53 2014
>>> New Revision: 1643900
>>>
>>> URL: http://svn.apache.org/r1643900
>>> Log:
>>> util_expr: sync bison generated source files with server/util_expr_parse.y.
>>>
>>> Modified:
>>>     httpd/httpd/trunk/server/util_expr_parse.c
>>>     httpd/httpd/trunk/server/util_expr_parse.h
>>>
>>> Modified: httpd/httpd/trunk/server/util_expr_parse.c
>>> URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/server/util_expr_parse.c?rev=1643900&r1=1643899&r2=1643900&view=diff
>>> ==============================================================================
>>> --- httpd/httpd/trunk/server/util_expr_parse.c (original)
>>> +++ httpd/httpd/trunk/server/util_expr_parse.c Mon Dec  8 19:46:53 2014
>>> @@ -1,8 +1,8 @@
>>> -/* A Bison parser, made by GNU Bison 2.7.12-4996.  */
>>> +/* A Bison parser, made by GNU Bison 2.5.  */
>>
>> This downgraded the used Bison release for generating. Does somebody has the original version or something newer at hand?
>
> Yes, you beat me on this...
> I think it would be better indeed.
>
> Regards,
> Yann.

Re: svn commit: r1643900 - in /httpd/httpd/trunk/server: util_expr_parse.c util_expr_parse.h

Posted by Yann Ylavic <yl...@gmail.com>.
On Mon, Dec 8, 2014 at 8:59 PM, Ruediger Pluem <rp...@apache.org> wrote:
>
>
> On 12/08/2014 08:46 PM, ylavic@apache.org wrote:
>> Author: ylavic
>> Date: Mon Dec  8 19:46:53 2014
>> New Revision: 1643900
>>
>> URL: http://svn.apache.org/r1643900
>> Log:
>> util_expr: sync bison generated source files with server/util_expr_parse.y.
>>
>> Modified:
>>     httpd/httpd/trunk/server/util_expr_parse.c
>>     httpd/httpd/trunk/server/util_expr_parse.h
>>
>> Modified: httpd/httpd/trunk/server/util_expr_parse.c
>> URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/server/util_expr_parse.c?rev=1643900&r1=1643899&r2=1643900&view=diff
>> ==============================================================================
>> --- httpd/httpd/trunk/server/util_expr_parse.c (original)
>> +++ httpd/httpd/trunk/server/util_expr_parse.c Mon Dec  8 19:46:53 2014
>> @@ -1,8 +1,8 @@
>> -/* A Bison parser, made by GNU Bison 2.7.12-4996.  */
>> +/* A Bison parser, made by GNU Bison 2.5.  */
>
> This downgraded the used Bison release for generating. Does somebody has the original version or something newer at hand?

Yes, you beat me on this...
I think it would be better indeed.

Regards,
Yann.

Re: svn commit: r1643900 - in /httpd/httpd/trunk/server: util_expr_parse.c util_expr_parse.h

Posted by Ruediger Pluem <rp...@apache.org>.

On 12/08/2014 08:46 PM, ylavic@apache.org wrote:
> Author: ylavic
> Date: Mon Dec  8 19:46:53 2014
> New Revision: 1643900
> 
> URL: http://svn.apache.org/r1643900
> Log:
> util_expr: sync bison generated source files with server/util_expr_parse.y.
> 
> Modified:
>     httpd/httpd/trunk/server/util_expr_parse.c
>     httpd/httpd/trunk/server/util_expr_parse.h
> 
> Modified: httpd/httpd/trunk/server/util_expr_parse.c
> URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/server/util_expr_parse.c?rev=1643900&r1=1643899&r2=1643900&view=diff
> ==============================================================================
> --- httpd/httpd/trunk/server/util_expr_parse.c (original)
> +++ httpd/httpd/trunk/server/util_expr_parse.c Mon Dec  8 19:46:53 2014
> @@ -1,8 +1,8 @@
> -/* A Bison parser, made by GNU Bison 2.7.12-4996.  */
> +/* A Bison parser, made by GNU Bison 2.5.  */

This downgraded the used Bison release for generating. Does somebody has the original version or something newer at hand?

Regards

RĂ¼diger


Re: svn commit: r1643900 - in /httpd/httpd/trunk/server: util_expr_parse.c util_expr_parse.h

Posted by Yann Ylavic <yl...@apache.org>.
On Mon, Dec 8, 2014 at 8:46 PM,  <yl...@apache.org> wrote:
> Author: ylavic
> Date: Mon Dec  8 19:46:53 2014
> New Revision: 1643900
>
> URL: http://svn.apache.org/r1643900
> Log:
> util_expr: sync bison generated source files with server/util_expr_parse.y.
>
> Modified:
>     httpd/httpd/trunk/server/util_expr_parse.c
>     httpd/httpd/trunk/server/util_expr_parse.h
>
> Modified: httpd/httpd/trunk/server/util_expr_parse.c
> URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/server/util_expr_parse.c?rev=1643900&r1=1643899&r2=1643900&view=diff
> ==============================================================================
> --- httpd/httpd/trunk/server/util_expr_parse.c (original)
> +++ httpd/httpd/trunk/server/util_expr_parse.c Mon Dec  8 19:46:53 2014
> @@ -1,8 +1,8 @@
> -/* A Bison parser, made by GNU Bison 2.7.12-4996.  */
> +/* A Bison parser, made by GNU Bison 2.5.  */

This is the (latest) version of bison I can run on my system.
Maybe someone with a version closer to the original one can revert
this change and re-commit the generated files...