# From http://www.json.org/ grammar JSON; rule object { \{ ? \} } rule array { \[ \] | \[ \] } rule string { "*" } rule members { \: [, \: ]* } rule elements { [, ]* } # XXX This should be called 'value', but... # RT#40069: [PGE] "value" can't be used as a rule name. token thing { | | | | | true | false | null | } # XXX need to add "except control char" to the final charclass here. token char { | \\<["\\/bfnrt]> | \\u**{4} | <-[\\"]> } token number { -? [ <[1..9]> <[0..9]>+ | <[0..9]> ] [ \. <[0..9]>+ ]? [ <[Ee]> <[+\-]>? <[0..9]>+ ]? }