diff options
| author | Marcos Magueta <maguetamarcos@gmail.com> | 2026-03-08 20:36:31 -0300 |
|---|---|---|
| committer | Marcos Magueta <maguetamarcos@gmail.com> | 2026-03-08 20:36:31 -0300 |
| commit | e10acd09faf53c636b653c4df034716545db5fab (patch) | |
| tree | 570d34526016df383a4b1821d9fe1dc864ef0c16 /lib/dcl/ast.ml | |
| parent | 99ac1e7d9b77d69f2a85a108468d4433953d8269 (diff) | |
| download | Sakura-e10acd09faf53c636b653c4df034716545db5fab.tar.gz Sakura-e10acd09faf53c636b653c4df034716545db5fab.zip | |
dml and dcl
Diffstat (limited to '')
| -rw-r--r-- | lib/dcl/ast.ml | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/lib/dcl/ast.ml b/lib/dcl/ast.ml new file mode 100644 index 0000000..95e0271 --- /dev/null +++ b/lib/dcl/ast.ml @@ -0,0 +1,23 @@ +open Sexplib.Std + +type binding_expr = + | Var of string + | Const of Drl.Ast.value (** reuse DRL value for literals *) +[@@deriving sexp] + +type constraint_body = + | MemberOf of { target: string; binding: (string * binding_expr) list } + | Not of { body: constraint_body; universe: string } + | And of constraint_body list + | Or of constraint_body list + | Exists of { variable: string; quantifier: string; body: constraint_body } + | Forall of { variable: string; quantifier: string; body: constraint_body } +[@@deriving sexp] + +type statement = + | RegisterConstraint of { + constraint_name: string; + relation_name: string; + body: constraint_body; + } +[@@deriving sexp] |
