From 34ea564d72230931b879f4a9a26d62c5d6573464 Mon Sep 17 00:00:00 2001 From: Yann Herklotz Date: Tue, 31 Mar 2020 15:32:00 +0100 Subject: Add more operators and print them --- src/verilog/PrintVerilog.ml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/verilog/PrintVerilog.ml') diff --git a/src/verilog/PrintVerilog.ml b/src/verilog/PrintVerilog.ml index 016a626..04a35de 100644 --- a/src/verilog/PrintVerilog.ml +++ b/src/verilog/PrintVerilog.ml @@ -49,6 +49,10 @@ let pprint_binop = function | Vshl -> " << " | Vshr -> " >> " +let unop = function + | Vneg -> " ~ " + | Vnot -> " ! " + let register a = P.to_int a let literal l = sprintf "%d'd%d" (Nat.to_int l.vsize) (Z.to_int (valueToZ l)) @@ -56,7 +60,7 @@ let literal l = sprintf "%d'd%d" (Nat.to_int l.vsize) (Z.to_int (valueToZ l)) let rec pprint_expr = function | Vlit l -> literal l | Vvar s -> sprintf "reg_%d" (register s) - | Vunop e -> concat ["(~"; pprint_expr e; ")"] + | Vunop (u, e) -> concat ["("; unop u; pprint_expr e; ")"] | Vbinop (op, a, b) -> concat ["("; pprint_expr a; pprint_binop op; pprint_expr b; ")"] | Vternary (c, t, f) -> concat ["("; pprint_expr c; " ? "; pprint_expr t; " : "; pprint_expr f; ")"] -- cgit