aboutsummaryrefslogtreecommitdiff
path: root/lib/Ast.ml
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Ast.ml')
-rw-r--r--lib/Ast.ml67
1 files changed, 0 insertions, 67 deletions
diff --git a/lib/Ast.ml b/lib/Ast.ml
deleted file mode 100644
index 1a1d4c5..0000000
--- a/lib/Ast.ml
+++ /dev/null
@@ -1,67 +0,0 @@
-type ident = Ident.t Asai.Range.located
-type local_name = Ident.local Asai.Range.located
-
-type arg = local_name * expr
-
-and raw_expr =
- | Var of Ident.t
- | Check of expr * expr
- | Pi of arg * expr
- | Lam of local_name * expr
- | App of expr * expr
- | Sg of arg * expr
- | Pair of expr * expr
- | Fst of expr
- | Snd of expr
- | Type
- | Bool
- | True
- | False
- | BoolElim of {
- motive_var : local_name;
- motive_body : expr;
- true_case : expr;
- false_case : expr;
- scrut : expr;
- }
-
-and expr = raw_expr Asai.Range.located
-
-let dump_ident fmt ({ value; _ } : ident) = Ident.pp fmt value
-
-let dump_local_name fmt ({ value; _ } : local_name) = match value with
- | Some name -> Format.pp_print_string fmt name
- | None -> Format.pp_print_char fmt '_'
-
-let rec dump_arg fmt ((name, tp) : arg) =
- Format.fprintf fmt "@[@[%a@]@ :@ @[%a@]@]" dump_local_name name dump_expr tp
-
-and dump_raw_expr fmt = function
- | Var id -> Format.fprintf fmt "Var @[%a@]" Ident.pp id
- | Check (tm, tp) -> Format.fprintf fmt "@[%a@] : @[%a@]" dump_expr tm dump_expr tp
- | Bool -> Format.pp_print_string fmt "Bool"
- | True -> Format.pp_print_string fmt "True"
- | False -> Format.pp_print_string fmt "False"
- | BoolElim { motive_var; motive_body; true_case; false_case; scrut } ->
- Format.fprintf fmt
- "@[<10>BoolElim (@[%a@] ->@ @[%a@],@ @[%a@],@ @[%a@],@ @[%a@])@]"
- dump_local_name motive_var
- dump_expr motive_body
- dump_expr true_case
- dump_expr false_case
- dump_expr scrut
- | Pi (dom, cod) ->
- Format.fprintf fmt "@[<4>Pi (@[%a@],@ @[%a@])@]" dump_arg dom dump_expr cod
- | Lam (var, body) ->
- Format.fprintf fmt "@[<5>Lam (@[%a@].@ @[%a@])@]" dump_local_name var dump_expr body
- | App (fn, arg) ->
- Format.fprintf fmt "@[<5>App (@[%a@],@ @[%a@])@]" dump_expr fn dump_expr arg
- | Sg (fst, snd) ->
- Format.fprintf fmt "@[<4>Sg (@[%a@],@ @[%a@])@]" dump_arg fst dump_expr snd
- | Pair (fst, snd) ->
- Format.fprintf fmt "@[<6>Pair (@[%a@],@ @[%a@])@]" dump_expr fst dump_expr snd
- | Fst p -> Format.fprintf fmt "@[<5>Fst (@[%a@])@]" dump_expr p
- | Snd p -> Format.fprintf fmt "@[<5>Snd (@[%a@])@]" dump_expr p
- | Type -> Format.pp_print_string fmt "Type"
-
-and dump_expr fmt ({ value; _ } : expr) = dump_raw_expr fmt value