Enhanced C#
Language of your choice: library documentation

Documentation moved to ecsharp.net

GitHub doesn't support HTTP redirects, so you'll be redirected in 3 seconds.

 All Classes Namespaces Functions Variables Enumerations Enumerator Properties Events Pages
Public fields | Properties | Public Member Functions | List of all members
Loyc.LLParserGenerator.AndPred Class Reference

Represents a zero-width assertion: either user-defined code to check a condition, or a predicate that scans ahead in the input and then backtracks to the starting point. More...


Source file:
Inheritance diagram for Loyc.LLParserGenerator.AndPred:
Loyc.LLParserGenerator.Pred Loyc.ICloneable< out T > Loyc.IHasLocation

Remarks

Represents a zero-width assertion: either user-defined code to check a condition, or a predicate that scans ahead in the input and then backtracks to the starting point.

Public fields

new bool Not = false
 Inverts the condition if Not==true, so that if the Pred matches, the AndPred does not match, and vice versa. More...
 
bool Local = false
 A local and-predicate cannot be hoisted into calling rules. More...
 
object Pred
 The predicate to match and backtrack. Must be of type LNode or Pred. More...
 
bool Prematched
 
- Public fields inherited from Loyc.LLParserGenerator.Pred
LNode PreAction
 
LNode PostAction
 
Symbol VarLabel
 
bool VarIsList
 
Func< LNode, LNodeResultSaver
 A function that saves the result produced by the matching code of this predicate (null if the result is not saved). For example, if the parser generator is given the predicate @[ x='a'..'z' ], the default matching code will be @(Match('a', 'z')), and ResultSaver will be set to a function that receives this matching code and returns @(x = Match('a', 'z')) in response. More...
 

Properties

bool PredUsesLA [get]
 Returns true if Pred contains $LA. More...
 
override bool IsNullable [get]
 
- Properties inherited from Loyc.LLParserGenerator.Pred
LNode Basis [get, set]
 
abstract bool IsNullable [get]
 Returns true if this predicate can match an empty input. More...
 
object Location [get]
 
- Properties inherited from Loyc.IHasLocation
object Location [get]
 

Public Member Functions

override void Call (PredVisitor visitor)
 
 AndPred (LNode basis, object pred, bool not, bool local=false)
 
override Pred Clone ()
 Deep-clones a predicate tree. Terminal sets and Nodes referenced by the tree are not cloned; the clone's value of Next will be null. The same Pred cannot appear in two places in a tree, so you must clone before re-use. More...
 
override string ToString ()
 
bool Equals (AndPred other)
 
override bool Equals (object obj)
 
override int GetHashCode ()
 
- Public Member Functions inherited from Loyc.LLParserGenerator.Pred
 Pred (LNode basis)
 
LNode AutoSaveResult (LNode matchingCode)
 
string ToStringWithPosition ()
 
virtual string ChooseGotoLabel ()
 Optional. If this predicate represents the matching code for a branch of an Alts and this code is reached through a goto statement, this method is used to select a label name. Supported by RuleRef. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from Loyc.LLParserGenerator.Pred
static Seq operator+ (char a, Pred b)
 
static Seq operator+ (Pred a, char b)
 
static Seq operator+ (Pred a, Pred b)
 
static Pred operator| (char a, Pred b)
 
static Pred operator| (Pred a, char b)
 
static Pred operator| (Pred a, Pred b)
 
static Pred operator/ (Pred a, Pred b)
 
static Pred operator+ (Pred a)
 
static Pred Or (Pred a, Pred b, bool slashJoined)
 
static Pred Or (Pred a, Pred b, bool slashJoined, LNode basis, BranchMode aMode=BranchMode.None, BranchMode bMode=BranchMode.None, IMessageSink sink=null)
 
static Alts Star (Pred contents, bool?greedy=null)
 
static Alts Opt (Pred contents, bool?greedy=null)
 
static Seq Plus (Pred contents, bool?greedy=null)
 
static TerminalPred Range (char lo, char hi)
 
static TerminalPred Set (IPGTerminalSet set)
 
static TerminalPred Set (string set)
 
static TerminalPred Set (params LNode[] s)
 
static TerminalPred Not (params LNode[] s)
 
static TerminalPred Char (char c)
 
static TerminalPred Chars (params char[] c)
 
static Seq Seq (string s, LNode basis=null)
 
static Rule Rule (string name, Pred pred, bool isStartingRule=false, bool isToken=false, int maximumK=-1)
 
static Pred operator+ (LNode pre, Pred p)
 
static Pred operator+ (Pred p, LNode post)
 
static LNode MergeActions (LNode action, LNode action2)
 
static AndPred And (object test)
 
static AndPred AndNot (object test)
 
static Pred Set (string varName, Pred pred)
 
static Pred SetVar (string varName, Pred pred)
 
static Pred AddSet (string varName, Pred pred)
 
static Pred Op (string varName, Symbol @operator, Pred pred)
 

Member Function Documentation

override Pred Loyc.LLParserGenerator.AndPred.Clone ( )
inlinevirtual

Deep-clones a predicate tree. Terminal sets and Nodes referenced by the tree are not cloned; the clone's value of Next will be null. The same Pred cannot appear in two places in a tree, so you must clone before re-use.

Reimplemented from Loyc.LLParserGenerator.Pred.

Member Data Documentation

bool Loyc.LLParserGenerator.AndPred.Local = false

A local and-predicate cannot be hoisted into calling rules.

new bool Loyc.LLParserGenerator.AndPred.Not = false

Inverts the condition if Not==true, so that if the Pred matches, the AndPred does not match, and vice versa.

Referenced by Loyc.LLParserGenerator.CodeGenHelperBase.GenerateAndPredCheck().

object Loyc.LLParserGenerator.AndPred.Pred

The predicate to match and backtrack. Must be of type LNode or Pred.

Referenced by Loyc.LLParserGenerator.CodeGenHelperBase.GenerateAndPredCheck().

Property Documentation

bool Loyc.LLParserGenerator.AndPred.PredUsesLA
get

Returns true if Pred contains $LA.