resolve TODOs

This commit is contained in:
Yuichi Nishiwaki 2014-01-27 21:18:03 +09:00
parent 52927ac452
commit a2d9d2f93a
1 changed files with 11 additions and 7 deletions

View File

@ -700,7 +700,8 @@ new_resolver_state(pic_state *pic)
static void static void
destroy_resolver_state(resolver_state *state) destroy_resolver_state(resolver_state *state)
{ {
/* TODO */ pop_resolver_scope(state);
pic_free(state->pic, state);
} }
static void static void
@ -748,8 +749,15 @@ push_resolver_scope(resolver_state *state, pic_value args, pic_value decls)
static void static void
pop_resolver_scope(resolver_state *state) pop_resolver_scope(resolver_state *state)
{ {
/* FIXME */ resolver_scope *scope;
state->scope = state->scope->up;
scope = state->scope;
xh_destory(scope->cvs);
xh_destory(scope->lvs);
scope = scope->up;
pic_free(state->pic, state->scope);
state->scope = scope;
} }
static bool static bool
@ -1050,10 +1058,6 @@ codegen(codegen_state *state, pic_value obj)
codegen_context *cxt = state->cxt; codegen_context *cxt = state->cxt;
pic_sym sym; pic_sym sym;
printf("generating... ");
pic_debug(pic, obj);
puts("");
sym = pic_sym(pic_car(pic, obj)); sym = pic_sym(pic_car(pic, obj));
if (sym == state->sGREF) { if (sym == state->sGREF) {
cxt->code[cxt->clen].insn = OP_GREF; cxt->code[cxt->clen].insn = OP_GREF;