/* * Created on Dec 4, 2004 * */ package aima.logic.propositional.visitors; import java.util.HashSet; import java.util.Set; import aima.logic.propositional.parsing.ast.Sentence; import aima.logic.propositional.parsing.ast.Symbol; /** * @author Ravi Mohan * */ public class SymbolCollector extends BasicTraverser { public Object visitSymbol(Symbol s, Object arg) { Set<Symbol> symbolsCollectedSoFar = (Set)arg; symbolsCollectedSoFar.add(new Symbol(s.getValue())); return symbolsCollectedSoFar; } public Set<Symbol> getSymbolsIn(Sentence s){ if (s == null){//empty knowledge bases == null fix this later return new HashSet<Symbol>(); } return (Set<Symbol>)s.accept(this, new HashSet()); } }