summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKathy Gray2014-11-13 14:33:41 +0000
committerKathy Gray2014-11-13 14:33:41 +0000
commitcd51e034fc5f744570f70e913d5270bbedc7d42a (patch)
tree640056e9f6b73c47d5e817a42f9fa0953bd69b52 /src
parent086b8375c4a39e519129e965930ccf5b4cfb8f11 (diff)
numbers got to big for show, write my own version
Diffstat (limited to 'src')
-rw-r--r--src/lem_interp/interp.lem8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/lem_interp/interp.lem b/src/lem_interp/interp.lem
index bafe8dd0..50e37cf2 100644
--- a/src/lem_interp/interp.lem
+++ b/src/lem_interp/interp.lem
@@ -47,6 +47,12 @@ type value =
| V_register_alias of (alias_spec tannot) * tannot (* Same as above, but to a concatenation of two registers *)
| V_track of value * (list reg_form) (* Used when memory system wants to track what register(s) a value came from *)
+let rec integerToString n acc =
+ if n = 0 then
+ acc
+ else
+ integerToString (n / 10) (chr (natFromInteger (n mod 10 + 48)) :: acc)
+
let rec string_of_value v = match v with
| V_boxref nat t -> "$#" ^ (show nat) ^ "$"
| V_lit (L_aux lit _) ->
@@ -56,7 +62,7 @@ let rec string_of_value v = match v with
| L_one -> "1"
| L_true -> "true"
| L_false -> "false"
- | L_num num -> show (natFromInteger num)
+ | L_num num -> toString(integerToString num [])
| L_hex hex -> "0x" ^ hex
| L_bin bin -> "0b" ^ bin
| L_undef -> "undefined"