コード例 #1
0
ファイル: Sentence.cs プロジェクト: tvn-cosine/aima.net
        /**
         * Allow a PLVisitor to walk over the abstract syntax tree represented by this
         * Sentence.
         *
         * @param plv
         *            a Propositional Logic visitor.
         * @param arg
         *            an optional argument for use by the visior.
         * @return a result specific to the visitors behavior.
         */
        public virtual R accept <A, R>(PLVisitor <A, R> plv, A arg)
        {
            R result = default(R);

            if (isPropositionSymbol())
            {
                result = plv.visitPropositionSymbol((PropositionSymbol)this, arg);
            }
            else if (isUnarySentence())
            {
                result = plv.visitUnarySentence((ComplexSentence)this, arg);
            }
            else if (isBinarySentence())
            {
                result = plv.visitBinarySentence((ComplexSentence)this, arg);
            }

            return(result);
        }
コード例 #2
0
ファイル: Sentence.cs プロジェクト: gonzsa04/IA
        /**
         * Permite a un PLVisitor recorrer el árbol de sintaxis abstracta representado por esta sentencia.
         *
         * @param plv
         *            un visitante de Lógica Proposicional.
         * @param arg
         *            un argumento opcional que puede ser usado por el visitante.
         * @return un resultado específico del comportamiento del visitante.
         */
        public R Accept <A, R>(PLVisitor <A, R> plv, A arg) // Tupla de Java ponía <A, R> R ... hay que poner los tipos genéricos en el nombre del método también (y lo que se devuelve es R no Tuple<A, R>)
        {
            R result = default(R);                          // Por si R no admite nulos

            if (IsPropositionSymbol())
            {
                result = plv.VisitPropositionSymbol((PropositionSymbol)this, arg);
            }
            else if (IsUnarySentence())
            {
                result = plv.VisitUnarySentence((ComplexSentence)this, arg);
            }
            else if (IsBinarySentence())
            {
                result = plv.VisitBinarySentence((ComplexSentence)this, arg);
            }

            return(result);
        }
コード例 #3
0
ファイル: BinarySentence.cs プロジェクト: langeds/aima
		public override Object accept(PLVisitor plv, Object arg) 
		{
			return plv.visitBinarySentence(this, arg);
		}
コード例 #4
0
ファイル: Sentence.cs プロジェクト: claudiu04/AIMA.Net
 public abstract Object accept(PLVisitor plv, Object arg);
コード例 #5
0
 public override Object accept(PLVisitor plv, Object arg)
 {
     return(plv.visitBinarySentence(this, arg));
 }
コード例 #6
0
ファイル: Symbol.cs プロジェクト: claudiu04/AIMA.Net
 public override Object accept(PLVisitor plv, Object arg)
 {
     return(plv.visitSymbol(this, arg));
 }
コード例 #7
0
ファイル: Symbol.cs プロジェクト: langeds/aima
		public override Object accept(PLVisitor plv, Object arg) 
		{
			return plv.visitSymbol(this, arg);
		}
コード例 #8
0
ファイル: Sentence.cs プロジェクト: langeds/aima
		public abstract Object accept(PLVisitor plv,Object arg);