org.antlr.misc
Class Interval

java.lang.Object
  extended by org.antlr.misc.Interval

public class Interval
extends java.lang.Object

An immutable inclusive interval a..b


Field Summary
 int a
           
 int b
           
static int creates
           
static int hits
           
static int INTERVAL_POOL_MAX_VALUE
           
static int misses
           
static int outOfRange
           
 
Constructor Summary
Interval(int a, int b)
           
 
Method Summary
 boolean adjacent(Interval other)
          Are two intervals adjacent such as 0..41 and 42..42?
static Interval create(int a, int b)
          Interval objects are used readonly so share all with the same single value a==b up to some max size.
 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(java.lang.Object o)
           
 Interval intersection(Interval other)
          Return the interval in common between this and o
 boolean properlyContains(Interval other)
           
 boolean startsAfter(Interval other)
          Does this.a start after other.b? May or may not be disjoint
 boolean startsAfterDisjoint(Interval other)
          Does this start completely after other? Disjoint
 boolean startsAfterNonDisjoint(Interval other)
          Does this start after other? NonDisjoint
 boolean startsBeforeDisjoint(Interval other)
          Does this start completely before other? Disjoint
 boolean startsBeforeNonDisjoint(Interval other)
          Does this start at or before other? Nondisjoint
 java.lang.String toString()
           
 Interval union(Interval other)
          Return the interval computed from combining this and other
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

INTERVAL_POOL_MAX_VALUE

public static final int INTERVAL_POOL_MAX_VALUE
See Also:
Constant Field Values

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
Constructor Detail

Interval

public Interval(int a,
                int b)
Method Detail

create

public static Interval create(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.g, 218623 IntervalSets have a..a (set with 1 element).


equals

public boolean equals(java.lang.Object o)
Overrides:
equals in class java.lang.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 java.lang.String toString()
Overrides:
toString in class java.lang.Object