First try in r1811111. On Tue, Oct 3, 2017 at 3:54 PM, Yann Ylavic <ylavic....@gmail.com> wrote: > 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