diff Implab/JSON/JSONScanner.cs @ 60:10c7337d29e7

+JSONXmlReaderOptions *JSONScanner: fixed reading from TextReader *code cleanup
author cin
date Thu, 19 Jun 2014 03:41:28 +0400
parents c0bf853aa04f
children 130781364799
line wrap: on
line diff
--- a/Implab/JSON/JSONScanner.cs	Wed Jun 18 03:54:02 2014 +0400
+++ b/Implab/JSON/JSONScanner.cs	Thu Jun 19 03:41:28 2014 +0400
@@ -8,13 +8,16 @@
 
 namespace Implab.JSON {
     /// <summary>
-    /// Сканнер, разбивающий поток символов на токены JSON.
+    /// Сканнер (лексер), разбивающий поток символов на токены JSON.
     /// </summary>
     public class JSONScanner : Scanner {
         char[] m_stringBuffer;
         DFAStateDescriptior[] m_stringDFA;
         int[] m_stringAlphabet;
 
+        /// <summary>
+        /// Создает новый экземпляр сканнера
+        /// </summary>
         public JSONScanner()
             : base(JSONGrammar.Instance.JsonDFA) {
             m_stringBuffer = new char[1024];
@@ -23,6 +26,14 @@
             m_stringDFA = dfa.States;
         }
 
+        /// <summary>
+        /// Читает следующий лексический элемент из входных данных.
+        /// </summary>
+        /// <param name="tokenValue">Возвращает значение прочитанного токена.</param>
+        /// <param name="tokenType">Возвращает тип прочитанного токена.</param>
+        /// <returns><c>true</c> - чтение произведено успешно. <c>false</c> - достигнут конец входных данных</returns>
+        /// <remarks>В случе если токен не распознается, возникает исключение. Значения токенов обрабатываются, т.е.
+        /// в строках обрабатываются экранированные символы, числа становтся типа double.</remarks>
         public bool ReadToken(out object tokenValue, out JsonTokenType tokenType) {
             if (ReadTokenInternal()) {
                 switch ((JSONGrammar.TokenType)m_currentState.tag[0]) {