|
Enhanced C#
Language of your choice: library documentation
|
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...
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, LNode > | ResultSaver |
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) |
|
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.
| 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().
|
get |
Returns true if Pred contains $LA.
1.8.7