Functions | |
def | append |
def | count |
def | extend |
def | index |
def | insert |
def | pop |
def | remove |
Notes:
def list::append | ( | l, | ||
o | ||||
) |
__NATIVE__ pPmObj_t pl; PmReturn_t retval = PM_RET_OK; /* Raise TypeError if it's not a list or wrong number of args, */ pl = NATIVE_GET_LOCAL(0); if ((OBJ_GET_TYPE(pl) != OBJ_TYPE_LST) || (NATIVE_GET_NUM_ARGS() != 2)) { PM_RAISE(retval, PM_RET_EX_TYPE); return retval; } /* Append the object to the list */ retval = list_append(pl, NATIVE_GET_LOCAL(1)); NATIVE_SET_TOS(PM_NONE); return retval;
def list::index | ( | l, | ||
o | ||||
) |
__NATIVE__ pPmObj_t pl; pPmObj_t po; pPmObj_t pi; PmReturn_t retval = PM_RET_OK; uint16_t i; /* Raise TypeError if it's not a list or wrong number of args, */ pl = NATIVE_GET_LOCAL(0); if ((OBJ_GET_TYPE(pl) != OBJ_TYPE_LST) || (NATIVE_GET_NUM_ARGS() != 2)) { PM_RAISE(retval, PM_RET_EX_TYPE); return retval; } /* Get the index of the object in the list */ po = NATIVE_GET_LOCAL(1); retval = list_index(pl, po, &i); if (retval == PM_RET_EX_VAL) { PM_RAISE(retval, PM_RET_EX_VAL); return retval; } int_new((int32_t)i, &pi); NATIVE_SET_TOS(pi); return retval;
def list::insert | ( | l, | ||
i, | ||||
o | ||||
) |
__NATIVE__ pPmObj_t pl; pPmObj_t pi; pPmObj_t po; PmReturn_t retval = PM_RET_OK; uint16_t i; /* * Raise TypeError if wrong number of args, first arg is not a list, or * second arg is not an int */ pl = NATIVE_GET_LOCAL(0); pi = NATIVE_GET_LOCAL(1); po = NATIVE_GET_LOCAL(2); if ((NATIVE_GET_NUM_ARGS() != 3) || (OBJ_GET_TYPE(pl) != OBJ_TYPE_LST) || (OBJ_GET_TYPE(pi) != OBJ_TYPE_INT) ) { PM_RAISE(retval, PM_RET_EX_TYPE); return retval; } /* Insert the object before the given index */ i = (uint16_t)((pPmInt_t)pi)->val; retval = list_insert(pl, i, po); if (retval != PM_RET_OK) { PM_RAISE(retval, PM_RET_EX_SYS); } NATIVE_SET_TOS(PM_NONE); return retval;
def list::pop | ( | l, | ||
i | ||||
) |
__NATIVE__ pPmObj_t pl; pPmObj_t pi; pPmObj_t po; PmReturn_t retval = PM_RET_OK; int16_t i; /* * Raise TypeError if first arg is not a list o second arg is not an int * or there are the wrong number of arguments */ pl = NATIVE_GET_LOCAL(0); if (OBJ_GET_TYPE(pl) != OBJ_TYPE_LST) { PM_RAISE(retval, PM_RET_EX_TYPE); return retval; } pi = NATIVE_GET_LOCAL(1); if (NATIVE_GET_NUM_ARGS() == 2) { if (OBJ_GET_TYPE(pi) != OBJ_TYPE_INT) { PM_RAISE(retval, PM_RET_EX_TYPE); return retval; } i = (uint16_t)((pPmInt_t)pi)->val; } else { i = -1; } if ((NATIVE_GET_NUM_ARGS() < 1) || (NATIVE_GET_NUM_ARGS() > 2)) { PM_RAISE(retval, PM_RET_EX_TYPE); return retval; } /* Get the object at the given index */ retval = list_getItem(pl, i, &po); PM_RETURN_IF_ERROR(retval); /* Return the object to the caller */ NATIVE_SET_TOS(po); /* Remove the object from the given index */ retval = list_delItem(pl, i); PM_RETURN_IF_ERROR(retval); return retval;
def list::remove | ( | l, | ||
v | ||||
) |
__NATIVE__ pPmObj_t pl; pPmObj_t pv; PmReturn_t retval = PM_RET_OK; /* Raise TypeError if it's not a list or wrong number of args, */ pl = NATIVE_GET_LOCAL(0); if ((OBJ_GET_TYPE(pl) != OBJ_TYPE_LST) || (NATIVE_GET_NUM_ARGS() != 2)) { PM_RAISE(retval, PM_RET_EX_TYPE); return retval; } /* Remove the value from the list */ pv = NATIVE_GET_LOCAL(1); retval = list_remove(pl, pv); if (retval != PM_RET_OK) { PM_RAISE(retval, retval); } NATIVE_SET_TOS(PM_NONE); return retval;