summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKathy Gray2015-05-18 12:47:01 +0100
committerKathy Gray2015-05-18 12:47:01 +0100
commit5fef35e24e69a4cce5e113a90c9ea2fb02b318bc (patch)
tree3ed5fb450d15487c720b4d771aa34f8d7eacb7bd /src
parentedaee3304bfff4e51b36e952b4250a8479c58da4 (diff)
Add comparison for address
Diffstat (limited to 'src')
-rw-r--r--src/lem_interp/interp_interface.lem17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/lem_interp/interp_interface.lem b/src/lem_interp/interp_interface.lem
index 1700d542..baa20ada 100644
--- a/src/lem_interp/interp_interface.lem
+++ b/src/lem_interp/interp_interface.lem
@@ -118,7 +118,22 @@ instance (Ord byte_lifted)
let (>=) = defaultGreaterEq
end
-let addressCompare = defaultCompare
+instance (Ord byte)
+ let compare = defaultCompare
+ let (<) = defaultLess
+ let (>) = defaultGreater
+ let (<=) = defaultLessEq
+ let (>=) = defaultGreaterEq
+end
+
+let addressCompare (Address b1 i1) (Address b2 i2) = pairCompare compare compare (b1,i1) (b2,i2)
+instance (Ord address)
+ let compare = addressCompare
+ let (<) a1 a2 = (addressCompare a1 a2) = LT
+ let (<=) a1 a2 = (addressCompare a1 a2) <> GT
+ let (>) a1 a2 = (addressCompare a1 a2) = GT
+ let (>=) a1 a2 = (addressCompare a1 a2) <> LT
+end
instance (Ord register_value)
let compare = defaultCompare