/** * 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); }
/** * 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); }
public override Object accept(PLVisitor plv, Object arg) { return plv.visitBinarySentence(this, arg); }
public abstract Object accept(PLVisitor plv, Object arg);
public override Object accept(PLVisitor plv, Object arg) { return(plv.visitBinarySentence(this, arg)); }
public override Object accept(PLVisitor plv, Object arg) { return(plv.visitSymbol(this, arg)); }
public override Object accept(PLVisitor plv, Object arg) { return plv.visitSymbol(this, arg); }
public abstract Object accept(PLVisitor plv,Object arg);