static void parseHelper(struct ParseData *d, kvec_uchar_t *commands, kvec_float_t *coords, int alignment, int multiple) { int i; size_t j; char command; kvec_float_t n; command = *d->str; d->str++; kv_init(n); numbers(d, alignment, multiple, &n); if (multiple) { for (j = 0; j < kv_size(n); j += alignment) { kv_push_back(*commands, command); for (i = 0; i < alignment; ++i) kv_push_back(*coords, kv_a(n, j + i)); } } else { kv_push_back(*commands, command); for (i = 0; i < alignment; ++i) kv_push_back(*coords, kv_a(n, i)); } kv_free(n); }
vec_vec_u8_t digify_array(int *v, size_t n) { vec_vec_u8_t ret; kv_init(ret); kv_a(vec_u8_t, ret, n-1); for(size_t i = 0 ; i < n ; i ++) { kv_A(ret, i) = digify(v[i]); } return ret; }
static OBJ TrArray_set(VM, OBJ self, OBJ at, OBJ x) { int i = TrArray_at2index(vm, self, at); if (i < 0) tr_raise("IndexError: index %d out of array", i); kv_a(OBJ, (TR_CARRAY(self))->kv, i) = x; return x; }