}
ANN Type_Decl *str2td(const Gwion gwion, const m_str str, const loc_t pos) {
-puts(str);
struct td_checker tdc = {.str = str, .pos = pos};
DECL_OO(Type_Decl *, td, = _str2td(gwion, &tdc));
-//*(m_uint*)0 = 1;
if(*tdc.str) {
+/*
Type_Decl *tmp = td;
while(tmp->next) tmp = tmp->next;
while(!strcmp(tdc.str, "[]")) {
else td->array->depth++;
return td;
}
+*/
free_type_decl(gwion->mp, td);
GWION_ERR_O(pos, "excedental character '%c' in '%s'", *tdc.str, str);
}
const Type owner = t->info->value->from->owner_class;
if (owner) {
td_fullname(gwion->env, &text, owner);
-printf("%s %s\n", text.str, t->name);
text_add(&text, ".");
}
text_add(&text, t->name);
const loc_t pos NUSED) {
struct td_info info = {.tl = tl, {.mp = gwion->mp}};
CHECK_BO(td_info_run(gwion->env, &info));
-printf("=== %s ===\n", info.text.str);
return info.text.str;
}
def->base->tmpl->call = cpy_type_list(env->gwion->mp, dt->tl);
def->base->tmpl->base = dt->base->base->tmpl->base;
dt->def = def;
-printf("%s %p\n", v->from->owner->name, v->from->owner_class);
-printf("%p %p\n", v->from->owner->parent, v->from->owner);
-printf("%p %p\n", v->from->owner->parent->parent, v->from->owner);
dt->owner = v->from->owner;
dt->owner_class = v->from->owner_class;
return def;
ANN static ssize_t template_size(const Env env, struct tmpl_info *info) {
DECL_OB(const m_str, str,
= tl2str(env->gwion, info->td->types, info->td->pos));
-printf("ùù %s ùù\n", str);
const size_t tmpl_sz = tmpl_set(info, str);
-puts("jeje");
const m_str base = type2str(env->gwion, info->base, info->td->pos);
-printf("mm %s mm\n", str);
return tmpl_sz + tmpl_set(info, base) + 4;
// return tmpl_sz + tmpl_set(info, info->base->name) + 4;
}
if(!GET_FLAG(t, global) && !from_global_nspc(env, from->owner)) {
if(from->owner_class && type_global(env, from->owner_class))
return true;
-puts(t->name);
gwerr_basic("can't use non-global type in a global class", NULL, NULL, env->name, pos, 0);
gwerr_secondary("not declared global", from->filename, from->loc);
const struct ValueFrom_ *ownerFrom = env->class_def->info->value->from;
static ANN Type scan_func(const Env env, const Type t, const Type_Decl *td) {
DECL_OO(const m_str, tl_name, = tl2str(env->gwion, td->types, td->pos));
-printf("||| %s ||| \n", tl_name);
const Symbol sym = func_symbol(env, t->info->value->from->owner->name,
t->info->func->name, tl_name, 0);
free_mstr(env->gwion->mp, tl_name);