|
@ -333,12 +333,7 @@ bool mp_parse_node_get_int_maybe(mp_parse_node_t pn, mp_obj_t *o) { |
|
|
return true; |
|
|
return true; |
|
|
} else if (MP_PARSE_NODE_IS_STRUCT_KIND(pn, RULE_const_object)) { |
|
|
} else if (MP_PARSE_NODE_IS_STRUCT_KIND(pn, RULE_const_object)) { |
|
|
mp_parse_node_struct_t *pns = (mp_parse_node_struct_t *)pn; |
|
|
mp_parse_node_struct_t *pns = (mp_parse_node_struct_t *)pn; |
|
|
#if MICROPY_OBJ_REPR == MICROPY_OBJ_REPR_D |
|
|
*o = mp_parse_node_extract_const_object(pns); |
|
|
// nodes are 32-bit pointers, but need to extract 64-bit object
|
|
|
|
|
|
*o = (uint64_t)pns->nodes[0] | ((uint64_t)pns->nodes[1] << 32); |
|
|
|
|
|
#else |
|
|
|
|
|
*o = (mp_obj_t)pns->nodes[0]; |
|
|
|
|
|
#endif |
|
|
|
|
|
return mp_obj_is_int(*o); |
|
|
return mp_obj_is_int(*o); |
|
|
} else { |
|
|
} else { |
|
|
return false; |
|
|
return false; |
|
@ -397,10 +392,11 @@ void mp_parse_node_print(const mp_print_t *print, mp_parse_node_t pn, size_t ind |
|
|
// node must be a mp_parse_node_struct_t
|
|
|
// node must be a mp_parse_node_struct_t
|
|
|
mp_parse_node_struct_t *pns = (mp_parse_node_struct_t *)pn; |
|
|
mp_parse_node_struct_t *pns = (mp_parse_node_struct_t *)pn; |
|
|
if (MP_PARSE_NODE_STRUCT_KIND(pns) == RULE_const_object) { |
|
|
if (MP_PARSE_NODE_STRUCT_KIND(pns) == RULE_const_object) { |
|
|
|
|
|
mp_obj_t obj = mp_parse_node_extract_const_object(pns); |
|
|
#if MICROPY_OBJ_REPR == MICROPY_OBJ_REPR_D |
|
|
#if MICROPY_OBJ_REPR == MICROPY_OBJ_REPR_D |
|
|
mp_printf(print, "literal const(%016llx)\n", (uint64_t)pns->nodes[0] | ((uint64_t)pns->nodes[1] << 32)); |
|
|
mp_printf(print, "literal const(%016llx)\n", obj); |
|
|
#else |
|
|
#else |
|
|
mp_printf(print, "literal const(%p)\n", (mp_obj_t)pns->nodes[0]); |
|
|
mp_printf(print, "literal const(%p)\n", obj); |
|
|
#endif |
|
|
#endif |
|
|
} else { |
|
|
} else { |
|
|
size_t n = MP_PARSE_NODE_STRUCT_NUM_NODES(pns); |
|
|
size_t n = MP_PARSE_NODE_STRUCT_NUM_NODES(pns); |
|
|