Last but not least, I'm on it ;) On Tue, Oct 3, 2017 at 3:49 PM, Eric Covener <cove...@gmail.com> wrote: > Still need something in expr.xml (incl an example or two) > > On Tue, Oct 3, 2017 at 9:45 AM, <yla...@apache.org> wrote: >> Author: ylavic >> Date: Tue Oct 3 13:45:34 2017 >> New Revision: 1811010 >> >> URL: http://svn.apache.org/viewvc?rev=1811010&view=rev >> Log: >> ap_expr: follow up to r1810605. >> >> Better token/type descriptors for better parsing error messages. >> >> >> Modified: >> httpd/httpd/trunk/server/util_expr_parse.c >> httpd/httpd/trunk/server/util_expr_parse.y >> >> Modified: httpd/httpd/trunk/server/util_expr_parse.c >> URL: >> http://svn.apache.org/viewvc/httpd/httpd/trunk/server/util_expr_parse.c?rev=1811010&r1=1811009&r2=1811010&view=diff >> ============================================================================== >> --- httpd/httpd/trunk/server/util_expr_parse.c (original) >> +++ httpd/httpd/trunk/server/util_expr_parse.c Tue Oct 3 13:45:34 2017 >> @@ -551,11 +551,12 @@ static const char *const yytname[] = >> { >> "$end", "error", "$undefined", "\"true\"", "\"false\"", >> "\"boolean expression\"", "\"string expression\"", "\"error token\"", >> - "\"number\"", "\"identifier\"", "\"string\"", "\"match regex\"", >> - "\"substitution regex\"", "\"match pattern of the regex\"", >> - "\"substitution pattern of the regex\"", "\"flags of the regex\"", >> - "\"regex back reference\"", "\"unary operator\"", "\"binary operator\"", >> - "\"start of string\"", "\"end of string\"", "\"start of variable name\"", >> + "\"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\"", >> + "\"unary operator\"", "\"binary operator\"", "\"start of string\"", >> + "\"end of string\"", "\"start of variable name\"", >> "\"end of variable name\"", "\"start of variable expression\"", >> "\"end of variable expression\"", "\"integer equal\"", >> "\"integer not equal\"", "\"integer less than\"", >> @@ -567,14 +568,12 @@ static const char *const yytname[] = >> "\"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 expression\"", >> - "\"any string expression\"", "\"variable expression\"", >> - "\"regular expression match\"", "\"regular expression substitution\"", >> - "\"regular expression split\"", "\"any regular expression\"", >> - "\"regular expression back reference\"", "'('", "')'", "'{'", "'}'", >> - "','", "':'", "$accept", "root", "cond", "comp", "wordlist", "words", >> - "string", "strany", "var", "word", "regex", "regsub", "regsplit", >> - "regany", "regref", "lstfunc", "strfunc", YY_NULL >> + "\"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 >> }; >> #endif >> >> @@ -2023,7 +2022,7 @@ yyreduce: >> >> >> /* Line 1787 of yacc.c */ >> -#line 2027 "util_expr_parse.c" >> +#line 2026 "util_expr_parse.c" >> default: break; >> } >> /* User semantic actions sometimes alter yychar, and that requires >> >> Modified: httpd/httpd/trunk/server/util_expr_parse.y >> URL: >> http://svn.apache.org/viewvc/httpd/httpd/trunk/server/util_expr_parse.y?rev=1811010&r1=1811009&r2=1811010&view=diff >> ============================================================================== >> --- httpd/httpd/trunk/server/util_expr_parse.y (original) >> +++ httpd/httpd/trunk/server/util_expr_parse.y Tue Oct 3 13:45:34 2017 >> @@ -48,14 +48,14 @@ >> >> %token <cpVal> T_DIGIT "number" >> %token <cpVal> T_ID "identifier" >> -%token <cpVal> T_STRING "string" >> +%token <cpVal> T_STRING "string literal" >> >> -%token T_REGEX "match regex" >> +%token T_REGEX "matching regex" >> %token T_REGSUB "substitution regex" >> -%token <cpVal> T_REG_MATCH "match pattern of the regex" >> -%token <cpVal> T_REG_SUBST "substitution pattern of the regex" >> -%token <cpVal> T_REG_FLAGS "flags of the regex" >> -%token <num> T_REG_REF "regex back reference" >> +%token <cpVal> T_REG_MATCH "pattern of the regex" >> +%token <cpVal> T_REG_SUBST "replacement of the regex" >> +%token <cpVal> T_REG_FLAGS "pattern flags of the regex" >> +%token <num> T_REG_REF "capture reference in the regex" >> >> %token <cpVal> T_OP_UNARY "unary operator" >> %token <cpVal> T_OP_BINARY "binary operator" >> @@ -103,15 +103,15 @@ >> %type <exVal> lstfunc "list function" >> %type <exVal> wordlist "list of words" >> %type <exVal> words "tuple of words" >> -%type <exVal> word "word expression" >> -%type <exVal> string "string expression" >> -%type <exVal> strany "any string expression" >> -%type <exVal> var "variable expression" >> -%type <exVal> regex "regular expression match" >> -%type <exVal> regsub "regular expression substitution" >> -%type <exVal> regsplit "regular expression split" >> -%type <exVal> regany "any regular expression" >> -%type <exVal> regref "regular expression back reference" >> +%type <exVal> word "word" >> +%type <exVal> string "string" >> +%type <exVal> substr "substring" >> +%type <exVal> var "variable" >> +%type <exVal> regex "regex match" >> +%type <exVal> regsub "regex substitution" >> +%type <exVal> regsplit "regex split" >> +%type <exVal> regany "regex any" >> +%type <exVal> regref "regex capture reference" >> >> %{ >> #include "util_expr_private.h" >> @@ -168,12 +168,12 @@ words : word >> | word ',' words { $$ = >> ap_expr_make(op_ListElement, $1, $3, ctx); } >> ; >> >> -string : strany { $$ = $1; } >> - | string strany { $$ = ap_expr_concat_make($1, $2, >> ctx); } >> +string : substr { $$ = $1; } >> + | string substr { $$ = ap_expr_concat_make($1, $2, >> ctx); } >> | T_ERROR { YYABORT; } >> ; >> >> -strany : T_STRING { $$ = ap_expr_make(op_String, $1, >> NULL, ctx); } >> +substr : T_STRING { $$ = ap_expr_make(op_String, $1, >> NULL, ctx); } >> | var { $$ = $1; } >> | regref { $$ = $1; } >> ; >> >> > > > > -- > Eric Covener > cove...@gmail.com
--------------------------------------------------------------------- To unsubscribe, e-mail: docs-unsubscr...@httpd.apache.org For additional commands, e-mail: docs-h...@httpd.apache.org