ScannerContext.cs
30 lines
| 865 B
| text/x-csharp
|
CSharpLexer
cin
|
r177 | namespace Implab.Formats { | ||
/// <summary> | ||||
/// Represents a scanner configuration usefull to recongnize token, based on the DFA. | ||||
/// </summary> | ||||
cin
|
r176 | public class ScannerContext<TTag> { | ||
cin
|
r177 | |||
cin
|
r176 | public int[,] Dfa { get; private set; } | ||
cin
|
r177 | |||
cin
|
r176 | public bool[] Final { get; private set; } | ||
cin
|
r177 | |||
cin
|
r176 | public TTag[][] Tags { get; private set; } | ||
cin
|
r177 | |||
cin
|
r176 | public int State { get; private set; } | ||
cin
|
r177 | |||
cin
|
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); | ||||
} | ||||
} | ||||
} | ||||