comparison Implab/JSON/JSONParser.cs @ 70:0349189d2564

refactoring
author cin
date Wed, 03 Sep 2014 11:57:43 +0400
parents 62b440d46313
children f973c5df9972
comparison
equal deleted inserted replaced
69:48763f3b5db8 70:0349189d2564
18 } 18 }
19 19
20 /// <summary> 20 /// <summary>
21 /// Pull парсер JSON данных. 21 /// Pull парсер JSON данных.
22 /// </summary> 22 /// </summary>
23 /// <remarks>
24 /// Следует отметить отдельную интерпретацию свойства <see cref="Level"/>,
25 /// оно означает текущий уровень вложенности объектов, однако закрывающий
26 /// элемент объекта и массива имеет уровень меньше, чем сам объект.
27 /// <code>
28 /// { // Level = 1
29 /// "name" : "Peter", // Level = 1
30 /// "address" : { // Level = 2
31 /// city : "Stern" // Level = 2
32 /// } // Level = 1
33 /// } // Level = 0
34 /// </code>
35 /// </remarks>
23 public class JSONParser : DFAutomaton<JSONParserContext>, IDisposable { 36 public class JSONParser : DFAutomaton<JSONParserContext>, IDisposable {
24 37
25 enum MemberContext { 38 enum MemberContext {
26 MemberName, 39 MemberName,
27 MemberValue 40 MemberValue
249 262
250 ~JSONParser() { 263 ~JSONParser() {
251 Dispose(false); 264 Dispose(false);
252 } 265 }
253 266
254 public void Skip() { 267 /// <summary>
255 var level = Level-1; 268 /// Переходит в конец текущего объекта.
269 /// </summary>
270 public void SeekElementEnd() {
271 var level = Level - 1;
256 272
257 Debug.Assert(level >= 0); 273 Debug.Assert(level >= 0);
258 274
259 while (Level != level) 275 while (Level != level)
260 Read(); 276 Read();