1
0
mirror of https://github.com/apache/httpd.git synced 2025-08-08 15:02:10 +03:00

Update auto-generated code

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1142165 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Stefan Fritsch
2011-07-02 07:48:12 +00:00
parent 46d4791a5d
commit ef10673c8e
3 changed files with 409 additions and 367 deletions

View File

@@ -111,38 +111,40 @@
enum yytokentype { enum yytokentype {
T_TRUE = 258, T_TRUE = 258,
T_FALSE = 259, T_FALSE = 259,
T_ERROR = 260, T_EXPR_BOOL = 260,
T_DIGIT = 261, T_EXPR_STRING = 261,
T_ID = 262, T_ERROR = 262,
T_STRING = 263, T_DIGIT = 263,
T_REGEX = 264, T_ID = 264,
T_REGEX_I = 265, T_STRING = 265,
T_REGEX_BACKREF = 266, T_REGEX = 266,
T_OP_UNARY = 267, T_REGEX_I = 267,
T_OP_BINARY = 268, T_REGEX_BACKREF = 268,
T_STR_BEGIN = 269, T_OP_UNARY = 269,
T_STR_END = 270, T_OP_BINARY = 270,
T_VAR_BEGIN = 271, T_STR_BEGIN = 271,
T_VAR_END = 272, T_STR_END = 272,
T_OP_EQ = 273, T_VAR_BEGIN = 273,
T_OP_NE = 274, T_VAR_END = 274,
T_OP_LT = 275, T_OP_EQ = 275,
T_OP_LE = 276, T_OP_NE = 276,
T_OP_GT = 277, T_OP_LT = 277,
T_OP_GE = 278, T_OP_LE = 278,
T_OP_REG = 279, T_OP_GT = 279,
T_OP_NRE = 280, T_OP_GE = 280,
T_OP_IN = 281, T_OP_REG = 281,
T_OP_STR_EQ = 282, T_OP_NRE = 282,
T_OP_STR_NE = 283, T_OP_IN = 283,
T_OP_STR_LT = 284, T_OP_STR_EQ = 284,
T_OP_STR_LE = 285, T_OP_STR_NE = 285,
T_OP_STR_GT = 286, T_OP_STR_LT = 286,
T_OP_STR_GE = 287, T_OP_STR_LE = 287,
T_OP_CONCAT = 288, T_OP_STR_GT = 288,
T_OP_OR = 289, T_OP_STR_GE = 289,
T_OP_AND = 290, T_OP_CONCAT = 290,
T_OP_NOT = 291 T_OP_OR = 291,
T_OP_AND = 292,
T_OP_NOT = 293
}; };
#endif #endif
@@ -162,7 +164,7 @@ typedef union YYSTYPE
/* Line 214 of yacc.c */ /* Line 214 of yacc.c */
#line 166 "util_expr_parse.c" #line 168 "util_expr_parse.c"
} YYSTYPE; } YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define yystype YYSTYPE /* obsolescent; will be withdrawn */
@@ -173,7 +175,7 @@ typedef union YYSTYPE
/* Copy the second part of user declarations. */ /* Copy the second part of user declarations. */
/* Line 264 of yacc.c */ /* Line 264 of yacc.c */
#line 99 "util_expr_parse.y" #line 102 "util_expr_parse.y"
#include "util_expr_private.h" #include "util_expr_private.h"
#define yyscanner ctx->scanner #define yyscanner ctx->scanner
@@ -182,7 +184,7 @@ int ap_expr_yylex(YYSTYPE *lvalp, void *scanner);
/* Line 264 of yacc.c */ /* Line 264 of yacc.c */
#line 186 "util_expr_parse.c" #line 188 "util_expr_parse.c"
#ifdef short #ifdef short
# undef short # undef short
@@ -395,22 +397,22 @@ union yyalloc
#endif #endif
/* YYFINAL -- State number of the termination state. */ /* YYFINAL -- State number of the termination state. */
#define YYFINAL 30 #define YYFINAL 26
/* YYLAST -- Last index in YYTABLE. */ /* YYLAST -- Last index in YYTABLE. */
#define YYLAST 122 #define YYLAST 122
/* YYNTOKENS -- Number of terminals. */ /* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 43 #define YYNTOKENS 45
/* YYNNTS -- Number of nonterminals. */ /* YYNNTS -- Number of nonterminals. */
#define YYNNTS 14 #define YYNNTS 14
/* YYNRULES -- Number of rules. */ /* YYNRULES -- Number of rules. */
#define YYNRULES 50 #define YYNRULES 51
/* YYNRULES -- Number of states. */ /* YYNRULES -- Number of states. */
#define YYNSTATES 91 #define YYNSTATES 94
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2 #define YYUNDEFTOK 2
#define YYMAXUTOK 291 #define YYMAXUTOK 293
#define YYTRANSLATE(YYX) \ #define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -422,15 +424,15 @@ static const yytype_uint8 yytranslate[] =
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
37, 38, 2, 2, 41, 2, 2, 2, 2, 2, 39, 40, 2, 2, 43, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 42, 2, 2, 2, 2, 2, 2, 2, 2, 2, 44, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 39, 2, 40, 2, 2, 2, 2, 2, 2, 2, 41, 2, 42, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -447,7 +449,7 @@ static const yytype_uint8 yytranslate[] =
5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
35, 36 35, 36, 37, 38
}; };
#if YYDEBUG #if YYDEBUG
@@ -455,45 +457,45 @@ static const yytype_uint8 yytranslate[] =
YYRHS. */ YYRHS. */
static const yytype_uint8 yyprhs[] = static const yytype_uint8 yyprhs[] =
{ {
0, 0, 3, 5, 7, 9, 11, 14, 18, 22, 0, 0, 3, 6, 9, 11, 13, 15, 18, 22,
24, 27, 31, 35, 39, 43, 47, 51, 55, 59, 26, 28, 31, 35, 39, 43, 47, 51, 55, 59,
63, 67, 71, 75, 79, 83, 87, 91, 95, 97, 63, 67, 71, 75, 79, 83, 87, 91, 95, 99,
101, 103, 107, 110, 112, 114, 116, 118, 122, 128, 101, 105, 107, 111, 114, 116, 118, 120, 122, 126,
130, 134, 136, 138, 140, 144, 147, 149, 151, 153, 132, 134, 138, 140, 142, 144, 148, 151, 153, 155,
158 157, 162
}; };
/* YYRHS -- A `-1'-separated list of the rules' RHS. */ /* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const yytype_int8 yyrhs[] = static const yytype_int8 yyrhs[] =
{ {
44, 0, -1, 45, -1, 5, -1, 3, -1, 4, 46, 0, -1, 5, 47, -1, 6, 51, -1, 7,
-1, 36, 45, -1, 45, 34, 45, -1, 45, 35, -1, 3, -1, 4, -1, 38, 47, -1, 47, 36,
45, -1, 46, -1, 12, 52, -1, 52, 13, 52, 47, -1, 47, 37, 47, -1, 48, -1, 14, 54,
-1, 37, 45, 38, -1, 52, 18, 52, -1, 52, -1, 54, 15, 54, -1, 39, 47, 40, -1, 54,
19, 52, -1, 52, 20, 52, -1, 52, 21, 52, 20, 54, -1, 54, 21, 54, -1, 54, 22, 54,
-1, 52, 22, 52, -1, 52, 23, 52, -1, 52, -1, 54, 23, 54, -1, 54, 24, 54, -1, 54,
27, 52, -1, 52, 28, 52, -1, 52, 29, 52, 25, 54, -1, 54, 29, 54, -1, 54, 30, 54,
-1, 52, 30, 52, -1, 52, 31, 52, -1, 52, -1, 54, 31, 54, -1, 54, 32, 54, -1, 54,
32, 52, -1, 52, 26, 47, -1, 52, 24, 53, 33, 54, -1, 54, 34, 54, -1, 54, 28, 49,
-1, 52, 25, 53, -1, 55, -1, 39, 48, 40, -1, 54, 26, 55, -1, 54, 27, 55, -1, 57,
-1, 52, -1, 48, 41, 52, -1, 49, 50, -1, -1, 41, 50, 42, -1, 54, -1, 50, 43, 54,
50, -1, 8, -1, 51, -1, 54, -1, 16, 7, -1, 51, 52, -1, 52, -1, 10, -1, 53, -1,
17, -1, 16, 7, 42, 49, 17, -1, 6, -1, 56, -1, 18, 9, 19, -1, 18, 9, 44, 51,
52, 33, 52, -1, 51, -1, 54, -1, 56, -1, 19, -1, 8, -1, 54, 35, 54, -1, 53, -1,
14, 49, 15, -1, 14, 15, -1, 9, -1, 10, 56, -1, 58, -1, 16, 51, 17, -1, 16, 17,
-1, 11, -1, 7, 37, 52, 38, -1, 7, 37, -1, 11, -1, 12, -1, 13, -1, 9, 39, 54,
52, 38, -1 40, -1, 9, 39, 54, 40, -1
}; };
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint8 yyrline[] = static const yytype_uint8 yyrline[] =
{ {
0, 109, 109, 110, 113, 114, 115, 116, 117, 118, 0, 112, 112, 113, 114, 117, 118, 119, 120, 121,
119, 120, 121, 124, 125, 126, 127, 128, 129, 130, 122, 123, 124, 125, 128, 129, 130, 131, 132, 133,
131, 132, 133, 134, 135, 136, 137, 138, 141, 142, 134, 135, 136, 137, 138, 139, 140, 141, 142, 145,
145, 146, 149, 150, 153, 154, 155, 158, 159, 162, 146, 149, 150, 153, 154, 157, 158, 159, 162, 163,
163, 164, 165, 166, 167, 168, 171, 180, 191, 198, 166, 167, 168, 169, 170, 171, 172, 175, 184, 195,
201 202, 205
}; };
#endif #endif
@@ -502,16 +504,17 @@ static const yytype_uint8 yyrline[] =
First, the terminals, then, starting at YYNTOKENS, nonterminals. */ First, the terminals, then, starting at YYNTOKENS, nonterminals. */
static const char *const yytname[] = static const char *const yytname[] =
{ {
"$end", "error", "$undefined", "T_TRUE", "T_FALSE", "T_ERROR", "$end", "error", "$undefined", "T_TRUE", "T_FALSE", "T_EXPR_BOOL",
"T_DIGIT", "T_ID", "T_STRING", "T_REGEX", "T_REGEX_I", "T_REGEX_BACKREF", "T_EXPR_STRING", "T_ERROR", "T_DIGIT", "T_ID", "T_STRING", "T_REGEX",
"T_OP_UNARY", "T_OP_BINARY", "T_STR_BEGIN", "T_STR_END", "T_VAR_BEGIN", "T_REGEX_I", "T_REGEX_BACKREF", "T_OP_UNARY", "T_OP_BINARY",
"T_VAR_END", "T_OP_EQ", "T_OP_NE", "T_OP_LT", "T_OP_LE", "T_OP_GT", "T_STR_BEGIN", "T_STR_END", "T_VAR_BEGIN", "T_VAR_END", "T_OP_EQ",
"T_OP_GE", "T_OP_REG", "T_OP_NRE", "T_OP_IN", "T_OP_STR_EQ", "T_OP_NE", "T_OP_LT", "T_OP_LE", "T_OP_GT", "T_OP_GE", "T_OP_REG",
"T_OP_STR_NE", "T_OP_STR_LT", "T_OP_STR_LE", "T_OP_STR_GT", "T_OP_NRE", "T_OP_IN", "T_OP_STR_EQ", "T_OP_STR_NE", "T_OP_STR_LT",
"T_OP_STR_GE", "T_OP_CONCAT", "T_OP_OR", "T_OP_AND", "T_OP_NOT", "'('", "T_OP_STR_LE", "T_OP_STR_GT", "T_OP_STR_GE", "T_OP_CONCAT", "T_OP_OR",
"')'", "'{'", "'}'", "','", "':'", "$accept", "root", "expr", "T_OP_AND", "T_OP_NOT", "'('", "')'", "'{'", "'}'", "','", "':'",
"comparison", "wordlist", "words", "string", "strpart", "var", "word", "$accept", "root", "expr", "comparison", "wordlist", "words", "string",
"regex", "backref", "lstfunccall", "strfunccall", 0 "strpart", "var", "word", "regex", "backref", "lstfunccall",
"strfunccall", 0
}; };
#endif #endif
@@ -523,31 +526,31 @@ static const yytype_uint16 yytoknum[] =
0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
285, 286, 287, 288, 289, 290, 291, 40, 41, 123, 285, 286, 287, 288, 289, 290, 291, 292, 293, 40,
125, 44, 58 41, 123, 125, 44, 58
}; };
# endif # endif
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint8 yyr1[] = static const yytype_uint8 yyr1[] =
{ {
0, 43, 44, 44, 45, 45, 45, 45, 45, 45, 0, 45, 46, 46, 46, 47, 47, 47, 47, 47,
45, 45, 45, 46, 46, 46, 46, 46, 46, 46, 47, 47, 47, 47, 48, 48, 48, 48, 48, 48,
46, 46, 46, 46, 46, 46, 46, 46, 47, 47, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49,
48, 48, 49, 49, 50, 50, 50, 51, 51, 52, 49, 50, 50, 51, 51, 52, 52, 52, 53, 53,
52, 52, 52, 52, 52, 52, 53, 53, 54, 55, 54, 54, 54, 54, 54, 54, 54, 55, 55, 56,
56 57, 58
}; };
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
static const yytype_uint8 yyr2[] = static const yytype_uint8 yyr2[] =
{ {
0, 2, 1, 1, 1, 1, 2, 3, 3, 1, 0, 2, 2, 2, 1, 1, 1, 2, 3, 3,
2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 2, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1,
1, 3, 2, 1, 1, 1, 1, 3, 5, 1, 3, 1, 3, 2, 1, 1, 1, 1, 3, 5,
3, 1, 1, 1, 3, 2, 1, 1, 1, 4, 1, 3, 1, 1, 1, 3, 2, 1, 1, 1,
4 4, 4
}; };
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -555,47 +558,47 @@ static const yytype_uint8 yyr2[] =
means the default is an error. */ means the default is an error. */
static const yytype_uint8 yydefact[] = static const yytype_uint8 yydefact[] =
{ {
0, 4, 5, 3, 39, 0, 48, 0, 0, 0, 0, 0, 0, 4, 0, 5, 6, 40, 0, 49,
0, 0, 0, 2, 9, 41, 0, 42, 43, 0, 0, 0, 0, 0, 0, 2, 10, 42, 0, 43,
10, 34, 45, 0, 33, 35, 36, 0, 6, 0, 44, 35, 3, 34, 36, 37, 1, 0, 11, 46,
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 44, 32, 37, 0, 12, 7, 8, 11, 13, 0, 0, 0, 33, 0, 45, 38, 0, 13, 8,
14, 15, 16, 17, 18, 46, 47, 26, 27, 0, 9, 12, 14, 15, 16, 17, 18, 19, 47, 48,
0, 25, 28, 19, 20, 21, 22, 23, 24, 40, 27, 28, 0, 0, 26, 29, 20, 21, 22, 23,
50, 0, 0, 0, 30, 38, 0, 29, 0, 49, 24, 25, 41, 51, 0, 0, 0, 31, 39, 0,
31 30, 0, 50, 32
}; };
/* YYDEFGOTO[NTERM-NUM]. */ /* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int8 yydefgoto[] = static const yytype_int8 yydefgoto[] =
{ {
-1, 12, 13, 14, 71, 83, 23, 24, 15, 16, -1, 4, 15, 16, 74, 86, 22, 23, 17, 18,
67, 17, 72, 18 70, 19, 75, 20
}; };
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */ STATE-NUM. */
#define YYPACT_NINF -29 #define YYPACT_NINF -26
static const yytype_int8 yypact[] = static const yytype_int8 yypact[] =
{ {
50, -29, -29, -29, -29, -13, -29, 9, -6, 14, 113, 58, 41, -26, 8, -26, -26, -26, 0, -26,
85, 85, 48, -28, -29, -29, 87, -29, -29, 9, 76, 6, 5, 58, 58, 51, -26, -26, 78, -26,
25, -29, -29, 36, -29, -29, -29, -9, -29, 45, -26, -26, 41, -26, -26, -26, -26, 76, 17, -26,
-29, 85, 85, 9, 9, 9, 9, 9, 9, 9, 104, -4, -26, 13, 58, 58, 76, 76, 76, 76,
60, 60, 4, 9, 9, 9, 9, 9, 9, 9, 76, 76, 76, 15, 15, -3, 76, 76, 76, 76,
-16, -29, -29, -29, 74, -29, 43, -29, 25, 25, 76, 76, 76, -26, -10, -26, -26, 41, -26, 23,
25, 25, 25, 25, 25, -29, -29, -29, -29, 23, -26, 17, 17, 17, 17, 17, 17, 17, -26, -26,
9, -29, -29, 25, 25, 25, 25, 25, 25, -29, -26, -26, 24, 76, -26, -26, 17, 17, 17, 17,
-29, 57, 9, 5, 25, -29, 34, -29, 9, -29, 17, 17, -26, -26, -6, 76, -25, 17, -26, 29,
25 -26, 76, -26, 17
}; };
/* YYPGOTO[NTERM-NUM]. */ /* YYPGOTO[NTERM-NUM]. */
static const yytype_int8 yypgoto[] = static const yytype_int8 yypgoto[] =
{ {
-29, -29, 3, -29, -29, -29, 17, -22, -5, -7, -26, -26, 44, -26, -26, -26, -9, -19, -2, -5,
52, -4, -29, -29 26, -1, -26, -26
}; };
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
@@ -605,52 +608,52 @@ static const yytype_int8 yypgoto[] =
#define YYTABLE_NINF -1 #define YYTABLE_NINF -1
static const yytype_uint8 yytable[] = static const yytype_uint8 yytable[] =
{ {
20, 52, 21, 25, 26, 6, 31, 32, 53, 22, 24, 25, 30, 53, 21, 28, 72, 9, 26, 24,
9, 69, 50, 28, 29, 4, 5, 49, 25, 26, 25, 53, 12, 88, 31, 56, 21, 90, 91, 9,
6, 27, 80, 8, 19, 9, 58, 59, 60, 61, 24, 25, 54, 29, 12, 52, 68, 69, 24, 25,
62, 63, 64, 54, 56, 57, 73, 74, 75, 76, 83, 61, 62, 63, 64, 65, 66, 67, 73, 27,
77, 78, 79, 70, 21, 87, 88, 6, 30, 25, 57, 76, 77, 78, 79, 80, 81, 82, 84, 34,
26, 51, 9, 1, 2, 3, 4, 5, 49, 52, 35, 21, 52, 58, 9, 24, 25, 32, 33, 12,
82, 6, 7, 84, 8, 21, 9, 49, 6, 65, 35, 5, 6, 85, 52, 53, 7, 8, 87, 92,
66, 81, 89, 9, 85, 86, 25, 26, 32, 31, 71, 9, 10, 0, 11, 0, 12, 0, 59, 60,
32, 90, 21, 55, 0, 6, 10, 11, 1, 2, 89, 0, 24, 25, 7, 8, 93, 34, 35, 9,
9, 4, 5, 68, 0, 0, 6, 7, 0, 8, 0, 0, 11, 36, 12, 0, 13, 14, 37, 38,
33, 9, 0, 0, 0, 34, 35, 36, 37, 38,
39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
49, 10, 11 49, 50, 51, 52, 21, 0, 0, 9, 1, 2,
3, 55, 12
}; };
static const yytype_int8 yycheck[] = static const yytype_int8 yycheck[] =
{ {
7, 23, 8, 8, 8, 11, 34, 35, 17, 15, 2, 2, 11, 22, 10, 10, 9, 13, 0, 11,
16, 7, 19, 10, 11, 6, 7, 33, 23, 23, 11, 30, 18, 19, 9, 19, 10, 42, 43, 13,
11, 7, 38, 14, 37, 16, 33, 34, 35, 36, 22, 22, 27, 17, 18, 35, 11, 12, 30, 30,
37, 38, 39, 42, 31, 32, 43, 44, 45, 46, 40, 36, 37, 38, 39, 40, 41, 42, 41, 39,
47, 48, 49, 39, 8, 40, 41, 11, 0, 54, 44, 46, 47, 48, 49, 50, 51, 52, 57, 36,
54, 15, 16, 3, 4, 5, 6, 7, 33, 81, 37, 10, 35, 40, 13, 57, 57, 13, 14, 18,
37, 11, 12, 70, 14, 8, 16, 33, 11, 9, 37, 3, 4, 39, 35, 84, 8, 9, 73, 40,
10, 54, 38, 16, 17, 82, 81, 81, 35, 34, 44, 13, 14, -1, 16, -1, 18, -1, 34, 35,
35, 88, 8, 38, -1, 11, 36, 37, 3, 4, 85, -1, 84, 84, 8, 9, 91, 36, 37, 13,
16, 6, 7, 41, -1, -1, 11, 12, -1, 14, -1, -1, 16, 15, 18, -1, 38, 39, 20, 21,
13, 16, -1, -1, -1, 18, 19, 20, 21, 22, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 32, 33, 34, 35, 10, -1, -1, 13, 5, 6,
33, 36, 37 7, 17, 18
}; };
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */ symbol of state STATE-NUM. */
static const yytype_uint8 yystos[] = static const yytype_uint8 yystos[] =
{ {
0, 3, 4, 5, 6, 7, 11, 12, 14, 16, 0, 5, 6, 7, 46, 3, 4, 8, 9, 13,
36, 37, 44, 45, 46, 51, 52, 54, 56, 37, 14, 16, 18, 38, 39, 47, 48, 53, 54, 56,
52, 8, 15, 49, 50, 51, 54, 7, 45, 45, 58, 10, 51, 52, 53, 56, 0, 39, 54, 17,
0, 34, 35, 13, 18, 19, 20, 21, 22, 23, 51, 9, 47, 47, 36, 37, 15, 20, 21, 22,
24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
52, 15, 50, 17, 42, 38, 45, 45, 52, 52, 33, 34, 35, 52, 54, 17, 19, 44, 40, 47,
52, 52, 52, 52, 52, 9, 10, 53, 53, 7, 47, 54, 54, 54, 54, 54, 54, 54, 11, 12,
39, 47, 55, 52, 52, 52, 52, 52, 52, 52, 55, 55, 9, 41, 49, 57, 54, 54, 54, 54,
38, 49, 37, 48, 52, 17, 52, 40, 41, 38, 54, 54, 54, 40, 51, 39, 50, 54, 19, 54,
52 42, 43, 40, 54
}; };
#define yyerrok (yyerrstatus = 0) #define yyerrok (yyerrstatus = 0)
@@ -1469,315 +1472,322 @@ yyreduce:
case 2: case 2:
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 109 "util_expr_parse.y" #line 112 "util_expr_parse.y"
{ ctx->expr = (yyvsp[(1) - (1)].exVal); ;} { ctx->expr = (yyvsp[(2) - (2)].exVal); ;}
break; break;
case 3: case 3:
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 110 "util_expr_parse.y" #line 113 "util_expr_parse.y"
{ YYABORT; ;} { ctx->expr = (yyvsp[(2) - (2)].exVal); ;}
break; break;
case 4: case 4:
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 113 "util_expr_parse.y" #line 114 "util_expr_parse.y"
{ (yyval.exVal) = ap_expr_make(op_True, NULL, NULL, ctx); ;} { YYABORT; ;}
break; break;
case 5: case 5:
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 114 "util_expr_parse.y" #line 117 "util_expr_parse.y"
{ (yyval.exVal) = ap_expr_make(op_False, NULL, NULL, ctx); ;} { (yyval.exVal) = ap_expr_make(op_True, NULL, NULL, ctx); ;}
break; break;
case 6: case 6:
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 115 "util_expr_parse.y" #line 118 "util_expr_parse.y"
{ (yyval.exVal) = ap_expr_make(op_Not, (yyvsp[(2) - (2)].exVal), NULL, ctx); ;} { (yyval.exVal) = ap_expr_make(op_False, NULL, NULL, ctx); ;}
break; break;
case 7: case 7:
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 116 "util_expr_parse.y" #line 119 "util_expr_parse.y"
{ (yyval.exVal) = ap_expr_make(op_Or, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); ;} { (yyval.exVal) = ap_expr_make(op_Not, (yyvsp[(2) - (2)].exVal), NULL, ctx); ;}
break; break;
case 8: case 8:
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 117 "util_expr_parse.y" #line 120 "util_expr_parse.y"
{ (yyval.exVal) = ap_expr_make(op_And, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); ;} { (yyval.exVal) = ap_expr_make(op_Or, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); ;}
break; break;
case 9: case 9:
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 118 "util_expr_parse.y" #line 121 "util_expr_parse.y"
{ (yyval.exVal) = ap_expr_make(op_Comp, (yyvsp[(1) - (1)].exVal), NULL, ctx); ;} { (yyval.exVal) = ap_expr_make(op_And, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); ;}
break; break;
case 10: case 10:
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 119 "util_expr_parse.y" #line 122 "util_expr_parse.y"
{ (yyval.exVal) = ap_expr_unary_op_make( (yyvsp[(1) - (2)].cpVal), (yyvsp[(2) - (2)].exVal), ctx); ;} { (yyval.exVal) = ap_expr_make(op_Comp, (yyvsp[(1) - (1)].exVal), NULL, ctx); ;}
break; break;
case 11: case 11:
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 120 "util_expr_parse.y" #line 123 "util_expr_parse.y"
{ (yyval.exVal) = ap_expr_binary_op_make((yyvsp[(2) - (3)].cpVal), (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); ;} { (yyval.exVal) = ap_expr_unary_op_make( (yyvsp[(1) - (2)].cpVal), (yyvsp[(2) - (2)].exVal), ctx); ;}
break; break;
case 12: case 12:
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 121 "util_expr_parse.y" #line 124 "util_expr_parse.y"
{ (yyval.exVal) = (yyvsp[(2) - (3)].exVal); ;} { (yyval.exVal) = ap_expr_binary_op_make((yyvsp[(2) - (3)].cpVal), (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); ;}
break; break;
case 13: case 13:
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 124 "util_expr_parse.y" #line 125 "util_expr_parse.y"
{ (yyval.exVal) = ap_expr_make(op_EQ, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); ;} { (yyval.exVal) = (yyvsp[(2) - (3)].exVal); ;}
break; break;
case 14: case 14:
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 125 "util_expr_parse.y" #line 128 "util_expr_parse.y"
{ (yyval.exVal) = ap_expr_make(op_NE, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); ;} { (yyval.exVal) = ap_expr_make(op_EQ, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); ;}
break; break;
case 15: case 15:
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 126 "util_expr_parse.y" #line 129 "util_expr_parse.y"
{ (yyval.exVal) = ap_expr_make(op_LT, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); ;} { (yyval.exVal) = ap_expr_make(op_NE, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); ;}
break; break;
case 16: case 16:
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 127 "util_expr_parse.y" #line 130 "util_expr_parse.y"
{ (yyval.exVal) = ap_expr_make(op_LE, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); ;} { (yyval.exVal) = ap_expr_make(op_LT, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); ;}
break; break;
case 17: case 17:
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 128 "util_expr_parse.y" #line 131 "util_expr_parse.y"
{ (yyval.exVal) = ap_expr_make(op_GT, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); ;} { (yyval.exVal) = ap_expr_make(op_LE, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); ;}
break; break;
case 18: case 18:
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 129 "util_expr_parse.y" #line 132 "util_expr_parse.y"
{ (yyval.exVal) = ap_expr_make(op_GE, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); ;} { (yyval.exVal) = ap_expr_make(op_GT, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); ;}
break; break;
case 19: case 19:
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 130 "util_expr_parse.y" #line 133 "util_expr_parse.y"
{ (yyval.exVal) = ap_expr_make(op_STR_EQ, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); ;} { (yyval.exVal) = ap_expr_make(op_GE, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); ;}
break; break;
case 20: case 20:
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 131 "util_expr_parse.y" #line 134 "util_expr_parse.y"
{ (yyval.exVal) = ap_expr_make(op_STR_NE, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); ;} { (yyval.exVal) = ap_expr_make(op_STR_EQ, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); ;}
break; break;
case 21: case 21:
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 132 "util_expr_parse.y" #line 135 "util_expr_parse.y"
{ (yyval.exVal) = ap_expr_make(op_STR_LT, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); ;} { (yyval.exVal) = ap_expr_make(op_STR_NE, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); ;}
break; break;
case 22: case 22:
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 133 "util_expr_parse.y" #line 136 "util_expr_parse.y"
{ (yyval.exVal) = ap_expr_make(op_STR_LE, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); ;} { (yyval.exVal) = ap_expr_make(op_STR_LT, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); ;}
break; break;
case 23: case 23:
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 134 "util_expr_parse.y" #line 137 "util_expr_parse.y"
{ (yyval.exVal) = ap_expr_make(op_STR_GT, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); ;} { (yyval.exVal) = ap_expr_make(op_STR_LE, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); ;}
break; break;
case 24: case 24:
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 135 "util_expr_parse.y" #line 138 "util_expr_parse.y"
{ (yyval.exVal) = ap_expr_make(op_STR_GE, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); ;} { (yyval.exVal) = ap_expr_make(op_STR_GT, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); ;}
break; break;
case 25: case 25:
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 136 "util_expr_parse.y" #line 139 "util_expr_parse.y"
{ (yyval.exVal) = ap_expr_make(op_IN, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); ;} { (yyval.exVal) = ap_expr_make(op_STR_GE, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); ;}
break; break;
case 26: case 26:
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 137 "util_expr_parse.y" #line 140 "util_expr_parse.y"
{ (yyval.exVal) = ap_expr_make(op_REG, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); ;} { (yyval.exVal) = ap_expr_make(op_IN, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); ;}
break; break;
case 27: case 27:
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 138 "util_expr_parse.y" #line 141 "util_expr_parse.y"
{ (yyval.exVal) = ap_expr_make(op_NRE, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); ;} { (yyval.exVal) = ap_expr_make(op_REG, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); ;}
break; break;
case 28: case 28:
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 141 "util_expr_parse.y" #line 142 "util_expr_parse.y"
{ (yyval.exVal) = (yyvsp[(1) - (1)].exVal); ;} { (yyval.exVal) = ap_expr_make(op_NRE, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); ;}
break; break;
case 29: case 29:
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 142 "util_expr_parse.y" #line 145 "util_expr_parse.y"
{ (yyval.exVal) = (yyvsp[(2) - (3)].exVal); ;} { (yyval.exVal) = (yyvsp[(1) - (1)].exVal); ;}
break; break;
case 30: case 30:
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 145 "util_expr_parse.y" #line 146 "util_expr_parse.y"
{ (yyval.exVal) = ap_expr_make(op_ListElement, (yyvsp[(1) - (1)].exVal), NULL, ctx); ;} { (yyval.exVal) = (yyvsp[(2) - (3)].exVal); ;}
break; break;
case 31: case 31:
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 146 "util_expr_parse.y" #line 149 "util_expr_parse.y"
{ (yyval.exVal) = ap_expr_make(op_ListElement, (yyvsp[(3) - (3)].exVal), (yyvsp[(1) - (3)].exVal), ctx); ;} { (yyval.exVal) = ap_expr_make(op_ListElement, (yyvsp[(1) - (1)].exVal), NULL, ctx); ;}
break; break;
case 32: case 32:
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 149 "util_expr_parse.y" #line 150 "util_expr_parse.y"
{ (yyval.exVal) = ap_expr_make(op_Concat, (yyvsp[(1) - (2)].exVal), (yyvsp[(2) - (2)].exVal), ctx); ;} { (yyval.exVal) = ap_expr_make(op_ListElement, (yyvsp[(3) - (3)].exVal), (yyvsp[(1) - (3)].exVal), ctx); ;}
break; break;
case 33: case 33:
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 150 "util_expr_parse.y" #line 153 "util_expr_parse.y"
{ (yyval.exVal) = (yyvsp[(1) - (1)].exVal); ;} { (yyval.exVal) = ap_expr_make(op_Concat, (yyvsp[(1) - (2)].exVal), (yyvsp[(2) - (2)].exVal), ctx); ;}
break; break;
case 34: case 34:
/* Line 1455 of yacc.c */
#line 153 "util_expr_parse.y"
{ (yyval.exVal) = ap_expr_make(op_String, (yyvsp[(1) - (1)].cpVal), NULL, ctx); ;}
break;
case 35:
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 154 "util_expr_parse.y" #line 154 "util_expr_parse.y"
{ (yyval.exVal) = (yyvsp[(1) - (1)].exVal); ;} { (yyval.exVal) = (yyvsp[(1) - (1)].exVal); ;}
break; break;
case 35:
/* Line 1455 of yacc.c */
#line 157 "util_expr_parse.y"
{ (yyval.exVal) = ap_expr_make(op_String, (yyvsp[(1) - (1)].cpVal), NULL, ctx); ;}
break;
case 36: case 36:
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 155 "util_expr_parse.y" #line 158 "util_expr_parse.y"
{ (yyval.exVal) = (yyvsp[(1) - (1)].exVal); ;} { (yyval.exVal) = (yyvsp[(1) - (1)].exVal); ;}
break; break;
case 37: case 37:
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 158 "util_expr_parse.y" #line 159 "util_expr_parse.y"
{ (yyval.exVal) = ap_expr_var_make((yyvsp[(2) - (3)].cpVal), ctx); ;} { (yyval.exVal) = (yyvsp[(1) - (1)].exVal); ;}
break; break;
case 38: case 38:
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 159 "util_expr_parse.y" #line 162 "util_expr_parse.y"
{ (yyval.exVal) = ap_expr_str_func_make((yyvsp[(2) - (5)].cpVal), (yyvsp[(4) - (5)].exVal), ctx); ;} { (yyval.exVal) = ap_expr_var_make((yyvsp[(2) - (3)].cpVal), ctx); ;}
break; break;
case 39: case 39:
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 162 "util_expr_parse.y" #line 163 "util_expr_parse.y"
{ (yyval.exVal) = ap_expr_make(op_Digit, (yyvsp[(1) - (1)].cpVal), NULL, ctx); ;} { (yyval.exVal) = ap_expr_str_func_make((yyvsp[(2) - (5)].cpVal), (yyvsp[(4) - (5)].exVal), ctx); ;}
break; break;
case 40: case 40:
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 163 "util_expr_parse.y" #line 166 "util_expr_parse.y"
{ (yyval.exVal) = ap_expr_make(op_Concat, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); ;} { (yyval.exVal) = ap_expr_make(op_Digit, (yyvsp[(1) - (1)].cpVal), NULL, ctx); ;}
break; break;
case 41: case 41:
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 164 "util_expr_parse.y" #line 167 "util_expr_parse.y"
{ (yyval.exVal) = (yyvsp[(1) - (1)].exVal); ;} { (yyval.exVal) = ap_expr_make(op_Concat, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); ;}
break; break;
case 42: case 42:
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 165 "util_expr_parse.y" #line 168 "util_expr_parse.y"
{ (yyval.exVal) = (yyvsp[(1) - (1)].exVal); ;} { (yyval.exVal) = (yyvsp[(1) - (1)].exVal); ;}
break; break;
case 43: case 43:
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 166 "util_expr_parse.y" #line 169 "util_expr_parse.y"
{ (yyval.exVal) = (yyvsp[(1) - (1)].exVal); ;} { (yyval.exVal) = (yyvsp[(1) - (1)].exVal); ;}
break; break;
case 44: case 44:
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 167 "util_expr_parse.y" #line 170 "util_expr_parse.y"
{ (yyval.exVal) = (yyvsp[(2) - (3)].exVal); ;} { (yyval.exVal) = (yyvsp[(1) - (1)].exVal); ;}
break; break;
case 45: case 45:
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 168 "util_expr_parse.y" #line 171 "util_expr_parse.y"
{ (yyval.exVal) = ap_expr_make(op_String, "", NULL, ctx); ;} { (yyval.exVal) = (yyvsp[(2) - (3)].exVal); ;}
break; break;
case 46: case 46:
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 171 "util_expr_parse.y" #line 172 "util_expr_parse.y"
{ (yyval.exVal) = ap_expr_make(op_String, "", NULL, ctx); ;}
break;
case 47:
/* Line 1455 of yacc.c */
#line 175 "util_expr_parse.y"
{ {
ap_regex_t *regex; ap_regex_t *regex;
if ((regex = ap_pregcomp(ctx->pool, (yyvsp[(1) - (1)].cpVal), if ((regex = ap_pregcomp(ctx->pool, (yyvsp[(1) - (1)].cpVal),
@@ -1789,10 +1799,10 @@ yyreduce:
;} ;}
break; break;
case 47: case 48:
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 180 "util_expr_parse.y" #line 184 "util_expr_parse.y"
{ {
ap_regex_t *regex; ap_regex_t *regex;
if ((regex = ap_pregcomp(ctx->pool, (yyvsp[(1) - (1)].cpVal), if ((regex = ap_pregcomp(ctx->pool, (yyvsp[(1) - (1)].cpVal),
@@ -1804,10 +1814,10 @@ yyreduce:
;} ;}
break; break;
case 48: case 49:
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 191 "util_expr_parse.y" #line 195 "util_expr_parse.y"
{ {
int *n = apr_palloc(ctx->pool, sizeof(int)); int *n = apr_palloc(ctx->pool, sizeof(int));
*n = (yyvsp[(1) - (1)].num); *n = (yyvsp[(1) - (1)].num);
@@ -1815,24 +1825,24 @@ yyreduce:
;} ;}
break; break;
case 49:
/* Line 1455 of yacc.c */
#line 198 "util_expr_parse.y"
{ (yyval.exVal) = ap_expr_list_func_make((yyvsp[(1) - (4)].cpVal), (yyvsp[(3) - (4)].exVal), ctx); ;}
break;
case 50: case 50:
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 201 "util_expr_parse.y" #line 202 "util_expr_parse.y"
{ (yyval.exVal) = ap_expr_list_func_make((yyvsp[(1) - (4)].cpVal), (yyvsp[(3) - (4)].exVal), ctx); ;}
break;
case 51:
/* Line 1455 of yacc.c */
#line 205 "util_expr_parse.y"
{ (yyval.exVal) = ap_expr_str_func_make((yyvsp[(1) - (4)].cpVal), (yyvsp[(3) - (4)].exVal), ctx); ;} { (yyval.exVal) = ap_expr_str_func_make((yyvsp[(1) - (4)].cpVal), (yyvsp[(3) - (4)].exVal), ctx); ;}
break; break;
/* Line 1455 of yacc.c */ /* Line 1455 of yacc.c */
#line 1836 "util_expr_parse.c" #line 1846 "util_expr_parse.c"
default: break; default: break;
} }
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -2044,7 +2054,7 @@ yyreturn:
/* Line 1675 of yacc.c */ /* Line 1675 of yacc.c */
#line 204 "util_expr_parse.y" #line 208 "util_expr_parse.y"
void yyerror(ap_expr_parse_ctx_t *ctx, char *s) void yyerror(ap_expr_parse_ctx_t *ctx, char *s)

View File

@@ -41,38 +41,40 @@
enum yytokentype { enum yytokentype {
T_TRUE = 258, T_TRUE = 258,
T_FALSE = 259, T_FALSE = 259,
T_ERROR = 260, T_EXPR_BOOL = 260,
T_DIGIT = 261, T_EXPR_STRING = 261,
T_ID = 262, T_ERROR = 262,
T_STRING = 263, T_DIGIT = 263,
T_REGEX = 264, T_ID = 264,
T_REGEX_I = 265, T_STRING = 265,
T_REGEX_BACKREF = 266, T_REGEX = 266,
T_OP_UNARY = 267, T_REGEX_I = 267,
T_OP_BINARY = 268, T_REGEX_BACKREF = 268,
T_STR_BEGIN = 269, T_OP_UNARY = 269,
T_STR_END = 270, T_OP_BINARY = 270,
T_VAR_BEGIN = 271, T_STR_BEGIN = 271,
T_VAR_END = 272, T_STR_END = 272,
T_OP_EQ = 273, T_VAR_BEGIN = 273,
T_OP_NE = 274, T_VAR_END = 274,
T_OP_LT = 275, T_OP_EQ = 275,
T_OP_LE = 276, T_OP_NE = 276,
T_OP_GT = 277, T_OP_LT = 277,
T_OP_GE = 278, T_OP_LE = 278,
T_OP_REG = 279, T_OP_GT = 279,
T_OP_NRE = 280, T_OP_GE = 280,
T_OP_IN = 281, T_OP_REG = 281,
T_OP_STR_EQ = 282, T_OP_NRE = 282,
T_OP_STR_NE = 283, T_OP_IN = 283,
T_OP_STR_LT = 284, T_OP_STR_EQ = 284,
T_OP_STR_LE = 285, T_OP_STR_NE = 285,
T_OP_STR_GT = 286, T_OP_STR_LT = 286,
T_OP_STR_GE = 287, T_OP_STR_LE = 287,
T_OP_CONCAT = 288, T_OP_STR_GT = 288,
T_OP_OR = 289, T_OP_STR_GE = 289,
T_OP_AND = 290, T_OP_CONCAT = 290,
T_OP_NOT = 291 T_OP_OR = 291,
T_OP_AND = 292,
T_OP_NOT = 293
}; };
#endif #endif
@@ -92,7 +94,7 @@ typedef union YYSTYPE
/* Line 1676 of yacc.c */ /* Line 1676 of yacc.c */
#line 96 "util_expr_parse.h" #line 98 "util_expr_parse.h"
} YYSTYPE; } YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define yystype YYSTYPE /* obsolescent; will be withdrawn */

View File

@@ -857,10 +857,26 @@ YY_DECL
char *regex_ptr = NULL; char *regex_ptr = NULL;
char regex_del = '\0'; char regex_del = '\0';
/*
* Set initial state for string expressions
*/
if (yyextra->at_start) {
yyextra->at_start = 0;
if (yyextra->flags & AP_EXPR_FLAG_STRING_RESULT) {
BEGIN(str);
return T_EXPR_STRING;
}
else {
return T_EXPR_BOOL;
}
}
/* /*
* Whitespaces * Whitespaces
*/ */
#line 864 "util_expr_scan.c" #line 880 "util_expr_scan.c"
yylval = yylval_param; yylval = yylval_param;
@@ -944,7 +960,7 @@ do_action: /* This label is used only to access EOF actions. */
case 1: case 1:
/* rule 1 can match eol */ /* rule 1 can match eol */
YY_RULE_SETUP YY_RULE_SETUP
#line 81 "util_expr_scan.l" #line 97 "util_expr_scan.l"
{ {
/* NOP */ /* NOP */
} }
@@ -954,7 +970,7 @@ YY_RULE_SETUP
*/ */
case 2: case 2:
YY_RULE_SETUP YY_RULE_SETUP
#line 88 "util_expr_scan.l" #line 104 "util_expr_scan.l"
{ {
str_ptr = str_buf; str_ptr = str_buf;
str_del = yytext[0]; str_del = yytext[0];
@@ -964,7 +980,7 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 3: case 3:
YY_RULE_SETUP YY_RULE_SETUP
#line 94 "util_expr_scan.l" #line 110 "util_expr_scan.l"
{ {
if (yytext[0] == str_del) { if (yytext[0] == str_del) {
if (YY_START == var) { if (YY_START == var) {
@@ -991,22 +1007,36 @@ YY_RULE_SETUP
case 4: case 4:
/* rule 4 can match eol */ /* rule 4 can match eol */
YY_RULE_SETUP YY_RULE_SETUP
#line 116 "util_expr_scan.l" #line 132 "util_expr_scan.l"
{
PERROR("Unterminated string or variable");
}
YY_BREAK
case YY_STATE_EOF(var):
case YY_STATE_EOF(vararg):
#line 135 "util_expr_scan.l"
{ {
PERROR("Unterminated string or variable"); PERROR("Unterminated string or variable");
} }
YY_BREAK YY_BREAK
case YY_STATE_EOF(str): case YY_STATE_EOF(str):
case YY_STATE_EOF(var): #line 138 "util_expr_scan.l"
case YY_STATE_EOF(vararg):
#line 119 "util_expr_scan.l"
{ {
PERROR("Unterminated string or variable"); if (!(yyextra->flags & AP_EXPR_FLAG_STRING_RESULT)) {
PERROR("Unterminated string or variable");
}
else {
*str_ptr = '\0';
yylval->cpVal = apr_pstrdup(yyextra->pool, str_buf);
str_ptr = str_buf;
BEGIN(INITIAL);
return T_STRING;
}
} }
YY_BREAK YY_BREAK
case 5: case 5:
YY_RULE_SETUP YY_RULE_SETUP
#line 122 "util_expr_scan.l" #line 151 "util_expr_scan.l"
{ {
int result; int result;
@@ -1021,40 +1051,40 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 6: case 6:
YY_RULE_SETUP YY_RULE_SETUP
#line 133 "util_expr_scan.l" #line 162 "util_expr_scan.l"
{ {
PERROR("Bad escape sequence"); PERROR("Bad escape sequence");
} }
YY_BREAK YY_BREAK
case 7: case 7:
YY_RULE_SETUP YY_RULE_SETUP
#line 136 "util_expr_scan.l" #line 165 "util_expr_scan.l"
{ *str_ptr++ = '\n'; } { *str_ptr++ = '\n'; }
YY_BREAK YY_BREAK
case 8: case 8:
YY_RULE_SETUP YY_RULE_SETUP
#line 137 "util_expr_scan.l" #line 166 "util_expr_scan.l"
{ *str_ptr++ = '\r'; } { *str_ptr++ = '\r'; }
YY_BREAK YY_BREAK
case 9: case 9:
YY_RULE_SETUP YY_RULE_SETUP
#line 138 "util_expr_scan.l" #line 167 "util_expr_scan.l"
{ *str_ptr++ = '\t'; } { *str_ptr++ = '\t'; }
YY_BREAK YY_BREAK
case 10: case 10:
YY_RULE_SETUP YY_RULE_SETUP
#line 139 "util_expr_scan.l" #line 168 "util_expr_scan.l"
{ *str_ptr++ = '\b'; } { *str_ptr++ = '\b'; }
YY_BREAK YY_BREAK
case 11: case 11:
YY_RULE_SETUP YY_RULE_SETUP
#line 140 "util_expr_scan.l" #line 169 "util_expr_scan.l"
{ *str_ptr++ = '\f'; } { *str_ptr++ = '\f'; }
YY_BREAK YY_BREAK
case 12: case 12:
/* rule 12 can match eol */ /* rule 12 can match eol */
YY_RULE_SETUP YY_RULE_SETUP
#line 141 "util_expr_scan.l" #line 170 "util_expr_scan.l"
{ {
*str_ptr++ = yytext[1]; *str_ptr++ = yytext[1];
} }
@@ -1062,7 +1092,7 @@ YY_RULE_SETUP
/* regexp backref inside string/arg */ /* regexp backref inside string/arg */
case 13: case 13:
YY_RULE_SETUP YY_RULE_SETUP
#line 146 "util_expr_scan.l" #line 175 "util_expr_scan.l"
{ {
if (str_ptr != str_buf) { if (str_ptr != str_buf) {
/* return what we have so far and scan '$x' again */ /* return what we have so far and scan '$x' again */
@@ -1080,7 +1110,7 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 14: case 14:
YY_RULE_SETUP YY_RULE_SETUP
#line 161 "util_expr_scan.l" #line 190 "util_expr_scan.l"
{ {
char *cp = yytext; char *cp = yytext;
while (*cp != '\0') while (*cp != '\0')
@@ -1090,7 +1120,7 @@ YY_RULE_SETUP
/* variable inside string/arg */ /* variable inside string/arg */
case 15: case 15:
YY_RULE_SETUP YY_RULE_SETUP
#line 168 "util_expr_scan.l" #line 197 "util_expr_scan.l"
{ {
if (str_ptr != str_buf) { if (str_ptr != str_buf) {
/* return what we have so far and scan '%{' again */ /* return what we have so far and scan '%{' again */
@@ -1108,21 +1138,21 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 16: case 16:
YY_RULE_SETUP YY_RULE_SETUP
#line 183 "util_expr_scan.l" #line 212 "util_expr_scan.l"
{ {
*str_ptr++ = yytext[0]; *str_ptr++ = yytext[0];
} }
YY_BREAK YY_BREAK
case 17: case 17:
YY_RULE_SETUP YY_RULE_SETUP
#line 187 "util_expr_scan.l" #line 216 "util_expr_scan.l"
{ {
*str_ptr++ = yytext[0]; *str_ptr++ = yytext[0];
} }
YY_BREAK YY_BREAK
case 18: case 18:
YY_RULE_SETUP YY_RULE_SETUP
#line 191 "util_expr_scan.l" #line 220 "util_expr_scan.l"
{ {
yy_push_state(var, yyscanner); yy_push_state(var, yyscanner);
return T_VAR_BEGIN; return T_VAR_BEGIN;
@@ -1130,7 +1160,7 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 19: case 19:
YY_RULE_SETUP YY_RULE_SETUP
#line 196 "util_expr_scan.l" #line 225 "util_expr_scan.l"
{ {
yylval->num = yytext[1] - '0'; yylval->num = yytext[1] - '0';
return T_REGEX_BACKREF; return T_REGEX_BACKREF;
@@ -1141,7 +1171,7 @@ YY_RULE_SETUP
*/ */
case 20: case 20:
YY_RULE_SETUP YY_RULE_SETUP
#line 204 "util_expr_scan.l" #line 233 "util_expr_scan.l"
{ {
yylval->cpVal = apr_pstrdup(yyextra->pool, yytext); yylval->cpVal = apr_pstrdup(yyextra->pool, yytext);
return T_ID; return T_ID;
@@ -1149,7 +1179,7 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 21: case 21:
YY_RULE_SETUP YY_RULE_SETUP
#line 209 "util_expr_scan.l" #line 238 "util_expr_scan.l"
{ {
yy_pop_state(yyscanner); yy_pop_state(yyscanner);
return T_VAR_END; return T_VAR_END;
@@ -1157,7 +1187,7 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 22: case 22:
YY_RULE_SETUP YY_RULE_SETUP
#line 214 "util_expr_scan.l" #line 243 "util_expr_scan.l"
{ {
BEGIN(vararg); BEGIN(vararg);
return yytext[0]; return yytext[0];
@@ -1166,7 +1196,7 @@ YY_RULE_SETUP
case 23: case 23:
/* rule 23 can match eol */ /* rule 23 can match eol */
YY_RULE_SETUP YY_RULE_SETUP
#line 219 "util_expr_scan.l" #line 248 "util_expr_scan.l"
{ {
char *msg = apr_psprintf(yyextra->pool, char *msg = apr_psprintf(yyextra->pool,
"Invalid character in variable name '%c'", yytext[0]); "Invalid character in variable name '%c'", yytext[0]);
@@ -1175,7 +1205,7 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 24: case 24:
YY_RULE_SETUP YY_RULE_SETUP
#line 225 "util_expr_scan.l" #line 254 "util_expr_scan.l"
{ {
if (str_ptr != str_buf) { if (str_ptr != str_buf) {
/* return what we have so far and scan '}' again */ /* return what we have so far and scan '}' again */
@@ -1196,7 +1226,7 @@ YY_RULE_SETUP
*/ */
case 25: case 25:
YY_RULE_SETUP YY_RULE_SETUP
#line 243 "util_expr_scan.l" #line 272 "util_expr_scan.l"
{ {
regex_del = yytext[1]; regex_del = yytext[1];
regex_ptr = regex_buf; regex_ptr = regex_buf;
@@ -1205,7 +1235,7 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 26: case 26:
YY_RULE_SETUP YY_RULE_SETUP
#line 248 "util_expr_scan.l" #line 277 "util_expr_scan.l"
{ {
regex_del = yytext[0]; regex_del = yytext[0];
regex_ptr = regex_buf; regex_ptr = regex_buf;
@@ -1215,7 +1245,7 @@ YY_RULE_SETUP
case 27: case 27:
/* rule 27 can match eol */ /* rule 27 can match eol */
YY_RULE_SETUP YY_RULE_SETUP
#line 253 "util_expr_scan.l" #line 282 "util_expr_scan.l"
{ {
if (yytext[0] == regex_del) { if (yytext[0] == regex_del) {
*regex_ptr = '\0'; *regex_ptr = '\0';
@@ -1228,7 +1258,7 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 28: case 28:
YY_RULE_SETUP YY_RULE_SETUP
#line 262 "util_expr_scan.l" #line 291 "util_expr_scan.l"
{ {
yylval->cpVal = apr_pstrdup(yyextra->pool, regex_buf); yylval->cpVal = apr_pstrdup(yyextra->pool, regex_buf);
BEGIN(INITIAL); BEGIN(INITIAL);
@@ -1238,7 +1268,7 @@ YY_RULE_SETUP
case 29: case 29:
/* rule 29 can match eol */ /* rule 29 can match eol */
YY_RULE_SETUP YY_RULE_SETUP
#line 267 "util_expr_scan.l" #line 296 "util_expr_scan.l"
{ {
yylval->cpVal = apr_pstrdup(yyextra->pool, regex_buf); yylval->cpVal = apr_pstrdup(yyextra->pool, regex_buf);
yyless(0); yyless(0);
@@ -1247,7 +1277,7 @@ YY_RULE_SETUP
} }
YY_BREAK YY_BREAK
case YY_STATE_EOF(regex_flags): case YY_STATE_EOF(regex_flags):
#line 273 "util_expr_scan.l" #line 302 "util_expr_scan.l"
{ {
yylval->cpVal = apr_pstrdup(yyextra->pool, regex_buf); yylval->cpVal = apr_pstrdup(yyextra->pool, regex_buf);
BEGIN(INITIAL); BEGIN(INITIAL);
@@ -1259,153 +1289,153 @@ case YY_STATE_EOF(regex_flags):
*/ */
case 30: case 30:
YY_RULE_SETUP YY_RULE_SETUP
#line 282 "util_expr_scan.l" #line 311 "util_expr_scan.l"
{ return T_OP_STR_EQ; } { return T_OP_STR_EQ; }
YY_BREAK YY_BREAK
case 31: case 31:
YY_RULE_SETUP YY_RULE_SETUP
#line 283 "util_expr_scan.l" #line 312 "util_expr_scan.l"
{ return T_OP_STR_NE; } { return T_OP_STR_NE; }
YY_BREAK YY_BREAK
case 32: case 32:
YY_RULE_SETUP YY_RULE_SETUP
#line 284 "util_expr_scan.l" #line 313 "util_expr_scan.l"
{ return T_OP_STR_LT; } { return T_OP_STR_LT; }
YY_BREAK YY_BREAK
case 33: case 33:
YY_RULE_SETUP YY_RULE_SETUP
#line 285 "util_expr_scan.l" #line 314 "util_expr_scan.l"
{ return T_OP_STR_LE; } { return T_OP_STR_LE; }
YY_BREAK YY_BREAK
case 34: case 34:
YY_RULE_SETUP YY_RULE_SETUP
#line 286 "util_expr_scan.l" #line 315 "util_expr_scan.l"
{ return T_OP_STR_GT; } { return T_OP_STR_GT; }
YY_BREAK YY_BREAK
case 35: case 35:
YY_RULE_SETUP YY_RULE_SETUP
#line 287 "util_expr_scan.l" #line 316 "util_expr_scan.l"
{ return T_OP_STR_GE; } { return T_OP_STR_GE; }
YY_BREAK YY_BREAK
case 36: case 36:
YY_RULE_SETUP YY_RULE_SETUP
#line 288 "util_expr_scan.l" #line 317 "util_expr_scan.l"
{ return T_OP_REG; } { return T_OP_REG; }
YY_BREAK YY_BREAK
case 37: case 37:
YY_RULE_SETUP YY_RULE_SETUP
#line 289 "util_expr_scan.l" #line 318 "util_expr_scan.l"
{ return T_OP_NRE; } { return T_OP_NRE; }
YY_BREAK YY_BREAK
case 38: case 38:
YY_RULE_SETUP YY_RULE_SETUP
#line 290 "util_expr_scan.l" #line 319 "util_expr_scan.l"
{ return T_OP_AND; } { return T_OP_AND; }
YY_BREAK YY_BREAK
case 39: case 39:
YY_RULE_SETUP YY_RULE_SETUP
#line 291 "util_expr_scan.l" #line 320 "util_expr_scan.l"
{ return T_OP_AND; } { return T_OP_AND; }
YY_BREAK YY_BREAK
case 40: case 40:
YY_RULE_SETUP YY_RULE_SETUP
#line 292 "util_expr_scan.l" #line 321 "util_expr_scan.l"
{ return T_OP_OR; } { return T_OP_OR; }
YY_BREAK YY_BREAK
case 41: case 41:
YY_RULE_SETUP YY_RULE_SETUP
#line 293 "util_expr_scan.l" #line 322 "util_expr_scan.l"
{ return T_OP_OR; } { return T_OP_OR; }
YY_BREAK YY_BREAK
case 42: case 42:
YY_RULE_SETUP YY_RULE_SETUP
#line 294 "util_expr_scan.l" #line 323 "util_expr_scan.l"
{ return T_OP_NOT; } { return T_OP_NOT; }
YY_BREAK YY_BREAK
case 43: case 43:
YY_RULE_SETUP YY_RULE_SETUP
#line 295 "util_expr_scan.l" #line 324 "util_expr_scan.l"
{ return T_OP_NOT; } { return T_OP_NOT; }
YY_BREAK YY_BREAK
case 44: case 44:
YY_RULE_SETUP YY_RULE_SETUP
#line 296 "util_expr_scan.l" #line 325 "util_expr_scan.l"
{ return T_OP_CONCAT; } { return T_OP_CONCAT; }
YY_BREAK YY_BREAK
case 45: case 45:
YY_RULE_SETUP YY_RULE_SETUP
#line 297 "util_expr_scan.l" #line 326 "util_expr_scan.l"
{ return T_OP_IN; } { return T_OP_IN; }
YY_BREAK YY_BREAK
case 46: case 46:
YY_RULE_SETUP YY_RULE_SETUP
#line 298 "util_expr_scan.l" #line 327 "util_expr_scan.l"
{ return T_OP_EQ; } { return T_OP_EQ; }
YY_BREAK YY_BREAK
case 47: case 47:
YY_RULE_SETUP YY_RULE_SETUP
#line 299 "util_expr_scan.l" #line 328 "util_expr_scan.l"
{ return T_OP_NE; } { return T_OP_NE; }
YY_BREAK YY_BREAK
case 48: case 48:
YY_RULE_SETUP YY_RULE_SETUP
#line 300 "util_expr_scan.l" #line 329 "util_expr_scan.l"
{ return T_OP_GE; } { return T_OP_GE; }
YY_BREAK YY_BREAK
case 49: case 49:
YY_RULE_SETUP YY_RULE_SETUP
#line 301 "util_expr_scan.l" #line 330 "util_expr_scan.l"
{ return T_OP_LE; } { return T_OP_LE; }
YY_BREAK YY_BREAK
case 50: case 50:
YY_RULE_SETUP YY_RULE_SETUP
#line 302 "util_expr_scan.l" #line 331 "util_expr_scan.l"
{ return T_OP_GT; } { return T_OP_GT; }
YY_BREAK YY_BREAK
case 51: case 51:
YY_RULE_SETUP YY_RULE_SETUP
#line 303 "util_expr_scan.l" #line 332 "util_expr_scan.l"
{ return T_OP_LT; } { return T_OP_LT; }
YY_BREAK YY_BREAK
/* for compatibility with ssl_expr */ /* for compatibility with ssl_expr */
case 52: case 52:
YY_RULE_SETUP YY_RULE_SETUP
#line 306 "util_expr_scan.l" #line 335 "util_expr_scan.l"
{ return T_OP_LT; } { return T_OP_LT; }
YY_BREAK YY_BREAK
case 53: case 53:
YY_RULE_SETUP YY_RULE_SETUP
#line 307 "util_expr_scan.l" #line 336 "util_expr_scan.l"
{ return T_OP_LE; } { return T_OP_LE; }
YY_BREAK YY_BREAK
case 54: case 54:
YY_RULE_SETUP YY_RULE_SETUP
#line 308 "util_expr_scan.l" #line 337 "util_expr_scan.l"
{ return T_OP_GT; } { return T_OP_GT; }
YY_BREAK YY_BREAK
case 55: case 55:
YY_RULE_SETUP YY_RULE_SETUP
#line 309 "util_expr_scan.l" #line 338 "util_expr_scan.l"
{ return T_OP_GE; } { return T_OP_GE; }
YY_BREAK YY_BREAK
case 56: case 56:
YY_RULE_SETUP YY_RULE_SETUP
#line 310 "util_expr_scan.l" #line 339 "util_expr_scan.l"
{ return T_OP_NE; } { return T_OP_NE; }
YY_BREAK YY_BREAK
case 57: case 57:
YY_RULE_SETUP YY_RULE_SETUP
#line 311 "util_expr_scan.l" #line 340 "util_expr_scan.l"
{ return T_OP_EQ; } { return T_OP_EQ; }
YY_BREAK YY_BREAK
case 58: case 58:
YY_RULE_SETUP YY_RULE_SETUP
#line 312 "util_expr_scan.l" #line 341 "util_expr_scan.l"
{ return T_OP_IN; } { return T_OP_IN; }
YY_BREAK YY_BREAK
case 59: case 59:
YY_RULE_SETUP YY_RULE_SETUP
#line 314 "util_expr_scan.l" #line 343 "util_expr_scan.l"
{ {
yylval->cpVal = apr_pstrdup(yyextra->pool, yytext + 1); yylval->cpVal = apr_pstrdup(yyextra->pool, yytext + 1);
return T_OP_UNARY; return T_OP_UNARY;
@@ -1413,7 +1443,7 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 60: case 60:
YY_RULE_SETUP YY_RULE_SETUP
#line 319 "util_expr_scan.l" #line 348 "util_expr_scan.l"
{ {
yylval->cpVal = apr_pstrdup(yyextra->pool, yytext + 1); yylval->cpVal = apr_pstrdup(yyextra->pool, yytext + 1);
return T_OP_BINARY; return T_OP_BINARY;
@@ -1424,12 +1454,12 @@ YY_RULE_SETUP
*/ */
case 61: case 61:
YY_RULE_SETUP YY_RULE_SETUP
#line 327 "util_expr_scan.l" #line 356 "util_expr_scan.l"
{ return T_TRUE; } { return T_TRUE; }
YY_BREAK YY_BREAK
case 62: case 62:
YY_RULE_SETUP YY_RULE_SETUP
#line 328 "util_expr_scan.l" #line 357 "util_expr_scan.l"
{ return T_FALSE; } { return T_FALSE; }
YY_BREAK YY_BREAK
/* /*
@@ -1437,7 +1467,7 @@ YY_RULE_SETUP
*/ */
case 63: case 63:
YY_RULE_SETUP YY_RULE_SETUP
#line 333 "util_expr_scan.l" #line 362 "util_expr_scan.l"
{ {
yylval->cpVal = apr_pstrdup(yyextra->pool, yytext); yylval->cpVal = apr_pstrdup(yyextra->pool, yytext);
return T_DIGIT; return T_DIGIT;
@@ -1448,7 +1478,7 @@ YY_RULE_SETUP
*/ */
case 64: case 64:
YY_RULE_SETUP YY_RULE_SETUP
#line 341 "util_expr_scan.l" #line 370 "util_expr_scan.l"
{ {
yylval->cpVal = apr_pstrdup(yyextra->pool, yytext); yylval->cpVal = apr_pstrdup(yyextra->pool, yytext);
return T_ID; return T_ID;
@@ -1459,7 +1489,7 @@ YY_RULE_SETUP
*/ */
case 65: case 65:
YY_RULE_SETUP YY_RULE_SETUP
#line 349 "util_expr_scan.l" #line 378 "util_expr_scan.l"
{ {
return yytext[0]; return yytext[0];
} }
@@ -1470,7 +1500,7 @@ YY_RULE_SETUP
case 66: case 66:
/* rule 66 can match eol */ /* rule 66 can match eol */
YY_RULE_SETUP YY_RULE_SETUP
#line 356 "util_expr_scan.l" #line 385 "util_expr_scan.l"
{ {
char *msg = apr_psprintf(yyextra->pool, "Parse error near '%c'", yytext[0]); char *msg = apr_psprintf(yyextra->pool, "Parse error near '%c'", yytext[0]);
PERROR(msg); PERROR(msg);
@@ -1478,10 +1508,10 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 67: case 67:
YY_RULE_SETUP YY_RULE_SETUP
#line 361 "util_expr_scan.l" #line 390 "util_expr_scan.l"
YY_FATAL_ERROR( "flex scanner jammed" ); YY_FATAL_ERROR( "flex scanner jammed" );
YY_BREAK YY_BREAK
#line 1485 "util_expr_scan.c" #line 1515 "util_expr_scan.c"
case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(regex): case YY_STATE_EOF(regex):
yyterminate(); yyterminate();
@@ -2623,7 +2653,7 @@ void ap_expr_yyfree (void * ptr , yyscan_t yyscanner)
#define YYTABLES_NAME "yytables" #define YYTABLES_NAME "yytables"
#line 361 "util_expr_scan.l" #line 390 "util_expr_scan.l"