case ATNState.RULE_STOP : if ( _ctx.isEmpty() ) { if (startRuleStartState.isLeftRecursiveRule) { ParserRuleContext result = _ctx;
protected final ParserRuleContext skipTailCalls(ParserRuleContext context) { if (!optimize_tail_calls) { return context; } while (!context.isEmpty()) { ATNState state = atn.states.get(context.invokingState); assert state.getNumberOfTransitions() == 1 && state.transition(0).getSerializationType() == Transition.RULE; RuleTransition transition = (RuleTransition)state.transition(0); if (!transition.tailCall) { break; } context = context.getParent(); } return context; }
case ATNState.RULE_STOP : if ( _ctx.isEmpty() ) { if (startRuleStartState.isPrecedenceRule) { ParserRuleContext result = _ctx;
case ATNState.RULE_STOP : if ( _ctx.isEmpty() ) { if (startRuleStartState.isLeftRecursiveRule) { ParserRuleContext result = _ctx;
case ATNState.RULE_STOP : if ( _ctx.isEmpty() ) { if (startRuleStartState.isLeftRecursiveRule) { ParserRuleContext result = _ctx;
case ATNState.RULE_STOP : if ( _ctx.isEmpty() ) { if (startRuleStartState.isPrecedenceRule) { ParserRuleContext result = _ctx;
remainingContext = skipTailCalls(remainingContext); s0 = s0.getContextTarget(getReturnState(remainingContext)); if (remainingContext.isEmpty()) { assert s0 == null || !s0.isContextSensitive();
if (remainingGlobalContext.isEmpty()) { remainingGlobalContext = null; } else {
if (!enable_global_context_dfa) { while (remainingGlobalContext != null) { if (remainingGlobalContext.isEmpty()) { previousContext = PredictionContext.EMPTY_FULL_STATE_KEY; remainingGlobalContext = null; DFAState next; remainingGlobalContext = skipTailCalls(remainingGlobalContext); if (remainingGlobalContext.isEmpty()) { next = s0.getContextTarget(PredictionContext.EMPTY_FULL_STATE_KEY); previousContext = PredictionContext.EMPTY_FULL_STATE_KEY; int nextContextElement = getReturnState(remainingGlobalContext); if (remainingGlobalContext.isEmpty()) { remainingGlobalContext = null; } else {