aboutsummaryrefslogtreecommitdiffstats
path: root/src/verilog/PrintVerilog.ml
diff options
context:
space:
mode:
authorYann Herklotz <git@yannherklotz.com>2020-03-31 15:32:00 +0100
committerYann Herklotz <git@yannherklotz.com>2020-03-31 15:32:00 +0100
commit34ea564d72230931b879f4a9a26d62c5d6573464 (patch)
treeea237471de54ad8af8071564e7461257ea0a333b /src/verilog/PrintVerilog.ml
parent2d11fe952455efbb66a4cf9a59d9e39425bd522c (diff)
downloadvericert-34ea564d72230931b879f4a9a26d62c5d6573464.tar.gz
vericert-34ea564d72230931b879f4a9a26d62c5d6573464.zip
Add more operators and print them
Diffstat (limited to 'src/verilog/PrintVerilog.ml')
-rw-r--r--src/verilog/PrintVerilog.ml6
1 files changed, 5 insertions, 1 deletions
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; ")"]