| 12345678910111213141516171819202122232425262728293031323334 |
- # This is the same as json.gbnf but we restrict whitespaces at the end of the root array
- # Useful for generating JSON arrays
- root ::= arr
- value ::= object | array | string | number | ("true" | "false" | "null") ws
- arr ::=
- "[\n" ws (
- value
- (",\n" ws value)*
- )? "]"
- object ::=
- "{" ws (
- string ":" ws value
- ("," ws string ":" ws value)*
- )? "}" ws
- array ::=
- "[" ws (
- value
- ("," ws value)*
- )? "]" ws
- string ::=
- "\"" (
- [^"\\\x7F\x00-\x1F] |
- "\\" (["\\bfnrt] | "u" [0-9a-fA-F]{4}) # escapes
- )* "\"" ws
- number ::= ("-"? ([0-9] | [1-9] [0-9]{0,15})) ("." [0-9]+)? ([eE] [-+]? [1-9] [0-9]{0,15})? ws
- # Optional space: by convention, applied in this grammar after literal chars when allowed
- ws ::= | " " | "\n" [ \t]{0,20}
|