Class MayRunProgramCode

java.lang.Object
org.ek9lang.compiler.support.sharing.MayRunProgramCode
All Implemented Interfaces:
BiPredicate<org.antlr.v4.runtime.tree.ParseTree, Function<org.antlr.v4.runtime.tree.ParseTree, ISymbol>>

public final class MayRunProgramCode extends Object implements BiPredicate<org.antlr.v4.runtime.tree.ParseTree, Function<org.antlr.v4.runtime.tree.ParseTree, ISymbol>>
May the call (or stream stage operand) call run code of the program's own - something that is not pure and not a concrete built-in? Such code may change any object it can reach, an object kept where the caller cannot name it included. A stage operand that is not a function (a sink variable, a count) runs nothing. What it can then change is ReachOfCall.
  • Constructor Details

    • MayRunProgramCode

      public MayRunProgramCode()
  • Method Details

    • test

      public boolean test(org.antlr.v4.runtime.tree.ParseTree call, Function<org.antlr.v4.runtime.tree.ParseTree, ISymbol> recorded)
      Specified by:
      test in interface BiPredicate<org.antlr.v4.runtime.tree.ParseTree, Function<org.antlr.v4.runtime.tree.ParseTree, ISymbol>>