2 // Grammar for JSON, as defined at json.org.
6 object -> "{" (string ":" value) *(,) "}";
7 array -> "[" value *(,) "]";
9 str_frag -> .chars=/[^\\"]+/ |
10 .unicode_char=/\\u ([0-9A-Fa-f]{4})/ |
11 .backslash_char=/\\[ntbr"\/\\]/;
12 string -> '"' str_frag* '"';
15 .integer=/ 0 | ([1-9][0-9]*) /
16 .decimal=/ \. [0-9]+ /?
17 .exponent=/ [eE] [+-]? [0-9]+ /? ;
19 value -> string | number | "true" | "false" | "null" | object | array;
21 whitespace -> .whitespace=/[\r\n\s\t]+/;
23 @allow whitespace object...string;