comparison Implab/Formats/JSON/JSONGrammar.cs @ 183:4f82e0f161c3 ref20160224

fixed DFA optimization, JSON is fully functional
author cin
date Fri, 25 Mar 2016 02:49:02 +0300
parents 76e8f2ba12b8
children
comparison
equal deleted inserted replaced
182:76e8f2ba12b8 183:4f82e0f161c3
15 String, 15 String,
16 Number, 16 Number,
17 Literal, 17 Literal,
18 NameSeparator, 18 NameSeparator,
19 ValueSeparator, 19 ValueSeparator,
20 Whitespace,
20 21
21 StringBound, 22 StringBound,
22 EscapedChar, 23 EscapedChar,
23 UnescapedChar, 24 UnescapedChar,
24 EscapedUnicode 25 EscapedUnicode
71 .Or(beginObject.Tag(TokenType.BeginObject)) 72 .Or(beginObject.Tag(TokenType.BeginObject))
72 .Or(endObject.Tag(TokenType.EndObject)) 73 .Or(endObject.Tag(TokenType.EndObject))
73 .Or(beginArray.Tag(TokenType.BeginArray)) 74 .Or(beginArray.Tag(TokenType.BeginArray))
74 .Or(endArray.Tag(TokenType.EndArray)) 75 .Or(endArray.Tag(TokenType.EndArray))
75 .Or(nameSep.Tag(TokenType.NameSeparator)) 76 .Or(nameSep.Tag(TokenType.NameSeparator))
76 .Or(valueSep.Tag(TokenType.ValueSeparator)); 77 .Or(valueSep.Tag(TokenType.ValueSeparator))
78 .Or(SymbolSetToken('\n', '\r', '\t', ' ').Closure().Tag(TokenType.Whitespace));
77 79
78 80
79 var jsonStringExpression = 81 var jsonStringExpression =
80 quote.Tag(TokenType.StringBound) 82 quote.Tag(TokenType.StringBound)
81 .Or(backSlash.Cat(specialEscapeChars).Tag(TokenType.EscapedChar)) 83 .Or(backSlash.Cat(specialEscapeChars).Tag(TokenType.EscapedChar))