C# Class Antlr4.Runtime.Misc.IntervalSet

A set of integers that relies on ranges being common to do "run-length-encoded" like compression (if you view an IntSet like a BitSet with runs of 0s and 1s).
A set of integers that relies on ranges being common to do "run-length-encoded" like compression (if you view an IntSet like a BitSet with runs of 0s and 1s). Only ranges are recorded so that a few ints up near value 1000 don't cause massive bitsets, just two integer intervals. element values may be negative. Useful for sets of EPSILON and EOF. 0..9 char range is index pair ['\u0030','\u0039']. Multiple ranges are encoded with multiple index pairs. Isolated elements are encoded with an index pair where both intervals are the same. The ranges are ordered and disjoint so that 2..6 appears before 101..103.
Inheritance: IIntSet
Datei anzeigen Open project: antlr/antlr4 Class Usage Examples

Public Properties

Property Type Description
CompleteCharSet Antlr4.Runtime.Misc.IntervalSet
EmptySet Antlr4.Runtime.Misc.IntervalSet

Protected Properties

Property Type Description
@readonly bool
intervals IList

Public Methods

Method Description
Add ( int el ) : void

Add a single element to the set.

Add a single element to the set. An isolated element is stored as a range el..el.

Add ( int a, int b ) : void

Add interval; i.e., add all integers from a to b to set.

Add interval; i.e., add all integers from a to b to set. If b<a, do nothing. Keep list in sorted order (by left range value). If overlap, combine ranges. For example, If this is {1..5, 10..20}, adding 6..7 yields {1..5, 6..7, 10..20}. Adding 4..8 yields {1..8, 10..20}.

AddAll ( IIntSet set ) : Antlr4.Runtime.Misc.IntervalSet
And ( IIntSet other ) : Antlr4.Runtime.Misc.IntervalSet

Clear ( ) : void
Complement ( IIntSet vocabulary ) : Antlr4.Runtime.Misc.IntervalSet

Complement ( int minElement, int maxElement ) : Antlr4.Runtime.Misc.IntervalSet
Contains ( int el ) : bool

Equals ( object obj ) : bool

Are two IntervalSets equal? Because all intervals are sorted and disjoint, equals is a simple linear walk over both lists to make sure they are the same.

Are two IntervalSets equal? Because all intervals are sorted and disjoint, equals is a simple linear walk over both lists to make sure they are the same. Interval.equals() is used by the List.equals() method to check the ranges.

GetHashCode ( ) : int
GetIntervals ( ) : IList

Return a list of Interval objects.

Return a list of Interval objects.

IntervalSet ( Antlr4 set ) : System
IntervalSet ( IList intervals ) : System
Of ( int a, int b ) : Antlr4.Runtime.Misc.IntervalSet

Create a set with all ints within range [a..b] (inclusive)

Or ( Antlr4 sets ) : Antlr4.Runtime.Misc.IntervalSet

combine all sets in the array returned the or'd value

Or ( IIntSet a ) : Antlr4.Runtime.Misc.IntervalSet
Remove ( int el ) : void
SetReadonly ( bool @readonly ) : void
Subtract ( IIntSet a ) : Antlr4.Runtime.Misc.IntervalSet
ToArray ( ) : int[]
ToIntegerList ( ) : ArrayList
ToList ( ) : IList
ToSet ( ) : HashSet
ToString ( ) : string
ToString ( IVocabulary vocabulary ) : string
ToString ( bool elemAreChar ) : string

Protected Methods

Method Description
Add ( Interval addition ) : void

Private Methods

Method Description
ElementName ( IVocabulary vocabulary, int a ) : string
IIntSet ( IIntSet set ) : IIntSet
IntervalSet ( ) : System
Of ( int a ) : Antlr4.Runtime.Misc.IntervalSet
Subtract ( Antlr4 left, Antlr4 right ) : Antlr4.Runtime.Misc.IntervalSet

Method Details

Add() protected method

protected Add ( Interval addition ) : void
addition Interval
return void

Add() public method

Add a single element to the set.
Add a single element to the set. An isolated element is stored as a range el..el.
public Add ( int el ) : void
el int
return void

Add() public method

