eval method

  1. @override
bool eval(
  1. Recognizer<ATNSimulator> parser,
  2. RuleContext? parserCallStack
)
override

For context independent predicates, we evaluate them without a local context (i.e., null context). That way, we can evaluate them without having to create proper rule-specific context during prediction (as opposed to the parser, which creates them naturally). In a practical sense, this avoids a cast exception from RuleContext to myruleContext.

For context dependent predicates, we must pass in a local context so that references such as $arg evaluate properly as _localctx.arg. We only capture context dependent predicates in the context in which we begin prediction, so we passed in the outer context here in case of context dependent predicate evaluation.

Implementation

@override
bool eval(Recognizer<ATNSimulator> parser, RuleContext? parserCallStack) {
  return false;
}