package aima.core.logic.propositional.visitors; import java.util.HashSet; import java.util.Set; import aima.core.logic.propositional.parsing.ast.Sentence; import aima.core.logic.propositional.parsing.ast.Symbol; /** * @author Ravi Mohan * */ public class SymbolCollector extends BasicTraverser { @SuppressWarnings("unchecked") @Override public Object visitSymbol(Symbol s, Object arg) { Set<Symbol> symbolsCollectedSoFar = (Set<Symbol>) arg; symbolsCollectedSoFar.add(new Symbol(s.getValue())); return symbolsCollectedSoFar; } @SuppressWarnings("unchecked") 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<Symbol>()); } }