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); }
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); }