Package org.antlr.v4.runtime.misc
Class Interval
- java.lang.Object
-
- org.antlr.v4.runtime.misc.Interval
-
public class Interval extends Object
An immutable inclusive interval a..b
-
-
Field Summary
Fields Modifier and Type Field Description int
a
int
b
static int
creates
static int
hits
static int
INTERVAL_POOL_MAX_VALUE
static Interval
INVALID
static int
misses
static int
outOfRange
-
Constructor Summary
Constructors Constructor Description Interval(int a, int b)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
adjacent(Interval other)
Are two intervals adjacent such as 0..41 and 42..42?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.boolean
disjoint(Interval other)
Are both ranges disjoint? I.e., no overlap?boolean
equals(Object o)
int
hashCode()
Interval
intersection(Interval other)
Return the interval in common between this and oint
length()
return number of elements between a and b inclusively.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.boolean
properlyContains(Interval other)
boolean
startsAfter(Interval other)
Does this.a start after other.b? May or may not be disjointboolean
startsAfterDisjoint(Interval other)
Does this start completely after other? Disjointboolean
startsAfterNonDisjoint(Interval other)
Does this start after other? NonDisjointboolean
startsBeforeDisjoint(Interval other)
Does this start completely before other? Disjointboolean
startsBeforeNonDisjoint(Interval other)
Does this start at or before other? NondisjointString
toString()
Interval
union(Interval other)
Return the interval computed from combining this and other
-
-
-
Field Detail
-
INTERVAL_POOL_MAX_VALUE
public static final int INTERVAL_POOL_MAX_VALUE
- See Also:
- Constant Field Values
-
INVALID
public static final Interval INVALID
-
a
public int a
-
b
public int b
-
creates
public static int creates
-
misses
public static int misses
-
hits
public static int hits
-
outOfRange
public static int outOfRange
-
-
Method Detail
-
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.
-
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.
-
-