diff options
author | Damien George <damien.p.george@gmail.com> | 2014-05-25 22:06:06 +0100 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2014-05-25 22:06:06 +0100 |
commit | 5042bce8fb268849ba1afcbeb946b840318c4e49 (patch) | |
tree | 590b0225d9b29e7f1a7de71942ef30c5b79745d0 /py/parse.h | |
parent | 3aaabd11a044701991ca929f873983a679841199 (diff) | |
download | micropython-5042bce8fb268849ba1afcbeb946b840318c4e49.tar.gz micropython-5042bce8fb268849ba1afcbeb946b840318c4e49.zip |
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.h | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/py/parse.h b/py/parse.h index 71b856dd5f..43c74e73b8 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); |