private static String compile(){
    	ErrorList e = new ErrorList(filename_in);
    	java_cup.runtime.Symbol out=null;
        try{
            Parser the_parser = new Parser(instream,e);
            out=the_parser.parse();
        }
        catch (Exception ex){
        	//System.err.println("error");
        }	/* eat it */
        if(e.no_error()){
        	//parse
        	Expr result = (Expr)(out.value);
        	Type tmp = result.type_check(Table.init_t_env, Table.init_v_env, false, e);
        	if(e.no_error()){
        		//ic
        		IcFun.ic_start_main(result);
        		//block
        		Block_utils.block_start(IcFun.main_fun);
        		//reg
        		Reg_utils.reg_start(IcFun.main_fun, tiger.cg.Codegen_constant.MIPS_ALL_REGS);
        		//code
        		Codegen.gen_code();
        		
        		return (header1+Builtins.codes+IcFun.string_center+Codegen.get_code_str(IcFun.main_fun));
        	}
        }
        e.print_error();
        System.exit(1);
        return "";
    }