Interpreter.PrologInterpreter
Class RenameVisitor

java.lang.Object
  |
  +--Interpreter.Sexp.Utils.SexpVisitor
        |
        +--Interpreter.PrologInterpreter.Sexp.Utils.StructureSexpVisitor
              |
              +--Interpreter.PrologInterpreter.RenameVisitor
Direct Known Subclasses:
CompleteDerefVisitor, DerefVisitor

public class RenameVisitor
extends StructureSexpVisitor

Visitor che ricrea un termine prolog rinominandone le variabili. Il termine costruito è identico al primo eccetto per le variabili.
Per utilizzarlo si deve chiamare il metodo accept di una oggetto DottedTermSexp con parametro una istanza di questa classe.
Il risultato si ottiene chiamando il metodo getResult() dell'istanza di questa classe passata alla accept. getResult() è un metodo ereditato da SexpVisitor.

Altrimenti, anziché la accept si può utilizzare il metodo di accesso Dotted(DottedTermSexp).


Fields inherited from class Interpreter.Sexp.Utils.SexpVisitor
stack
 
Constructor Summary
RenameVisitor(SexpHashtable termSet)
          Costruisce un nuovo RenameVisitor.
 
Method Summary
 Sexp ArgList(Sexp argList)
          Costruisce una lista di argomenti con le variabili rinominate rispetto ad argList.
 void visit(DottedTermSexp d)
          Effettua la visita di un DottedTermSexp, cioè rinomina le variabili in d.
 void visit(IdentSexp e)
          Effettua la visita di un IdentSexp, cioè valuta un IdentSexp.
 void visit(InfixSexp infix)
          Effettua la visita di una InfixSexp.
 void visit(NilSexp e)
          Effettua la visita di un NilSexp, cioè valuta un NilSexp.
 void visit(NoArgsSexp noArgs)
          Mette sullo stack noArgs.
 void visit(PostfixSexp postfix)
          Effettua la visita di una PostfixSex.
 void visit(PrefixSexp prefix)
          Effettua la visita di una PrefixSexp.
 void visit(TermSexp term)
          Mette sullo stack una copia di term costruita con le variabili rinominate.
 void visit(VarSexp e)
          Effettua la visita di un oggetto VarSexp: sostituisce la variabile con una nuova.
 
Methods inherited from class Interpreter.PrologInterpreter.Sexp.Utils.StructureSexpVisitor
visit
 
Methods inherited from class Interpreter.Sexp.Utils.SexpVisitor
getResult, getStack
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RenameVisitor

public RenameVisitor(SexpHashtable termSet)
Costruisce un nuovo RenameVisitor.
Parameters:
termSet - la tabella dei termini predefiniti.
Method Detail

visit

public void visit(DottedTermSexp d)
           throws InterpreterException
Effettua la visita di un DottedTermSexp, cioè rinomina le variabili in d.
Parameters:
d - termine in cui le variabili vengono rinominate.
Overrides:
visit in class StructureSexpVisitor

visit

public void visit(TermSexp term)
           throws InterpreterException
Mette sullo stack una copia di term costruita con le variabili rinominate.
Parameters:
term - termine originale in cui le variabili devono essere rinominate.
Overrides:
visit in class StructureSexpVisitor

ArgList

public Sexp ArgList(Sexp argList)
             throws InterpreterException
Costruisce una lista di argomenti con le variabili rinominate rispetto ad argList.
Parameters:
argList - lista originale.
Returns:
la nuova lista degli argomenti.

visit

public void visit(NoArgsSexp noArgs)
           throws InterpreterException
Mette sullo stack noArgs.
Parameters:
noArgs - termine che non contiene variabili da rinominare.
Overrides:
visit in class StructureSexpVisitor

visit

public void visit(InfixSexp infix)
           throws InterpreterException
Effettua la visita di una InfixSexp.
Parameters:
infix - termine che viene rinominato.
Overrides:
visit in class StructureSexpVisitor

visit

public void visit(PrefixSexp prefix)
           throws InterpreterException
Effettua la visita di una PrefixSexp.
Parameters:
prefix - termine che viene rinominato.
Overrides:
visit in class StructureSexpVisitor

visit

public void visit(PostfixSexp postfix)
           throws InterpreterException
Effettua la visita di una PostfixSex.
Parameters:
postfix - termine che viene rinominato.
Overrides:
visit in class StructureSexpVisitor

visit

public void visit(VarSexp e)
           throws InterpreterException
Effettua la visita di un oggetto VarSexp: sostituisce la variabile con una nuova.
Parameters:
e - variabile che viene sostituita con quella rinominata.
Overrides:
visit in class StructureSexpVisitor

visit

public void visit(IdentSexp e)
           throws InterpreterException
Effettua la visita di un IdentSexp, cioè valuta un IdentSexp.
Parameters:
e - oggetto che viene visitato.
Overrides:
visit in class SexpVisitor

visit

public void visit(NilSexp e)
           throws InterpreterException
Effettua la visita di un NilSexp, cioè valuta un NilSexp.
Parameters:
e - oggetto che viene visitato.
Overrides:
visit in class SexpVisitor


Codice realizzato da Francesco Geri & Marco Tamanti