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.

