Index: packages/petitparser/lib/src/json/parser.dart |
diff --git a/petitparser/lib/src/json/parser.dart b/packages/petitparser/lib/src/json/parser.dart |
similarity index 76% |
rename from petitparser/lib/src/json/parser.dart |
rename to packages/petitparser/lib/src/json/parser.dart |
index 340ac7edde5270ad540fee512bf8edfbff990d11..e1647cbb66a9e22862f6a44c2cf38eccb02ec2e6 100644 |
--- a/petitparser/lib/src/json/parser.dart |
+++ b/packages/petitparser/lib/src/json/parser.dart |
@@ -1,15 +1,11 @@ |
-part of json; |
+part of petitparser.json; |
-/** |
- * JSON parser. |
- */ |
+/// JSON parser. |
class JsonParser extends GrammarParser { |
JsonParser() : super(const JsonParserDefinition()); |
} |
-/** |
- * JSON parser definition. |
- */ |
+/// JSON parser definition. |
class JsonParserDefinition extends JsonGrammarDefinition { |
const JsonParserDefinition(); |
@@ -39,9 +35,9 @@ class JsonParserDefinition extends JsonGrammarDefinition { |
}); |
stringPrimitive() => super.stringPrimitive().map((each) => each[1].join()); |
- characterEscape() => super.characterEscape().map((each) => JSON_ESCAPE_CHARS[each[1]]); |
- characterOctal() => super.characterOctal().map((each) { |
- throw new UnsupportedError('Octal characters not supported yet'); |
+ characterEscape() => super.characterEscape().map((each) => jsonEscapeChars[each[1]]); |
+ characterUnicode() => super.characterUnicode().map((each) { |
+ var charCode = int.parse(each[1].join(), radix: 16); |
+ return new String.fromCharCode(charCode); |
}); |
- |
} |