static int leastCodePointOf(ImmutableRangeSet<Integer> cps) { for (Range<Integer> range : cps.asRanges()) { if (range.hasLowerBound()) { int least = range.lowerEndpoint(); if (cps.contains(least)) { return least; } // Handle the case where we've got a left-open first range. ++least; if (cps.contains(least)) { return least; } } } return -1; }
@Override public ImmutableRangeSet<Integer> lookahead(Language lang) { Frequency ff = lang.lali.consumesInput(first); switch (ff) { case NEVER: return lang.lali.lookahead(second); case ALWAYS: return lang.lali.lookahead(first); case SOMETIMES: TreeRangeSet<Integer> r = TreeRangeSet.create(); r.addAll(lang.lali.lookahead(first)); r.addAll(lang.lali.lookahead(second)); return ImmutableRangeSet.copyOf(r); } throw new AssertionError(ff.name()); }
public FileToFormat(RangeSet<Integer> lineRanges, List<Integer> offsets, List<Integer> lengths) { this.lineRanges = ImmutableRangeSet.copyOf(lineRanges); this.offsets = ImmutableList.copyOf(offsets); this.lengths = ImmutableList.copyOf(lengths); }