package fitnesse.wikitext.parser; import java.util.ArrayList; import java.util.List; public class Paths { private Translator translator; public Paths(Translator translator) { this.translator = translator; } public List<String> getPaths(Symbol syntaxTree) { TreeWalker walker = new TreeWalker(); syntaxTree.walkPostOrder(walker); return walker.result; } private class TreeWalker implements SymbolTreeWalker { public List<String> result = new ArrayList<>(); @Override public boolean visit(Symbol node) { if (node.getType() instanceof PathsProvider) { result.addAll(((PathsProvider) node.getType()).providePaths(translator, node)); } return true; } @Override public boolean visitChildren(Symbol node) { return true; } } }