(grammar (start file))
(extra (class plain (char %09) (char %0A) (char %0B) (char %0C) (char %0D) (char %20) (char %C2%A0) (char %E2%80%A8) (char %E2%80%A9) (char %EF%BB%BF) (category Zs)))
(extra (ref comment))
(rule file normal (ref value) (concept grammar.document))
(rule value silent (choice ordered (ref object) (ref array) (ref number) (ref string) (ref null) (ref true) (ref false)) (concept grammar.value) (source-names (tree-sitter _value)))
(rule object normal (seq (literal %7B) (optional (seq (ref member) (repeat0 (seq (literal %2C) (ref member))) (optional (literal %2C)))) (literal %7D)) (concept grammar.object))
(rule member normal (seq (capture labeled name (choice ordered (ref string) (ref identifier))) (literal %3A) (capture labeled value (ref value))) (concept grammar.member))
(rule identifier token (seq (choice ordered (class plain (char %24) (char _) (category L) (category Nl)) (seq (literal %5Cu) (seq (class plain (range 0 9) (range a f) (range A F)) (class plain (range 0 9) (range a f) (range A F)) (class plain (range 0 9) (range a f) (range A F)) (class plain (range 0 9) (range a f) (range A F))))) (repeat0 (choice ordered (class plain (char %24) (char _) (char %E2%80%8C) (char %E2%80%8D) (category L) (category Nl) (category Mn) (category Mc) (category Nd) (category Pc)) (seq (literal %5Cu) (seq (class plain (range 0 9) (range a f) (range A F)) (class plain (range 0 9) (range a f) (range A F)) (class plain (range 0 9) (range a f) (range A F)) (class plain (range 0 9) (range a f) (range A F))))))) (concept grammar.identifier-name))
(rule array normal (seq (literal %5B) (optional (seq (ref value) (repeat0 (seq (literal %2C) (ref value))) (optional (literal %2C)))) (literal %5D)) (concept grammar.list))
(rule string token (choice ordered (seq (literal %22) (repeat0 (choice ordered (seq (literal %5C) (choice ordered (seq (literal u) (seq (class plain (range 0 9) (range a f) (range A F)) (class plain (range 0 9) (range a f) (range A F)) (class plain (range 0 9) (range a f) (range A F)) (class plain (range 0 9) (range a f) (range A F)))) (seq (literal x) (class plain (range 0 9) (range a f) (range A F)) (class plain (range 0 9) (range a f) (range A F))) (seq (literal 0) (not (range 0 9))) (class negated (range 0 9) (char x) (char u)))) (repeat1 (class negated (char %22) (char %5C))))) (literal %22)) (seq (literal %27) (repeat0 (choice ordered (seq (literal %5C) (choice ordered (seq (literal u) (seq (class plain (range 0 9) (range a f) (range A F)) (class plain (range 0 9) (range a f) (range A F)) (class plain (range 0 9) (range a f) (range A F)) (class plain (range 0 9) (range a f) (range A F)))) (seq (literal x) (class plain (range 0 9) (range a f) (range A F)) (class plain (range 0 9) (range a f) (range A F))) (seq (literal 0) (not (range 0 9))) (class negated (range 0 9) (char x) (char u)))) (repeat1 (class negated (char %27) (char %5C))))) (literal %27))) (concept grammar.string))
(rule number token (seq (optional (class plain (char %2B) (char -))) (choice ordered (seq (literal 0) (class plain (char x) (char X)) (repeat1 (class plain (range 0 9) (range a f) (range A F)))) (seq (choice ordered (literal 0) (seq (range 1 9) (repeat0 (range 0 9)))) (literal .) (repeat0 (range 0 9)) (optional (seq (class plain (char e) (char E)) (optional (class plain (char %2B) (char -))) (repeat1 (range 0 9))))) (seq (literal .) (repeat0 (range 0 9)) (optional (seq (class plain (char e) (char E)) (optional (class plain (char %2B) (char -))) (repeat1 (range 0 9))))) (seq (choice ordered (literal 0) (seq (range 1 9) (repeat0 (range 0 9)))) (optional (seq (class plain (char e) (char E)) (optional (class plain (char %2B) (char -))) (repeat1 (range 0 9))))) (literal Infinity) (literal NaN))) (concept grammar.number))
(rule null token (literal null) (concept grammar.null))
(rule true token (literal true) (concept grammar.true-value))
(rule false token (literal false) (concept grammar.false-value))
(rule comment token (choice ordered (seq (literal %2F%2F) (repeat0 (class negated (char %0A)))) (seq (literal %2F%2A) (repeat0 (choice ordered (class negated (char %2A)) (seq (literal %2A) (not (literal %2F))))) (literal %2A%2F))) (concept grammar.comment))