001    /*
002     * Created on Sep 18, 2004
003     *
004     */
005    package aima.logic.fol.parsing;
006    
007    import aima.logic.fol.parsing.ast.ConnectedSentence;
008    import aima.logic.fol.parsing.ast.Constant;
009    import aima.logic.fol.parsing.ast.Function;
010    import aima.logic.fol.parsing.ast.NotSentence;
011    import aima.logic.fol.parsing.ast.Predicate;
012    import aima.logic.fol.parsing.ast.QuantifiedSentence;
013    import aima.logic.fol.parsing.ast.TermEquality;
014    import aima.logic.fol.parsing.ast.Variable;
015    
016    /**
017     * @author Ravi Mohan
018     * 
019     */
020    public interface FOLVisitor {
021            public Object visitPredicate(Predicate p, Object arg);
022    
023            public Object visitTermEquality(TermEquality equality, Object arg);
024    
025            public Object visitVariable(Variable variable, Object arg);
026    
027            public Object visitConstant(Constant constant, Object arg);
028    
029            public Object visitFunction(Function function, Object arg);
030    
031            public Object visitNotSentence(NotSentence sentence, Object arg);
032    
033            public Object visitConnectedSentence(ConnectedSentence sentence, Object arg);
034    
035            public Object visitQuantifiedSentence(QuantifiedSentence sentence,
036                            Object arg);
037    
038    }