diff Implab/Formats/JSON/JSONGrammar.cs @ 176:0c3c69fe225b ref20160224

rewritten the text scanner
author cin
date Tue, 22 Mar 2016 18:58:40 +0300
parents 92d5278d1b10
children d5c5db0335ee
line wrap: on
line diff
--- a/Implab/Formats/JSON/JSONGrammar.cs	Mon Mar 21 18:41:45 2016 +0300
+++ b/Implab/Formats/JSON/JSONGrammar.cs	Tue Mar 22 18:58:40 2016 +0300
@@ -20,14 +20,7 @@
             StringBound,
             EscapedChar,
             UnescapedChar,
-            EscapedUnicode,
-
-            Minus,
-            Plus,
-            Sign,
-            Integer,
-            Dot,
-            Exp
+            EscapedUnicode
         }
 
         static Lazy<JSONGrammar> _instance = new Lazy<JSONGrammar>();
@@ -36,8 +29,8 @@
             get { return _instance.Value; }
         }
 
-        readonly RegularDFA<char, TokenType> m_jsonDFA;
-        readonly RegularDFA<char, TokenType> m_stringDFA;
+        readonly ScannerContext<TokenType> m_jsonDFA;
+        readonly ScannerContext<TokenType> m_stringDFA;
 
         public JSONGrammar() {
             DefineAlphabet(Enumerable.Range(0, 0x20).Select(x => (char)x));
@@ -88,17 +81,17 @@
                 .Or(unescaped.Closure().Tag(TokenType.UnescapedChar));
                     
 
-            m_jsonDFA = BuildDFA(jsonExpression);
-            m_stringDFA = BuildDFA(jsonStringExpression);
+            m_jsonDFA = BuildScannerContext(jsonExpression);
+            m_stringDFA = BuildScannerContext(jsonStringExpression);
         }
 
-        public RegularDFA<char, TokenType> JsonDFA {
+        public ScannerContext<TokenType> JsonDFA {
             get {
                 return m_jsonDFA;
             }
         }
 
-        public RegularDFA<char,TokenType> JsonStringDFA {
+        public ScannerContext<TokenType> JsonStringDFA {
             get {
                 return m_stringDFA;
             }