if (ap.getPeek() == null)
if (ap.getPeek() == null) {
    public Object visitOther(FENode node)    {        if (node instanceof ExprJavaConstructor)        {            ExprJavaConstructor jc = (ExprJavaConstructor)node;            return makeConstructor(jc.getType());        }        if (node instanceof StmtIODecl)        {            StmtIODecl io = (StmtIODecl)node;            String result = io.getName() + " = new Channel(" +                typeToClass(io.getType()) + ", " +                (String)io.getRate1().accept(this);            if (io.getRate2() != null)                result += ", " + (String)io.getRate2().accept(this);            result += ")";            return result;        }        if (node instanceof StmtAddPhase)        {            StmtAddPhase ap = (StmtAddPhase)node;            String result;            if (ap.isInit())                result = "addInitPhase";            else result = "addSteadyPhase";            result += "(";            if (ap.getPeek() == null)		// by default, peek==pop                result += (String)ap.getPop().accept(this) + ", ";            else                result += (String)ap.getPeek().accept(this) + ", ";            if (ap.getPop() == null)                result += "0, ";            else                result += (String)ap.getPop().accept(this) + ", ";            if (ap.getPush() == null)                result += "0, ";            else                result += (String)ap.getPush().accept(this) + ", ";            result += "\"" + ap.getName() + "\")";            return result;        }        if (node instanceof StmtSetTypes)        {            StmtSetTypes sst = (StmtSetTypes)node;            return "setIOTypes(" + typeToClass(sst.getInType()) +                ", " + typeToClass(sst.getOutType()) + ")";        }        else        {            assert false : node;            return "";        }    }