diff options
Diffstat (limited to 'llama.cpp/grammars/json_arr.gbnf')
| -rw-r--r-- | llama.cpp/grammars/json_arr.gbnf | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/llama.cpp/grammars/json_arr.gbnf b/llama.cpp/grammars/json_arr.gbnf new file mode 100644 index 0000000..b3dc6f9 --- /dev/null +++ b/llama.cpp/grammars/json_arr.gbnf @@ -0,0 +1,34 @@ +# This is the same as json.gbnf but we restrict whitespaces at the end of the root array +# Useful for generating JSON arrays + +root ::= arr +value ::= object | array | string | number | ("true" | "false" | "null") ws + +arr ::= + "[\n" ws ( + value + (",\n" ws value)* + )? "]" + +object ::= + "{" ws ( + string ":" ws value + ("," ws string ":" ws value)* + )? "}" ws + +array ::= + "[" ws ( + value + ("," ws value)* + )? "]" ws + +string ::= + "\"" ( + [^"\\\x7F\x00-\x1F] | + "\\" (["\\bfnrt] | "u" [0-9a-fA-F]{4}) # escapes + )* "\"" ws + +number ::= ("-"? ([0-9] | [1-9] [0-9]{0,15})) ("." [0-9]+)? ([eE] [-+]? [1-9] [0-9]{0,15})? ws + +# Optional space: by convention, applied in this grammar after literal chars when allowed +ws ::= | " " | "\n" [ \t]{0,20} |
