mirror of
https://github.com/micropython/micropython.git
synced 2026-01-07 12:40:15 +01:00
Convert Python types to proper Python type hierarchy.
Now much more inline with how CPython does types.
This commit is contained in:
7
py/obj.h
7
py/obj.h
@@ -58,6 +58,7 @@ typedef mp_obj_t (*mp_fun_t)(void);
|
||||
typedef mp_obj_t (*mp_fun_var_t)(int n, const mp_obj_t *);
|
||||
|
||||
typedef void (*mp_print_fun_t)(void (*print)(void *env, const char *fmt, ...), void *env, mp_obj_t o);
|
||||
typedef mp_obj_t (*mp_make_new_fun_t)(mp_obj_t type_in, int n_args, const mp_obj_t *args); // args are in reverse order in the array
|
||||
typedef mp_obj_t (*mp_call_n_fun_t)(mp_obj_t fun, int n_args, const mp_obj_t *args); // args are in reverse order in the array
|
||||
typedef mp_obj_t (*mp_unary_op_fun_t)(int op, mp_obj_t);
|
||||
typedef mp_obj_t (*mp_binary_op_fun_t)(int op, mp_obj_t, mp_obj_t);
|
||||
@@ -71,6 +72,7 @@ struct _mp_obj_type_t {
|
||||
mp_obj_base_t base;
|
||||
const char *name;
|
||||
mp_print_fun_t print;
|
||||
mp_make_new_fun_t make_new; // to make an instance of the type
|
||||
|
||||
mp_call_n_fun_t call_n;
|
||||
mp_unary_op_fun_t unary_op; // can return NULL if op not supported
|
||||
@@ -110,6 +112,7 @@ extern const mp_obj_type_t mp_const_type;
|
||||
extern const mp_obj_t mp_const_none;
|
||||
extern const mp_obj_t mp_const_false;
|
||||
extern const mp_obj_t mp_const_true;
|
||||
extern const mp_obj_t mp_const_empty_tuple;
|
||||
extern const mp_obj_t mp_const_ellipsis;
|
||||
extern const mp_obj_t mp_const_stop_iteration; // special object indicating end of iteration (not StopIteration exception!)
|
||||
|
||||
@@ -180,6 +183,9 @@ extern const mp_obj_type_t bool_type;
|
||||
mp_obj_t mp_obj_cell_get(mp_obj_t self_in);
|
||||
void mp_obj_cell_set(mp_obj_t self_in, mp_obj_t obj);
|
||||
|
||||
// int
|
||||
extern const mp_obj_type_t int_type;
|
||||
|
||||
// exception
|
||||
extern const mp_obj_type_t exception_type;
|
||||
qstr mp_obj_exception_get_type(mp_obj_t self_in);
|
||||
@@ -214,6 +220,7 @@ uint mp_obj_dict_len(mp_obj_t self_in);
|
||||
mp_obj_t mp_obj_dict_store(mp_obj_t self_in, mp_obj_t key, mp_obj_t value);
|
||||
|
||||
// set
|
||||
extern const mp_obj_type_t set_type;
|
||||
void mp_obj_set_store(mp_obj_t self_in, mp_obj_t item);
|
||||
|
||||
// slice
|
||||
|
||||
Reference in New Issue
Block a user