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);
+        }
+    }
+}
+