static public void ic_start_main(Expr program){
		//translate the program
		Object[] result = program.ic_trans(main_fun, null);
		//add a call to exit
		main_fun.stmts.addAll((LinkedList<IcStmt>)result[0]);
		IcStmt_call last = new IcStmt_call(main_fun,0,tiger.builtins.Exit.ic_exit);
		IcOper x = (IcOper)result[1];
		if(x==null)
			last.args.add(new IcConst_int(0));
		else
			last.args.add(x);
		main_fun.stmts.add(last);
		//order function's statement
		int num=0;
		for(IcStmt i:main_fun.stmts)
			i.num = ++num;
	}