From 22267d0cb33f4092a8cb73201e83f60d7d1595f9 Mon Sep 17 00:00:00 2001 From: homedirectory Date: Mon, 12 Feb 2024 12:27:17 +0200 Subject: [PATCH] #2178 Add grammar rules for beginExpr()/endExpr() --- .../fielden/platform/eql/fling/EqlGrammar.java | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/platform-eql-grammar/src/main/java/fielden/platform/eql/fling/EqlGrammar.java b/platform-eql-grammar/src/main/java/fielden/platform/eql/fling/EqlGrammar.java index bb77064d7e..e5e4a10078 100644 --- a/platform-eql-grammar/src/main/java/fielden/platform/eql/fling/EqlGrammar.java +++ b/platform-eql-grammar/src/main/java/fielden/platform/eql/fling/EqlGrammar.java @@ -4,8 +4,7 @@ import com.google.googlejavaformat.java.FormatterException; import il.ac.technion.cs.fling.EBNF; import il.ac.technion.cs.fling.adapters.JavaMediator; -import il.ac.technion.cs.fling.internal.grammar.rules.Terminal; -import il.ac.technion.cs.fling.internal.grammar.rules.Variable; +import il.ac.technion.cs.fling.internal.grammar.rules.*; import ua.com.fielden.platform.entity.query.model.ExpressionModel; import ua.com.fielden.platform.entity.query.model.PrimitiveResultQueryModel; import ua.com.fielden.platform.processors.metamodel.IConvertableToPath; @@ -88,8 +87,8 @@ public enum V implements Variable { Operand, SingleOperand, MultiOperand, Prop, And, Or, Eq, Gt, Lt, - UnaryOperator, BinaryOperator, Val, AnyProp, ExtProp, Param, - Model + UnaryComparisonOperator, BinaryComparisonOperator, Val, AnyProp, ExtProp, Param, + ArithmeticalOperator, SingleOperandOrExpr, ExprBody, ArithmeticalExpr, Model } // Short names @@ -121,13 +120,16 @@ public enum V implements Variable { derive(AndCondition).to(Predicate, noneOrMore(and, AndCondition)). derive(Predicate).to(Operand, PredicateTail). - derive(PredicateTail).to(UnaryOperator).or(BinaryOperator, Operand). + derive(PredicateTail).to(UnaryComparisonOperator).or(BinaryComparisonOperator, Operand). - derive(UnaryOperator).to(isNull).or(isNotNull). - derive(BinaryOperator).to(eq).or(gt).or(lt).or(ge).or(le).or(like).or(iLike).or(notLike).or(notILike). + derive(UnaryComparisonOperator).to(isNull).or(isNotNull). + derive(BinaryComparisonOperator).to(eq).or(gt).or(lt).or(ge).or(le).or(like).or(iLike).or(notLike).or(notILike). - specialize(Operand).into(SingleOperand, MultiOperand). + specialize(Operand).into(SingleOperandOrExpr, MultiOperand). + derive(SingleOperandOrExpr).to(SingleOperand).or(beginExpr, ExprBody, endExpr). + derive(ExprBody).to(SingleOperandOrExpr, noneOrMore(ArithmeticalOperator, SingleOperandOrExpr)). + derive(ArithmeticalOperator).to(add).or(sub).or(div).or(mult).or(mod). derive(SingleOperand).to(AnyProp).or(Val).or(Param).or(now).or(expr.with(ExpressionModel.class)). specialize(AnyProp).into(Prop, ExtProp).