Strip parens from filter params list

This isn't necessary, we will always know that the second item within
the filter list is the set of filter parameters.

This also ensures that any time the filter separator is detected,
we force parsing the next token as a filter parameter.
This commit is contained in:
Kevin Brown 2020-05-08 05:58:24 -04:00 committed by Kevin
parent 1604a0c87b
commit ca3ecffd9a
2 changed files with 25 additions and 5 deletions

View File

@ -83,8 +83,26 @@ variable_filter
=
{SP}* "|" {SP}* @:filter
;
filter = @+:IDENTIFIER [@+:filter_parameters];
filter_parameters = "(" [@+:filter_parameter {"," {SP}* @+:filter_parameter}*] ")";
filter =
@+:IDENTIFIER
[@+:filter_parameters]
;
filter_parameters
=
"("
@:[filter_parameter_list]
")"
;
filter_parameter_list
=
@+:filter_parameter {filter_parameter_separator ~ @+:filter_parameter}*
;
filter_parameter_separator
=
{SP}* "," {SP}*
;
filter_parameter = {!"," !")" CHAR}* ;
comment_expression = comment_open comment_content comment_close ;
@ -96,7 +114,7 @@ content = !(block_open | variable_open | comment_open) CHAR ;
IDENTIFIER
=
/[a-zA-Z]+/
/[a-zA-Z][a-zA-Z0-9]*/
;
ALPHA

View File

@ -1,8 +1,10 @@
{% with key=val %}
{{ kkk |test(first,second, third)|filter}}
{{ kkk |test(first ,second, third)|filter | lastFilter}}
{%block single key=val param=value %}
test {{var}}
{%endblock%}
{# comment contents
across lines #}
{% raw %}{% block %}fake content{{ fake vars }}{% endraw %}
{% raw %}
{% block %}fake content{{ fake vars }}
{% endraw %}