diff options
author | Nathan Ringo <nathan@remexre.com> | 2024-01-19 17:33:46 -0600 |
---|---|---|
committer | Nathan Ringo <nathan@remexre.com> | 2024-01-19 17:33:46 -0600 |
commit | 401bc1c5485e26329598d59a140e51f70f58857c (patch) | |
tree | 6ddb4f146808550e2c70fe38deed0db59d5b8cce /discocaml/draw_tree.ml | |
parent | 87608eabbcbd105f5f5fecf7ab00a7bc93573477 (diff) |
Fix diagrams, allow multiple roles.
Diffstat (limited to 'discocaml/draw_tree.ml')
-rw-r--r-- | discocaml/draw_tree.ml | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/discocaml/draw_tree.ml b/discocaml/draw_tree.ml index fe3f037..6ea4ff2 100644 --- a/discocaml/draw_tree.ml +++ b/discocaml/draw_tree.ml @@ -2,17 +2,17 @@ open Ast module IntSet = Set.Make (Int) let add_node (fmt : Format.formatter) (i : expr index) (expr : expr) : unit = - let label = - match expr with - | App _ -> "\"$\"" - | Int n -> Format.sprintf "\"%d\"" n - | Lam (_, _) -> "\"λ\"" - | Prim (`Add, _) -> "\"+\"" - | Prim (`Sub, _) -> "\"-\"" - | Prim (`Mul, _) -> "\"*\"" - | Var n -> Format.sprintf "%S" n - in - Format.fprintf fmt " expr%d [label=%s];\n" i.index label + match expr with + | App _ -> + Format.fprintf fmt + " expr%d [fontname=\"CMU Typewriter Text Bold\", label=\"apply\"];\n" + i.index + | Int n -> Format.fprintf fmt " expr%d [label=\"%d\"];\n" i.index n + | Lam (_, _) -> Format.fprintf fmt " expr%d [label=\"λ\"];\n" i.index + | Prim (`Add, _) -> Format.fprintf fmt " expr%d [label=\"+\"];\n" i.index + | Prim (`Sub, _) -> Format.fprintf fmt " expr%d [label=\"-\"];\n" i.index + | Prim (`Mul, _) -> Format.fprintf fmt " expr%d [label=\"*\"];\n" i.index + | Var n -> Format.fprintf fmt " expr%d [label=%S];\n" i.index n let add_expr_edges (ast : 'a ast) (fmt : Format.formatter) (nodes : IntSet.t ref) : expr index -> unit = |