diff options
Diffstat (limited to '')
| -rw-r--r-- | lib/dml/ast.ml | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/lib/dml/ast.ml b/lib/dml/ast.ml new file mode 100644 index 0000000..4a903e7 --- /dev/null +++ b/lib/dml/ast.ml @@ -0,0 +1,22 @@ +open Sexplib.Std + +type attr_value = string * Drl.Ast.value +[@@deriving sexp] + +type cardinality_spec = + | Finite of int + | AlephZero + | Continuum + | ConstrainedFinite +[@@deriving sexp] + +type statement = + | CreateDatabase of string + | CreateRelation of { name: string; schema: (string * string) list } + | RetractRelation of string + | ClearRelation of string + | RegisterDomain of { name: string; cardinality: cardinality_spec } + | InsertTuple of { relation: string; attributes: attr_value list } + | InsertTuples of { relation: string; tuples: attr_value list list } + | DeleteTuple of { relation: string; attributes: attr_value list } +[@@deriving sexp] |
