public override void Visit(ParallelComposition node)
 {
     List<string> children = PopChildren();
     List<string> procChildren = new List<string>(children);
     procChildren.RemoveRange(0, 2);
     Return(CheckProc(Join(@" \mid\ ", procChildren), children));
 }
 void ParallelComposition(out Process proc, string locality)
 {
     Process ap; ParallelComposition pc = new ParallelComposition();
     ActionPrefix(out ap, locality);
     pc.Add(ap);
     while (la.kind == 12) {
     Get();
     ActionPrefix(out ap, locality);
     pc.Add(ap);
     }
     if (pc.Processes.Count == 1) proc = pc.Processes[0]; else {proc = pc; CopyPos(pc.Processes[0],proc,t);}
 }
 public virtual void Visit(ParallelComposition node)
 {
 }
 public virtual string Format(ParallelComposition pc)
 {
     return SurroundWithParens(Join(" | ", pc), pc.ParenCount) + Format(pc.PreProcessActions) + Format(pc.ActionRestrictions);
 }