Mercurial > pub > ImplabNet
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; }