]> git.ipfire.org Git - thirdparty/jinja.git/commitdiff
Testing out include syntax
authorKevin <github@kevin-brown.com>
Tue, 21 May 2024 18:21:20 +0000 (14:21 -0400)
committerKevin <github@kevin-brown.com>
Tue, 21 May 2024 18:21:20 +0000 (14:21 -0400)
.gitignore
grammar/JinjaGrammar.g4
grammar/JinjaLexer.g4

index 00a1e2a9845cb9ee82e99a145411025e2b35dd05..53aa2e03fdd37b673245e977df2160c5c7c65137 100644 (file)
@@ -9,4 +9,5 @@ htmlcov/
 .tox/
 docs/_build/
 
-.antlr/
\ No newline at end of file
+.antlr/
+*.input.txt
\ No newline at end of file
index e82202d6f7bcc7ae9a1d4cab4b308d7fc86b6c41..8f46b5b013a85475bc524939e7d9081d02b99ab0 100644 (file)
@@ -4,13 +4,27 @@ options {
     tokenVocab=JinjaLexer;
 }
 
+start : expressions;
+
 expression
-    : block_statement
-    | inline_statement
+    : inline_statement
     ;
 
 expressions     : expression*;
 
+statement_include_template_list
+    : STRING_LITERAL
+    ;
+
+statement_include_context
+    : STATEMENT_INCLUDE_WITH_CONTEXT
+    | STATEMENT_INCLUDE_WITHOUT_CONTEXT
+    ;
+
+statement_include
+    : STATEMENT_ID_INCLUDE (SP statement_include_template_list)?
+    ;
+
 block_statement_id
     : STATEMENT_ID_BLOCK
     | STATEMENT_ID_SET
@@ -30,15 +44,13 @@ block_statement_start_content
     | block_statement_with_parameters
     ;
 
-inline_statement_id
-    : STATEMENT_ID_IMPORT
-    | STATEMENT_ID_INCLUDE
-    | STATEMENT_ID_SET
+inline_statement_content
+    : statement_include
     ;
 
-inline_statement            : STATEMENT_OPEN inline_statement_id STATEMENT_CLOSE;
+inline_statement            : STATEMENT_OPEN inline_statement_content STATEMENT_CLOSE;
 
-block_statement_start       : STATEMENT_OPEN block_statement_id STATEMENT_CLOSE;
+block_statement_start       : STATEMENT_OPEN block_statement_start_content STATEMENT_CLOSE;
 block_statement_end         : STATEMENT_OPEN END_STATEMENT_ID_PREFIX block_statement_id STATEMENT_CLOSE;
 
 block_statement             : block_statement_start expressions block_statement_end;
\ No newline at end of file
index 3bfdabe92ec9402176beb7d75312a6a3ebe751ce..0b8769dbf395e8d36c8e706e9ae163df67ef8e8d 100644 (file)
@@ -61,8 +61,8 @@ RARROW          : '->';
 ELLIPSIS        : '...';
 EXCLAMATION     : '!';
 
-STATEMENT_OPEN      : '{%';
-STATEMENT_CLOSE     : '%}';
+STATEMENT_OPEN      : '{%' SP?;
+STATEMENT_CLOSE     : SP? '%}';
 
 EXPRESSION_OPEN     : '{{';
 EXPRESSION_CLOSE    : '}}';
@@ -70,9 +70,11 @@ EXPRESSION_CLOSE    : '}}';
 COMMENT_OPEN        : '{#';
 COMMENT_CLOSE       : '#}';
 
-SP              : [ \t\f]+;
+STRING_LITERAL                           : STRING_LITERAL_SINGLE_QUOTE | STRING_LITERAL_DOUBLE_QUOTE;
+fragment STRING_LITERAL_SINGLE_QUOTE     : '\'' (~[\\\r\n"])* '\'';
+fragment STRING_LITERAL_DOUBLE_QUOTE     : '"' (~[\\\r\n"])* '"';
 
-IDENTIFIER      : [a-zA-Z_][a-zA-Z0-9_]*;
+SP              : [ \t\f]+;
 
 // Statement identifiers for built-in statements
 
@@ -82,4 +84,8 @@ STATEMENT_ID_INCLUDE    : 'include';
 STATEMENT_ID_RAW        : 'raw';
 STATEMENT_ID_SET        : 'set';
 
+STATEMENT_INCLUDE_IGNORE_MISSING    : 'ignore missing';
+STATEMENT_INCLUDE_WITH_CONTEXT      : 'with context';
+STATEMENT_INCLUDE_WITHOUT_CONTEXT   : 'without context';
+
 END_STATEMENT_ID_PREFIX    : 'end';
\ No newline at end of file