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)