From a7374b4dad804c97fc0682b016df824cfe3fe2e7 Mon Sep 17 00:00:00 2001 From: Kevin Date: Wed, 22 May 2024 12:27:59 -0400 Subject: [PATCH] Baisc support for blocks --- grammar/jinja.ohm | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/grammar/jinja.ohm b/grammar/jinja.ohm index c5f49ffb..0f4f10d9 100644 --- a/grammar/jinja.ohm +++ b/grammar/jinja.ohm @@ -7,7 +7,27 @@ Jinja { expression = inlineStatement + | blockStatement + + blockStatement + = blockStatement_open expressions blockStatement_close + + blockStatement_open + = statementOpen sp? blockStatementOpenContent sp? statementClose + + blockStatementOpenContent + = statement_block + blockStatement_close + = statementOpen sp? blockStatementCloseContent sp? statementClose + + blockStatementCloseContent + = statementEnd_block + | blockStatementCloseContent_generic + + blockStatementCloseContent_generic + = blockStatementId_end blockStatementId_list + inlineStatement = statementOpen sp? inlineStatementContent sp? statementClose @@ -17,6 +37,12 @@ Jinja { | statement_import | statement_include + statement_block + = statementId_block sp identifier (sp contextModifier_scoped)? (sp contextModifier_required)? + + statementEnd_block + = blockStatementId_end statementId_block (sp identifier)? + statement_extends = statementId_extends sp statementExtends_file @@ -51,13 +77,22 @@ Jinja { statementOpen = "{%" statementClose = "%}" - statementId_extends = "extends" + statementId_block = "block" + statementId_extends = "extends" statementId_from = "from" statementId_import = "import" statementId_include = "include" + blockStatementId_list + = statementId_block + + blockStatementId_end = "end" + statementModifier_as = "as" + contextModifier_scoped = "scoped" + contextModifier_required = "required" + importOptions_ignoreMissing = "ignore missing" importOptions_contextManagement = importOptions_withContext | importOptions_withoutContext importOptions_withContext = "with context" -- 2.47.2