diff options
Diffstat (limited to 'src/exact_value.cpp')
| -rw-r--r-- | src/exact_value.cpp | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/src/exact_value.cpp b/src/exact_value.cpp index fb392c831..a4ceb5fa0 100644 --- a/src/exact_value.cpp +++ b/src/exact_value.cpp @@ -298,16 +298,6 @@ ExactValue exact_value_to_integer(ExactValue v) { return r; } -i64 exact_value_to_i64(ExactValue v) { - v = exact_value_to_integer(v); - i64 result = 0; - if (v.kind == ExactValue_Integer) { - return big_int_to_i64(&v.value_integer); - } - return result; -} - - ExactValue exact_value_to_float(ExactValue v) { switch (v.kind) { case ExactValue_Integer: @@ -370,6 +360,25 @@ ExactValue exact_value_make_imag(ExactValue v) { return r; } +i64 exact_value_to_i64(ExactValue v) { + v = exact_value_to_integer(v); + if (v.kind == ExactValue_Integer) { + return big_int_to_i64(&v.value_integer); + } + return 0; +} +f64 exact_value_to_f64(ExactValue v) { + v = exact_value_to_float(v); + if (v.kind == ExactValue_Float) { + return v.value_float; + } + return 0.0; +} + + + + + ExactValue exact_unary_operator_value(TokenKind op, ExactValue v, i32 precision, bool is_unsigned) { switch (op) { |