aboutsummaryrefslogtreecommitdiff
path: root/py/parse.c
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2016-11-13 15:32:05 +1100
committerDamien George <damien.p.george@gmail.com>2016-11-15 16:48:48 +1100
commitb0cbfb0492028192a28f0514fba71ec954330108 (patch)
tree192dd21167f8b140a33afb89d1a1ecc26e7e26cd /py/parse.c
parent3f8bb80eb2da1c2b5228a69f7c580d0bc2d37219 (diff)
py/parse: Move function to check for const parse node to parse.[ch].
Diffstat (limited to 'py/parse.c')
-rw-r--r--py/parse.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/py/parse.c b/py/parse.c
index 397d46d9f..aa6034a6a 100644
--- a/py/parse.c
+++ b/py/parse.c
@@ -234,6 +234,16 @@ mp_parse_node_t mp_parse_node_new_leaf(size_t kind, mp_int_t arg) {
return (mp_parse_node_t)(kind | (arg << 4));
}
+bool mp_parse_node_is_const_false(mp_parse_node_t pn) {
+ return MP_PARSE_NODE_IS_TOKEN_KIND(pn, MP_TOKEN_KW_FALSE)
+ || (MP_PARSE_NODE_IS_SMALL_INT(pn) && MP_PARSE_NODE_LEAF_SMALL_INT(pn) == 0);
+}
+
+bool mp_parse_node_is_const_true(mp_parse_node_t pn) {
+ return MP_PARSE_NODE_IS_TOKEN_KIND(pn, MP_TOKEN_KW_TRUE)
+ || (MP_PARSE_NODE_IS_SMALL_INT(pn) && MP_PARSE_NODE_LEAF_SMALL_INT(pn) != 0);
+}
+
bool mp_parse_node_get_int_maybe(mp_parse_node_t pn, mp_obj_t *o) {
if (MP_PARSE_NODE_IS_SMALL_INT(pn)) {
*o = MP_OBJ_NEW_SMALL_INT(MP_PARSE_NODE_LEAF_SMALL_INT(pn));