package Hi ; import java.util.*; import Hi.node.*; import Hi.analysis.*; public class MonadRemover extends DepthFirstAdapter { public void outASecondaryExpr(ASecondaryExpr node) { PSecondary second = node.getSecondary(); if (second instanceof AMonadSecondary){ AMonadSecondary amonad = (AMonadSecondary)second; PAtom atm= amonad.getAtom(); String id = amonad.getOp().toString() .trim(); AMap map = new AMap(); TLparen lp = new TLparen(); map.setLparen(lp);map.setRparen(new TRparen()); map.setId(new TId(id)); AParamlistActualparams apl = new AParamlistActualparams(); apl.setExpr( new ASecondaryExpr(new APrimarySecondary(new APrimary(atm)))); map.setActualparams(apl); node.setSecondary(new APrimarySecondary(new AMapPrimary(map))); } } }