]> git.ipfire.org Git - thirdparty/jinja.git/commitdiff
Support boolean literals
authorKevin Brown <kevin@kevin-brown.com>
Fri, 8 May 2020 12:29:24 +0000 (08:29 -0400)
committerKevin <kevin@kevin-brown.com>
Sun, 10 May 2020 01:50:06 +0000 (21:50 -0400)
This will transparently convert them into an actual boolean which
should skip any variable-like parsing that would otherwise be done.

tatsu_grammar.txt
test_template.jinja

index 1144b864295b7f0d2dc8ce04c385f5327b859330..11b220812245a18bef6703ee0a928db3ffbf944d 100644 (file)
@@ -76,7 +76,7 @@ variable_close
 \r
 variable_identifier\r
     =\r
-    ( IDENTIFIER | LITERAL )\r
+    ( LITERAL | IDENTIFIER )\r
     { variable_accessor }*\r
     ;\r
 \r
@@ -150,7 +150,7 @@ content                 = !(block_open | variable_open | comment_open) CHAR ;
 \r
 LITERAL\r
     =\r
-    STRING_LITERAL | NUMBER_LITERAL\r
+    STRING_LITERAL | NUMBER_LITERAL | BOOLEAN_LITERAL\r
     ;\r
 \r
 INTEGER_LITERAL\r
@@ -180,6 +180,11 @@ STRING_LITERAL_DOUBLE_QUOTE
     '"' { !'"' /./ }* '"'\r
     ;\r
 \r
+BOOLEAN_LITERAL\r
+    =\r
+    (("true" | "True") @:`True`) | (("false" | "False") @:`False`)\r
+    ;\r
+\r
 IDENTIFIER\r
     =\r
     /[a-zA-Z_][a-zA-Z0-9_]*/\r
index caf840c79a30f0c5e060f38d6f547a217b31e758..ef2c1baef1b64b57fe44cd42424da38e2f7cf8cd 100644 (file)
@@ -11,5 +11,7 @@ across lines #}
 {% raw %}\r
     {% block %}fake content{{ fake vars }}\r
 {% endraw %}\r
+{% if False %}\r
 {{ '{{' }}\r
+{% endif %}\r
 {% trans user=user.username %}Hello, {{ user }}!{% endtrans %}
\ No newline at end of file