Enhanced C#
Language of your choice: library documentation
Public static fields | Properties | Public Member Functions | List of all members
Loyc.LLParserGenerator.PGNodeSet Class Reference

An immutable set that implements IPGTerminalSet so that it can be used by LLParserGenerator. More...


Source file:
Inheritance diagram for Loyc.LLParserGenerator.PGNodeSet:
Loyc.Collections.InvertibleSet< LNode > Loyc.LLParserGenerator.IPGTerminalSet

Remarks

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)
 

Member Function Documentation

IPGTerminalSet Loyc.LLParserGenerator.PGNodeSet.UnionCore ( IPGTerminalSet  other)
inline

Merges two sets.

Returns
The combination of the two sets, or null if other's type is not supported.

Implements Loyc.LLParserGenerator.IPGTerminalSet.

References Loyc.LLParserGenerator.IPGTerminalSet.IntersectionCore().

IPGTerminalSet Loyc.LLParserGenerator.PGNodeSet.WithEOF ( bool  wantEOF = true)
inline

Adds or removes EOF from the set. If the set doesn't change, this method may return this.

Implements Loyc.LLParserGenerator.IPGTerminalSet.

References Loyc.LLParserGenerator.IPGTerminalSet.Empty, Loyc.Syntax.ParsingMode.Expressions, and Loyc.LLParserGenerator.IPGTerminalSet.Inverted().