public IntervalSet[] getDecisionLookahead(ATNState s) {if ( s==null ) {return null;}IntervalSet[] look = new IntervalSet[s.getNumberOfTransitions()];for (int alt = 0; alt < s.getNumberOfTransitions(); alt++) {look[alt] = new IntervalSet();Set<ATNConfig> lookBusy = new HashSet<ATNConfig>();boolean seeThruPreds = false; _LOOK(s.transition(alt).target, null, PredictionContext.EMPTY,look[alt], lookBusy, new BitSet(), seeThruPreds, false);if ( look[alt].size()==0 || look[alt].contains(HIT_PRED) ) {look[alt] = null;}}return look;}

public virtual IntervalSet[] GetDecisionLookahead(ATNState s){if (s == null){return null;}IntervalSet[] look = new IntervalSet[s.NumberOfTransitions];for (int alt = 0; alt < s.NumberOfTransitions; alt++){look[alt] = new IntervalSet();HashSet<ATNConfig> lookBusy = new HashSet<ATNConfig>();bool seeThruPreds = false;Look(s.Transition(alt).target, null, PredictionContext.EMPTY, look[alt], lookBusy, new BitSet(), seeThruPreds, false);if (look[alt].Count == 0 || look[alt].Contains(HitPred)){look[alt] = null;}}return look;}