Add interval; i.e., add all integers from a to b to set.
Add interval; i.e., add all integers from a to b to set. If b<a, do nothing. Keep list in sorted order (by left range value). If overlap, combine ranges. For example, If this is {1..5, 10..20}, adding 6..7 yields {1..5, 6..7, 10..20}. Adding 4..8 yields {1..8, 10..20}.
public Add ( int a, int b ) : void
a int
b int
return void

AddAll() public method

public AddAll ( IIntSet set ) : Antlr4.Runtime.Misc.IntervalSet
set IIntSet
return Antlr4.Runtime.Misc.IntervalSet

And() public method

public And ( IIntSet other ) : Antlr4.Runtime.Misc.IntervalSet
other IIntSet
return Antlr4.Runtime.Misc.IntervalSet

Clear() public method

public Clear ( ) : void
return void

Complement() public method

public Complement ( IIntSet vocabulary ) : Antlr4.Runtime.Misc.IntervalSet
vocabulary IIntSet
return Antlr4.Runtime.Misc.IntervalSet

Complement() public method

public Complement ( int minElement, int maxElement ) : Antlr4.Runtime.Misc.IntervalSet
minElement int
maxElement int
return Antlr4.Runtime.Misc.IntervalSet

Contains() public method

public Contains ( int el ) : bool
el int
return bool

Equals() public method

Are two IntervalSets equal? Because all intervals are sorted and disjoint, equals is a simple linear walk over both lists to make sure they are the same.
Are two IntervalSets equal? Because all intervals are sorted and disjoint, equals is a simple linear walk over both lists to make sure they are the same. Interval.equals() is used by the List.equals() method to check the ranges.
public Equals ( object obj ) : bool
obj object
return bool

GetHashCode() public method

public GetHashCode ( ) : int
return int

GetIntervals() public method

Return a list of Interval objects.
Return a list of Interval objects.
public GetIntervals ( ) : IList
return IList

IntervalSet() public method

public IntervalSet ( Antlr4 set ) : System
set Antlr4
return System

IntervalSet() public method

public IntervalSet ( IList intervals ) : System
intervals IList
return System

Of() public static method

Create a set with all ints within range [a..b] (inclusive)
public static Of ( int a, int b ) : Antlr4.Runtime.Misc.IntervalSet
a int
b int
return Antlr4.Runtime.Misc.IntervalSet

Or() public static method

combine all sets in the array returned the or'd value
public static Or ( Antlr4 sets ) : Antlr4.Runtime.Misc.IntervalSet
sets Antlr4
return Antlr4.Runtime.Misc.IntervalSet

Or() public method

public Or ( IIntSet a ) : Antlr4.Runtime.Misc.IntervalSet
a IIntSet
return Antlr4.Runtime.Misc.IntervalSet

Remove() public method

public Remove ( int el ) : void
el int
return void

SetReadonly() public method

public SetReadonly ( bool @readonly ) : void
@readonly bool
return void

Subtract() public method

public Subtract ( IIntSet a ) : Antlr4.Runtime.Misc.IntervalSet
a IIntSet
return Antlr4.Runtime.Misc.IntervalSet

ToArray() public method

public ToArray ( ) : int[]
return int[]

ToIntegerList() public method

public ToIntegerList ( ) : ArrayList
return ArrayList

ToList() public method

public ToList ( ) : IList
return IList

ToSet() public method

public ToSet ( ) : HashSet
return HashSet

ToString() public method

public ToString ( ) : string
return string

ToString() public method

public ToString ( IVocabulary vocabulary ) : string
vocabulary IVocabulary
return string

ToString() public method

public ToString ( bool elemAreChar ) : string
elemAreChar bool
return string

Property Details

@readonly protected_oe property

protected bool @readonly
return bool

CompleteCharSet public_oe static_oe property

public static Antlr4.Runtime.Misc.IntervalSet CompleteCharSet
return Antlr4.Runtime.Misc.IntervalSet

EmptySet public_oe static_oe property

public static Antlr4.Runtime.Misc.IntervalSet EmptySet
return Antlr4.Runtime.Misc.IntervalSet

intervals protected_oe property

The list of sorted, disjoint intervals.
The list of sorted, disjoint intervals.
protected IList intervals
return IList