summaryrefslogtreecommitdiff
path: root/py/parsenum.c
diff options
context:
space:
mode:
authorJeff Epler <jepler@gmail.com>2020-11-19 16:18:52 -0600
committerJeff Epler <jepler@gmail.com>2020-11-19 16:18:52 -0600
commitb2b8520880e9d458adbd279a34b831f8d6b68d40 (patch)
tree8e29536c38518715bbeee0fbbebc6ef0c85889ea /py/parsenum.c
parentc06fc8e02dc7c17e827e3fe736dc7226d7819452 (diff)
Always use preprocessor for MICROPY_ERROR_REPORTING
This ensures that only the translate("") alternative that will be used is seen after preprocessing. Improves the quality of the Huffman encoding and reduces binary size slightly. Also makes one "enhanced" error message only occur when ERROR_REPORTING_DETAILED: Instead of the word-for-word python3 error message "Type object has no attribute '%q'", the message will be "'type' object has no attribute '%q'". Also reduces binary size. (that's rolled into this commit as it was right next to a change to use the preprocessor for MICROPY_ERROR_REPORTING) Note that the odd semicolon after "value_error:" in parsenum.c is necessary due to a detail of the C grammar, in which a declaration cannot follow a label directly.
Diffstat (limited to 'py/parsenum.c')
-rw-r--r--py/parsenum.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/py/parsenum.c b/py/parsenum.c
index da63825e4..a72829b20 100644
--- a/py/parsenum.c
+++ b/py/parsenum.c
@@ -145,16 +145,16 @@ overflow:
goto have_ret_val;
}
-value_error:
- if (MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_TERSE) {
+value_error: ;
+ #if MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_TERSE
mp_obj_t exc = mp_obj_new_exception_msg(&mp_type_ValueError,
translate("invalid syntax for integer"));
raise_exc(exc, lex);
- } else if (MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_NORMAL) {
+ #elif MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_NORMAL
mp_obj_t exc = mp_obj_new_exception_msg_varg(&mp_type_ValueError,
translate("invalid syntax for integer with base %d"), base);
raise_exc(exc, lex);
- } else {
+ #else
vstr_t vstr;
mp_print_t print;
vstr_init_print(&vstr, 50, &print);
@@ -163,7 +163,7 @@ value_error:
mp_obj_t exc = mp_obj_new_exception_arg1(&mp_type_ValueError,
mp_obj_new_str_from_vstr(&mp_type_str, &vstr));
raise_exc(exc, lex);
- }
+ #endif
}
typedef enum {