Numworks Epsilon
1.4.1
Graphing Calculator Operating System
|
Go to the source code of this file.
Classes | |
struct | _mp_parse_node_struct_t |
struct | _mp_parse_t |
Macros | |
#define | MP_PARSE_NODE_NULL (0) |
#define | MP_PARSE_NODE_SMALL_INT (0x1) |
#define | MP_PARSE_NODE_ID (0x02) |
#define | MP_PARSE_NODE_STRING (0x06) |
#define | MP_PARSE_NODE_BYTES (0x0a) |
#define | MP_PARSE_NODE_TOKEN (0x0e) |
#define | MP_PARSE_NODE_IS_NULL(pn) ((pn) == MP_PARSE_NODE_NULL) |
#define | MP_PARSE_NODE_IS_LEAF(pn) ((pn) & 3) |
#define | MP_PARSE_NODE_IS_STRUCT(pn) ((pn) != MP_PARSE_NODE_NULL && ((pn) & 3) == 0) |
#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)) |
#define | MP_PARSE_NODE_IS_SMALL_INT(pn) (((pn) & 0x1) == MP_PARSE_NODE_SMALL_INT) |
#define | MP_PARSE_NODE_IS_ID(pn) (((pn) & 0x0f) == MP_PARSE_NODE_ID) |
#define | MP_PARSE_NODE_IS_TOKEN(pn) (((pn) & 0x0f) == MP_PARSE_NODE_TOKEN) |
#define | MP_PARSE_NODE_IS_TOKEN_KIND(pn, k) ((pn) == (MP_PARSE_NODE_TOKEN | ((k) << 4))) |
#define | MP_PARSE_NODE_LEAF_KIND(pn) ((pn) & 0x0f) |
#define | MP_PARSE_NODE_LEAF_ARG(pn) (((uintptr_t)(pn)) >> 4) |
#define | MP_PARSE_NODE_LEAF_SMALL_INT(pn) (((mp_int_t)(intptr_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) |
Typedefs | |
typedef uintptr_t | mp_parse_node_t |
typedef struct _mp_parse_node_struct_t | mp_parse_node_struct_t |
typedef struct _mp_parse_t | mp_parse_tree_t |
Enumerations | |
enum | mp_parse_input_kind_t { MP_PARSE_SINGLE_INPUT, MP_PARSE_FILE_INPUT, MP_PARSE_EVAL_INPUT } |
Functions | |
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) |
int | mp_parse_node_extract_list (mp_parse_node_t *pn, size_t pn_kind, mp_parse_node_t **nodes) |
void | mp_parse_node_print (mp_parse_node_t pn, size_t indent) |
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) |
#define MP_PARSE_NODE_IS_ID | ( | pn | ) | (((pn) & 0x0f) == MP_PARSE_NODE_ID) |
#define MP_PARSE_NODE_IS_NULL | ( | pn | ) | ((pn) == MP_PARSE_NODE_NULL) |
#define MP_PARSE_NODE_IS_SMALL_INT | ( | pn | ) | (((pn) & 0x1) == MP_PARSE_NODE_SMALL_INT) |
#define MP_PARSE_NODE_IS_STRUCT | ( | pn | ) | ((pn) != MP_PARSE_NODE_NULL && ((pn) & 3) == 0) |
#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)) |
#define MP_PARSE_NODE_IS_TOKEN | ( | pn | ) | (((pn) & 0x0f) == MP_PARSE_NODE_TOKEN) |
#define MP_PARSE_NODE_IS_TOKEN_KIND | ( | pn, | |
k | |||
) | ((pn) == (MP_PARSE_NODE_TOKEN | ((k) << 4))) |
#define MP_PARSE_NODE_LEAF_ARG | ( | pn | ) | (((uintptr_t)(pn)) >> 4) |
#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) |
typedef struct _mp_parse_node_struct_t mp_parse_node_struct_t |
typedef uintptr_t mp_parse_node_t |
typedef 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 | ||
) |
int mp_parse_node_extract_list | ( | mp_parse_node_t * | pn, |
size_t | pn_kind, | ||
mp_parse_node_t ** | nodes | ||
) |
bool mp_parse_node_get_int_maybe | ( | mp_parse_node_t | pn, |
mp_obj_t * | o | ||
) |
bool mp_parse_node_is_const_false | ( | mp_parse_node_t | pn | ) |
bool mp_parse_node_is_const_true | ( | mp_parse_node_t | pn | ) |
void mp_parse_node_print | ( | mp_parse_node_t | pn, |
size_t | indent | ||
) |
void mp_parse_tree_clear | ( | mp_parse_tree_t * | tree | ) |