From 4cd394061b68c955d399a996f879d04e927d1bdb Mon Sep 17 00:00:00 2001 From: Yann Ylavic Date: Wed, 4 Oct 2017 16:20:02 +0000 Subject: [PATCH] Follow up to rr1810605 and r1811104. Generated parser files. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1811105 13f79535-47bb-0310-9956-ffa450edef68 --- server/util_expr_parse.c | 709 ++++++++++++++++++++------------------- server/util_expr_parse.h | 15 +- server/util_expr_scan.c | 480 ++++++++++++-------------- 3 files changed, 583 insertions(+), 621 deletions(-) diff --git a/server/util_expr_parse.c b/server/util_expr_parse.c index 003bf94c21..17748e913f 100644 --- a/server/util_expr_parse.c +++ b/server/util_expr_parse.c @@ -124,7 +124,7 @@ extern int ap_expr_yydebug; T_REG_MATCH = 268, T_REG_SUBST = 269, T_REG_FLAGS = 270, - T_REG_REF = 271, + T_BACKREF = 271, T_OP_UNARY = 272, T_OP_BINARY = 273, T_STR_BEGIN = 274, @@ -149,11 +149,12 @@ extern int ap_expr_yydebug; T_OP_STR_GT = 293, T_OP_STR_GE = 294, T_OP_CONCAT = 295, - T_OP_SPLIT = 296, - T_OP_JOIN = 297, - T_OP_OR = 298, - T_OP_AND = 299, - T_OP_NOT = 300 + T_OP_JOIN = 296, + T_OP_SPLIT = 297, + T_OP_SUB = 298, + T_OP_OR = 299, + T_OP_AND = 300, + T_OP_NOT = 301 }; #endif @@ -170,7 +171,7 @@ typedef union YYSTYPE /* Line 387 of yacc.c */ -#line 174 "util_expr_parse.c" +#line 175 "util_expr_parse.c" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ @@ -196,7 +197,7 @@ int ap_expr_yyparse (); /* Copy the second part of user declarations. */ /* Line 390 of yacc.c */ -#line 116 "util_expr_parse.y" +#line 118 "util_expr_parse.y" #include "util_expr_private.h" #define yyscanner ctx->scanner @@ -204,7 +205,7 @@ int ap_expr_yyparse (); int ap_expr_yylex(YYSTYPE *lvalp, void *scanner); /* Line 390 of yacc.c */ -#line 208 "util_expr_parse.c" +#line 209 "util_expr_parse.c" #ifdef short # undef short @@ -431,22 +432,22 @@ union yyalloc #endif /* !YYCOPY_NEEDED */ /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 30 +#define YYFINAL 31 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 300 +#define YYLAST 277 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 66 +#define YYNTOKENS 69 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 17 +#define YYNNTS 18 /* YYNRULES -- Number of rules. */ -#define YYNRULES 68 +#define YYNRULES 71 /* YYNRULES -- Number of states. */ -#define YYNSTATES 139 +#define YYNSTATES 154 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 314 +#define YYMAXUTOK 317 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -458,15 +459,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, - 60, 61, 2, 2, 64, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 65, 2, + 63, 64, 2, 2, 68, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 67, 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, 62, 2, 63, 2, 2, 2, 2, + 2, 2, 2, 65, 2, 66, 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, @@ -485,62 +486,66 @@ static const yytype_uint8 yytranslate[] = 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59 + 55, 56, 57, 58, 59, 60, 61, 62 }; #if YYDEBUG /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in YYRHS. */ -static const yytype_uint8 yyprhs[] = +static const yytype_uint16 yyprhs[] = { - 0, 0, 3, 6, 9, 11, 13, 15, 18, 22, - 26, 28, 31, 35, 39, 41, 45, 49, 53, 57, - 61, 65, 69, 73, 77, 81, 85, 89, 93, 97, - 101, 103, 107, 111, 115, 119, 121, 125, 127, 130, - 132, 134, 136, 138, 142, 148, 152, 156, 158, 161, - 165, 169, 173, 175, 177, 179, 182, 187, 194, 198, - 202, 207, 212, 214, 216, 218, 220, 225, 230 + 0, 0, 3, 6, 9, 11, 13, 16, 18, 20, + 22, 25, 29, 33, 35, 38, 42, 46, 48, 52, + 56, 60, 64, 68, 72, 76, 80, 84, 88, 92, + 96, 100, 104, 108, 110, 113, 117, 121, 123, 125, + 127, 129, 133, 135, 137, 141, 145, 147, 149, 153, + 159, 163, 167, 169, 174, 179, 184, 189, 196, 199, + 204, 209, 216, 221, 228, 233, 240, 242, 246, 250, + 255, 257 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int8 yyrhs[] = { - 67, 0, -1, 5, 68, -1, 6, 72, -1, 7, - -1, 3, -1, 4, -1, 45, 68, -1, 68, 43, - 68, -1, 68, 44, 68, -1, 69, -1, 17, 75, - -1, 75, 18, 75, -1, 60, 68, 61, -1, 7, - -1, 75, 25, 75, -1, 75, 26, 75, -1, 75, - 27, 75, -1, 75, 28, 75, -1, 75, 29, 75, - -1, 75, 30, 75, -1, 75, 34, 75, -1, 75, - 35, 75, -1, 75, 36, 75, -1, 75, 37, 75, - -1, 75, 38, 75, -1, 75, 39, 75, -1, 75, - 33, 70, -1, 75, 31, 76, -1, 75, 32, 76, - -1, 81, -1, 75, 31, 78, -1, 70, 31, 79, - -1, 62, 71, 63, -1, 60, 70, 61, -1, 75, - -1, 75, 64, 71, -1, 73, -1, 72, 73, -1, - 7, -1, 10, -1, 74, -1, 80, -1, 21, 9, - 22, -1, 21, 9, 65, 72, 22, -1, 23, 75, - 24, -1, 23, 68, 24, -1, 8, -1, 19, 20, - -1, 19, 72, 20, -1, 75, 40, 75, -1, 75, - 31, 77, -1, 74, -1, 80, -1, 82, -1, 42, - 70, -1, 42, 70, 64, 75, -1, 42, 60, 70, - 64, 75, 61, -1, 60, 75, 61, -1, 11, 13, - 15, -1, 12, 13, 72, 15, -1, 41, 13, 72, - 15, -1, 76, -1, 77, -1, 78, -1, 16, -1, - 9, 60, 75, 61, -1, 9, 60, 75, 61, -1, - 9, 60, 71, 61, -1 + 70, 0, -1, 6, 71, -1, 5, 72, -1, 7, + -1, 76, -1, 71, 76, -1, 7, -1, 3, -1, + 4, -1, 46, 72, -1, 72, 44, 72, -1, 72, + 45, 72, -1, 73, -1, 17, 74, -1, 74, 18, + 74, -1, 63, 72, 64, -1, 7, -1, 74, 25, + 74, -1, 74, 26, 74, -1, 74, 27, 74, -1, + 74, 28, 74, -1, 74, 29, 74, -1, 74, 30, + 74, -1, 74, 34, 74, -1, 74, 35, 74, -1, + 74, 36, 74, -1, 74, 37, 74, -1, 74, 38, + 74, -1, 74, 39, 74, -1, 74, 31, 84, -1, + 74, 32, 84, -1, 74, 33, 75, -1, 8, -1, + 19, 20, -1, 19, 71, 20, -1, 74, 40, 74, + -1, 77, -1, 80, -1, 81, -1, 78, -1, 63, + 74, 64, -1, 82, -1, 79, -1, 65, 83, 66, + -1, 63, 75, 64, -1, 10, -1, 77, -1, 21, + 9, 22, -1, 21, 9, 67, 71, 22, -1, 23, + 72, 24, -1, 23, 74, 24, -1, 16, -1, 9, + 63, 74, 64, -1, 9, 63, 83, 64, -1, 9, + 63, 74, 64, -1, 43, 85, 68, 74, -1, 43, + 63, 85, 68, 74, 64, -1, 41, 75, -1, 41, + 63, 75, 64, -1, 41, 75, 68, 74, -1, 41, + 63, 75, 68, 74, 64, -1, 42, 86, 68, 75, + -1, 42, 63, 86, 68, 75, 64, -1, 42, 86, + 68, 74, -1, 42, 63, 86, 68, 74, 64, -1, + 74, -1, 74, 68, 83, -1, 11, 13, 15, -1, + 12, 13, 71, 15, -1, 84, -1, 85, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ -static const yytype_uint16 yyrline[] = +static const yytype_uint8 yyrline[] = { - 0, 126, 126, 127, 128, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 160, 161, 162, 163, 164, 167, 168, 171, 172, 173, - 176, 177, 178, 181, 182, 183, 184, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 198, 201, 204, 207, - 216, 225, 242, 243, 244, 247, 254, 258, 259 + 0, 128, 128, 129, 130, 133, 134, 135, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 178, 179, 180, 181, 184, 185, 188, 189, + 190, 191, 192, 195, 196, 199, 203, 204, 207, 208, + 209, 210, 213, 214, 215, 216, 219, 220, 223, 232, + 241, 242 }; #endif @@ -552,9 +557,9 @@ static const char *const yytname[] = "$end", "error", "$undefined", "\"true\"", "\"false\"", "\"boolean expression\"", "\"string expression\"", "\"error token\"", "\"number\"", "\"identifier\"", "\"string literal\"", - "\"matching regex\"", "\"substitution regex\"", - "\"pattern of the regex\"", "\"replacement of the regex\"", - "\"pattern flags of the regex\"", "\"capture reference in the regex\"", + "\"start of matching regex\"", "\"start of substitution regex\"", + "\"pattern of the regex\"", "\"substitution of the regex\"", + "\"pattern flags of the regex\"", "\"regex back reference\"", "\"unary operator\"", "\"binary operator\"", "\"start of string\"", "\"end of string\"", "\"start of variable name\"", "\"end of variable name\"", "\"start of variable expression\"", @@ -565,15 +570,16 @@ static const char *const yytname[] = "\"contained in\"", "\"string equal\"", "\"string not equal\"", "\"string less than\"", "\"string less or equal\"", "\"string greater than\"", "\"string greater or equal\"", - "\"string concatenation\"", "\"split operator\"", "\"join operator\"", - "\"logical or\"", "\"logical and\"", "\"logical not\"", "\"condition\"", - "\"comparison\"", "\"string function\"", "\"list function\"", - "\"list of words\"", "\"tuple of words\"", "\"word\"", "\"string\"", - "\"substring\"", "\"variable\"", "\"regex substitution\"", - "\"regex split\"", "\"regex any\"", "\"regex capture reference\"", "'('", - "')'", "'{'", "'}'", "','", "':'", "$accept", "root", "cond", "comp", - "wordlist", "words", "string", "substr", "var", "word", "regex", - "regsub", "regsplit", "regany", "regref", "lstfunc", "strfunc", YY_NULL + "\"string concatenation\"", "\"join operator\"", "\"split operator\"", + "\"substitute operator\"", "\"logical or\"", "\"logical and\"", + "\"logical not\"", "\"condition\"", "\"comparison\"", + "\"string function\"", "\"list function\"", "\"list\"", "\"words\"", + "\"word\"", "\"string\"", "\"substring\"", "\"variable\"", + "\"match regex\"", "\"substitution regex\"", "\"any regex\"", + "\"split\"", "\"join\"", "\"sub\"", "'('", "')'", "'{'", "'}'", "':'", + "','", "$accept", "expr", "string", "cond", "comp", "word", "list", + "substr", "var", "strfunc", "listfunc", "sub", "join", "split", "words", + "regex", "regsub", "regany", YY_NULL }; #endif @@ -588,32 +594,34 @@ static const yytype_uint16 yytoknum[] = 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 40, 41, 123, 125, 44, 58 + 315, 316, 317, 40, 41, 123, 125, 58, 44 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 66, 67, 67, 67, 68, 68, 68, 68, 68, - 68, 68, 68, 68, 68, 69, 69, 69, 69, 69, - 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, - 70, 70, 70, 70, 70, 71, 71, 72, 72, 72, - 73, 73, 73, 74, 74, 74, 74, 75, 75, 75, - 75, 75, 75, 75, 75, 75, 75, 75, 75, 76, - 77, 78, 79, 79, 79, 80, 81, 82, 82 + 0, 69, 70, 70, 70, 71, 71, 71, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 73, 73, + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, + 73, 73, 73, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 75, 75, 75, 75, 76, 76, 77, 77, + 77, 77, 77, 78, 78, 79, 80, 80, 81, 81, + 81, 81, 82, 82, 82, 82, 83, 83, 84, 85, + 86, 86 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ static const yytype_uint8 yyr2[] = { - 0, 2, 2, 2, 1, 1, 1, 2, 3, 3, - 1, 2, 3, 3, 1, 3, 3, 3, 3, 3, + 0, 2, 2, 2, 1, 1, 2, 1, 1, 1, + 2, 3, 3, 1, 2, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 1, 3, 3, 3, 3, 1, 3, 1, 2, 1, - 1, 1, 1, 3, 5, 3, 3, 1, 2, 3, - 3, 3, 1, 1, 1, 2, 4, 6, 3, 3, - 4, 4, 1, 1, 1, 1, 4, 4, 4 + 3, 3, 3, 1, 2, 3, 3, 1, 1, 1, + 1, 3, 1, 1, 3, 3, 1, 1, 3, 5, + 3, 3, 1, 4, 4, 4, 4, 6, 2, 4, + 4, 6, 4, 6, 4, 6, 1, 3, 3, 4, + 1, 1 }; /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. @@ -621,55 +629,59 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 0, 0, 0, 4, 0, 5, 6, 14, 47, 0, - 65, 0, 0, 0, 0, 0, 0, 0, 2, 10, - 52, 0, 53, 54, 39, 40, 3, 37, 41, 42, - 1, 0, 0, 11, 48, 0, 0, 0, 0, 0, - 0, 0, 55, 0, 30, 7, 0, 0, 0, 0, + 0, 0, 0, 4, 0, 8, 9, 17, 33, 0, + 52, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 13, 0, 37, 40, 38, 39, 7, 46, 2, 5, + 47, 1, 0, 0, 14, 34, 0, 0, 0, 0, + 0, 0, 0, 0, 58, 43, 42, 0, 0, 0, + 10, 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, 38, 0, 0, - 0, 0, 49, 43, 0, 46, 45, 0, 0, 0, - 0, 0, 35, 0, 0, 0, 13, 58, 8, 9, - 12, 15, 16, 17, 18, 19, 20, 0, 0, 28, - 51, 29, 27, 21, 22, 23, 24, 25, 26, 50, - 68, 67, 0, 0, 0, 0, 34, 0, 33, 0, - 62, 63, 64, 32, 56, 31, 0, 0, 36, 44, - 66, 0, 0, 59, 0, 57, 0, 60, 61 + 0, 0, 6, 0, 0, 0, 35, 48, 0, 50, + 51, 0, 0, 0, 70, 71, 0, 0, 0, 66, + 0, 0, 0, 0, 0, 16, 41, 11, 12, 15, + 18, 19, 20, 21, 22, 23, 30, 31, 32, 24, + 25, 26, 27, 28, 29, 36, 53, 0, 54, 0, + 0, 0, 0, 0, 0, 45, 0, 44, 60, 0, + 0, 56, 67, 49, 55, 68, 0, 0, 0, 64, + 62, 45, 0, 69, 0, 0, 0, 0, 61, 57, + 65, 63, 0, 53 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int8 yydefgoto[] = { - -1, 4, 18, 19, 42, 68, 26, 27, 20, 21, - 99, 100, 122, 123, 22, 44, 23 + -1, 4, 28, 19, 20, 21, 124, 29, 22, 23, + 45, 24, 25, 46, 74, 84, 85, 86 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -46 +#define YYPACT_NINF -51 static const yytype_int16 yypact[] = { - 257, 136, 277, -46, 29, -46, -46, -46, -46, -29, - -46, 164, 216, 39, 136, 7, 136, 136, 27, -46, - -46, 243, -46, -46, -46, -46, 276, -46, -46, -46, - -46, 164, 164, -22, -46, 100, -18, 75, 220, 8, - 142, 164, -9, 19, -46, -46, 0, 182, 136, 136, - 164, 164, 164, 164, 164, 164, 164, 83, 47, 142, - 164, 164, 164, 164, 164, 164, 164, -46, 21, 107, - 1, 48, -46, -46, 277, -46, -46, 164, 142, 32, - 66, 37, -19, 42, 164, -6, -46, -46, 27, 57, - -22, -22, -22, -22, -22, -22, -22, 91, 92, -46, - -46, -46, 77, -22, -22, -22, -22, -22, -22, -22, - -46, -46, 164, 154, 129, -24, -46, 164, -46, 101, - -46, -46, -46, -46, -22, -46, 109, 277, -46, -46, - -46, 67, 277, -46, 176, -46, 219, -46, -46 + 154, 126, 254, -51, 23, -51, -51, -51, -51, -38, + -51, 53, 161, 25, 126, 0, 5, 126, 126, 34, + -51, 220, -51, -51, -51, -51, -51, -51, 169, -51, + -51, -51, 53, 53, -4, -51, 10, 6, -5, 196, + 18, 4, 1, 53, -15, -51, -51, 73, 76, 32, + -51, 112, 173, 126, 126, 53, 53, 53, 53, 53, + 53, 53, 93, 93, 1, 53, 53, 53, 53, 53, + 53, 53, -51, -27, 43, 44, -51, -51, 254, -51, + -51, 53, 96, 81, -51, -51, 52, 1, -50, -16, + 51, 53, 254, 54, 53, -51, -51, 79, -51, -4, + -4, -4, -4, -4, -4, -4, -51, -51, -51, -4, + -4, -4, -4, -4, -4, -4, -51, 53, -51, 142, + 47, 111, 71, 132, 80, -51, 53, -51, -4, 253, + 53, -4, -51, -51, -51, -51, 132, 83, 132, -4, + -51, -51, 49, -51, 50, 57, 86, 53, -51, -51, + -51, -51, 35, -51 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int8 yypgoto[] = { - -46, -46, 3, -46, -32, -38, -10, -21, -2, 25, - -45, 46, 51, -46, -1, -46, -46 + -51, -51, -7, 84, -51, -11, -13, -24, -1, -51, + -51, -51, -51, -51, -35, 69, -10, 87 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -678,98 +690,94 @@ static const yytype_int8 yypgoto[] = #define YYTABLE_NINF -1 static const yytype_uint8 yytable[] = { - 28, 29, 35, 81, 73, 67, 98, 83, 79, 71, - 28, 29, 71, 101, 67, 8, 39, 37, 66, 45, - 46, 66, 83, 10, 28, 29, 12, 102, 13, 30, - 14, 31, 71, 28, 29, 119, 33, 116, 120, 38, - 43, 66, 47, 48, 49, 112, 115, 74, 36, 15, - 85, 88, 89, 97, 98, 84, 69, 70, 97, 66, - 98, 86, 87, 83, 113, 80, 82, 40, 77, 41, - 48, 49, 28, 29, 128, 90, 91, 92, 93, 94, - 95, 96, 110, 119, 43, 103, 104, 105, 106, 107, - 108, 109, 67, 116, 97, 98, 117, 85, 71, 75, - 118, 49, 114, 80, 126, 127, 66, 66, 83, 124, - 25, 28, 29, 67, 132, 67, 10, 134, 48, 49, - 72, 13, 136, 14, 133, 28, 29, 87, 135, 121, - 28, 29, 28, 29, 28, 29, 125, 82, 71, 5, - 6, 0, 131, 7, 8, 9, 0, 66, 0, 0, - 8, 39, 10, 11, 0, 12, 0, 13, 10, 14, - 71, 12, 0, 13, 25, 14, 0, 0, 111, 66, - 10, 112, 8, 9, 0, 13, 129, 14, 15, 0, - 10, 16, 0, 12, 15, 13, 25, 14, 0, 0, - 130, 137, 10, 112, 0, 0, 17, 13, 0, 14, - 50, 0, 78, 0, 41, 0, 15, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 24, 32, 0, 25, 0, 0, 25, - 0, 0, 10, 0, 138, 10, 34, 13, 50, 14, - 13, 0, 14, 87, 76, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 50, 1, 2, 3, 0, 0, 0, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 24, 0, 25, 25, 0, 0, - 0, 0, 10, 10, 0, 0, 0, 13, 13, 14, - 14 + 34, 30, 44, 39, 72, 36, 49, 52, 90, 40, + 40, 30, 72, 71, 125, 82, 47, 47, 126, 79, + 27, 73, 75, 31, 71, 32, 10, 30, 77, 88, + 76, 13, 89, 14, 37, 30, 71, 116, 93, 53, + 54, 117, 41, 41, 99, 100, 101, 102, 103, 104, + 105, 108, 117, 91, 109, 110, 111, 112, 113, 114, + 115, 8, 9, 42, 87, 43, 43, 83, 48, 10, + 120, 119, 12, 78, 13, 71, 14, 30, 53, 54, + 128, 81, 132, 131, 71, 129, 92, 71, 47, 71, + 71, 30, 82, 47, 15, 72, 16, 71, 38, 153, + 94, 50, 51, 117, 82, 72, 89, 118, 96, 121, + 140, 134, 139, 148, 149, 142, 33, 127, 30, 144, + 123, 150, 130, 146, 54, 145, 135, 75, 30, 5, + 6, 106, 107, 7, 8, 9, 152, 97, 98, 136, + 8, 137, 10, 11, 141, 12, 147, 13, 10, 14, + 151, 12, 27, 13, 0, 14, 53, 54, 10, 1, + 2, 3, 0, 13, 133, 14, 0, 15, 26, 16, + 122, 27, 17, 15, 41, 16, 95, 10, 0, 27, + 0, 35, 13, 0, 14, 10, 0, 0, 0, 18, + 13, 55, 14, 0, 0, 138, 0, 43, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 55, 0, 0, 0, 0, 0, + 80, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 96, 55, 0, + 0, 0, 0, 0, 0, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 26, 0, 27, 27, 0, 0, 0, 143, 10, + 10, 0, 0, 0, 13, 13, 14, 14 }; #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-46))) + (!!((Yystate) == (-51))) #define yytable_value_is_error(Yytable_value) \ YYID (0) static const yytype_int16 yycheck[] = { - 2, 2, 12, 41, 22, 26, 12, 31, 40, 31, - 12, 12, 31, 58, 35, 8, 9, 14, 40, 16, - 17, 40, 31, 16, 26, 26, 19, 59, 21, 0, - 23, 60, 31, 35, 35, 41, 11, 61, 83, 14, - 15, 40, 17, 43, 44, 64, 78, 65, 9, 42, - 31, 48, 49, 11, 12, 64, 31, 32, 11, 40, - 12, 61, 61, 31, 74, 40, 41, 60, 60, 62, - 43, 44, 74, 74, 112, 50, 51, 52, 53, 54, - 55, 56, 61, 41, 59, 60, 61, 62, 63, 64, - 65, 66, 113, 61, 11, 12, 64, 31, 31, 24, - 63, 44, 77, 78, 13, 13, 40, 40, 31, 84, - 10, 113, 113, 134, 13, 136, 16, 127, 43, 44, - 20, 21, 132, 23, 15, 127, 127, 61, 61, 83, - 132, 132, 134, 134, 136, 136, 85, 112, 31, 3, - 4, -1, 117, 7, 8, 9, -1, 40, -1, -1, - 8, 9, 16, 17, -1, 19, -1, 21, 16, 23, - 31, 19, -1, 21, 10, 23, -1, -1, 61, 40, - 16, 64, 8, 9, -1, 21, 22, 23, 42, -1, - 16, 45, -1, 19, 42, 21, 10, 23, -1, -1, - 61, 15, 16, 64, -1, -1, 60, 21, -1, 23, - 18, -1, 60, -1, 62, -1, 42, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 7, 60, -1, 10, -1, -1, 10, - -1, -1, 16, -1, 15, 16, 20, 21, 18, 23, - 21, -1, 23, 61, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 18, 5, 6, 7, -1, -1, -1, 25, 26, + 11, 2, 15, 14, 28, 12, 16, 18, 43, 9, + 9, 12, 36, 40, 64, 11, 12, 12, 68, 24, + 10, 32, 33, 0, 40, 63, 16, 28, 22, 42, + 20, 21, 43, 23, 9, 36, 40, 64, 48, 44, + 45, 68, 42, 42, 55, 56, 57, 58, 59, 60, + 61, 64, 68, 68, 65, 66, 67, 68, 69, 70, + 71, 8, 9, 63, 63, 65, 65, 63, 63, 16, + 81, 78, 19, 67, 21, 40, 23, 78, 44, 45, + 91, 63, 117, 94, 40, 92, 13, 40, 12, 40, + 40, 92, 11, 12, 41, 119, 43, 40, 14, 64, + 68, 17, 18, 68, 11, 129, 117, 64, 64, 13, + 123, 64, 123, 64, 64, 126, 63, 66, 119, 130, + 68, 64, 68, 136, 45, 136, 15, 138, 129, 3, + 4, 62, 63, 7, 8, 9, 147, 53, 54, 68, + 8, 9, 16, 17, 64, 19, 63, 21, 16, 23, + 64, 19, 10, 21, -1, 23, 44, 45, 16, 5, + 6, 7, -1, 21, 22, 23, -1, 41, 7, 43, + 83, 10, 46, 41, 42, 43, 64, 16, -1, 10, + -1, 20, 21, -1, 23, 16, -1, -1, -1, 63, + 21, 18, 23, -1, -1, 63, -1, 65, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 7, -1, 10, 10, -1, -1, - -1, -1, 16, 16, -1, -1, -1, 21, 21, 23, - 23 + 37, 38, 39, 40, 18, -1, -1, -1, -1, -1, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 64, 18, -1, + -1, -1, -1, -1, -1, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 7, -1, 10, 10, -1, -1, -1, 15, 16, + 16, -1, -1, -1, 21, 21, 23, 23 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 5, 6, 7, 67, 3, 4, 7, 8, 9, - 16, 17, 19, 21, 23, 42, 45, 60, 68, 69, - 74, 75, 80, 82, 7, 10, 72, 73, 74, 80, - 0, 60, 60, 75, 20, 72, 9, 68, 75, 9, - 60, 62, 70, 75, 81, 68, 68, 75, 43, 44, - 18, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 73, 71, 75, - 75, 31, 20, 22, 65, 24, 24, 60, 60, 70, - 75, 71, 75, 31, 64, 31, 61, 61, 68, 68, - 75, 75, 75, 75, 75, 75, 75, 11, 12, 76, - 77, 76, 70, 75, 75, 75, 75, 75, 75, 75, - 61, 61, 64, 72, 75, 70, 61, 64, 63, 41, - 76, 77, 78, 79, 75, 78, 13, 13, 71, 22, - 61, 75, 13, 15, 72, 61, 72, 15, 15 + 0, 5, 6, 7, 70, 3, 4, 7, 8, 9, + 16, 17, 19, 21, 23, 41, 43, 46, 63, 72, + 73, 74, 77, 78, 80, 81, 7, 10, 71, 76, + 77, 0, 63, 63, 74, 20, 71, 9, 72, 74, + 9, 42, 63, 65, 75, 79, 82, 12, 63, 85, + 72, 72, 74, 44, 45, 18, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 76, 74, 83, 74, 20, 22, 67, 24, + 24, 63, 11, 63, 84, 85, 86, 63, 75, 74, + 83, 68, 13, 85, 68, 64, 64, 72, 72, 74, + 74, 74, 74, 74, 74, 74, 84, 84, 75, 74, + 74, 74, 74, 74, 74, 74, 64, 68, 64, 71, + 74, 13, 86, 68, 75, 64, 68, 66, 74, 71, + 68, 74, 83, 22, 64, 15, 68, 9, 63, 74, + 75, 64, 74, 15, 74, 74, 75, 63, 64, 64, + 64, 64, 74, 64 }; #define yyerrok (yyerrstatus = 0) @@ -1581,212 +1589,212 @@ yyreduce: { case 2: /* Line 1787 of yacc.c */ -#line 126 "util_expr_parse.y" +#line 128 "util_expr_parse.y" { ctx->expr = (yyvsp[(2) - (2)].exVal); } break; case 3: /* Line 1787 of yacc.c */ -#line 127 "util_expr_parse.y" +#line 129 "util_expr_parse.y" { ctx->expr = (yyvsp[(2) - (2)].exVal); } break; case 4: /* Line 1787 of yacc.c */ -#line 128 "util_expr_parse.y" +#line 130 "util_expr_parse.y" { YYABORT; } break; case 5: /* Line 1787 of yacc.c */ -#line 131 "util_expr_parse.y" - { (yyval.exVal) = ap_expr_make(op_True, NULL, NULL, ctx); } +#line 133 "util_expr_parse.y" + { (yyval.exVal) = (yyvsp[(1) - (1)].exVal); } break; case 6: /* Line 1787 of yacc.c */ -#line 132 "util_expr_parse.y" - { (yyval.exVal) = ap_expr_make(op_False, NULL, NULL, ctx); } +#line 134 "util_expr_parse.y" + { (yyval.exVal) = ap_expr_concat_make((yyvsp[(1) - (2)].exVal), (yyvsp[(2) - (2)].exVal), ctx); } break; case 7: /* Line 1787 of yacc.c */ -#line 133 "util_expr_parse.y" - { (yyval.exVal) = ap_expr_make(op_Not, (yyvsp[(2) - (2)].exVal), NULL, ctx); } +#line 135 "util_expr_parse.y" + { YYABORT; } break; case 8: /* Line 1787 of yacc.c */ -#line 134 "util_expr_parse.y" - { (yyval.exVal) = ap_expr_make(op_Or, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); } +#line 138 "util_expr_parse.y" + { (yyval.exVal) = ap_expr_make(op_True, NULL, NULL, ctx); } break; case 9: /* Line 1787 of yacc.c */ -#line 135 "util_expr_parse.y" - { (yyval.exVal) = ap_expr_make(op_And, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); } +#line 139 "util_expr_parse.y" + { (yyval.exVal) = ap_expr_make(op_False, NULL, NULL, ctx); } break; case 10: /* Line 1787 of yacc.c */ -#line 136 "util_expr_parse.y" - { (yyval.exVal) = ap_expr_make(op_Comp, (yyvsp[(1) - (1)].exVal), NULL, ctx); } +#line 140 "util_expr_parse.y" + { (yyval.exVal) = ap_expr_make(op_Not, (yyvsp[(2) - (2)].exVal), NULL, ctx); } break; case 11: /* Line 1787 of yacc.c */ -#line 137 "util_expr_parse.y" - { (yyval.exVal) = ap_expr_unary_op_make( (yyvsp[(1) - (2)].cpVal), (yyvsp[(2) - (2)].exVal), ctx); } +#line 141 "util_expr_parse.y" + { (yyval.exVal) = ap_expr_make(op_Or, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); } break; case 12: /* Line 1787 of yacc.c */ -#line 138 "util_expr_parse.y" - { (yyval.exVal) = ap_expr_binary_op_make((yyvsp[(2) - (3)].cpVal), (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); } +#line 142 "util_expr_parse.y" + { (yyval.exVal) = ap_expr_make(op_And, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); } break; case 13: /* Line 1787 of yacc.c */ -#line 139 "util_expr_parse.y" - { (yyval.exVal) = (yyvsp[(2) - (3)].exVal); } +#line 143 "util_expr_parse.y" + { (yyval.exVal) = ap_expr_make(op_Comp, (yyvsp[(1) - (1)].exVal), NULL, ctx); } break; case 14: /* Line 1787 of yacc.c */ -#line 140 "util_expr_parse.y" - { YYABORT; } +#line 144 "util_expr_parse.y" + { (yyval.exVal) = ap_expr_unary_op_make( (yyvsp[(1) - (2)].cpVal), (yyvsp[(2) - (2)].exVal), ctx); } break; case 15: /* Line 1787 of yacc.c */ -#line 143 "util_expr_parse.y" - { (yyval.exVal) = ap_expr_make(op_EQ, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); } +#line 145 "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 16: /* Line 1787 of yacc.c */ -#line 144 "util_expr_parse.y" - { (yyval.exVal) = ap_expr_make(op_NE, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); } +#line 146 "util_expr_parse.y" + { (yyval.exVal) = (yyvsp[(2) - (3)].exVal); } break; case 17: /* Line 1787 of yacc.c */ -#line 145 "util_expr_parse.y" - { (yyval.exVal) = ap_expr_make(op_LT, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); } +#line 147 "util_expr_parse.y" + { YYABORT; } break; case 18: /* Line 1787 of yacc.c */ -#line 146 "util_expr_parse.y" - { (yyval.exVal) = ap_expr_make(op_LE, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); } +#line 150 "util_expr_parse.y" + { (yyval.exVal) = ap_expr_make(op_EQ, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); } break; case 19: /* Line 1787 of yacc.c */ -#line 147 "util_expr_parse.y" - { (yyval.exVal) = ap_expr_make(op_GT, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); } +#line 151 "util_expr_parse.y" + { (yyval.exVal) = ap_expr_make(op_NE, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); } break; case 20: /* Line 1787 of yacc.c */ -#line 148 "util_expr_parse.y" - { (yyval.exVal) = ap_expr_make(op_GE, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); } +#line 152 "util_expr_parse.y" + { (yyval.exVal) = ap_expr_make(op_LT, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); } break; case 21: /* Line 1787 of yacc.c */ -#line 149 "util_expr_parse.y" - { (yyval.exVal) = ap_expr_make(op_STR_EQ, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); } +#line 153 "util_expr_parse.y" + { (yyval.exVal) = ap_expr_make(op_LE, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); } break; case 22: /* Line 1787 of yacc.c */ -#line 150 "util_expr_parse.y" - { (yyval.exVal) = ap_expr_make(op_STR_NE, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); } +#line 154 "util_expr_parse.y" + { (yyval.exVal) = ap_expr_make(op_GT, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); } break; case 23: /* Line 1787 of yacc.c */ -#line 151 "util_expr_parse.y" - { (yyval.exVal) = ap_expr_make(op_STR_LT, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); } +#line 155 "util_expr_parse.y" + { (yyval.exVal) = ap_expr_make(op_GE, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); } break; case 24: /* Line 1787 of yacc.c */ -#line 152 "util_expr_parse.y" - { (yyval.exVal) = ap_expr_make(op_STR_LE, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); } +#line 156 "util_expr_parse.y" + { (yyval.exVal) = ap_expr_make(op_STR_EQ, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); } break; case 25: /* Line 1787 of yacc.c */ -#line 153 "util_expr_parse.y" - { (yyval.exVal) = ap_expr_make(op_STR_GT, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); } +#line 157 "util_expr_parse.y" + { (yyval.exVal) = ap_expr_make(op_STR_NE, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); } break; case 26: /* Line 1787 of yacc.c */ -#line 154 "util_expr_parse.y" - { (yyval.exVal) = ap_expr_make(op_STR_GE, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); } +#line 158 "util_expr_parse.y" + { (yyval.exVal) = ap_expr_make(op_STR_LT, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); } break; case 27: /* Line 1787 of yacc.c */ -#line 155 "util_expr_parse.y" - { (yyval.exVal) = ap_expr_make(op_IN, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); } +#line 159 "util_expr_parse.y" + { (yyval.exVal) = ap_expr_make(op_STR_LE, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); } break; case 28: /* Line 1787 of yacc.c */ -#line 156 "util_expr_parse.y" - { (yyval.exVal) = ap_expr_make(op_REG, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); } +#line 160 "util_expr_parse.y" + { (yyval.exVal) = ap_expr_make(op_STR_GT, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); } break; case 29: /* Line 1787 of yacc.c */ -#line 157 "util_expr_parse.y" - { (yyval.exVal) = ap_expr_make(op_NRE, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); } +#line 161 "util_expr_parse.y" + { (yyval.exVal) = ap_expr_make(op_STR_GE, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); } break; case 30: /* Line 1787 of yacc.c */ -#line 160 "util_expr_parse.y" - { (yyval.exVal) = (yyvsp[(1) - (1)].exVal); } +#line 162 "util_expr_parse.y" + { (yyval.exVal) = ap_expr_make(op_REG, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); } break; case 31: /* Line 1787 of yacc.c */ -#line 161 "util_expr_parse.y" - { (yyval.exVal) = ap_expr_list_regex_make((yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); } +#line 163 "util_expr_parse.y" + { (yyval.exVal) = ap_expr_make(op_NRE, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); } break; case 32: /* Line 1787 of yacc.c */ -#line 162 "util_expr_parse.y" - { (yyval.exVal) = ap_expr_list_regex_make((yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); } +#line 164 "util_expr_parse.y" + { (yyval.exVal) = ap_expr_make(op_IN, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); } break; case 33: /* Line 1787 of yacc.c */ -#line 163 "util_expr_parse.y" - { (yyval.exVal) = (yyvsp[(2) - (3)].exVal); } +#line 167 "util_expr_parse.y" + { (yyval.exVal) = ap_expr_make(op_Digit, (yyvsp[(1) - (1)].cpVal), NULL, ctx); } break; case 34: /* Line 1787 of yacc.c */ -#line 164 "util_expr_parse.y" - { (yyval.exVal) = (yyvsp[(2) - (3)].exVal); } +#line 168 "util_expr_parse.y" + { (yyval.exVal) = ap_expr_make(op_String, "", NULL, ctx); } break; case 35: /* Line 1787 of yacc.c */ -#line 167 "util_expr_parse.y" - { (yyval.exVal) = ap_expr_make(op_ListElement, (yyvsp[(1) - (1)].exVal), NULL, ctx); } +#line 169 "util_expr_parse.y" + { (yyval.exVal) = (yyvsp[(2) - (3)].exVal); } break; case 36: /* Line 1787 of yacc.c */ -#line 168 "util_expr_parse.y" - { (yyval.exVal) = ap_expr_make(op_ListElement, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); } +#line 170 "util_expr_parse.y" + { (yyval.exVal) = ap_expr_make(op_Concat, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); } break; case 37: @@ -1798,25 +1806,25 @@ yyreduce: case 38: /* Line 1787 of yacc.c */ #line 172 "util_expr_parse.y" - { (yyval.exVal) = ap_expr_concat_make((yyvsp[(1) - (2)].exVal), (yyvsp[(2) - (2)].exVal), ctx); } + { (yyval.exVal) = (yyvsp[(1) - (1)].exVal); } break; case 39: /* Line 1787 of yacc.c */ #line 173 "util_expr_parse.y" - { YYABORT; } + { (yyval.exVal) = (yyvsp[(1) - (1)].exVal); } break; case 40: /* Line 1787 of yacc.c */ -#line 176 "util_expr_parse.y" - { (yyval.exVal) = ap_expr_make(op_String, (yyvsp[(1) - (1)].cpVal), NULL, ctx); } +#line 174 "util_expr_parse.y" + { (yyval.exVal) = (yyvsp[(1) - (1)].exVal); } break; case 41: /* Line 1787 of yacc.c */ -#line 177 "util_expr_parse.y" - { (yyval.exVal) = (yyvsp[(1) - (1)].exVal); } +#line 175 "util_expr_parse.y" + { (yyval.exVal) = (yyvsp[(2) - (3)].exVal); } break; case 42: @@ -1827,202 +1835,195 @@ yyreduce: case 43: /* Line 1787 of yacc.c */ -#line 181 "util_expr_parse.y" - { (yyval.exVal) = ap_expr_var_make((yyvsp[(2) - (3)].cpVal), ctx); } +#line 179 "util_expr_parse.y" + { (yyval.exVal) = (yyvsp[(1) - (1)].exVal); } break; case 44: /* Line 1787 of yacc.c */ -#line 182 "util_expr_parse.y" - { (yyval.exVal) = ap_expr_str_func_make((yyvsp[(2) - (5)].cpVal), (yyvsp[(4) - (5)].exVal), ctx); } +#line 180 "util_expr_parse.y" + { (yyval.exVal) = (yyvsp[(2) - (3)].exVal); } break; case 45: /* Line 1787 of yacc.c */ -#line 183 "util_expr_parse.y" - { (yyval.exVal) = ap_expr_str_word_make((yyvsp[(2) - (3)].exVal), ctx); } +#line 181 "util_expr_parse.y" + { (yyval.exVal) = (yyvsp[(2) - (3)].exVal); } break; case 46: /* Line 1787 of yacc.c */ #line 184 "util_expr_parse.y" - { (yyval.exVal) = ap_expr_str_bool_make((yyvsp[(2) - (3)].exVal), ctx); } + { (yyval.exVal) = ap_expr_make(op_String, (yyvsp[(1) - (1)].cpVal), NULL, ctx); } break; case 47: /* Line 1787 of yacc.c */ -#line 187 "util_expr_parse.y" - { (yyval.exVal) = ap_expr_make(op_Digit, (yyvsp[(1) - (1)].cpVal), NULL, ctx); } +#line 185 "util_expr_parse.y" + { (yyval.exVal) = (yyvsp[(1) - (1)].exVal); } break; case 48: /* Line 1787 of yacc.c */ #line 188 "util_expr_parse.y" - { (yyval.exVal) = ap_expr_make(op_String, "", NULL, ctx); } + { (yyval.exVal) = ap_expr_var_make((yyvsp[(2) - (3)].cpVal), ctx); } break; case 49: /* Line 1787 of yacc.c */ #line 189 "util_expr_parse.y" - { (yyval.exVal) = (yyvsp[(2) - (3)].exVal); } + { (yyval.exVal) = ap_expr_str_func_make((yyvsp[(2) - (5)].cpVal), (yyvsp[(4) - (5)].exVal), ctx); } break; case 50: /* Line 1787 of yacc.c */ #line 190 "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_Bool, (yyvsp[(2) - (3)].exVal), NULL, ctx); } break; case 51: /* Line 1787 of yacc.c */ #line 191 "util_expr_parse.y" - { (yyval.exVal) = ap_expr_make(op_Regsub, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); } + { (yyval.exVal) = ap_expr_make(op_Word, (yyvsp[(2) - (3)].exVal), NULL, ctx); } break; case 52: /* Line 1787 of yacc.c */ #line 192 "util_expr_parse.y" - { (yyval.exVal) = (yyvsp[(1) - (1)].exVal); } + { (yyval.exVal) = ap_expr_backref_make((yyvsp[(1) - (1)].num), ctx); } break; case 53: /* Line 1787 of yacc.c */ -#line 193 "util_expr_parse.y" - { (yyval.exVal) = (yyvsp[(1) - (1)].exVal); } +#line 195 "util_expr_parse.y" + { (yyval.exVal) = ap_expr_str_func_make((yyvsp[(1) - (4)].cpVal), (yyvsp[(3) - (4)].exVal), ctx); } break; case 54: /* Line 1787 of yacc.c */ -#line 194 "util_expr_parse.y" - { (yyval.exVal) = (yyvsp[(1) - (1)].exVal); } +#line 196 "util_expr_parse.y" + { (yyval.exVal) = ap_expr_str_func_make((yyvsp[(1) - (4)].cpVal), (yyvsp[(3) - (4)].exVal), ctx); } break; case 55: /* Line 1787 of yacc.c */ -#line 195 "util_expr_parse.y" - { - (yyval.exVal) = ap_expr_make(op_Join, (yyvsp[(2) - (2)].exVal), NULL, ctx); - } +#line 199 "util_expr_parse.y" + { (yyval.exVal) = ap_expr_list_func_make((yyvsp[(1) - (4)].cpVal), (yyvsp[(3) - (4)].exVal), ctx); } break; case 56: /* Line 1787 of yacc.c */ -#line 198 "util_expr_parse.y" - { - (yyval.exVal) = ap_expr_make(op_Join, (yyvsp[(2) - (4)].exVal), (yyvsp[(4) - (4)].exVal), ctx); - } +#line 203 "util_expr_parse.y" + { (yyval.exVal) = ap_expr_make(op_Sub, (yyvsp[(4) - (4)].exVal), (yyvsp[(2) - (4)].exVal), ctx); } break; case 57: /* Line 1787 of yacc.c */ -#line 201 "util_expr_parse.y" - { - (yyval.exVal) = ap_expr_make(op_Join, (yyvsp[(3) - (6)].exVal), (yyvsp[(5) - (6)].exVal), ctx); - } +#line 204 "util_expr_parse.y" + { (yyval.exVal) = ap_expr_make(op_Sub, (yyvsp[(5) - (6)].exVal), (yyvsp[(3) - (6)].exVal), ctx); } break; case 58: /* Line 1787 of yacc.c */ -#line 204 "util_expr_parse.y" - { (yyval.exVal) = (yyvsp[(2) - (3)].exVal); } +#line 207 "util_expr_parse.y" + { (yyval.exVal) = ap_expr_make(op_Join, (yyvsp[(2) - (2)].exVal), NULL, ctx); } break; case 59: /* Line 1787 of yacc.c */ -#line 207 "util_expr_parse.y" - { - ap_expr_t *e = ap_expr_regex_make((yyvsp[(2) - (3)].cpVal), (yyvsp[(3) - (3)].cpVal), NULL, 0, ctx); - if (!e) { - ctx->error = "Failed to compile regular expression"; - YYERROR; - } - (yyval.exVal) = e; - } +#line 208 "util_expr_parse.y" + { (yyval.exVal) = ap_expr_make(op_Join, (yyvsp[(3) - (4)].exVal), NULL, ctx); } break; case 60: /* Line 1787 of yacc.c */ -#line 216 "util_expr_parse.y" - { - ap_expr_t *e = ap_expr_regex_make((yyvsp[(2) - (4)].cpVal), (yyvsp[(4) - (4)].cpVal), (yyvsp[(3) - (4)].exVal), 0, ctx); - if (!e) { - ctx->error = "Failed to compile regular expression"; - YYERROR; - } - (yyval.exVal) = e; - } +#line 209 "util_expr_parse.y" + { (yyval.exVal) = ap_expr_make(op_Join, (yyvsp[(2) - (4)].exVal), (yyvsp[(4) - (4)].exVal), ctx); } break; case 61: /* Line 1787 of yacc.c */ -#line 225 "util_expr_parse.y" - { - /* Returns a list: - * ~= split/:// - * => split around ':', replace it with empty - * ~= split/:/\n/ - * => split around ':', replace it with '\n' - * ~= split/.*?Ip Address:([^,]+)/$1/ - * => split around the whole match, replace it with $1 - */ - ap_expr_t *e = ap_expr_regex_make((yyvsp[(2) - (4)].cpVal), (yyvsp[(4) - (4)].cpVal), (yyvsp[(3) - (4)].exVal), 1, ctx); - if (!e) { - ctx->error = "Failed to compile regular expression"; - YYERROR; - } - (yyval.exVal) = e; - } +#line 210 "util_expr_parse.y" + { (yyval.exVal) = ap_expr_make(op_Join, (yyvsp[(3) - (6)].exVal), (yyvsp[(5) - (6)].exVal), ctx); } break; case 62: /* Line 1787 of yacc.c */ -#line 242 "util_expr_parse.y" - { (yyval.exVal) = (yyvsp[(1) - (1)].exVal); } +#line 213 "util_expr_parse.y" + { (yyval.exVal) = ap_expr_make(op_Split, (yyvsp[(4) - (4)].exVal), (yyvsp[(2) - (4)].exVal), ctx); } break; case 63: /* Line 1787 of yacc.c */ -#line 243 "util_expr_parse.y" - { (yyval.exVal) = (yyvsp[(1) - (1)].exVal); } +#line 214 "util_expr_parse.y" + { (yyval.exVal) = ap_expr_make(op_Split, (yyvsp[(5) - (6)].exVal), (yyvsp[(3) - (6)].exVal), ctx); } break; case 64: /* Line 1787 of yacc.c */ -#line 244 "util_expr_parse.y" - { (yyval.exVal) = (yyvsp[(1) - (1)].exVal); } +#line 215 "util_expr_parse.y" + { (yyval.exVal) = ap_expr_make(op_Split, (yyvsp[(4) - (4)].exVal), (yyvsp[(2) - (4)].exVal), ctx); } break; case 65: /* Line 1787 of yacc.c */ -#line 247 "util_expr_parse.y" - { - int *n = apr_palloc(ctx->pool, sizeof(int)); - *n = (yyvsp[(1) - (1)].num); - (yyval.exVal) = ap_expr_make(op_Regref, n, NULL, ctx); - } +#line 216 "util_expr_parse.y" + { (yyval.exVal) = ap_expr_make(op_Split, (yyvsp[(5) - (6)].exVal), (yyvsp[(3) - (6)].exVal), ctx); } break; case 66: /* Line 1787 of yacc.c */ -#line 254 "util_expr_parse.y" - { (yyval.exVal) = ap_expr_list_func_make((yyvsp[(1) - (4)].cpVal), (yyvsp[(3) - (4)].exVal), ctx); } +#line 219 "util_expr_parse.y" + { (yyval.exVal) = ap_expr_make(op_ListElement, (yyvsp[(1) - (1)].exVal), NULL, ctx); } break; case 67: /* Line 1787 of yacc.c */ -#line 258 "util_expr_parse.y" - { (yyval.exVal) = ap_expr_str_func_make((yyvsp[(1) - (4)].cpVal), (yyvsp[(3) - (4)].exVal), ctx); } +#line 220 "util_expr_parse.y" + { (yyval.exVal) = ap_expr_make(op_ListElement, (yyvsp[(1) - (3)].exVal), (yyvsp[(3) - (3)].exVal), ctx); } break; case 68: /* Line 1787 of yacc.c */ -#line 259 "util_expr_parse.y" - { (yyval.exVal) = ap_expr_str_func_make((yyvsp[(1) - (4)].cpVal), (yyvsp[(3) - (4)].exVal), ctx); } +#line 223 "util_expr_parse.y" + { + ap_expr_t *e = ap_expr_regex_make((yyvsp[(2) - (3)].cpVal), NULL, (yyvsp[(3) - (3)].cpVal), ctx); + if (!e) { + ctx->error = "Failed to compile regular expression"; + YYERROR; + } + (yyval.exVal) = e; + } + break; + + case 69: +/* Line 1787 of yacc.c */ +#line 232 "util_expr_parse.y" + { + ap_expr_t *e = ap_expr_regex_make((yyvsp[(2) - (4)].cpVal), (yyvsp[(3) - (4)].exVal), (yyvsp[(4) - (4)].cpVal), ctx); + if (!e) { + ctx->error = "Failed to compile regular expression"; + YYERROR; + } + (yyval.exVal) = e; + } + break; + + case 70: +/* Line 1787 of yacc.c */ +#line 241 "util_expr_parse.y" + { (yyval.exVal) = (yyvsp[(1) - (1)].exVal); } + break; + + case 71: +/* Line 1787 of yacc.c */ +#line 242 "util_expr_parse.y" + { (yyval.exVal) = (yyvsp[(1) - (1)].exVal); } break; /* Line 1787 of yacc.c */ -#line 2026 "util_expr_parse.c" +#line 2027 "util_expr_parse.c" default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -2254,7 +2255,7 @@ yyreturn: /* Line 2050 of yacc.c */ -#line 262 "util_expr_parse.y" +#line 245 "util_expr_parse.y" void yyerror(ap_expr_parse_ctx_t *ctx, const char *s) diff --git a/server/util_expr_parse.h b/server/util_expr_parse.h index 3f9ee26377..396e9ecb48 100644 --- a/server/util_expr_parse.h +++ b/server/util_expr_parse.h @@ -59,7 +59,7 @@ extern int ap_expr_yydebug; T_REG_MATCH = 268, T_REG_SUBST = 269, T_REG_FLAGS = 270, - T_REG_REF = 271, + T_BACKREF = 271, T_OP_UNARY = 272, T_OP_BINARY = 273, T_STR_BEGIN = 274, @@ -84,11 +84,12 @@ extern int ap_expr_yydebug; T_OP_STR_GT = 293, T_OP_STR_GE = 294, T_OP_CONCAT = 295, - T_OP_SPLIT = 296, - T_OP_JOIN = 297, - T_OP_OR = 298, - T_OP_AND = 299, - T_OP_NOT = 300 + T_OP_JOIN = 296, + T_OP_SPLIT = 297, + T_OP_SUB = 298, + T_OP_OR = 299, + T_OP_AND = 300, + T_OP_NOT = 301 }; #endif @@ -105,7 +106,7 @@ typedef union YYSTYPE /* Line 2053 of yacc.c */ -#line 109 "util_expr_parse.h" +#line 110 "util_expr_parse.h" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ diff --git a/server/util_expr_scan.c b/server/util_expr_scan.c index fdb9da7aa2..fc13bcbe6d 100644 --- a/server/util_expr_scan.c +++ b/server/util_expr_scan.c @@ -347,8 +347,8 @@ static void yynoreturn yy_fatal_error (yyconst char* msg ,yyscan_t yyscanner ); *yy_cp = '\0'; \ yyg->yy_c_buf_p = yy_cp; -#define YY_NUM_RULES 74 -#define YY_END_OF_BUFFER 75 +#define YY_NUM_RULES 73 +#define YY_END_OF_BUFFER 74 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -356,25 +356,25 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[157] = +static yyconst flex_int16_t yy_accept[155] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 75, 73, - 15, 14, 1, 15, 15, 15, 16, 46, 17, 73, - 73, 73, 72, 73, 47, 27, 70, 73, 35, 33, - 37, 71, 71, 71, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 71, 73, 26, 22, 21, 25, 24, - 14, 24, 24, 24, 23, 66, 65, 29, 30, 14, - 30, 30, 30, 31, 2, 3, 13, 6, 6, 5, - 11, 12, 8, 9, 10, 13, 16, 34, 40, 32, - 20, 42, 70, 63, 63, 63, 63, 63, 63, 19, - - 36, 33, 39, 38, 71, 71, 60, 71, 58, 57, - 61, 71, 56, 55, 28, 28, 59, 71, 43, 71, - 71, 44, 21, 4, 6, 6, 0, 5, 7, 18, - 62, 49, 51, 53, 48, 52, 54, 50, 41, 71, - 71, 45, 71, 71, 6, 5, 5, 5, 7, 71, - 67, 71, 68, 69, 64, 0 + 0, 0, 0, 0, 0, 0, 74, 72, 15, 14, + 1, 15, 15, 15, 16, 46, 17, 72, 72, 72, + 71, 72, 47, 27, 69, 72, 35, 33, 37, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 72, 26, 22, 21, 25, 24, 14, 24, + 24, 24, 23, 29, 30, 14, 30, 30, 30, 31, + 2, 3, 13, 6, 6, 5, 11, 12, 8, 9, + 10, 13, 16, 34, 40, 32, 20, 42, 69, 63, + 63, 63, 63, 63, 63, 19, 36, 33, 39, 38, + + 70, 70, 60, 70, 58, 57, 61, 70, 56, 55, + 28, 28, 59, 70, 43, 70, 70, 70, 44, 21, + 4, 6, 6, 0, 5, 7, 18, 62, 49, 51, + 53, 48, 52, 54, 50, 41, 70, 70, 45, 70, + 64, 70, 6, 5, 5, 5, 7, 70, 65, 70, + 67, 68, 66, 0 } ; static yyconst YY_CHAR yy_ec[256] = @@ -418,115 +418,105 @@ static yyconst YY_CHAR yy_meta[49] = 4, 4, 4, 4, 1, 1, 1, 1 } ; -static yyconst flex_uint16_t yy_base[171] = +static yyconst flex_uint16_t yy_base[168] = { 0, 0, 0, 0, 6, 30, 0, 78, 0, 124, 126, - 170, 213, 0, 0, 132, 134, 0, 0, 244, 455, - 455, 455, 455, 0, 198, 245, 16, 116, 455, 5, - 197, 232, 455, 275, 455, 455, 10, 193, 219, 118, - 217, 0, 200, 196, 208, 101, 197, 195, 115, 308, - 116, 190, 191, 188, 177, 455, 455, 0, 455, 455, - 455, 144, 177, 340, 455, 455, 455, 455, 455, 455, - 152, 170, 370, 455, 455, 196, 455, 13, 170, 174, - 455, 455, 455, 455, 455, 0, 144, 455, 455, 455, - 195, 455, 177, 0, 173, 120, 175, 123, 181, 455, - - 455, 455, 455, 455, 0, 181, 0, 174, 0, 0, - 0, 175, 0, 0, 455, 0, 0, 164, 0, 171, - 137, 455, 0, 455, 139, 181, 184, 187, 0, 455, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, - 136, 0, 138, 134, 455, 455, 455, 455, 455, 122, - 0, 86, 0, 0, 0, 455, 414, 418, 422, 426, - 430, 434, 438, 442, 444, 446, 448, 3, 450, 1 + 0, 0, 132, 134, 0, 0, 251, 365, 365, 365, + 365, 0, 205, 159, 16, 116, 365, 5, 204, 239, + 365, 189, 365, 365, 10, 199, 225, 118, 224, 0, + 207, 203, 215, 101, 203, 201, 115, 222, 116, 197, + 108, 192, 185, 365, 365, 0, 365, 365, 365, 144, + 179, 254, 365, 365, 365, 365, 152, 177, 284, 365, + 365, 201, 365, 13, 162, 165, 365, 365, 365, 365, + 365, 0, 152, 365, 365, 365, 199, 365, 168, 0, + 177, 120, 179, 123, 185, 365, 365, 365, 365, 365, + + 0, 185, 0, 178, 0, 0, 0, 179, 0, 0, + 365, 0, 0, 168, 0, 168, 173, 151, 365, 0, + 365, 172, 175, 181, 192, 0, 365, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 152, 136, 0, 138, + 0, 134, 365, 365, 365, 365, 365, 118, 0, 86, + 0, 0, 0, 365, 328, 332, 336, 340, 344, 348, + 352, 354, 356, 358, 3, 360, 1 } ; -static yyconst flex_int16_t yy_def[171] = +static yyconst flex_int16_t yy_def[168] = { 0, - 157, 157, 158, 158, 156, 5, 156, 7, 159, 159, - 160, 160, 161, 161, 162, 162, 163, 163, 156, 156, - 156, 156, 156, 156, 156, 164, 156, 156, 156, 156, - 156, 156, 156, 165, 156, 156, 156, 156, 156, 156, - 156, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 50, 166, 156, 156, 156, 167, 156, 156, - 156, 156, 156, 164, 156, 156, 156, 156, 156, 156, - 156, 156, 164, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 168, 156, 156, 156, 156, - 156, 156, 156, 169, 169, 169, 169, 169, 169, 156, - - 156, 156, 156, 156, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 156, 166, 166, 166, 166, 166, - 166, 156, 167, 156, 156, 156, 156, 156, 170, 156, - 169, 169, 169, 169, 169, 169, 169, 169, 166, 166, - 166, 166, 166, 166, 156, 156, 156, 156, 156, 166, - 166, 166, 166, 166, 166, 0, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156 + 155, 155, 156, 156, 154, 5, 154, 7, 157, 157, + 158, 158, 159, 159, 160, 160, 154, 154, 154, 154, + 154, 154, 154, 161, 154, 154, 154, 154, 154, 154, + 154, 162, 154, 154, 154, 154, 154, 154, 154, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 48, 163, 154, 154, 154, 164, 154, 154, 154, 154, + 154, 161, 154, 154, 154, 154, 154, 154, 161, 154, + 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, + 154, 165, 154, 154, 154, 154, 154, 154, 154, 166, + 166, 166, 166, 166, 166, 154, 154, 154, 154, 154, + + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 154, 163, 163, 163, 163, 163, 163, 163, 154, 164, + 154, 154, 154, 154, 154, 167, 154, 166, 166, 166, + 166, 166, 166, 166, 166, 163, 163, 163, 163, 163, + 163, 163, 154, 154, 154, 154, 154, 163, 163, 163, + 163, 163, 163, 0, 154, 154, 154, 154, 154, 154, + 154, 154, 154, 154, 154, 154, 154 } ; -static yyconst flex_uint16_t yy_nxt[504] = +static yyconst flex_uint16_t yy_nxt[414] = { 0, - 156, 156, 22, 149, 23, 129, 24, 25, 22, 156, - 23, 156, 24, 25, 75, 75, 75, 87, 87, 90, - 90, 90, 156, 26, 93, 93, 93, 125, 125, 26, - 20, 27, 27, 28, 29, 20, 30, 31, 32, 33, - 33, 34, 35, 36, 37, 37, 37, 38, 39, 40, - 41, 42, 42, 20, 20, 43, 42, 42, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 42, 42, 42, - 53, 54, 42, 42, 33, 55, 33, 20, 56, 56, + 154, 154, 20, 147, 21, 126, 22, 23, 20, 154, + 21, 154, 22, 23, 71, 71, 71, 83, 83, 86, + 86, 86, 154, 24, 89, 89, 89, 122, 122, 24, + 18, 25, 25, 26, 27, 18, 28, 29, 30, 31, + 31, 32, 33, 34, 35, 35, 35, 36, 37, 38, + 39, 40, 40, 18, 18, 41, 40, 40, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 40, 40, 40, + 51, 52, 40, 40, 31, 53, 31, 18, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 55, 54, 54, 54, 56, + + 56, 54, 54, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 57, 56, 56, 56, 58, - - 58, 56, 56, 58, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, - 58, 58, 56, 56, 59, 56, 61, 155, 61, 109, - 62, 63, 62, 63, 70, 88, 70, 102, 71, 72, - 71, 72, 110, 113, 117, 87, 87, 64, 133, 64, - 154, 136, 118, 145, 145, 73, 114, 73, 75, 75, - 75, 134, 153, 89, 137, 103, 75, 75, 75, 152, - 65, 151, 65, 67, 67, 67, 67, 67, 150, 144, - 67, 67, 67, 67, 126, 126, 127, 67, 128, 128, - 128, 93, 93, 93, 67, 146, 146, 147, 147, 147, - - 147, 148, 148, 148, 143, 142, 141, 140, 139, 138, - 135, 132, 130, 124, 76, 67, 67, 67, 67, 67, - 67, 76, 122, 67, 67, 67, 67, 121, 120, 119, - 67, 112, 111, 108, 107, 106, 104, 67, 101, 100, - 92, 91, 76, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 67, 78, - 79, 80, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 81, 156, 156, 82, 156, 156, 156, 156, 156, - 83, 156, 156, 156, 84, 156, 85, 156, 86, 93, - 93, 93, 156, 156, 156, 156, 156, 156, 156, 156, - - 156, 156, 156, 95, 156, 96, 97, 156, 98, 156, - 99, 115, 115, 115, 115, 115, 156, 156, 115, 115, - 115, 115, 156, 156, 156, 115, 156, 156, 156, 156, - 156, 156, 116, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 115, 78, 79, 80, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 81, 156, 156, 82, - 156, 156, 156, 156, 156, 83, 156, 156, 156, 84, - 156, 85, 156, 86, 78, 79, 80, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 81, 156, 156, 82, - - 156, 156, 156, 156, 156, 83, 156, 156, 156, 84, - 156, 85, 156, 86, 20, 20, 20, 20, 21, 21, - 21, 21, 60, 60, 60, 60, 66, 66, 66, 66, - 68, 68, 68, 68, 69, 69, 69, 69, 74, 74, - 74, 74, 77, 156, 77, 77, 94, 94, 105, 105, - 123, 123, 131, 131, 19, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - - 156, 156, 156 + 56, 56, 54, 54, 57, 54, 59, 153, 59, 105, + 60, 61, 60, 61, 66, 84, 66, 98, 67, 68, + 67, 68, 106, 109, 113, 116, 152, 62, 130, 62, + 117, 133, 114, 83, 83, 69, 110, 69, 71, 71, + 71, 131, 151, 85, 134, 99, 71, 71, 71, 150, + 63, 149, 63, 74, 75, 76, 123, 123, 124, 125, + 125, 125, 89, 89, 89, 77, 143, 143, 78, 144, + 144, 145, 148, 142, 79, 145, 145, 145, 80, 141, + + 81, 140, 82, 89, 89, 89, 146, 146, 146, 139, + 138, 137, 136, 135, 132, 129, 127, 91, 121, 92, + 93, 72, 94, 72, 95, 111, 111, 111, 111, 111, + 119, 118, 111, 111, 111, 111, 115, 108, 107, 111, + 104, 103, 102, 100, 97, 96, 112, 88, 87, 72, + 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, + 154, 154, 154, 154, 154, 154, 154, 111, 74, 75, + 76, 154, 154, 154, 154, 154, 154, 154, 154, 154, + 77, 154, 154, 78, 154, 154, 154, 154, 154, 79, + 154, 154, 154, 80, 154, 81, 154, 82, 74, 75, + + 76, 154, 154, 154, 154, 154, 154, 154, 154, 154, + 77, 154, 154, 78, 154, 154, 154, 154, 154, 79, + 154, 154, 154, 80, 154, 81, 154, 82, 18, 18, + 18, 18, 19, 19, 19, 19, 58, 58, 58, 58, + 64, 64, 64, 64, 65, 65, 65, 65, 70, 70, + 70, 70, 73, 154, 73, 73, 90, 90, 101, 101, + 120, 120, 128, 128, 17, 154, 154, 154, 154, 154, + 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, + 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, + 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, + + 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, + 154, 154, 154 } ; -static yyconst flex_int16_t yy_chk[504] = +static yyconst flex_int16_t yy_chk[414] = { 0, - 0, 0, 3, 170, 3, 168, 3, 3, 4, 0, - 4, 0, 4, 4, 24, 24, 24, 27, 27, 30, - 30, 30, 0, 3, 37, 37, 37, 78, 78, 4, + 0, 0, 3, 167, 3, 165, 3, 3, 4, 0, + 4, 0, 4, 4, 22, 22, 22, 25, 25, 28, + 28, 28, 0, 3, 35, 35, 35, 74, 74, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, @@ -537,49 +527,39 @@ static yyconst flex_int16_t yy_chk[504] = 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 9, 152, 10, 46, - 9, 9, 10, 10, 15, 28, 16, 40, 15, 15, - 16, 16, 46, 49, 51, 87, 87, 9, 96, 10, - 150, 98, 51, 125, 125, 15, 49, 16, 62, 62, - 62, 96, 144, 28, 98, 40, 71, 71, 71, 143, - 9, 141, 10, 11, 11, 11, 11, 11, 140, 121, - 11, 11, 11, 11, 79, 79, 79, 11, 80, 80, - 80, 93, 93, 93, 11, 126, 126, 126, 127, 127, - - 127, 128, 128, 128, 120, 118, 112, 108, 106, 99, - 97, 95, 91, 76, 72, 11, 12, 12, 12, 12, - 12, 63, 55, 12, 12, 12, 12, 54, 53, 52, - 12, 48, 47, 45, 44, 43, 41, 12, 39, 38, - 32, 31, 25, 19, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 12, 26, - 26, 26, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 26, 0, 0, 26, 0, 0, 0, 0, 0, - 26, 0, 0, 0, 26, 0, 26, 0, 26, 34, - 34, 34, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 34, 0, 34, 34, 0, 34, 0, - 34, 50, 50, 50, 50, 50, 0, 0, 50, 50, - 50, 50, 0, 0, 0, 50, 0, 0, 0, 0, - 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 50, 64, 64, 64, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 64, 0, 0, 64, - 0, 0, 0, 0, 0, 64, 0, 0, 0, 64, - 0, 64, 0, 64, 73, 73, 73, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 73, 0, 0, 73, - - 0, 0, 0, 0, 0, 73, 0, 0, 0, 73, - 0, 73, 0, 73, 157, 157, 157, 157, 158, 158, - 158, 158, 159, 159, 159, 159, 160, 160, 160, 160, - 161, 161, 161, 161, 162, 162, 162, 162, 163, 163, - 163, 163, 164, 0, 164, 164, 165, 165, 166, 166, - 167, 167, 169, 169, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - - 156, 156, 156 + 7, 7, 7, 7, 7, 7, 9, 150, 10, 44, + 9, 9, 10, 10, 13, 26, 14, 38, 13, 13, + 14, 14, 44, 47, 49, 51, 148, 9, 92, 10, + 51, 94, 49, 83, 83, 13, 47, 14, 60, 60, + 60, 92, 142, 26, 94, 38, 67, 67, 67, 140, + 9, 138, 10, 24, 24, 24, 75, 75, 75, 76, + 76, 76, 89, 89, 89, 24, 122, 122, 24, 123, + 123, 123, 137, 118, 24, 124, 124, 124, 24, 117, + + 24, 116, 24, 32, 32, 32, 125, 125, 125, 114, + 108, 104, 102, 95, 93, 91, 87, 32, 72, 32, + 32, 68, 32, 61, 32, 48, 48, 48, 48, 48, + 53, 52, 48, 48, 48, 48, 50, 46, 45, 48, + 43, 42, 41, 39, 37, 36, 48, 30, 29, 23, + 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 48, 62, 62, + 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 62, 0, 0, 62, 0, 0, 0, 0, 0, 62, + 0, 0, 0, 62, 0, 62, 0, 62, 69, 69, + + 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 69, 0, 0, 69, 0, 0, 0, 0, 0, 69, + 0, 0, 0, 69, 0, 69, 0, 69, 155, 155, + 155, 155, 156, 156, 156, 156, 157, 157, 157, 157, + 158, 158, 158, 158, 159, 159, 159, 159, 160, 160, + 160, 160, 161, 0, 161, 161, 162, 162, 163, 163, + 164, 164, 166, 166, 154, 154, 154, 154, 154, 154, + 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, + 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, + 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, + + 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, + 154, 154, 154 } ; /* The intent behind this definition is that it'll catch @@ -740,17 +720,16 @@ static int unreachable = 0; #define STR_RETURN() \ (apr_pstrdup(yyextra->pool, (*str_ptr = '\0', str_ptr = str_buf))) -#line 744 "util_expr_scan.c" +#line 724 "util_expr_scan.c" #define INITIAL 0 #define str 1 #define expr 2 #define var 3 #define vararg 4 -#define split 5 -#define regex 6 -#define regsub 7 -#define regflags 8 +#define regex 5 +#define regsub 6 +#define regflags 7 #ifndef YY_NO_UNISTD_H /* Special case for "unistd.h", since it is non-ANSI. We include it way @@ -1048,7 +1027,7 @@ YY_DECL /* * Back off INITIAL pushes */ -#line 1052 "util_expr_scan.c" +#line 1031 "util_expr_scan.c" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -1075,13 +1054,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 157 ) + if ( yy_current_state >= 155 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; ++yy_cp; } - while ( yy_current_state != 156 ); + while ( yy_current_state != 154 ); yy_cp = yyg->yy_last_accepting_cpos; yy_current_state = yyg->yy_last_accepting_state; @@ -1149,7 +1128,7 @@ YY_RULE_SETUP return T_STRING; } yylval->num = yytext[1] - '0'; - return T_REG_REF; + return T_BACKREF; } YY_BREAK /* variable inside string/arg */ @@ -1378,6 +1357,7 @@ YY_RULE_SETUP #line 359 "util_expr_scan.l" { if (yytext[0] == str_stop) { + yylval->cpVal = STR_RETURN(); STATE_POP(0); /* */ if (str_flag == 'm') { STATE_PUSH(regflags, 0); @@ -1385,7 +1365,6 @@ YY_RULE_SETUP else { STATE_PUSH(regsub, 0); } - yylval->cpVal = STR_RETURN(); return T_REG_MATCH; } STR_APPEND_CHECK(yytext[0], 1); @@ -1397,12 +1376,12 @@ YY_RULE_SETUP #line 373 "util_expr_scan.l" { if (yytext[0] == str_stop) { + yylval->cpVal = STR_RETURN(); STATE_POP(0); /* */ STATE_PUSH(regflags, 0); + return T_STRING; } - else { - STR_APPEND_CHECK(yytext[0], 1); - } + STR_APPEND_CHECK(yytext[0], 1); } YY_BREAK case 31: @@ -1410,22 +1389,20 @@ case 31: YY_RULE_SETUP #line 382 "util_expr_scan.l" { - if (ap_strchr_c("ismg", yytext[0])) { - STR_APPEND_NOCHECK(yytext[0]); - } - else if (apr_isalnum(yytext[0])) { - PERROR("Invalid regexp flag(s)"); - } - else { + if (!ap_strchr_c("ismg", yytext[0])) { + if (apr_isalnum(yytext[0])) { + PERROR("Invalid regexp flag(s)"); + } yyless(0); /* not a flags, rewind */ yylval->cpVal = STR_RETURN(); STATE_POP(1); /* */ return T_REG_FLAGS; } + STR_APPEND_NOCHECK(yytext[0]); } YY_BREAK case YY_STATE_EOF(regflags): -#line 396 "util_expr_scan.l" +#line 394 "util_expr_scan.l" { yylval->cpVal = STR_RETURN(); STATE_POP(1); /* */ @@ -1434,17 +1411,17 @@ case YY_STATE_EOF(regflags): YY_BREAK case YY_STATE_EOF(regex): case YY_STATE_EOF(regsub): -#line 401 "util_expr_scan.l" +#line 399 "util_expr_scan.l" { PERROR("Unterminated regexp"); } YY_BREAK case 32: YY_RULE_SETUP -#line 405 "util_expr_scan.l" +#line 403 "util_expr_scan.l" { yylval->num = yytext[1] - '0'; - return T_REG_REF; + return T_BACKREF; } YY_BREAK /* @@ -1452,153 +1429,153 @@ YY_RULE_SETUP */ case 33: YY_RULE_SETUP -#line 413 "util_expr_scan.l" +#line 411 "util_expr_scan.l" { return T_OP_STR_EQ; } YY_BREAK case 34: YY_RULE_SETUP -#line 414 "util_expr_scan.l" +#line 412 "util_expr_scan.l" { return T_OP_STR_NE; } YY_BREAK case 35: YY_RULE_SETUP -#line 415 "util_expr_scan.l" +#line 413 "util_expr_scan.l" { return T_OP_STR_LT; } YY_BREAK case 36: YY_RULE_SETUP -#line 416 "util_expr_scan.l" +#line 414 "util_expr_scan.l" { return T_OP_STR_LE; } YY_BREAK case 37: YY_RULE_SETUP -#line 417 "util_expr_scan.l" +#line 415 "util_expr_scan.l" { return T_OP_STR_GT; } YY_BREAK case 38: YY_RULE_SETUP -#line 418 "util_expr_scan.l" +#line 416 "util_expr_scan.l" { return T_OP_STR_GE; } YY_BREAK case 39: YY_RULE_SETUP -#line 419 "util_expr_scan.l" +#line 417 "util_expr_scan.l" { return T_OP_REG; } YY_BREAK case 40: YY_RULE_SETUP -#line 420 "util_expr_scan.l" +#line 418 "util_expr_scan.l" { return T_OP_NRE; } YY_BREAK case 41: YY_RULE_SETUP -#line 421 "util_expr_scan.l" +#line 419 "util_expr_scan.l" { return T_OP_AND; } YY_BREAK case 42: YY_RULE_SETUP -#line 422 "util_expr_scan.l" +#line 420 "util_expr_scan.l" { return T_OP_AND; } YY_BREAK case 43: YY_RULE_SETUP -#line 423 "util_expr_scan.l" +#line 421 "util_expr_scan.l" { return T_OP_OR; } YY_BREAK case 44: YY_RULE_SETUP -#line 424 "util_expr_scan.l" +#line 422 "util_expr_scan.l" { return T_OP_OR; } YY_BREAK case 45: YY_RULE_SETUP -#line 425 "util_expr_scan.l" +#line 423 "util_expr_scan.l" { return T_OP_NOT; } YY_BREAK case 46: YY_RULE_SETUP -#line 426 "util_expr_scan.l" +#line 424 "util_expr_scan.l" { return T_OP_NOT; } YY_BREAK case 47: YY_RULE_SETUP -#line 427 "util_expr_scan.l" +#line 425 "util_expr_scan.l" { return T_OP_CONCAT; } YY_BREAK case 48: YY_RULE_SETUP -#line 428 "util_expr_scan.l" +#line 426 "util_expr_scan.l" { return T_OP_IN; } YY_BREAK case 49: YY_RULE_SETUP -#line 429 "util_expr_scan.l" +#line 427 "util_expr_scan.l" { return T_OP_EQ; } YY_BREAK case 50: YY_RULE_SETUP -#line 430 "util_expr_scan.l" +#line 428 "util_expr_scan.l" { return T_OP_NE; } YY_BREAK case 51: YY_RULE_SETUP -#line 431 "util_expr_scan.l" +#line 429 "util_expr_scan.l" { return T_OP_GE; } YY_BREAK case 52: YY_RULE_SETUP -#line 432 "util_expr_scan.l" +#line 430 "util_expr_scan.l" { return T_OP_LE; } YY_BREAK case 53: YY_RULE_SETUP -#line 433 "util_expr_scan.l" +#line 431 "util_expr_scan.l" { return T_OP_GT; } YY_BREAK case 54: YY_RULE_SETUP -#line 434 "util_expr_scan.l" +#line 432 "util_expr_scan.l" { return T_OP_LT; } YY_BREAK /* for compatibility with ssl_expr */ case 55: YY_RULE_SETUP -#line 437 "util_expr_scan.l" +#line 435 "util_expr_scan.l" { return T_OP_LT; } YY_BREAK case 56: YY_RULE_SETUP -#line 438 "util_expr_scan.l" +#line 436 "util_expr_scan.l" { return T_OP_LE; } YY_BREAK case 57: YY_RULE_SETUP -#line 439 "util_expr_scan.l" +#line 437 "util_expr_scan.l" { return T_OP_GT; } YY_BREAK case 58: YY_RULE_SETUP -#line 440 "util_expr_scan.l" +#line 438 "util_expr_scan.l" { return T_OP_GE; } YY_BREAK case 59: YY_RULE_SETUP -#line 441 "util_expr_scan.l" +#line 439 "util_expr_scan.l" { return T_OP_NE; } YY_BREAK case 60: YY_RULE_SETUP -#line 442 "util_expr_scan.l" +#line 440 "util_expr_scan.l" { return T_OP_EQ; } YY_BREAK case 61: YY_RULE_SETUP -#line 443 "util_expr_scan.l" +#line 441 "util_expr_scan.l" { return T_OP_IN; } YY_BREAK case 62: YY_RULE_SETUP -#line 445 "util_expr_scan.l" +#line 443 "util_expr_scan.l" { yylval->cpVal = apr_pstrdup(yyextra->pool, yytext + 1); return T_OP_BINARY; @@ -1606,72 +1583,55 @@ YY_RULE_SETUP YY_BREAK case 63: YY_RULE_SETUP -#line 450 "util_expr_scan.l" +#line 448 "util_expr_scan.l" { yylval->cpVal = apr_pstrdup(yyextra->pool, yytext + 1); return T_OP_UNARY; } YY_BREAK -/* Split a string (or list) into a(nother) list */ +/* Apply subtitution to a string */ case 64: YY_RULE_SETUP -#line 456 "util_expr_scan.l" +#line 454 "util_expr_scan.l" { - STATE_PUSH(split, 0); - return T_OP_SPLIT; + return T_OP_SUB; } YY_BREAK +/* Join a list into a string */ case 65: YY_RULE_SETUP -#line 460 "util_expr_scan.l" +#line 459 "util_expr_scan.l" { - STATE_POP(0); /* */ - STATE_PUSH(regex, 1); - str_stop = yytext[0]; - str_flag = 'S'; + return T_OP_JOIN; } YY_BREAK +/* Split a string (or list) into a(nother) list */ case 66: -/* rule 66 can match eol */ YY_RULE_SETUP -#line 466 "util_expr_scan.l" +#line 464 "util_expr_scan.l" { - PERROR("Expecting split regular expression"); -} - YY_BREAK -case YY_STATE_EOF(split): -#line 469 "util_expr_scan.l" -{ - PERROR("Unterminated split"); -} - YY_BREAK -/* Join a list into a string */ -case 67: -YY_RULE_SETUP -#line 474 "util_expr_scan.l" -{ - return T_OP_JOIN; + return T_OP_SPLIT; } YY_BREAK /* * Specials */ -case 68: +case 67: YY_RULE_SETUP -#line 481 "util_expr_scan.l" +#line 471 "util_expr_scan.l" { return T_TRUE; } YY_BREAK -case 69: +case 68: YY_RULE_SETUP -#line 482 "util_expr_scan.l" +#line 472 "util_expr_scan.l" { return T_FALSE; } YY_BREAK /* * Digits */ -case 70: +case 69: YY_RULE_SETUP -#line 487 "util_expr_scan.l" +#line 477 "util_expr_scan.l" { yylval->cpVal = apr_pstrdup(yyextra->pool, yytext); return T_DIGIT; @@ -1680,9 +1640,9 @@ YY_RULE_SETUP /* * Identifiers */ -case 71: +case 70: YY_RULE_SETUP -#line 495 "util_expr_scan.l" +#line 485 "util_expr_scan.l" { yylval->cpVal = apr_pstrdup(yyextra->pool, yytext); return T_ID; @@ -1691,9 +1651,9 @@ YY_RULE_SETUP /* * These are parts of the grammar and are returned as is */ -case 72: +case 71: YY_RULE_SETUP -#line 503 "util_expr_scan.l" +#line 493 "util_expr_scan.l" { return yytext[0]; } @@ -1701,20 +1661,20 @@ YY_RULE_SETUP /* * Anything else is an error */ -case 73: -/* rule 73 can match eol */ +case 72: +/* rule 72 can match eol */ YY_RULE_SETUP -#line 510 "util_expr_scan.l" +#line 500 "util_expr_scan.l" { PERROR_CHAR("Parse error near character ", yytext[0]); } YY_BREAK -case 74: +case 73: YY_RULE_SETUP -#line 514 "util_expr_scan.l" +#line 504 "util_expr_scan.l" YY_FATAL_ERROR( "flex scanner jammed" ); YY_BREAK -#line 1718 "util_expr_scan.c" +#line 1678 "util_expr_scan.c" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -2010,7 +1970,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 157 ) + if ( yy_current_state >= 155 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; @@ -2039,11 +1999,11 @@ static int yy_get_next_buffer (yyscan_t yyscanner) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 157 ) + if ( yy_current_state >= 155 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; - yy_is_jam = (yy_current_state == 156); + yy_is_jam = (yy_current_state == 154); (void)yyg; return yy_is_jam ? 0 : yy_current_state; @@ -2873,7 +2833,7 @@ void ap_expr_yyfree (void * ptr , yyscan_t yyscanner) #define YYTABLES_NAME "yytables" -#line 514 "util_expr_scan.l" +#line 504 "util_expr_scan.l" -- 2.40.0