summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--server/util_expr_parse.c576
-rw-r--r--server/util_expr_parse.h37
2 files changed, 330 insertions, 283 deletions
diff --git a/server/util_expr_parse.c b/server/util_expr_parse.c
index c4ffb28866..ff992bdba2 100644
--- a/server/util_expr_parse.c
+++ b/server/util_expr_parse.c
@@ -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, yyvaluep, ctx)
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, yyvaluep, ctx)
# 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, char **yymsg,
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, char **yymsg,
# 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_default);
`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_default);
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_default);
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_default);
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, const char *s)
ctx->error = apr_pstrdup(ctx->ptemp, s);
}
+
diff --git a/server/util_expr_parse.h b/server/util_expr_parse.h
index 21b0ffba56..8540ec6e2d 100644
--- a/server/util_expr_parse.h
+++ b/server/util_expr_parse.h
@@ -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 */
+