diff options
| author | Marcos Magueta <maguetamarcos@gmail.com> | 2026-03-14 11:39:04 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-03-14 11:39:04 -0300 |
| commit | e6661bfa6a3d7dc477d0b7717c80bd536eca2d68 (patch) | |
| tree | 12510963feeed03221defa690e73edd4135b65e1 /lib/icl/ast.ml | |
| parent | 0ad04e638baa8f283150d3c2809cdb9bf21e2995 (diff) | |
| download | Sakura-e6661bfa6a3d7dc477d0b7717c80bd536eca2d68.tar.gz Sakura-e6661bfa6a3d7dc477d0b7717c80bd536eca2d68.zip | |
Branching and naïve merge strategies
* AGPL license
* branching and merging
* Delete LICENSE in favor of separate PR
Signed-off-by: Marcos Magueta <maguetamarcos@gmail.com>
* add unmonitored tests and docs
---------
Signed-off-by: Marcos Magueta <maguetamarcos@gmail.com>
Diffstat (limited to 'lib/icl/ast.ml')
| -rw-r--r-- | lib/icl/ast.ml | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/lib/icl/ast.ml b/lib/icl/ast.ml new file mode 100644 index 0000000..95e0271 --- /dev/null +++ b/lib/icl/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] |
