/* 文のリストを表示 */ void pr_stmt_list(FILE * fp, stmt_list_t ss) { int n = stmt_list_sz(ss); int i; for (i = 0; i < n; i++) { stmt_t s = stmt_list_get(ss, i); pr_stmt(fp, s); } }
int cogen_stmt_compound(FILE *fp,stmt_t s,env_t env,label_gen_t lg) { int sz; int i; env = set_env_vars(s->u.c.decls,env);//宣言された変数を環境に登録、ここではメモリ確保必要ないはず sz = stmt_list_sz(s->u.c.body); for(i=0;i<sz;i++) { stmt_t x = stmt_list_get(s->u.c.body,i); cogen_stmt(fp,x,env,lg); } delete_env_vars(env);//スコープ脱出の際に一番上のスタックを環境から削除 return 0; }