InterpreterRuleContext that knows which alternative for a rule was matched.
ParserInterpreter that creates parse trees that track alternative numbers for subtree roots.
BailErrorStrategy as consume() constructs trees.