Enhanced C#
Language of your choice: library documentation
|
An immutable set that implements IPGTerminalSet so that it can be used by LLParserGenerator. More...
An immutable set that implements IPGTerminalSet so that it can be used by LLParserGenerator.
This class effectively represents any type of set. It is used by GeneralCodeGenHelper.
Public static fields | |
static readonly LNode | EOF_node = GeneralCodeGenHelper.EOF |
static new readonly PGNodeSet | Empty = new PGNodeSet(Set<LNode>.Empty) |
static new readonly PGNodeSet | All = new PGNodeSet(InvertibleSet<LNode>.All) |
static readonly PGNodeSet | AllExceptEOF = new PGNodeSet(InvertibleSet<LNode>.All.Without(EOF_node)) |
Public static fields inherited from Loyc.Collections.InvertibleSet< LNode > | |
static readonly InvertibleSet< T > | Empty |
static readonly InvertibleSet< T > | All |
Properties | |
bool | ContainsEOF [get] |
char? | ExampleChar [get] |
Properties inherited from Loyc.Collections.InvertibleSet< LNode > | |
Set< T > | BaseSet [get] |
bool | IsInverted [get] |
bool | IsEmpty [get] |
bool | ContainsEverything [get] |
Properties inherited from Loyc.LLParserGenerator.IPGTerminalSet | |
bool | IsInverted [get] |
bool | ContainsEOF [get] |
bool | IsEmptySet [get] |
bool | ContainsEverything [get] |
IPGTerminalSet | Empty [get] |
Returns the empty set. More... | |
Public Member Functions | |
PGNodeSet (Set< LNode > set, bool inverted=false) | |
PGNodeSet (InvertibleSet< LNode > set) | |
PGNodeSet (IEnumerable< LNode > list, bool inverted=false) | |
PGNodeSet (params LNode[] list) | |
IPGTerminalSet | UnionCore (IPGTerminalSet other) |
Merges two sets. More... | |
PGNodeSet | Intersect (PGNodeSet other, bool subtract=false, bool subtractThis=false) |
IPGTerminalSet | WithEOF (bool wantEOF=true) |
Adds or removes EOF from the set. If the set doesn't change, this method may return this. More... | |
IPGTerminalSet | Optimize (IPGTerminalSet dontcare) |
bool | Equals (IPGTerminalSet other) |
override string | ToString () |
Public Member Functions inherited from Loyc.Collections.InvertibleSet< LNode > | |
InvertibleSet< T > | With (T item) |
InvertibleSet< T > | Without (T item) |
InvertibleSet (Set< T > set, bool inverted) | |
InvertibleSet (IEnumerable< T > list, bool inverted=false) | |
InvertibleSet (IEnumerable< T > list, IEqualityComparer< T > comparer, bool inverted=false) | |
InvertibleSet< T > | Inverted () |
bool | Contains (T item) |
InvertibleSet< T > | Union (InvertibleSet< T > other) |
InvertibleSet< T > | Intersect (InvertibleSet< T > other) |
InvertibleSet< T > | Intersect (InvertibleSet< T > other, bool subtractOther) |
InvertibleSet< T > | Except (InvertibleSet< T > other) |
InvertibleSet< T > | Xor (InvertibleSet< T > other) |
override int | GetHashCode () |
override bool | Equals (object obj) |
bool | IsSubsetOf (InvertibleSet< T > other) |
TODO NOT IMPLEMENTED Returns true if all items in this set are present in the other set. More... | |
bool | IsSupersetOf (InvertibleSet< T > other) |
TODO NOT IMPLEMENTED Returns true if all items in the other set are present in this set. More... | |
bool | Overlaps (InvertibleSet< T > other) |
TODO NOT IMPLEMENTED Returns true if this set contains at least one item from 'other'. More... | |
bool | IsProperSubsetOf (InvertibleSet< T > other) |
bool | IsProperSupersetOf (InvertibleSet< T > other) |
bool | SetEquals (InvertibleSet< T > other) |
Additional Inherited Members | |
Static Public Member Functions inherited from Loyc.Collections.InvertibleSet< LNode > | |
static InvertibleSet< T > | With (params T[] list) |
static InvertibleSet< T > | Without (params T[] list) |
Protected Member Functions inherited from Loyc.Collections.InvertibleSet< LNode > | |
InvertibleSet< T > | With (T item, bool removed) |
|
inline |
Merges two sets.
Implements Loyc.LLParserGenerator.IPGTerminalSet.
|
inline |
Adds or removes EOF from the set. If the set doesn't change, this method may return this.
Implements Loyc.LLParserGenerator.IPGTerminalSet.