1 31 32 package org.antlr.works.visualization.fa; 33 34 import java.util.HashSet ; 35 import java.util.Iterator ; 36 import java.util.Set ; 37 38 41 42 public class FAWalker { 43 44 private FAWalkerDelegate delegate; 45 private int mode; 46 private Set <FAState> visitedStates = new HashSet <FAState>(); 47 48 public FAWalker(FAWalkerDelegate delegate, int mode) { 49 this.delegate = delegate; 50 this.mode = mode; 51 } 52 53 public void walk(FAState state) { 54 if(visitedStates.contains(state)) 55 return; 56 visitedStates.add(state); 57 58 delegate.walkerState(state, mode); 59 Iterator <FATransition> iterator = state.transitions.iterator(); 60 while(iterator.hasNext()) { 61 FATransition transition = iterator.next(); 62 delegate.walkerTransition(transition, mode); 63 walk(transition.target); 64 } 65 } 66 } 67 | Popular Tags |