Mercurial > pub > ImplabNet
diff Implab/Formats/ScannerContext.cs @ 190:1c2a16d071a7 v2
Слияние с ref20160224
author | cin |
---|---|
date | Fri, 22 Apr 2016 13:08:08 +0300 |
parents | a0ff6a0e9c44 |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Implab/Formats/ScannerContext.cs Fri Apr 22 13:08:08 2016 +0300 @@ -0,0 +1,30 @@ +namespace Implab.Formats { + /// <summary> + /// Represents a scanner configuration usefull to recongnize token, based on the DFA. + /// </summary> + public class ScannerContext<TTag> { + + public int[,] Dfa { get; private set; } + + public bool[] Final { get; private set; } + + public TTag[][] Tags { get; private set; } + + public int State { get; private set; } + + 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); + } + } +} +