fix: fix parser/generator issues
This commit is contained in:
@@ -63,7 +63,6 @@ gen_res_t gen_call(fzl_gen_t *gen, fzl_node_t *node)
|
||||
if (!found)
|
||||
return gen_error;
|
||||
|
||||
gen_res_t result;
|
||||
if (sym.node->type == FZL_NODETYPE_EXTERN_FN)
|
||||
{
|
||||
size_t fn_n = 0;
|
||||
@@ -146,6 +145,9 @@ gen_res_t gen_call(fzl_gen_t *gen, fzl_node_t *node)
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
return gen_error;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -166,8 +168,6 @@ gen_res_t gen_call(fzl_gen_t *gen, fzl_node_t *node)
|
||||
return (gen_res_t){
|
||||
.error = false, .type = sym.type, .classname = sym.classname};
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
if (node->call.callee->type == FZL_NODETYPE_FIELD)
|
||||
@@ -200,7 +200,7 @@ gen_res_t gen_call(fzl_gen_t *gen, fzl_node_t *node)
|
||||
size_t fnlen = strlen(method_node->token->value);
|
||||
char *methodname = malloc(classlen + fnlen + 2);
|
||||
strcpy(methodname, classname);
|
||||
strcpy((methodname + classlen + 1), node->call.callee->token->value);
|
||||
strcpy((methodname + classlen + 1), method_node->token->value);
|
||||
methodname[classlen] = '_';
|
||||
methodname[classlen + fnlen + 1] = 0;
|
||||
|
||||
@@ -210,11 +210,10 @@ gen_res_t gen_call(fzl_gen_t *gen, fzl_node_t *node)
|
||||
if ((found_method = fzl_symt_get(gen->syms[i], methodname, &fn_sym)))
|
||||
break;
|
||||
|
||||
free(methodname);
|
||||
if (!found_method)
|
||||
return gen_error;
|
||||
|
||||
free(methodname);
|
||||
|
||||
if (node->call.args_count > 0)
|
||||
for (size_t i = 0; i < node->call.args_count; i++)
|
||||
if (gen_common(gen, node->call.args[i]).error)
|
||||
|
||||
Reference in New Issue
Block a user