summaryrefslogtreecommitdiff
path: root/src/sail_lib.ml
diff options
context:
space:
mode:
Diffstat (limited to 'src/sail_lib.ml')
-rw-r--r--src/sail_lib.ml14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/sail_lib.ml b/src/sail_lib.ml
index 3e304796..665ff3af 100644
--- a/src/sail_lib.ml
+++ b/src/sail_lib.ml
@@ -635,10 +635,10 @@ let rec n_leading_spaces s =
end
-let opt_spaces_matches_prefix s =
+let opt_spc_matches_prefix s =
ZSome ((), n_leading_spaces s |> Big_int.of_int)
-let spaces_matches_prefix s =
+let spc_matches_prefix s =
let n = n_leading_spaces s in
match n with
| 0 -> ZNone ()
@@ -703,3 +703,13 @@ let hex_bits_21_matches_prefix s =
ZSome ((bits_of_int 1048576 n, len))
else
ZNone ()
+
+let hex_bits_32_matches_prefix s =
+ match maybe_int_of_prefix s with
+ | ZNone () -> ZNone ()
+ | ZSome (n, len) ->
+ let n = Big_int.to_int n in
+ if 0 <= n && n < 4294967296 then
+ ZSome ((bits_of_int 2147483648 n, len))
+ else
+ ZNone ()