pieuvre/affichage.ml
2024-04-15 12:07:49 +02:00

28 lines
638 B
OCaml

open Expr
open Types
(* fonction d'affichage *)
let rec string_of_ty = function
TVar s -> s
| Arr(t1, t2) ->
let s1 = string_of_ty t1 in
let s2 = string_of_ty t2 in
s1 ^ " => (" ^ s2 ^ ")"
| Bot -> "#"
let rec string_of_expr = function
Fun ((s, t), e) ->
let s_ty = string_of_ty t in
let s_e = string_of_expr e in
"fun (" ^ s ^ " : " ^ s_ty ^ ") => (" ^ s_e ^ ")"
| App (e1, e2) ->
"("^(string_of_expr e1)^") "^(string_of_expr e2)
| Var (s) -> s
| Exf (e, s) -> "exf("^(string_of_expr e)^":"^s^")"
let print_expr e =
print_string (string_of_expr e)
let affiche_val v = print_string "TODO"