23 lines
1.7 KiB
Plaintext
23 lines
1.7 KiB
Plaintext
|
|
# ---------------------------------------------------------------------------
|
||
|
|
# JSON primitives
|
||
|
|
# ---------------------------------------------------------------------------
|
||
|
|
ws ::= [ \t\n\r]*
|
||
|
|
string ::= "\"" ([^"\\\x7F\x00-\x1F] | "\\" (["\\/bfnrt] | "u" [0-9a-fA-F] [0-9a-fA-F] [0-9a-fA-F] [0-9a-fA-F]))* "\""
|
||
|
|
number ::= "-"? ([0-9] | [1-9] [0-9]*) ("." [0-9]+)? ([eE] [-+]? [0-9]+)?
|
||
|
|
integer ::= "-"? ([0-9] | [1-9] [0-9]*)
|
||
|
|
boolean ::= "true" | "false"
|
||
|
|
null ::= "null"
|
||
|
|
any-value ::= string | number | boolean | null | any-object | any-array
|
||
|
|
any-object ::= "{" ws (string ws ":" ws any-value (ws "," ws string ws ":" ws any-value)*)? ws "}"
|
||
|
|
any-array ::= "[" ws (any-value (ws "," ws any-value)*)? ws "]"
|
||
|
|
|
||
|
|
# --- whetstone_transpile_query_family ---
|
||
|
|
root ::= "{" ws "\"tool\"" ws ":" ws "\"whetstone_transpile_query_family\"" ws "," ws "\"arguments\"" ws ":" ws whetstone-transpile-query-family-args-obj-9 ws "}"
|
||
|
|
|
||
|
|
whetstone-transpile-query-family-args-obj-9 ::= "{" ws whetstone-transpile-query-family-args-query-pair-4 ws "," ws whetstone-transpile-query-family-args-source_dialect-pair-6 ws "," ws whetstone-transpile-query-family-args-target_dialect-pair-8 (ws "," ws whetstone-transpile-query-family-args-opt-10)* ws "}"
|
||
|
|
whetstone-transpile-query-family-args-opt-10 ::= whetstone-transpile-query-family-args-profile-pair-2
|
||
|
|
whetstone-transpile-query-family-args-profile-pair-2 ::= "\"profile\"" ws ":" ws string
|
||
|
|
whetstone-transpile-query-family-args-query-pair-4 ::= "\"query\"" ws ":" ws string
|
||
|
|
whetstone-transpile-query-family-args-source_dialect-pair-6 ::= "\"source_dialect\"" ws ":" ws string
|
||
|
|
whetstone-transpile-query-family-args-target_dialect-pair-8 ::= "\"target_dialect\"" ws ":" ws string
|