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.