summaryrefslogtreecommitdiffstatshomepage
path: root/py/objprivate.h
diff options
context:
space:
mode:
Diffstat (limited to 'py/objprivate.h')
-rw-r--r--py/objprivate.h140
1 files changed, 0 insertions, 140 deletions
diff --git a/py/objprivate.h b/py/objprivate.h
deleted file mode 100644
index 70ee6560da..0000000000
--- a/py/objprivate.h
+++ /dev/null
@@ -1,140 +0,0 @@
-// internal py_obj_t representation
-// not for general use, instead access using py_obj_xxx functions
-
-#define IS_O(o, k) (((((py_small_int_t)(o)) & 1) == 0) && (((py_obj_base_t*)(o))->kind == (k)))
-#define IS_SMALL_INT(o) (((py_small_int_t)(o)) & 1)
-#define FROM_SMALL_INT(o) (((py_small_int_t)(o)) >> 1)
-#define TO_SMALL_INT(o) ((py_obj_t)(((o) << 1) | 1))
-
-typedef enum {
- O_CONST,
- O_STR,
-#if MICROPY_ENABLE_FLOAT
- O_FLOAT,
- O_COMPLEX,
-#endif
- O_CELL,
- O_EXCEPTION_0,
- O_EXCEPTION_N,
- O_RANGE,
- O_RANGE_IT,
- O_FUN_0,
- O_FUN_1,
- O_FUN_2,
- O_FUN_N,
- O_FUN_VAR,
- O_FUN_BC,
- O_FUN_ASM,
- O_GEN_WRAP,
- O_GEN_INSTANCE,
- O_BOUND_METH,
- O_CLOSURE,
- O_TUPLE,
- O_LIST,
- O_TUPLE_IT,
- O_LIST_IT,
- O_SET,
- O_MAP,
- O_CLASS,
- O_OBJ,
- O_USER,
-} py_obj_kind_t;
-
-typedef struct _py_obj_base_t py_obj_base_t;
-
-struct _py_obj_base_t {
- py_obj_kind_t kind;
- union {
- const char *id;
- qstr u_str;
-#if MICROPY_ENABLE_FLOAT
- py_float_t u_float; // for O_FLOAT
- struct { // for O_COMPLEX
- py_float_t real;
- py_float_t imag;
- } u_complex;
-#endif
- py_obj_t u_cell; // for O_CELL
- struct { // for O_EXCEPTION_0
- qstr id;
- } u_exc0;
- struct { // for O_EXCEPTION_N
- // TODO make generic object or something
- qstr id;
- int n_args;
- const void **args;
- } u_exc_n;
- struct { // for O_RANGE
- // TODO make generic object or something
- machine_int_t start;
- machine_int_t stop;
- machine_int_t step;
- } u_range;
- struct { // for O_RANGE_IT
- // TODO make generic object or something
- machine_int_t cur;
- machine_int_t stop;
- machine_int_t step;
- } u_range_it;
- struct { // for O_FUN_[012N], O_FUN_VAR
- int n_args;
- void *fun;
- } u_fun;
- struct { // for O_FUN_BC
- int n_args;
- uint n_state;
- byte *code;
- } u_fun_bc;
- struct { // for O_FUN_ASM
- int n_args;
- void *fun;
- } u_fun_asm;
- struct { // for O_GEN_WRAP
- int n_state;
- py_obj_base_t *fun;
- } u_gen_wrap;
- struct { // for O_GEN_INSTANCE
- py_obj_t *state;
- const byte *ip;
- py_obj_t *sp;
- } u_gen_instance;
- struct { // for O_BOUND_METH
- py_obj_t meth;
- py_obj_t self;
- } u_bound_meth;
- struct { // for O_CLOSURE
- py_obj_t fun;
- py_obj_t vars;
- } u_closure;
- struct { // for O_TUPLE, O_LIST
- machine_uint_t alloc;
- machine_uint_t len;
- py_obj_t *items;
- } u_tuple_list;
- struct { // for O_TUPLE_IT, O_LIST_IT
- py_obj_base_t *obj;
- machine_uint_t cur;
- } u_tuple_list_it;
- struct { // for O_SET
- machine_uint_t alloc;
- machine_uint_t used;
- py_obj_t *table;
- } u_set;
- py_map_t u_map; // for O_MAP
- struct { // for O_CLASS
- py_map_t *locals;
- } u_class;
- struct { // for O_OBJ
- py_obj_base_t *class; // points to a O_CLASS object
- py_map_t *members;
- } u_obj;
- struct { // for O_USER
- const py_user_info_t *info;
- machine_uint_t data1;
- machine_uint_t data2;
- } u_user;
- };
-};
-
-py_obj_t py_obj_new_tuple_iterator(py_obj_base_t *tuple, int cur);
-py_obj_t py_obj_new_list_iterator(py_obj_base_t *list, int cur);