From 57c4a243b8cfb06dc7644f9c317ddc270cbbf0d3 Mon Sep 17 00:00:00 2001 From: Jon French Date: Tue, 16 Oct 2018 14:52:01 +0100 Subject: 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 --- src/gen_lib/sail2_string.lem | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/gen_lib') 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) -- cgit v1.2.3