/** * Compute the set of valid tokens that can occur starting in {@code s} and * staying in same rule. {@link Token#EPSILON} is in set if we reach end of * rule. */ public IntervalSet nextTokens(ATNState s) { if ( s.nextTokenWithinRule != null ) return s.nextTokenWithinRule; s.nextTokenWithinRule = nextTokens(s, null); s.nextTokenWithinRule.setReadonly(true); return s.nextTokenWithinRule; }
/** * Compute the set of valid tokens that can occur starting in {@code s} and * staying in same rule. {@link Token#EPSILON} is in set if we reach end of * rule. */ public IntervalSet nextTokens(ATNState s) { if ( s.nextTokenWithinRule != null ) return s.nextTokenWithinRule; s.nextTokenWithinRule = nextTokens(s, null); s.nextTokenWithinRule.setReadonly(true); return s.nextTokenWithinRule; }
/** * Compute the set of valid tokens that can occur starting in {@code s} and * staying in same rule. {@link Token#EPSILON} is in set if we reach end of * rule. */ public IntervalSet nextTokens(ATNState s) { if ( s.nextTokenWithinRule != null ) return s.nextTokenWithinRule; s.nextTokenWithinRule = nextTokens(s, null); s.nextTokenWithinRule.setReadonly(true); return s.nextTokenWithinRule; }
/** * Compute the set of valid tokens that can occur starting in {@code s} and * staying in same rule. {@link Token#EPSILON} is in set if we reach end of * rule. */ public IntervalSet nextTokens(ATNState s) { if ( s.nextTokenWithinRule != null ) return s.nextTokenWithinRule; s.nextTokenWithinRule = nextTokens(s, null); s.nextTokenWithinRule.setReadonly(true); return s.nextTokenWithinRule; }
/** * Compute the set of valid tokens that can occur starting in {@code s} and * staying in same rule. {@link Token#EPSILON} is in set if we reach end of * rule. */ @NotNull public IntervalSet nextTokens(@NotNull ATNState s) { if ( s.nextTokenWithinRule != null ) return s.nextTokenWithinRule; s.nextTokenWithinRule = nextTokens(s, PredictionContext.EMPTY_LOCAL); s.nextTokenWithinRule.setReadonly(true); return s.nextTokenWithinRule; }