UNPKG

antlr4ng

Version:

Alternative JavaScript/TypeScript runtime for ANTLR4

56 lines (55 loc) 2.39 kB
/** An immutable inclusive interval a..b */ export declare class Interval { static INVALID_INTERVAL: Interval; static INTERVAL_POOL_MAX_VALUE: number; private static cache; readonly start: number; readonly stop: number; private cachedHashCode; constructor(start: number, stop: number); /** * Creates a new interval from the given values. * * 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). * * @param a The start of the interval. * @param b The end of the interval (inclusive). * * @returns A cached or new interval. */ static of(a: number, b: number): Interval; equals(o: Interval): boolean; hashCode(): number; /** Does this start completely before other? Disjoint */ startsBeforeDisjoint(other: Interval): boolean; /** Does this start at or before other? Nondisjoint */ startsBeforeNonDisjoint(other: Interval): boolean; /** Does this.start start after other.stop? May or may not be disjoint */ startsAfter(other: Interval): boolean; /** Does this start completely after other? Disjoint */ startsAfterDisjoint(other: Interval): boolean; /** Does this start after other? NonDisjoint */ startsAfterNonDisjoint(other: Interval): boolean; /** Are both ranges disjoint? I.e., no overlap? */ disjoint(other: Interval): boolean; /** Are two intervals adjacent such as 0..41 and 42..42? */ adjacent(other: Interval): boolean; properlyContains(other: Interval): boolean; /** Return the interval computed from combining this and other */ union(other: Interval): Interval; /** Return the interval in common between this and o */ intersection(other: Interval): Interval; /** * 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. */ differenceNotProperlyContained(other: Interval): Interval | null; toString(): string; get length(): number; }