summaryrefslogtreecommitdiff
path: root/lib/string.sail
diff options
context:
space:
mode:
authorAlasdair Armstrong2018-06-11 16:04:37 +0100
committerAlasdair Armstrong2018-06-11 16:06:41 +0100
commit0cc7d50e08b36d036771493920bb2e20251def64 (patch)
tree048a098ef8b934bfe96fb0f908682dacc322ed5a /lib/string.sail
parent4336409f923c10a8c5e4acc91fa7e6ef5551a88f (diff)
Add string.sail file to lib
Diffstat (limited to 'lib/string.sail')
-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