void Tr_printResult(){ F_fragList frags = Tr_getResult(); int cnt = 1; for(; frags!=NULL; frags=frags->tail, cnt++){ if(frags->head!=NULL){ printf("Frag %d:\n", cnt);fflush(stdout); F_printFrag(frags->head); } } }
F_fragList SEM_transProg(A_exp exp){ struct expty et; S_table t = E_base_tenv(); S_table v = E_base_venv(); et = transExp(Tr_outermost(),NULL,v, t, exp); printf("@this expr return:\n"); /* check the return result (use Ty_ty->kind stand) */ F_fragList resl = Tr_getResult(); return resl; }
F_fragList SEM_transProg(A_exp exp){ struct expty et; S_table t = E_base_tenv(); S_table v = E_base_venv(); //puts("@before trans:"); et = transExp(Tr_outermost(), NULL, v, t, exp); //puts("@end trans, begin pr-main:"); //if(!anyErrors) print(et.exp); else printf("@error cant pr"); //puts("\n@end pr-main, begin ref:"); //printf("this exp return: %d\n", et.ty->kind); //puts("@end ref, begin pr-frag"); //puts("@@@@@@@@@@@@@@@@@@@@@@@"); F_fragList resl = Tr_getResult(); //print_frag(resl); //puts("\n@end pr-falg"); return resl; }