26 #ifndef MICROPY_INCLUDED_PY_PARSE_H    27 #define MICROPY_INCLUDED_PY_PARSE_H    45 #define MP_PARSE_NODE_NULL      (0)    46 #define MP_PARSE_NODE_SMALL_INT (0x1)    47 #define MP_PARSE_NODE_ID        (0x02)    48 #define MP_PARSE_NODE_STRING    (0x06)    49 #define MP_PARSE_NODE_BYTES     (0x0a)    50 #define MP_PARSE_NODE_TOKEN     (0x0e)    63 #define MP_PARSE_NODE_IS_NULL(pn) ((pn) == MP_PARSE_NODE_NULL)    64 #define MP_PARSE_NODE_IS_LEAF(pn) ((pn) & 3)    65 #define MP_PARSE_NODE_IS_STRUCT(pn) ((pn) != MP_PARSE_NODE_NULL && ((pn) & 3) == 0)    66 #define MP_PARSE_NODE_IS_STRUCT_KIND(pn, k) ((pn) != MP_PARSE_NODE_NULL && ((pn) & 3) == 0 && MP_PARSE_NODE_STRUCT_KIND((mp_parse_node_struct_t*)(pn)) == (k))    68 #define MP_PARSE_NODE_IS_SMALL_INT(pn) (((pn) & 0x1) == MP_PARSE_NODE_SMALL_INT)    69 #define MP_PARSE_NODE_IS_ID(pn) (((pn) & 0x0f) == MP_PARSE_NODE_ID)    70 #define MP_PARSE_NODE_IS_TOKEN(pn) (((pn) & 0x0f) == MP_PARSE_NODE_TOKEN)    71 #define MP_PARSE_NODE_IS_TOKEN_KIND(pn, k) ((pn) == (MP_PARSE_NODE_TOKEN | ((k) << 4)))    73 #define MP_PARSE_NODE_LEAF_KIND(pn) ((pn) & 0x0f)    74 #define MP_PARSE_NODE_LEAF_ARG(pn) (((uintptr_t)(pn)) >> 4)    75 #define MP_PARSE_NODE_LEAF_SMALL_INT(pn) (((mp_int_t)(intptr_t)(pn)) >> 1)    76 #define MP_PARSE_NODE_STRUCT_KIND(pns) ((pns)->kind_num_nodes & 0xff)    77 #define MP_PARSE_NODE_STRUCT_NUM_NODES(pns) ((pns)->kind_num_nodes >> 8)    99     struct _mp_parse_chunk_t *
chunk;
   107 #endif // MICROPY_INCLUDED_PY_PARSE_H bool mp_parse_node_is_const_true(mp_parse_node_t pn)
 
bool mp_parse_node_is_const_false(mp_parse_node_t pn)
 
#define MP_PARSE_NODE_SMALL_INT
 
uintptr_t mp_parse_node_t
 
bool mp_parse_node_get_int_maybe(mp_parse_node_t pn, mp_obj_t *o)
 
struct _mp_parse_node_struct_t mp_parse_node_struct_t
 
void mp_parse_node_print(mp_parse_node_t pn, size_t indent)
 
int mp_parse_node_extract_list(mp_parse_node_t *pn, size_t pn_kind, mp_parse_node_t **nodes)
 
struct _mp_parse_chunk_t * chunk
 
struct _mp_parse_t mp_parse_tree_t
 
mp_parse_tree_t mp_parse(struct _mp_lexer_t *lex, mp_parse_input_kind_t input_kind)
 
void mp_parse_tree_clear(mp_parse_tree_t *tree)