package jcircus.translator;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import jcircus.complementaryenvs.ProcCreateMainEnv;
//import jcircus.complexcomms.ComplexCommUpdater;
import jcircus.newfrontendmethod.FrontEndUpdater;
import jcircus.parallelism.CopyUpdater;
import jcircus.parallelism.ParallelismUpdater;
import jcircus.parallelism.ProcHiddenFromGUIEnv;
import jcircus.util.ProcInfo;
import net.sourceforge.czt.circus.ast.CircusProcess;
import net.sourceforge.czt.circus.ast.ParamProcess;
import net.sourceforge.czt.circus.ast.ProcessPara;
import net.sourceforge.czt.z.ast.Para;
import net.sourceforge.czt.z.ast.Sect;
import net.sourceforge.czt.z.ast.Spec;
import net.sourceforge.czt.z.ast.VarDecl;
import net.sourceforge.czt.z.ast.ZName;
import net.sourceforge.czt.z.ast.ZSect;
import net.sourceforge.czt.z.impl.ZSectImpl;
public class ProcInfoUpdater {
//static ProcHiddenFromGUIEnv prochid;
public static void initProcInfoAndCreateMainEnv (ProcCreateMainEnv pcme, List <ProcInfo> procInfoList, Spec _spec, boolean fullparallelism, boolean createmain/*, ProcHiddenFromGUIEnv prochid*/) {
/*CopyUpdater copyUpdater = new CopyUpdater ();
ParallelismUpdater parallelismUpdater = new ParallelismUpdater ();
ComplexCommUpdater complexCommUpdater = new ComplexCommUpdater ();
if (fullparallelism) {
copyUpdater.updateSpec(_spec);
parallelismUpdater.updateSpec(_spec);
complexCommUpdater.updateSpec (_spec);
prochid = parallelismUpdater.prochid;
}*/
Iterator iterator;
if (_spec.getSect().get(0) instanceof ZSectImpl) {
iterator = ((List<Sect>) ((ZSect) (_spec).getSect().get(0)).getParaList()).iterator();
}
else {
iterator = ((List<Sect>) ((ZSect) (_spec).getSect().get(1)).getParaList()).iterator();
}
while (iterator.hasNext()) {
Para para = (Para) iterator.next();
if (para instanceof ProcessPara) {
ZName procName = ((ProcessPara) para).getZName ();
List <VarDecl> params = new ArrayList <VarDecl> ();
ProcInfo procInfo = new ProcInfo (procName.toString(), (ProcessPara)para, "", params, false);
procInfoList.add(procInfo);
pcme.update(procName.toString(), createmain);
}
}
}
}