From 401bc1c5485e26329598d59a140e51f70f58857c Mon Sep 17 00:00:00 2001 From: Nathan Ringo Date: Fri, 19 Jan 2024 17:33:46 -0600 Subject: Fix diagrams, allow multiple roles. --- discocaml/ast.ml | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'discocaml/ast.ml') diff --git a/discocaml/ast.ml b/discocaml/ast.ml index b5ebba3..a706a19 100644 --- a/discocaml/ast.ml +++ b/discocaml/ast.ml @@ -142,6 +142,16 @@ let parsetree_of_subexpr (ast : 'a ast) : expr -> Parsetree.expression = (Pexp_apply ( Wrap.expression (Pexp_ident (Wrap.ident "+")), [ (Nolabel, loop (subexpr l)); (Nolabel, loop (subexpr r)) ] )) + | Prim (`Sub, [| l; r |]) -> + Wrap.expression + (Pexp_apply + ( Wrap.expression (Pexp_ident (Wrap.ident "-")), + [ (Nolabel, loop (subexpr l)); (Nolabel, loop (subexpr r)) ] )) + | Prim (`Mul, [| l; r |]) -> + Wrap.expression + (Pexp_apply + ( Wrap.expression (Pexp_ident (Wrap.ident "*")), + [ (Nolabel, loop (subexpr l)); (Nolabel, loop (subexpr r)) ] )) | Prim (p, xs) -> failwith ("illegal Prim: " ^ [%derive.show: prim * expr index array] (p, xs)) -- cgit v1.2.3