aboutsummaryrefslogtreecommitdiff
path: root/py/parse.h
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2014-05-25 22:06:06 +0100
committerDamien George <damien.p.george@gmail.com>2014-05-25 22:06:06 +0100
commit5042bce8fb268849ba1afcbeb946b840318c4e49 (patch)
tree590b0225d9b29e7f1a7de71942ef30c5b79745d0 /py/parse.h
parent3aaabd11a044701991ca929f873983a679841199 (diff)
py: Don't automatically intern strings in parser.
This completes non-automatic interning of strings in the parser, so that doc strings don't take up RAM. It complicates the parser and compiler, and bloats stmhal by about 300 bytes. It's complicated because now there are 2 kinds of parse-nodes that can be strings: interned leaves and non-interned structs.
Diffstat (limited to 'py/parse.h')
-rw-r--r--py/parse.h3
1 files changed, 1 insertions, 2 deletions
diff --git a/py/parse.h b/py/parse.h
index 71b856dd5..43c74e73b 100644
--- a/py/parse.h
+++ b/py/parse.h
@@ -80,10 +80,9 @@ typedef struct _mp_parse_node_struct_t {
#define MP_PARSE_NODE_LEAF_SMALL_INT(pn) (((machine_int_t)(pn)) >> 1)
#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)
-#define MP_PARSE_NODE_IS_STRING(pn) (MP_PARSE_NODE_STRUCT_KIND((mp_parse_node_struct_t*)pn) == RULE_string)
mp_parse_node_t mp_parse_node_new_leaf(machine_int_t kind, machine_int_t arg);
-uint mp_parse_node_free(mp_parse_node_t pn);
+void mp_parse_node_free(mp_parse_node_t pn);
void mp_parse_node_print(mp_parse_node_t pn, int indent);