# JSON Pegex Grammar
json: <map> | <seq>
node: <map> | <seq> | <scalar>
map: /~<LCURLY>~/ <pair>* % /~<COMMA>~/ /~<RCURLY>~/
pair: <string> /~<COLON>~/ <node>
seq: /~<LSQUARE>~/ <node>* % /~<COMMA>~/ /~<RSQUARE>~/
scalar: <string> | <number> | <boolean> | <null>
string: /<DOUBLE>((?:<BACK><BACK>|<BACK><DOUBLE>|[^<DOUBLE><BREAK>])*)<DOUBLE>/
number: /(<DASH>?<DIGIT>+(?:<DOT><DIGIT>*)?|<DOT><DIGIT>+)/
boolean: <true> | <false>
true: /true/
false: /false/
null: /null/