The jsonlogic, dal, block, raw, and json forms.
Generated from the language definition for language 1.0.
Forms
Each word introduces a compiled value where the sugar does not cover it. The operators a jsonlogic object may use, and the vocabulary a dal object uses, are listed with expressions.
jsonlogic
A guard written as JSONLogic.
guard := "requires" identlist | "when" expr | "guard" "jsonlogic" jsonlit
dal
A query written as a DAL statement.
query := "query" ident ["(" param ("," param)* ")"] "=" ("select" selectbody | "dal" jsonlit)
block
A block written as its compiled type and config.
element := (sugar | container | leaf | each | use | "block" ident ["#" ident] jsonlit | "json" jsonlit) [gate]
raw
A field, or an effect, written verbatim.
fielddecl := ident ":" (type modifier* | "raw" jsonlit)
effect := "do" verb args
| "do" "raw" jsonlit (an action or a binding verbatim)
json
A block, or a rule, written as compiled JSON.
element := (sugar | container | leaf | each | use | "block" ident ["#" ident] jsonlit | "json" jsonlit) [gate]
rule := "rule" ident ("predicate" expr | "decision" "(" identlist ")" "{" (expr "->" value)* "else" value "}" | "json" jsonlit)