Class Interval

java.lang.Object
org.antlr.v4.runtime.misc.Interval

public class Interval extends Object
An immutable inclusive interval a..b
  • Field Details

    • INTERVAL_POOL_MAX_VALUE

      public static final int INTERVAL_POOL_MAX_VALUE
      See Also:
    • INVALID

      public static final Interval INVALID
    • cache

      static final Interval[] cache
    • a

      public int a
    • b

      public int b
  • Constructor Details

    • Interval

      public Interval(int a, int b)
  • Method Details

    • of

      public static Interval of(int a, int b)
      Interval objects are used readonly so share all with the same single value a==b up to some max size. Use an array as a perfect hash. Return shared object for 0..INTERVAL_POOL_MAX_VALUE or a new Interval object with a..a in it. On Java.g4, 218623 IntervalSets have a..a (set with 1 element).
    • length

      public int length()
      return number of elements between a and b inclusively. x..x is length 1. if b < a, then length is 0. 9..10 has length 2.
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • startsBeforeDisjoint

      public boolean startsBeforeDisjoint(Interval other)
      Does this start completely before other? Disjoint
    • startsBeforeNonDisjoint

      public boolean startsBeforeNonDisjoint(Interval other)
      Does this start at or before other? Nondisjoint
    • startsAfter

      public boolean startsAfter(Interval other)
      Does this.a start after other.b? May or may not be disjoint
    • startsAfterDisjoint

      public boolean startsAfterDisjoint(Interval other)
      Does this start completely after other? Disjoint
    • startsAfterNonDisjoint

      public boolean startsAfterNonDisjoint(Interval other)
      Does this start after other? NonDisjoint
    • disjoint

      public boolean disjoint(Interval other)
      Are both ranges disjoint? I.e., no overlap?
    • adjacent

      public boolean adjacent(Interval other)
      Are two intervals adjacent such as 0..41 and 42..42?
    • properlyContains

      public boolean properlyContains(Interval other)
    • union

      public Interval union(Interval other)
      Return the interval computed from combining this and other
    • intersection

      public Interval intersection(Interval other)
      Return the interval in common between this and o
    • differenceNotProperlyContained

      public Interval differenceNotProperlyContained(Interval other)
      Return the interval with elements from this not in other; other must not be totally enclosed (properly contained) within this, which would result in two disjoint intervals instead of the single one returned by this method.
    • toString

      public String toString()
      Overrides:
      toString in class Object