Example #1
0
 public override void Visit(IPCNodeVisitor visitor, string methodName, List <PCNode> states, List <StepDescriptor> steps,
                            Dictionary <ArmadaPC, int> visitedLoops, List <bool> branches)
 {
     states.Add(this);
     visitor.Visit(methodName, states, steps, visitedLoops, branches);
     steps.Add(new StepDescriptor(StepDescriptorType.Start, null));
     successor.Visit(visitor, methodName, states, steps, visitedLoops, branches);
     steps.RemoveAt(steps.Count - 1);
     states.RemoveAt(states.Count - 1);
 }
Example #2
0
 public override void Visit(IPCNodeVisitor visitor, string methodName, List <PCNode> states, List <StepDescriptor> steps,
                            Dictionary <ArmadaPC, int> visitedLoops, List <bool> branches)
 {
     states.Add(this);
     visitor.Visit(methodName, states, steps, visitedLoops, branches);
     steps.Add(new StepDescriptor(StepDescriptorType.IfTrue, nextRoutineWhenTrue));
     branches.Add(true);
     successorWhenTrue.Visit(visitor, methodName, states, steps, visitedLoops, branches);
     steps.RemoveAt(steps.Count - 1);
     steps.Add(new StepDescriptor(StepDescriptorType.IfFalse, nextRoutineWhenFalse));
     branches.RemoveAt(branches.Count - 1);
     branches.Add(false);
     successorWhenFalse.Visit(visitor, methodName, states, steps, visitedLoops, branches);
     steps.RemoveAt(steps.Count - 1);
     states.RemoveAt(states.Count - 1);
     branches.RemoveAt(branches.Count - 1);
 }