コード例 #1
0
        public override void Visit(NonDeterministicChoice node)
        {
            List <string> children     = PopChildren();
            List <string> procChildren = new List <string>(children);

            procChildren.RemoveRange(0, 2);
            Return(CheckProc("(" + Join(" + ", procChildren), children) + ")");
        }
コード例 #2
0
        void NonDeterministicChoice(out Process proc)
        {
            Process pc; NonDeterministicChoice ndc = new NonDeterministicChoice();

            ParallelComposition(out pc);
            ndc.Add(pc);
            while (la.kind == 14)
            {
                Get();
                ParallelComposition(out pc);
                ndc.Add(pc);
            }
            if (ndc.Processes.Count == 1)
            {
                proc = ndc.Processes[0];
            }
            else
            {
                proc = ndc; CopyPos(proc, ndc.Processes[0], t);
            }
        }
コード例 #3
0
        void NonDeterministicChoice(out Process proc, string locality)
        {
            NonDeterministicChoice ndc = new NonDeterministicChoice(); Process pc = null;

            ParallelComposition(out pc, locality);
            ndc.Add(pc);
            while (la.kind == 11)
            {
                Get();
                ParallelComposition(out pc, locality);
                ndc.Add(pc);
            }
            if (ndc.Processes.Count == 1)
            {
                proc = ndc.Processes[0];
            }
            else
            {
                proc = ndc; CopyPos(proc, ndc.Processes[0], t);
            }
        }
コード例 #4
0
 public virtual void Visit(NonDeterministicChoice node)
 {
 }
コード例 #5
0
 public virtual string Format(NonDeterministicChoice ndc)
 {
     return(SurroundWithParens(Join("+", ndc), ndc.ParenCount) + Format(ndc.PreProcessActions) + Format(ndc.ActionRestrictions));
 }