ScannerContext.cs
30 lines
| 865 B
| text/x-csharp
|
CSharpLexer
|
|
r177 | namespace Implab.Formats { | ||
| /// <summary> | ||||
| /// Represents a scanner configuration usefull to recongnize token, based on the DFA. | ||||
| /// </summary> | ||||
|
|
r176 | public class ScannerContext<TTag> { | ||
|
|
r177 | |||
|
|
r176 | public int[,] Dfa { get; private set; } | ||
|
|
r177 | |||
|
|
r176 | public bool[] Final { get; private set; } | ||
|
|
r177 | |||
|
|
r176 | public TTag[][] Tags { get; private set; } | ||
|
|
r177 | |||
|
|
r176 | public int State { get; private set; } | ||
|
|
r177 | |||
|
|
r176 | public int[] Alphabet { get; private set; } | ||
| public ScannerContext(int[,] dfa, bool[] final, TTag[][] tags, int state, int[] alphabet) { | ||||
| Dfa = dfa; | ||||
| Final = final; | ||||
| Tags = tags; | ||||
| State = state; | ||||
| Alphabet = alphabet; | ||||
| } | ||||
| public bool Execute(TextScanner scanner, out TTag[] tag) { | ||||
| return scanner.ReadToken(Dfa, Final, Tags, State, Alphabet, out tag); | ||||
| } | ||||
| } | ||||
| } | ||||
