Mercurial > pub > ImplabNet
comparison Implab/Formats/JSON/JSONScanner.cs @ 165:e227e78d72e4 ref20160224
DFA refactoring
| author | cin |
|---|---|
| date | Mon, 29 Feb 2016 02:02:17 +0300 |
| parents | 419aa51b04fd |
| children | 0c3c69fe225b |
comparison
equal
deleted
inserted
replaced
| 164:ec35731ae299 | 165:e227e78d72e4 |
|---|---|
| 1 using Implab.Parsing; | 1 using System; |
| 2 using System; | |
| 3 using System.Collections.Generic; | |
| 4 using System.Globalization; | 2 using System.Globalization; |
| 5 using System.Linq; | 3 using Implab.Automaton; |
| 6 using System.Text; | |
| 7 using System.Threading.Tasks; | |
| 8 | 4 |
| 9 namespace Implab.JSON { | 5 namespace Implab.Formats.JSON { |
| 10 /// <summary> | 6 /// <summary> |
| 11 /// Сканнер (лексер), разбивающий поток символов на токены JSON. | 7 /// Сканнер (лексер), разбивающий поток символов на токены JSON. |
| 12 /// </summary> | 8 /// </summary> |
| 13 public class JSONScanner : Scanner { | 9 public class JSONScanner : Scanner<object> { |
| 14 char[] m_stringBuffer; | 10 char[] m_stringBuffer; |
| 15 DFAStateDescriptior[] m_stringDFA; | 11 DFAStateDescriptior<>[] m_stringDFA; |
| 16 int[] m_stringAlphabet; | 12 int[] m_stringAlphabet; |
| 17 | 13 |
| 18 /// <summary> | 14 /// <summary> |
| 19 /// Создает новый экземпляр сканнера | 15 /// Создает новый экземпляр сканнера |
| 20 /// </summary> | 16 /// </summary> |
| 21 public JSONScanner() | 17 public JSONScanner() |
| 22 : base(JSONGrammar.Instance.JsonDFA.States, JSONGrammar.Instance.JsonDFA.Alphabet.GetTranslationMap()) { | 18 : base(JSONGrammar.Instance.JsonDFA.GetTransitionTable(), JSONGrammar.Instance.JsonDFA.Alphabet.GetTranslationMap()) { |
| 23 m_stringBuffer = new char[1024]; | 19 m_stringBuffer = new char[1024]; |
| 24 var dfa = JSONGrammar.Instance.JsonStringDFA; | 20 var dfa = JSONGrammar.Instance.JsonStringDFA; |
| 25 m_stringAlphabet = dfa.Alphabet.GetTranslationMap(); | 21 m_stringAlphabet = dfa.Alphabet.GetTranslationMap(); |
| 26 m_stringDFA = dfa.States; | 22 m_stringDFA = dfa.States; |
| 27 } | 23 } |
