package jcircus.parallelism;
import java.util.List;
import javax.swing.JOptionPane;
import net.sourceforge.czt.circus.ast.ActionPara;
import net.sourceforge.czt.circus.ast.BasicProcess;
import net.sourceforge.czt.circus.ast.CircusStateAnn;
import net.sourceforge.czt.circus.ast.OnTheFlyDefAnn;
import net.sourceforge.czt.circus.ast.SkipAction;
import net.sourceforge.czt.circus.util.Factory;
import net.sourceforge.czt.z.ast.AxPara;
import net.sourceforge.czt.z.ast.Box;
import net.sourceforge.czt.z.ast.Decl;
import net.sourceforge.czt.z.ast.ParaList;
import net.sourceforge.czt.z.ast.TruePred;
import net.sourceforge.czt.z.ast.ZDeclList;
import net.sourceforge.czt.z.ast.ZNameList;
import net.sourceforge.czt.z.ast.ZParaList;
import net.sourceforge.czt.z.ast.ZSchText;
public class TestBasicProcess {
static Factory f = new Factory ();
public static void main (String args []) { //Classe que cria um processo básico com main action válida e estado válido
//*******************CRIAÇÃO DA MAIN ACTION DO PROCESSO BÁSICO
OnTheFlyDefAnn otfda = f.createOnTheFlyDefAnn();
SkipAction mainAction = f.createSkipAction();
mainAction.getAnns().add(otfda);
ActionPara mainActionPara = f.createActionPara();
mainActionPara.setName(f.createZName("$$mainAction"));
mainActionPara.setCircusAction(mainAction);
//*****************CRIAÇÃO DO ESTADO DO PROCESSO BÁSICO
CircusStateAnn csa = f.createCircusStateAnn(); //Assinatura que deve ser colocada em
AxPara newPara = f.createAxPara();
ZSchText st1 = f.createZSchText();
ZDeclList decllist1 = f.createZDeclList();
ZNameList namelist1 = f.createZNameList();
namelist1.add(f.createZName("$$defaultSt"));
decllist1.add(f.createConstDecl(f.createZName("%%defaultSt"), f.createNumExpr()));
newPara.setBox(Box.AxBox);
newPara.setNameList(namelist1); //como demos um addAll(decllist2), é como se ele tivesse acrescentando as duas listas
ZSchText zschtext = f.createZSchText();
zschtext.setDeclList(decllist1);
TruePred truePred = f.createTruePred();
zschtext.setPred(truePred);
newPara.setSchText(zschtext);
AxPara statePara = newPara;
statePara.getAnns().add(csa);
//**********************************************************
ZParaList paraList = f.createZParaList();
paraList.add(mainActionPara);
paraList.add(statePara);
BasicProcess bp = f.createBasicProcess();
bp.setParaList(paraList);
//otfda.
List ptfp = bp.getOnTheFlyPara();
}
}