From 2f2def74c4791a7bacd1e3938a966e252fe2c446 Mon Sep 17 00:00:00 2001 From: Stefan Fritsch Date: Mon, 5 Nov 2012 12:41:17 +0000 Subject: [PATCH] Update auto-generated code git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1405773 13f79535-47bb-0310-9956-ffa450edef68 --- server/util_expr_scan.c | 165 ++++++++++++++++++++++------------------ 1 file changed, 90 insertions(+), 75 deletions(-) diff --git a/server/util_expr_scan.c b/server/util_expr_scan.c index ba759f2236..2510e6c9b3 100644 --- a/server/util_expr_scan.c +++ b/server/util_expr_scan.c @@ -581,6 +581,8 @@ static yyconst flex_int16_t yy_chk[319] = #line 43 "util_expr_scan.l" #include "util_expr_private.h" #include "util_expr_parse.h" +#include "http_main.h" +#include "http_log.h" #undef YY_INPUT #define YY_INPUT(buf,result,max_size) \ @@ -597,6 +599,19 @@ static yyconst flex_int16_t yy_chk[319] = } \ } +/* + * XXX: It would be nice if we could recover somehow, e.g. via + * XXX: longjmp. It is not clear if the scanner is in any state + * XXX: to be cleaned up, though. + */ +#define YY_FATAL_ERROR(msg) \ + do { \ + ap_log_error(APLOG_MARK, APLOG_CRIT, 0, ap_server_conf, \ + "expr parser fatal error (BUG?): " \ + "%s, exiting", msg); \ + abort(); \ + } while (0) + #define YY_EXTRA_TYPE ap_expr_parse_ctx_t* #define PERROR(msg) do { yyextra->error2 = msg ; return T_ERROR; } while (0) @@ -611,7 +626,7 @@ static yyconst flex_int16_t yy_chk[319] = PERROR("String too long"); \ } while (0) -#line 615 "util_expr_scan.c" +#line 630 "util_expr_scan.c" #define INITIAL 0 #define str 1 @@ -856,7 +871,7 @@ YY_DECL register int yy_act; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; -#line 78 "util_expr_scan.l" +#line 93 "util_expr_scan.l" char regex_buf[MAX_STRING_LEN]; @@ -882,7 +897,7 @@ YY_DECL /* * Whitespaces */ -#line 886 "util_expr_scan.c" +#line 901 "util_expr_scan.c" yylval = yylval_param; @@ -966,7 +981,7 @@ do_action: /* This label is used only to access EOF actions. */ case 1: /* rule 1 can match eol */ YY_RULE_SETUP -#line 103 "util_expr_scan.l" +#line 118 "util_expr_scan.l" { /* NOP */ } @@ -976,7 +991,7 @@ YY_RULE_SETUP */ case 2: YY_RULE_SETUP -#line 110 "util_expr_scan.l" +#line 125 "util_expr_scan.l" { str_ptr = str_buf; str_del = yytext[0]; @@ -986,7 +1001,7 @@ YY_RULE_SETUP YY_BREAK case 3: YY_RULE_SETUP -#line 116 "util_expr_scan.l" +#line 131 "util_expr_scan.l" { if (yytext[0] == str_del) { if (YY_START == var) { @@ -1013,20 +1028,20 @@ YY_RULE_SETUP case 4: /* rule 4 can match eol */ YY_RULE_SETUP -#line 138 "util_expr_scan.l" +#line 153 "util_expr_scan.l" { PERROR("Unterminated string or variable"); } YY_BREAK case YY_STATE_EOF(var): case YY_STATE_EOF(vararg): -#line 141 "util_expr_scan.l" +#line 156 "util_expr_scan.l" { PERROR("Unterminated string or variable"); } YY_BREAK case YY_STATE_EOF(str): -#line 144 "util_expr_scan.l" +#line 159 "util_expr_scan.l" { if (!(yyextra->flags & AP_EXPR_FLAG_STRING_RESULT)) { PERROR("Unterminated string or variable"); @@ -1042,7 +1057,7 @@ case YY_STATE_EOF(str): YY_BREAK case 5: YY_RULE_SETUP -#line 157 "util_expr_scan.l" +#line 172 "util_expr_scan.l" { int result; @@ -1057,46 +1072,46 @@ YY_RULE_SETUP YY_BREAK case 6: YY_RULE_SETUP -#line 168 "util_expr_scan.l" +#line 183 "util_expr_scan.l" { PERROR("Bad escape sequence"); } YY_BREAK case 7: YY_RULE_SETUP -#line 171 "util_expr_scan.l" +#line 186 "util_expr_scan.l" { STR_APPEND('\n'); } YY_BREAK case 8: YY_RULE_SETUP -#line 172 "util_expr_scan.l" +#line 187 "util_expr_scan.l" { STR_APPEND('\r'); } YY_BREAK case 9: YY_RULE_SETUP -#line 173 "util_expr_scan.l" +#line 188 "util_expr_scan.l" { STR_APPEND('\t'); } YY_BREAK case 10: YY_RULE_SETUP -#line 174 "util_expr_scan.l" +#line 189 "util_expr_scan.l" { STR_APPEND('\b'); } YY_BREAK case 11: YY_RULE_SETUP -#line 175 "util_expr_scan.l" +#line 190 "util_expr_scan.l" { STR_APPEND('\f'); } YY_BREAK case 12: /* rule 12 can match eol */ YY_RULE_SETUP -#line 176 "util_expr_scan.l" +#line 191 "util_expr_scan.l" { STR_APPEND(yytext[1]); } YY_BREAK /* regexp backref inside string/arg */ case 13: YY_RULE_SETUP -#line 179 "util_expr_scan.l" +#line 194 "util_expr_scan.l" { if (str_ptr != str_buf) { /* return what we have so far and scan '$x' again */ @@ -1114,7 +1129,7 @@ YY_RULE_SETUP YY_BREAK case 14: YY_RULE_SETUP -#line 194 "util_expr_scan.l" +#line 209 "util_expr_scan.l" { char *cp = yytext; while (*cp != '\0') { @@ -1126,7 +1141,7 @@ YY_RULE_SETUP /* variable inside string/arg */ case 15: YY_RULE_SETUP -#line 203 "util_expr_scan.l" +#line 218 "util_expr_scan.l" { if (str_ptr != str_buf) { /* return what we have so far and scan '%{' again */ @@ -1144,21 +1159,21 @@ YY_RULE_SETUP YY_BREAK case 16: YY_RULE_SETUP -#line 218 "util_expr_scan.l" +#line 233 "util_expr_scan.l" { STR_APPEND(yytext[0]); } YY_BREAK case 17: YY_RULE_SETUP -#line 222 "util_expr_scan.l" +#line 237 "util_expr_scan.l" { STR_APPEND(yytext[0]); } YY_BREAK case 18: YY_RULE_SETUP -#line 226 "util_expr_scan.l" +#line 241 "util_expr_scan.l" { yy_push_state(var, yyscanner); return T_VAR_BEGIN; @@ -1166,7 +1181,7 @@ YY_RULE_SETUP YY_BREAK case 19: YY_RULE_SETUP -#line 231 "util_expr_scan.l" +#line 246 "util_expr_scan.l" { yylval->num = yytext[1] - '0'; return T_REGEX_BACKREF; @@ -1177,7 +1192,7 @@ YY_RULE_SETUP */ case 20: YY_RULE_SETUP -#line 239 "util_expr_scan.l" +#line 254 "util_expr_scan.l" { yylval->cpVal = apr_pstrdup(yyextra->pool, yytext); return T_ID; @@ -1185,7 +1200,7 @@ YY_RULE_SETUP YY_BREAK case 21: YY_RULE_SETUP -#line 244 "util_expr_scan.l" +#line 259 "util_expr_scan.l" { yy_pop_state(yyscanner); return T_VAR_END; @@ -1193,7 +1208,7 @@ YY_RULE_SETUP YY_BREAK case 22: YY_RULE_SETUP -#line 249 "util_expr_scan.l" +#line 264 "util_expr_scan.l" { BEGIN(vararg); return yytext[0]; @@ -1202,7 +1217,7 @@ YY_RULE_SETUP case 23: /* rule 23 can match eol */ YY_RULE_SETUP -#line 254 "util_expr_scan.l" +#line 269 "util_expr_scan.l" { char *msg = apr_psprintf(yyextra->pool, "Invalid character in variable name '%c'", yytext[0]); @@ -1211,7 +1226,7 @@ YY_RULE_SETUP YY_BREAK case 24: YY_RULE_SETUP -#line 260 "util_expr_scan.l" +#line 275 "util_expr_scan.l" { if (str_ptr != str_buf) { /* return what we have so far and scan '}' again */ @@ -1232,7 +1247,7 @@ YY_RULE_SETUP */ case 25: YY_RULE_SETUP -#line 278 "util_expr_scan.l" +#line 293 "util_expr_scan.l" { regex_del = yytext[1]; regex_ptr = regex_buf; @@ -1241,7 +1256,7 @@ YY_RULE_SETUP YY_BREAK case 26: YY_RULE_SETUP -#line 283 "util_expr_scan.l" +#line 298 "util_expr_scan.l" { regex_del = yytext[0]; regex_ptr = regex_buf; @@ -1251,7 +1266,7 @@ YY_RULE_SETUP case 27: /* rule 27 can match eol */ YY_RULE_SETUP -#line 288 "util_expr_scan.l" +#line 303 "util_expr_scan.l" { if (yytext[0] == regex_del) { *regex_ptr = '\0'; @@ -1266,7 +1281,7 @@ YY_RULE_SETUP YY_BREAK case 28: YY_RULE_SETUP -#line 299 "util_expr_scan.l" +#line 314 "util_expr_scan.l" { yylval->cpVal = apr_pstrdup(yyextra->pool, regex_buf); BEGIN(INITIAL); @@ -1276,7 +1291,7 @@ YY_RULE_SETUP case 29: /* rule 29 can match eol */ YY_RULE_SETUP -#line 304 "util_expr_scan.l" +#line 319 "util_expr_scan.l" { yylval->cpVal = apr_pstrdup(yyextra->pool, regex_buf); yyless(0); @@ -1285,7 +1300,7 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(regex_flags): -#line 310 "util_expr_scan.l" +#line 325 "util_expr_scan.l" { yylval->cpVal = apr_pstrdup(yyextra->pool, regex_buf); BEGIN(INITIAL); @@ -1297,153 +1312,153 @@ case YY_STATE_EOF(regex_flags): */ case 30: YY_RULE_SETUP -#line 319 "util_expr_scan.l" +#line 334 "util_expr_scan.l" { return T_OP_STR_EQ; } YY_BREAK case 31: YY_RULE_SETUP -#line 320 "util_expr_scan.l" +#line 335 "util_expr_scan.l" { return T_OP_STR_NE; } YY_BREAK case 32: YY_RULE_SETUP -#line 321 "util_expr_scan.l" +#line 336 "util_expr_scan.l" { return T_OP_STR_LT; } YY_BREAK case 33: YY_RULE_SETUP -#line 322 "util_expr_scan.l" +#line 337 "util_expr_scan.l" { return T_OP_STR_LE; } YY_BREAK case 34: YY_RULE_SETUP -#line 323 "util_expr_scan.l" +#line 338 "util_expr_scan.l" { return T_OP_STR_GT; } YY_BREAK case 35: YY_RULE_SETUP -#line 324 "util_expr_scan.l" +#line 339 "util_expr_scan.l" { return T_OP_STR_GE; } YY_BREAK case 36: YY_RULE_SETUP -#line 325 "util_expr_scan.l" +#line 340 "util_expr_scan.l" { return T_OP_REG; } YY_BREAK case 37: YY_RULE_SETUP -#line 326 "util_expr_scan.l" +#line 341 "util_expr_scan.l" { return T_OP_NRE; } YY_BREAK case 38: YY_RULE_SETUP -#line 327 "util_expr_scan.l" +#line 342 "util_expr_scan.l" { return T_OP_AND; } YY_BREAK case 39: YY_RULE_SETUP -#line 328 "util_expr_scan.l" +#line 343 "util_expr_scan.l" { return T_OP_AND; } YY_BREAK case 40: YY_RULE_SETUP -#line 329 "util_expr_scan.l" +#line 344 "util_expr_scan.l" { return T_OP_OR; } YY_BREAK case 41: YY_RULE_SETUP -#line 330 "util_expr_scan.l" +#line 345 "util_expr_scan.l" { return T_OP_OR; } YY_BREAK case 42: YY_RULE_SETUP -#line 331 "util_expr_scan.l" +#line 346 "util_expr_scan.l" { return T_OP_NOT; } YY_BREAK case 43: YY_RULE_SETUP -#line 332 "util_expr_scan.l" +#line 347 "util_expr_scan.l" { return T_OP_NOT; } YY_BREAK case 44: YY_RULE_SETUP -#line 333 "util_expr_scan.l" +#line 348 "util_expr_scan.l" { return T_OP_CONCAT; } YY_BREAK case 45: YY_RULE_SETUP -#line 334 "util_expr_scan.l" +#line 349 "util_expr_scan.l" { return T_OP_IN; } YY_BREAK case 46: YY_RULE_SETUP -#line 335 "util_expr_scan.l" +#line 350 "util_expr_scan.l" { return T_OP_EQ; } YY_BREAK case 47: YY_RULE_SETUP -#line 336 "util_expr_scan.l" +#line 351 "util_expr_scan.l" { return T_OP_NE; } YY_BREAK case 48: YY_RULE_SETUP -#line 337 "util_expr_scan.l" +#line 352 "util_expr_scan.l" { return T_OP_GE; } YY_BREAK case 49: YY_RULE_SETUP -#line 338 "util_expr_scan.l" +#line 353 "util_expr_scan.l" { return T_OP_LE; } YY_BREAK case 50: YY_RULE_SETUP -#line 339 "util_expr_scan.l" +#line 354 "util_expr_scan.l" { return T_OP_GT; } YY_BREAK case 51: YY_RULE_SETUP -#line 340 "util_expr_scan.l" +#line 355 "util_expr_scan.l" { return T_OP_LT; } YY_BREAK /* for compatibility with ssl_expr */ case 52: YY_RULE_SETUP -#line 343 "util_expr_scan.l" +#line 358 "util_expr_scan.l" { return T_OP_LT; } YY_BREAK case 53: YY_RULE_SETUP -#line 344 "util_expr_scan.l" +#line 359 "util_expr_scan.l" { return T_OP_LE; } YY_BREAK case 54: YY_RULE_SETUP -#line 345 "util_expr_scan.l" +#line 360 "util_expr_scan.l" { return T_OP_GT; } YY_BREAK case 55: YY_RULE_SETUP -#line 346 "util_expr_scan.l" +#line 361 "util_expr_scan.l" { return T_OP_GE; } YY_BREAK case 56: YY_RULE_SETUP -#line 347 "util_expr_scan.l" +#line 362 "util_expr_scan.l" { return T_OP_NE; } YY_BREAK case 57: YY_RULE_SETUP -#line 348 "util_expr_scan.l" +#line 363 "util_expr_scan.l" { return T_OP_EQ; } YY_BREAK case 58: YY_RULE_SETUP -#line 349 "util_expr_scan.l" +#line 364 "util_expr_scan.l" { return T_OP_IN; } YY_BREAK case 59: YY_RULE_SETUP -#line 351 "util_expr_scan.l" +#line 366 "util_expr_scan.l" { yylval->cpVal = apr_pstrdup(yyextra->pool, yytext + 1); return T_OP_UNARY; @@ -1451,7 +1466,7 @@ YY_RULE_SETUP YY_BREAK case 60: YY_RULE_SETUP -#line 356 "util_expr_scan.l" +#line 371 "util_expr_scan.l" { yylval->cpVal = apr_pstrdup(yyextra->pool, yytext + 1); return T_OP_BINARY; @@ -1462,12 +1477,12 @@ YY_RULE_SETUP */ case 61: YY_RULE_SETUP -#line 364 "util_expr_scan.l" +#line 379 "util_expr_scan.l" { return T_TRUE; } YY_BREAK case 62: YY_RULE_SETUP -#line 365 "util_expr_scan.l" +#line 380 "util_expr_scan.l" { return T_FALSE; } YY_BREAK /* @@ -1475,7 +1490,7 @@ YY_RULE_SETUP */ case 63: YY_RULE_SETUP -#line 370 "util_expr_scan.l" +#line 385 "util_expr_scan.l" { yylval->cpVal = apr_pstrdup(yyextra->pool, yytext); return T_DIGIT; @@ -1486,7 +1501,7 @@ YY_RULE_SETUP */ case 64: YY_RULE_SETUP -#line 378 "util_expr_scan.l" +#line 393 "util_expr_scan.l" { yylval->cpVal = apr_pstrdup(yyextra->pool, yytext); return T_ID; @@ -1497,7 +1512,7 @@ YY_RULE_SETUP */ case 65: YY_RULE_SETUP -#line 386 "util_expr_scan.l" +#line 401 "util_expr_scan.l" { return yytext[0]; } @@ -1508,7 +1523,7 @@ YY_RULE_SETUP case 66: /* rule 66 can match eol */ YY_RULE_SETUP -#line 393 "util_expr_scan.l" +#line 408 "util_expr_scan.l" { char *msg = apr_psprintf(yyextra->pool, "Parse error near '%c'", yytext[0]); PERROR(msg); @@ -1516,10 +1531,10 @@ YY_RULE_SETUP YY_BREAK case 67: YY_RULE_SETUP -#line 398 "util_expr_scan.l" +#line 413 "util_expr_scan.l" YY_FATAL_ERROR( "flex scanner jammed" ); YY_BREAK -#line 1523 "util_expr_scan.c" +#line 1538 "util_expr_scan.c" case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(regex): yyterminate(); @@ -2661,7 +2676,7 @@ void ap_expr_yyfree (void * ptr , yyscan_t yyscanner) #define YYTABLES_NAME "yytables" -#line 398 "util_expr_scan.l" +#line 413 "util_expr_scan.l" -- 2.50.0