1using System.Collections.Generic;
57 List<ScriptNode> Columns;
58 List<ScriptNode> ColumnNames;
63 if (
string.IsNullOrEmpty(s))
66 while (s ==
"TOP" || s ==
"DISTINCT" || s ==
"GENERIC")
72 Top = Parser.ParseNoWhiteSpace();
77 if (
string.IsNullOrEmpty(s))
89 Columns =
new List<ScriptNode>();
90 ColumnNames =
new List<ScriptNode>();
97 Node = Parser.ParseNoWhiteSpace();
103 if (!
string.IsNullOrEmpty(s) && s !=
"," && s !=
"FROM")
108 Name = Parser.ParseNoWhiteSpace();
117 ColumnNames.Add(Name);
149 Offset = Parser.ParseNoWhiteSpace();
158 To = Parser.ParseNoWhiteSpace();
161 Result =
new Replay(Columns?.ToArray(), ColumnNames?.ToArray(), Source, Where,
Represents a constant element value.
Base class for all nodes in a parsed script tree.
int Length
Length of expression covered by node.
Expression Expression
Expression of which the node is a part.
int Start
Start position in script expression.
Script parser, for custom parsers.
string PeekNextToken()
Returns the next token to be parsed, without moving the position forward. If at the end of the expres...
string NextToken()
Returns the next token to be parsed, and moves the position forward correspondingly....
int Length
Length of script parsed
ScriptNode ParseOrs()
Parses ORs.
int Start
Start position in expression
Expression Expression
Expression being parsed.
void SkipWhiteSpace()
If current position is whitespace, moves the current position forward to the first non-whitespace cha...
Represents a variable reference.
string Name
Name of method.
Parses a REPLAY statement
string[] Aliases
Keyword aliases, if available, null if none.
string KeyWord
Keyword associated with custom parser.
string[] InternalKeywords
Any keywords used internally by the custom parser.
bool TryParse(ScriptParser Parser, out ScriptNode Result)
Tries to parse a script node.
ReplayParser()
Parses a REPLAY statement
Parses a SELECT statement
Executes a REPLAY statement against the ledger.
Abstract base class for source definitions
Interface for keywords with custom parsing.