?start: value ?value: object | array | string | SIGNED_NUMBER -> number | "true" -> true | "false" -> false | "null" -> null array : "[" _WS? [value ("," _WS? value)*] "]" object : "{" _WS? [pair ("," _WS? pair)*] "}" pair : string ":" _WS value string : ESCAPED_STRING %import common.ESCAPED_STRING %import common.SIGNED_NUMBER %import common.WS -> _WS