Class AcceptableExpressionComplexityOrError

java.lang.Object
org.ek9lang.compiler.phase5.AcceptableExpressionComplexityOrError
All Implemented Interfaces:
Consumer<org.antlr.v4.runtime.tree.ParseTree>

class AcceptableExpressionComplexityOrError extends Object implements Consumer<org.antlr.v4.runtime.tree.ParseTree>
Checks expression complexity when a coalescing expression tree completes. Emits E11013 error if complexity exceeds threshold. Also adds expression complexity to method-level complexity counter.

With base costs of 1-2 and multiplier of 3^(depth-1), threshold of 15:

  • Single operators at depth 1: 1-2 points - always pass
  • Two nested operators: ~5 points - pass
  • Three nested operators: ~17 points - flag for refactoring

This encourages developers to extract intermediate variables for deeply nested coalescing expressions, improving code readability while the compiler can optimize the intermediate variables back together if needed.

  • Constructor Details

  • Method Details

    • accept

      public void accept(org.antlr.v4.runtime.tree.ParseTree node)
      Specified by:
      accept in interface Consumer<org.antlr.v4.runtime.tree.ParseTree>