An implementation of the LLLPG Lexer API, used with the LLLPG options inputSource
and inputClass
.
This derived class simply makes public all of the LLLPG APIs which are marked protected in BaseLexer{CharSrc}.
LLLPG(lexer(inputSource(src), inputClass(LexerSource))) { static rule int ParseInt(string input) { var src = (LexerSource<UString>)input; @[ (d:='0'..'9' {$result = $result * 10 + (d - '0');})+ ]; } }
- Template Parameters
-
CharSrc | A class that implements ICharSource. In order to write lexers that can accept any source of characters, set CharSrc=ICharSource. For maximum performance when parsing strings (or to avoid memory allocation), set CharSrc=UString (UString is a wrapper around System.String that, among other things, implements ICharSource ; please note that C# will implicitly convert normal strings to UString for you). |
|
| LexerSource (CharSrc source, string fileName="", int inputPosition=0, bool newSourceFile=true) |
| Initializes LexerSource. More...
|
|
virtual new void | Reset (CharSrc source, string fileName="", int inputPosition=0, bool newSourceFile=true) |
| Reinitializes the object. This method is called by the constructor.See the constructor for documentation of the parameters. This method can be used to avoid memory allocations when you need to parse many small strings in a row. If that's your goal, you should set the newSourceFile parameter to false if possible.
|
|
new void | Reset () |
|
new int | LA (int i) |
|
new void | Skip () |
|
virtual new void | AfterNewline () |
| The lexer must call this method exactly once after it advances past each newline, even inside comments and strings. This method keeps the LineNumber and LineStartAt properties updated.
|
|
new void | Newline () |
|
new int | MatchAny () |
|
new int | Match (HashSet< int > set) |
|
new int | Match (int a) |
|
new int | Match (int a, int b) |
|
new int | Match (int a, int b, int c) |
|
new int | Match (int a, int b, int c, int d) |
|
new int | MatchRange (int aLo, int aHi) |
|
new int | MatchRange (int aLo, int aHi, int bLo, int bHi) |
|
new int | MatchExcept () |
|
new int | MatchExcept (HashSet< int > set) |
|
new int | MatchExcept (int a) |
|
new int | MatchExcept (int a, int b) |
|
new int | MatchExcept (int a, int b, int c) |
|
new int | MatchExcept (int a, int b, int c, int d) |
|
new int | MatchExceptRange (int aLo, int aHi) |
|
new int | MatchExceptRange (int aLo, int aHi, int bLo, int bHi) |
|
new bool | TryMatch (HashSet< int > set) |
|
new bool | TryMatch (int a) |
|
new bool | TryMatch (int a, int b) |
|
new bool | TryMatch (int a, int b, int c) |
|
new bool | TryMatch (int a, int b, int c, int d) |
|
new bool | TryMatchRange (int aLo, int aHi) |
|
new bool | TryMatchRange (int aLo, int aHi, int bLo, int bHi) |
|
new bool | TryMatchExcept () |
|
new bool | TryMatchExcept (HashSet< int > set) |
|
new bool | TryMatchExcept (int a) |
|
new bool | TryMatchExcept (int a, int b) |
|
new bool | TryMatchExcept (int a, int b, int c) |
|
new bool | TryMatchExcept (int a, int b, int c, int d) |
|
new bool | TryMatchExceptRange (int aLo, int aHi) |
|
new bool | TryMatchExceptRange (int aLo, int aHi, int bLo, int bHi) |
|
virtual new void | Check (bool expectation, string expectedDescr="") |
|
virtual new void | Error (int lookaheadIndex, string format) |
| This method is called to handle errors that occur during lexing. More...
|
|
virtual new void | Error (int lookaheadIndex, string format, params object[] args) |
| This method is called to format and handle errors that occur during lexing. The default implementation sends errors to ErrorSink, which, by default, throws a FormatException. More...
|
|
new void | PrintChar (int c, StringBuilder sb) |
|
| LexerSourceWorkaround (CharSrc source, string fileName="", int inputPosition=0, bool newSourceFile=true) |
|
| BaseLexer (CharSrc chars, string fileName="", int inputPosition=0, bool newSourceFile=true) |
| Initializes BaseLexer. More...
|
|
SourcePos | IndexToLine (int index) |
| Returns the position in a source file of the specified index. More...
|
|
Token | Match (MatchType a) |
|
Token | Match (MatchType a, MatchType b) |
|
Token | Match (MatchType a, MatchType b, MatchType c) |
|
Token | Match (MatchType a, MatchType b, MatchType c, MatchType d) |
|
Token | Match (HashSet< MatchType > set) |
|
Token | MatchExcept (MatchType a) |
|
Token | MatchExcept (MatchType a, MatchType b) |
|
Token | MatchExcept (MatchType a, MatchType b, MatchType c) |
|
Token | MatchExcept (MatchType a, MatchType b, MatchType c, MatchType d) |
|
Token | MatchExcept (HashSet< MatchType > set) |
|
bool | TryMatch (MatchType a) |
|
bool | TryMatch (MatchType a, MatchType b) |
|
bool | TryMatch (MatchType a, MatchType b, MatchType c) |
|
bool | TryMatch (MatchType a, MatchType b, MatchType c, MatchType d) |
|
bool | TryMatch (HashSet< MatchType > set) |
|
bool | TryMatchExcept (MatchType a) |
|
bool | TryMatchExcept (MatchType a, MatchType b) |
|
bool | TryMatchExcept (MatchType a, MatchType b, MatchType c) |
|
bool | TryMatchExcept (MatchType a, MatchType b, MatchType c, MatchType d) |
|
bool | TryMatchExcept (HashSet< MatchType > set) |
|
|
override void | Error_Renamed (int lookaheadIndex, string format, params object[] args) |
|
override void | Error_Renamed (int lookaheadIndex, string format) |
|
override void | Error (int lookaheadIndex, string format) |
| This method is called to handle errors that occur during lexing. More...
|
|
override void | Error (int lookaheadIndex, string format, params object[] args) |
| This method is called to format and handle errors that occur during lexing. The default implementation sends errors to ErrorSink, which, by default, throws a FormatException. More...
|
|
void | Reset () |
|
int | LA (int i) |
|
void | Skip () |
| Increments InputPosition. Called by LLLPG when prediction already verified the input (and caller doesn't save LA(0)) More...
|
|
void | Newline () |
| Default newline parser that matches '
' or '' unconditionally. More...
|
|
void | Spaces () |
| Skips past any spaces at the current position. Equivalent to rule Spaces @[ (' '|'')* ] in LLLPG. More...
|
|
int | MatchAny () |
|
int | Match (HashSet< int > set) |
|
int | Match (int a) |
|
int | Match (int a, int b) |
|
int | Match (int a, int b, int c) |
|
int | Match (int a, int b, int c, int d) |
|
int | MatchRange (int aLo, int aHi) |
|
int | MatchRange (int aLo, int aHi, int bLo, int bHi) |
|
int | MatchExcept () |
|
int | MatchExcept (HashSet< int > set) |
|
int | MatchExcept (int a) |
|
int | MatchExcept (int a, int b) |
|
int | MatchExcept (int a, int b, int c) |
|
int | MatchExcept (int a, int b, int c, int d) |
|
int | MatchExceptRange (int aLo, int aHi) |
|
int | MatchExceptRange (int aLo, int aHi, int bLo, int bHi) |
|
bool | TryMatch (HashSet< int > set) |
|
bool | TryMatch (int a) |
|
bool | TryMatch (int a, int b) |
|
bool | TryMatch (int a, int b, int c) |
|
bool | TryMatch (int a, int b, int c, int d) |
|
bool | TryMatchRange (int aLo, int aHi) |
|
bool | TryMatchRange (int aLo, int aHi, int bLo, int bHi) |
|
bool | TryMatchExcept () |
|
bool | TryMatchExcept (HashSet< int > set) |
|
bool | TryMatchExcept (int a) |
|
bool | TryMatchExcept (int a, int b) |
|
bool | TryMatchExcept (int a, int b, int c) |
|
bool | TryMatchExcept (int a, int b, int c, int d) |
|
bool | TryMatchExceptRange (int aLo, int aHi) |
|
bool | TryMatchExceptRange (int aLo, int aHi, int bLo, int bHi) |
|
virtual void | Error (bool inverted, int range0lo, int range0hi) |
|
virtual void | Error (bool inverted, params int[] ranges) |
|
virtual void | Error (bool inverted, IList< int > ranges) |
|
virtual void | Error (bool inverted, HashSet< int > set) |
|
string | RangesToString (IList< int > ranges) |
| Converts a list of character ranges to a string, e.g. for input list {'*','*','a','z'}, the output is "'*' 'a'..'z'". More...
|
|
void | PrintChar (int c, StringBuilder sb) |
| Prints a character as a string, e.g. 'a' -> "'a'" , with the special value -1 representing EOF, so PrintChar(-1, ...) == "EOF". More...
|
|