summaryrefslogtreecommitdiff
path: root/src/gen_lib
diff options
context:
space:
mode:
authorJon French2018-10-16 14:52:01 +0100
committerJon French2018-10-16 14:52:01 +0100
commit57c4a243b8cfb06dc7644f9c317ddc270cbbf0d3 (patch)
tree52f4617ad4c795abddc80bd6fb84ead026828f2d /src/gen_lib
parente7ca37271e187f36527a85bba31c60e0854bc8b7 (diff)
Re-implement space-related mapping functions in Sail rather than backends
Uses new primop 'string_take' which is much easier to implement in e.g. C
Diffstat (limited to 'src/gen_lib')
-rw-r--r--src/gen_lib/sail2_string.lem4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/gen_lib/sail2_string.lem b/src/gen_lib/sail2_string.lem
index c50db099..de7588dc 100644
--- a/src/gen_lib/sail2_string.lem
+++ b/src/gen_lib/sail2_string.lem
@@ -20,6 +20,10 @@ val string_drop : string -> ii -> string
let string_drop str n =
toString (drop (natFromInteger n) (toCharList str))
+val string_take : string -> ii -> string
+let string_take str n =
+ toString (take (natFromInteger n) (toCharList str))
+
val string_length : string -> ii
let string_length s = integerFromNat (stringLength s)