if (libraryFormat) {
if (target == null || target.getCls() != Function.FUNC_PHASE) return stmt; else if (libraryFormat) {
    public Object visitStmtExpr(StmtExpr stmt)    {        Expression expr = stmt.getExpression();        if (!(expr instanceof ExprFunCall))            return stmt;        ExprFunCall fc = (ExprFunCall)expr;        Function target = ss.getFuncNamed(fc.getName());        if (libraryFormat) {            List stmtList = new ArrayList();            stmtList.add(stmt);            stmtList.add(new StmtExpr(stmt.getContext(),                                       new ExprFunCall(stmt.getContext(),                                                       "contextSwitch",                                                       new ArrayList())));            return new StmtBlock(stmt.getContext(), stmtList);        } else {            if (target.getCls() != Function.FUNC_PHASE)                return stmt;            return new StmtPhase(stmt.getContext(), fc);        }    }