]> git.ipfire.org Git - thirdparty/jinja.git/commitdiff
Support named parameters to calls
authorKevin Brown <kevin@kevin-brown.com>
Fri, 8 May 2020 11:08:04 +0000 (07:08 -0400)
committerKevin <kevin@kevin-brown.com>
Sun, 10 May 2020 01:50:06 +0000 (21:50 -0400)
This also switches the parameters in calls to be returned as a
dictionary which should make it easier to differentiate between a
value-only parameter and a key-value parameter.

tatsu_grammar.txt
test_template.jinja

index a9512805d616ffa847cb1515fbc20de1a182a0fa..43a9d1e35d8ccbaf56e1d935fd49659d7ffa5cdc 100644 (file)
@@ -102,8 +102,29 @@ variable_accessor_call
 \r
 variable_accessor_call_parameters\r
     =\r
-    {SP}* @+:variable_identifier {SP}*\r
-    { "," {SP}* @+:variable_identifier {SP}* }*\r
+    @+:variable_accessor_call_parameter\r
+    { "," @+:variable_accessor_call_parameter }*\r
+    ;\r
+\r
+variable_accessor_call_parameter\r
+    =\r
+    variable_accessor_call_parameter_key_value\r
+    | variable_accessor_call_parameter_value_only\r
+    ;\r
+\r
+variable_accessor_call_parameter_key_value\r
+    =\r
+    {SP}* key:IDENTIFIER {SP}* "=" value:variable_accessor_call_parameter_value {SP}*\r
+    ;\r
+\r
+variable_accessor_call_parameter_value_only\r
+    =\r
+    value:variable_accessor_call_parameter_value\r
+    ;\r
+\r
+variable_accessor_call_parameter_value\r
+    =\r
+    {SP}* @:variable_identifier {SP}*\r
     ;\r
 \r
 variable_accessor_dot\r
index 8847e41b3a79dc7c04a3778829533598cbde1fed..df151ef1f6a991ca93ad262a0730c086c263c1d1 100644 (file)
@@ -1,5 +1,5 @@
 {% with key=val.test %}\r
-{{ dict_var['single']["double"].dot  |test(first ,second, third)|filter | lastFilter}}\r
+{{ dict_var['single']["double"].dot  |test(first ,second, named=third)|filter | lastFilter}}\r
 {%block single key=val param=value %}\r
 test {{var}}\r
 {%endblock%}\r