summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJon French2018-06-11 16:14:14 +0100
committerJon French2018-06-11 16:14:14 +0100
commit7acf6b70899556b0775c5f1820b62b5100ce6f5c (patch)
tree99bc2a5dfa1b7aea29cf8ca297da2c139310a12b /lib
parent826e94548a86a88d8fefeb1edef177c02bf5d68d (diff)
parent0cc7d50e08b36d036771493920bb2e20251def64 (diff)
Merge branch 'sail2' into mappings
Diffstat (limited to 'lib')
-rw-r--r--lib/string.sail32
1 files changed, 32 insertions, 0 deletions
diff --git a/lib/string.sail b/lib/string.sail
new file mode 100644
index 00000000..9c4ad2f6
--- /dev/null
+++ b/lib/string.sail
@@ -0,0 +1,32 @@
+$ifndef _STRING
+$define _STRING
+
+$include <arith.sail>
+
+val eq_string = {lem: "eq", _: "eq_string"} : (string, string) -> bool
+
+infixl 9 ^-^
+
+val concat_str = {lem: "stringAppend", _: "concat_str"} : (string, string) -> string
+
+val "dec_str" : int -> string
+
+val "hex_str" : int -> string
+
+val bits_str = "string_of_bits" : forall 'n. vector('n, dec, bit) -> string
+
+val concat_str_bits : forall 'n. (string, vector('n, dec, bit)) -> string
+
+function concat_str_bits(str, x) = concat_str(str, bits_str(x))
+
+val concat_str_dec : (string, int) -> string
+
+function concat_str_dec(str, x) = concat_str(str, dec_str(x))
+
+overload operator ^-^ = {concat_str, concat_str_bits, concat_str_dec}
+
+val print_endline = "print_endline" : string -> unit
+
+val prerr_endline = "prerr_endline" : string -> unit
+
+$endif