diff options
| author | Kathy Gray | 2014-11-13 14:33:41 +0000 |
|---|---|---|
| committer | Kathy Gray | 2014-11-13 14:33:41 +0000 |
| commit | cd51e034fc5f744570f70e913d5270bbedc7d42a (patch) | |
| tree | 640056e9f6b73c47d5e817a42f9fa0953bd69b52 /src | |
| parent | 086b8375c4a39e519129e965930ccf5b4cfb8f11 (diff) | |
numbers got to big for show, write my own version
Diffstat (limited to 'src')
| -rw-r--r-- | src/lem_interp/interp.lem | 8 |
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" |
