diff options
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" |
