protected ATNConfigSet computeStartState(ATNState p,
										     RuleContext ctx,
										     boolean fullCtx)
	{
		// always at least the implicit call to start rule
		PredictionContext initialContext = PredictionContext.fromRuleContext(atn, ctx);
		ATNConfigSet configs = new ATNConfigSet(fullCtx);

		if ( trace_atn_sim )  {
			System.out.println("computeStartState from ATN state "+p+" initialContext="+initialContext.toString(parser));
		}

		for (int i=0; i<p.getNumberOfTransitions(); i++) {
			ATNState target = p.transition(i).target;
			ATNConfig c = new ATNConfig(target, i+1, initialContext);
			Set<ATNConfig> closureBusy = new HashSet<ATNConfig>();
			closure(c, configs, closureBusy, true, fullCtx, false);
		}

		return configs;
	}
Return a configuration set containing only the configurations from
{@code configs} which are in a {@link RuleStopState}. If all
configurations in {@code configs} are already in a rule stop state, this
method simply returns {@code configs}.

<p>When {@code lookToEndOfRule} is true, this method uses
{@link ATN#nextTokens} for each configuration in {@code configs} which is
not already in a rule stop state to see if a rule stop state is reachable
from the configuration via epsilon-only transitions.</p>

@param configs the configuration set to update
@param lookToEndOfRule when true, this method checks for rule stop states
reachable by epsilon-only transitions from each configuration in
{@code configs}.

@return {@code configs} if all configurations in {@code configs} are in a
rule stop state, otherwise return a new configuration set containing only
the configurations from {@code configs} which are in a rule stop state
runtime/Java/src/org/antlr/v4/runtime/atn/ParserATNSimulator.java