static Pointer makeToken(const char* start, int length) { Pointer ptr = symbol_alloc(length); char* dest = (char*) symbol_get(ptr); memcpy(dest, start, length); dest[length] = 0; return ptr; }
pointer symbol_add(VM, char *str) { pointer obj; int ret; khiter_t iter; obj = symbol_find(vm, str); if (!obj) { obj = symbol_alloc(vm, str); iter = kh_put(STR, vm->symbol_table, AR_STRING(obj).val, &ret); kh_val(vm->symbol_table, iter) = obj; } return obj; }