Chromium Code Reviews

Side by Side Diff: packages/petitparser/lib/src/json/parser.dart

Issue 1400473008: Roll Observatory packages and add a roll script (Closed) Base URL: git@github.com:dart-lang/observatory_pub_packages.git@master
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff |
OLDNEW
1 part of json; 1 part of petitparser.json;
2 2
3 /** 3 /// JSON parser.
4 * JSON parser.
5 */
6 class JsonParser extends GrammarParser { 4 class JsonParser extends GrammarParser {
7 JsonParser() : super(const JsonParserDefinition()); 5 JsonParser() : super(const JsonParserDefinition());
8 } 6 }
9 7
10 /** 8 /// JSON parser definition.
11 * JSON parser definition.
12 */
13 class JsonParserDefinition extends JsonGrammarDefinition { 9 class JsonParserDefinition extends JsonGrammarDefinition {
14 const JsonParserDefinition(); 10 const JsonParserDefinition();
15 11
16 array() => super.array().map((each) => each[1] != null ? each[1] : new List()) ; 12 array() => super.array().map((each) => each[1] != null ? each[1] : new List()) ;
17 object() => super.object().map((each) { 13 object() => super.object().map((each) {
18 var result = new LinkedHashMap(); 14 var result = new LinkedHashMap();
19 if (each[1] != null) { 15 if (each[1] != null) {
20 for (var element in each[1]) { 16 for (var element in each[1]) {
21 result[element[0]] = element[2]; 17 result[element[0]] = element[2];
22 } 18 }
23 } 19 }
24 return result; 20 return result;
25 }); 21 });
26 22
27 trueToken() => super.trueToken().map((each) => true); 23 trueToken() => super.trueToken().map((each) => true);
28 falseToken() => super.falseToken().map((each) => false); 24 falseToken() => super.falseToken().map((each) => false);
29 nullToken() => super.nullToken().map((each) => null); 25 nullToken() => super.nullToken().map((each) => null);
30 stringToken() => ref(stringPrimitive).trim(); 26 stringToken() => ref(stringPrimitive).trim();
31 numberToken() => super.numberToken().map((each) { 27 numberToken() => super.numberToken().map((each) {
32 var floating = double.parse(each); 28 var floating = double.parse(each);
33 var integral = floating.toInt(); 29 var integral = floating.toInt();
34 if (floating == integral && each.indexOf('.') == -1) { 30 if (floating == integral && each.indexOf('.') == -1) {
35 return integral; 31 return integral;
36 } else { 32 } else {
37 return floating; 33 return floating;
38 } 34 }
39 }); 35 });
40 36
41 stringPrimitive() => super.stringPrimitive().map((each) => each[1].join()); 37 stringPrimitive() => super.stringPrimitive().map((each) => each[1].join());
42 characterEscape() => super.characterEscape().map((each) => JSON_ESCAPE_CHARS[e ach[1]]); 38 characterEscape() => super.characterEscape().map((each) => jsonEscapeChars[eac h[1]]);
43 characterOctal() => super.characterOctal().map((each) { 39 characterUnicode() => super.characterUnicode().map((each) {
44 throw new UnsupportedError('Octal characters not supported yet'); 40 var charCode = int.parse(each[1].join(), radix: 16);
41 return new String.fromCharCode(charCode);
45 }); 42 });
46
47 } 43 }
OLDNEW
« no previous file with comments | « packages/petitparser/lib/src/json/grammar.dart ('k') | packages/petitparser/lib/src/lisp/cons.dart » ('j') | no next file with comments »

Powered by Google App Engine