commit
4b57fac1c8
12
py/objlist.c
12
py/objlist.c
|
@ -18,6 +18,7 @@ typedef struct _mp_obj_list_t {
|
||||||
} mp_obj_list_t;
|
} mp_obj_list_t;
|
||||||
|
|
||||||
static mp_obj_t mp_obj_new_list_iterator(mp_obj_list_t *list, int cur);
|
static mp_obj_t mp_obj_new_list_iterator(mp_obj_list_t *list, int cur);
|
||||||
|
static mp_obj_list_t *list_new(uint n);
|
||||||
|
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
/* list */
|
/* list */
|
||||||
|
@ -43,6 +44,17 @@ static mp_obj_t list_binary_op(int op, mp_obj_t lhs, mp_obj_t rhs) {
|
||||||
uint index = mp_get_index(o->base.type, o->len, rhs);
|
uint index = mp_get_index(o->base.type, o->len, rhs);
|
||||||
return o->items[index];
|
return o->items[index];
|
||||||
}
|
}
|
||||||
|
case RT_BINARY_OP_ADD:
|
||||||
|
{
|
||||||
|
if (!MP_OBJ_IS_TYPE(rhs, &list_type)) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
mp_obj_list_t *p = rhs;
|
||||||
|
mp_obj_list_t *s = list_new(o->len + p->len);
|
||||||
|
memcpy(s->items, o->items, sizeof(mp_obj_t) * o->len);
|
||||||
|
memcpy(s->items + o->len, p->items, sizeof(mp_obj_t) * p->len);
|
||||||
|
return s;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
// op not supported
|
// op not supported
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
# list addition
|
||||||
|
a = [1,2,3]
|
||||||
|
b = [4,5,6]
|
||||||
|
c = a + b
|
||||||
|
print(c)
|
Loading…
Reference in New Issue