You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Eric Covener <co...@gmail.com> on 2017/10/03 13:49:55 UTC
Re: svn commit: r1811010 - in /httpd/httpd/trunk/server:
util_expr_parse.c util_expr_parse.y
Still need something in expr.xml (incl an example or two)
On Tue, Oct 3, 2017 at 9:45 AM, <yl...@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
covener@gmail.com
Re: svn commit: r1811010 - in /httpd/httpd/trunk/server:
util_expr_parse.c util_expr_parse.y
Posted by Yann Ylavic <yl...@gmail.com>.
First try in r1811111.
On Tue, Oct 3, 2017 at 3:54 PM, Yann Ylavic <yl...@gmail.com> wrote:
> Last but not least, I'm on it ;)
>
> On Tue, Oct 3, 2017 at 3:49 PM, Eric Covener <co...@gmail.com> wrote:
>> Still need something in expr.xml (incl an example or two)
>>
>> On Tue, Oct 3, 2017 at 9:45 AM, <yl...@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
>> covener@gmail.com
---------------------------------------------------------------------
To unsubscribe, e-mail: docs-unsubscribe@httpd.apache.org
For additional commands, e-mail: docs-help@httpd.apache.org
Re: svn commit: r1811010 - in /httpd/httpd/trunk/server:
util_expr_parse.c util_expr_parse.y
Posted by Yann Ylavic <yl...@gmail.com>.
First try in r1811111.
On Tue, Oct 3, 2017 at 3:54 PM, Yann Ylavic <yl...@gmail.com> wrote:
> Last but not least, I'm on it ;)
>
> On Tue, Oct 3, 2017 at 3:49 PM, Eric Covener <co...@gmail.com> wrote:
>> Still need something in expr.xml (incl an example or two)
>>
>> On Tue, Oct 3, 2017 at 9:45 AM, <yl...@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
>> covener@gmail.com
Re: svn commit: r1811010 - in /httpd/httpd/trunk/server:
util_expr_parse.c util_expr_parse.y
Posted by Yann Ylavic <yl...@gmail.com>.
Last but not least, I'm on it ;)
On Tue, Oct 3, 2017 at 3:49 PM, Eric Covener <co...@gmail.com> wrote:
> Still need something in expr.xml (incl an example or two)
>
> On Tue, Oct 3, 2017 at 9:45 AM, <yl...@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
> covener@gmail.com
Re: svn commit: r1811010 - in /httpd/httpd/trunk/server:
util_expr_parse.c util_expr_parse.y
Posted by Yann Ylavic <yl...@gmail.com>.
Last but not least, I'm on it ;)
On Tue, Oct 3, 2017 at 3:49 PM, Eric Covener <co...@gmail.com> wrote:
> Still need something in expr.xml (incl an example or two)
>
> On Tue, Oct 3, 2017 at 9:45 AM, <yl...@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
> covener@gmail.com
---------------------------------------------------------------------
To unsubscribe, e-mail: docs-unsubscribe@httpd.apache.org
For additional commands, e-mail: docs-help@httpd.apache.org