summaryrefslogtreecommitdiffstatshomepage
path: root/py/parse.h
diff options
context:
space:
mode:
Diffstat (limited to 'py/parse.h')
-rw-r--r--py/parse.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/py/parse.h b/py/parse.h
index 54bbd26459..769f5a8757 100644
--- a/py/parse.h
+++ b/py/parse.h
@@ -76,7 +76,12 @@ typedef struct _mp_parse_node_struct_t {
#define MP_PARSE_NODE_STRUCT_KIND(pns) ((pns)->kind_num_nodes & 0xff)
#define MP_PARSE_NODE_STRUCT_NUM_NODES(pns) ((pns)->kind_num_nodes >> 8)
-mp_parse_node_t mp_parse_node_new_leaf(size_t kind, mp_int_t arg);
+static inline mp_parse_node_t mp_parse_node_new_small_int(mp_int_t val) {
+ return (mp_parse_node_t)(MP_PARSE_NODE_SMALL_INT | ((mp_uint_t)val << 1));
+}
+static inline mp_parse_node_t mp_parse_node_new_leaf(size_t kind, mp_int_t arg) {
+ return (mp_parse_node_t)(kind | ((mp_uint_t)arg << 4));
+}
bool mp_parse_node_is_const_false(mp_parse_node_t pn);
bool mp_parse_node_is_const_true(mp_parse_node_t pn);
bool mp_parse_node_get_int_maybe(mp_parse_node_t pn, mp_obj_t *o);