From 72252bca20db43819fdab1de0c577449f63ff53e Mon Sep 17 00:00:00 2001 From: Christian Date: Wed, 21 Aug 2024 10:35:49 +0200 Subject: [PATCH] feat: add support for camunda variable escaping extension fixes #36 --- src/feel.grammar | 6 +++++- test/expressions.txt | 15 +++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/feel.grammar b/src/feel.grammar index 3d7dd41..691524b 100644 --- a/src/feel.grammar +++ b/src/feel.grammar @@ -323,7 +323,7 @@ Identifier { } VariableName { - (!name Identifier ~ident)+ + (!name Identifier ~ident)+ | backtickIdentifier } AdditionalIdentifier[@name=Identifier] { @@ -453,6 +453,10 @@ commaSep { (digits ("." digits)? | "." digits) } + backtickIdentifier { + "`" (![\\\n`] | "\\" _)* "`" + } + @precedence { BlockComment, LineComment, divide } @precedence { diff --git a/test/expressions.txt b/test/expressions.txt index 1525c2b..bb7cb17 100644 --- a/test/expressions.txt +++ b/test/expressions.txt @@ -2619,4 +2619,19 @@ foo[[[[[[[(1..10).start included]]]]]]] Expression( FilterExpression(VariableName(...), List(...)) +) + + +# Camunda escape character { "top": "Expressions" } + +`foo`; +foo.`bar`; +foo.`bar-baz`; + +==> + +Expressions( + VariableName(...), + PathExpression(VariableName(...), VariableName(...)), + PathExpression(VariableName(...), VariableName(...)) ) \ No newline at end of file