/* * 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; import aima.logic.propositional.parsing.ast.UnarySentence; import aima.util.SetOps; /** * @author Ravi Mohan * */ public class NegativeSymbolCollector extends BasicTraverser { public Object visitNotSentence(UnarySentence ns, Object arg){ Set s =(Set)arg; if (ns.getNegated() instanceof Symbol){ s.add((Symbol)ns.getNegated()); } else{ s = new SetOps().union(s,(Set)ns.getNegated().accept(this,arg)); } return s; } public Set getNegativeSymbolsIn(Sentence s){ return (Set)s.accept(this,new HashSet()); } }