py: Separate MICROPY_PY_BUILTINS_COMPLEX from MICROPY_PY_BUILTINS_FLOAT.

One thing is wanting to do 1 / 2 and get something else but 0, and quite
another - doing rocket science ;-).
This commit is contained in:
Paul Sokolovsky
2014-06-20 01:48:35 +03:00
parent 7efbd325bb
commit 3b6f7b95eb
9 changed files with 24 additions and 3 deletions

View File

@@ -35,6 +35,7 @@
#include "parsenumbase.h"
#include "parsenum.h"
#include "smallint.h"
#include "runtime.h"
#if MICROPY_PY_BUILTINS_FLOAT
#include <math.h>
@@ -252,10 +253,15 @@ mp_obj_t mp_parse_num_decimal(const char *str, uint len, bool allow_imag, bool f
}
// return the object
#if MICROPY_PY_BUILTINS_COMPLEX
if (imag) {
return mp_obj_new_complex(0, dec_val);
} else if (force_complex) {
return mp_obj_new_complex(dec_val, 0);
#else
if (imag || force_complex) {
mp_not_implemented("complex values not supported");
#endif
} else {
return mp_obj_new_float(dec_val);
}