|
- # https://github.com/ggerganov/llama.cpp/blob/8183159cf3def112f6d1fe94815fce70e1bffa12/grammars/json.gbnf
-
- root ::= object
- value ::= object | array | string | number | ("true" | "false" | "null") ws
-
- object ::=
- "{" ws (
- string ":" ws value
- ("," ws string ":" ws value)*
- )? "}" ws
-
- array ::=
- "[" ws (
- value
- ("," ws value)*
- )? "]" ws
-
- string ::=
- "\"" (
- [^"\\] |
- "\\" (["\\/bfnrt] | "u" [0-9a-fA-F] [0-9a-fA-F] [0-9a-fA-F] [0-9a-fA-F]) # escapes
- )* "\"" ws
-
- number ::= ("-"? ([0-9] | [1-9] [0-9]*)) ("." [0-9]+)? ([eE] [-+]? [0-9]+)? ws
-
- # Optional space: by convention, applied in this grammar after literal chars when allowed
- ws ::= ([ \t\n] ws)?
|