Currently Yoakke chokes on large and complex expressions. The longer expression the more time Yoakke need to parse it.
I think somehow it should support PEG grammars.
[Rule("inclusive_OR_expression: inclusive_OR_expression '|' exclusive_OR_expression")]
private static ExpressionType MakeBitwiseOrExpression(ExpressionType a, ICToken @operator, ExpressionType b)
[Rule("logical_AND_expression: logical_AND_expression '&&' inclusive_OR_expression")]
private static ExpressionType MakeLogicalAndExpression(Expression a, ICToken @operator, ExpressionType b)
[Rule("inclusive_OR_expression: exclusive_OR_expression")]
[Rule("logical_AND_expression: inclusive_OR_expression")]
private static ExpressionType CreateExpressionIdentity(ExpressionType expression)
We know that this is some PEG over terminal exclusive_OR_expression. For trigger PEG encoding following conditions must be met.
- Shared result type
ExpressionType for expression rules (logical_AND_expression and inclusive_OR_expression) and expression terminal rules (exclusive_OR_expression).
- All expression rules can be represented in form of
other_expression_literal: expression_literal (...... terminals, expression terminals and another expression_literals)?
- There should not(?) be recursive loops in the grammar descriptions.
Currently Yoakke chokes on large and complex expressions. The longer expression the more time Yoakke need to parse it.
I think somehow it should support PEG grammars.
We know that this is some PEG over terminal
exclusive_OR_expression. For trigger PEG encoding following conditions must be met.ExpressionTypefor expression rules (logical_AND_expressionandinclusive_OR_expression) and expression terminal rules (exclusive_OR_expression).other_expression_literal: expression_literal (...... terminals, expression terminals and another expression_literals)?