\r
variable_expression\r
=\r
- variable_open IDENTIFIER { !variable_close variable_filter }* variable_close\r
+ variable_open variable_identifier { !variable_close variable_filter }* variable_close\r
;\r
variable_open\r
=\r
{SP}* @:"}}"\r
;\r
\r
+variable_identifier\r
+ =\r
+ ( IDENTIFIER | STRING )\r
+ { variable_accessor }*\r
+ ;\r
+\r
+variable_accessor\r
+ =\r
+ "[" variable_identifier "]"\r
+ ;\r
+\r
variable_filter\r
=\r
{SP}* "|" {SP}* @:filter\r
\r
content = !(block_open | variable_open | comment_open) CHAR ;\r
\r
+STRING\r
+ =\r
+ SINGLE_QUOTE_STRING | DOUBLE_QUOTE_STRING\r
+ ;\r
+\r
+SINGLE_QUOTE_STRING\r
+ =\r
+ "'" { !"'" ?'.' }* "'"\r
+ ;\r
+\r
+DOUBLE_QUOTE_STRING\r
+ =\r
+ '"' { !'"' ?'.' }* '"'\r
+ ;\r
+\r
IDENTIFIER\r
=\r
- /[a-zA-Z][a-zA-Z0-9]*/\r
+ /[a-zA-Z_][a-zA-Z0-9_]*/\r
;\r
\r
ALPHA\r
{% with key=val %}\r
-{{ kkk |test(first ,second, third)|filter | lastFilter}}\r
+{{ dict_var['single']["double"] |test(first ,second, third)|filter | lastFilter}}\r
{%block single key=val param=value %}\r
test {{var}}\r
{%endblock%}\r