Interpreter.PrologInterpreter
Class DerefVisitor

java.lang.Object
  |
  +--Interpreter.Sexp.Utils.SexpVisitor
        |
        +--Interpreter.PrologInterpreter.Sexp.Utils.StructureSexpVisitor
              |
              +--Interpreter.PrologInterpreter.RenameVisitor
                    |
                    +--Interpreter.PrologInterpreter.DerefVisitor

public class DerefVisitor
extends RenameVisitor

Visitor che ricrea un termine prolog dereferenziando le variabili.
Il termine costruito è identico al primo eccetto per le variabili che vengono dereferenziate utilizzando i valori presi dalla SexpHashtable passata al costruttore.
Per utilizzarlo si deve chiamare il metodo accept di un oggetto TermSexp con parametro una istanza di questa classe.
Il risultato si ottiene chiamando il metodo getResult() dell'istanza di questa classe passata alla accept. Il metodo getResult() è ereditato da SexpVisitor.


Fields inherited from class Interpreter.Sexp.Utils.SexpVisitor
stack
 
Constructor Summary
DerefVisitor(SexpHashtable subs, SexpHashtable t)
          Costruisce un nuovo DerefVisitor.
 
Method Summary
 boolean notGround(Sexp term)
          Controlla se term è ground.
 void visit(DottedTermSexp d)
          Non dovrebbe mai essere utilizzata: lancia una eccezione.
 void visit(VarSexp var)
          Effettua la visita di un oggetto VarSexp.
 
Methods inherited from class Interpreter.PrologInterpreter.RenameVisitor
ArgList, visit, visit, visit, visit, visit, visit, visit
 
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

DerefVisitor

public DerefVisitor(SexpHashtable subs,
                    SexpHashtable t)
Costruisce un nuovo DerefVisitor.
Parameters:
subs - tabella delle sostituzioni.
t - tabella dei termini predefiniti.
Method Detail

notGround

public boolean notGround(Sexp term)
                  throws InterpreterException
Controlla se term è ground.
Parameters:
term - il termine. return false se il termine è ground. throws InterpreterException se si ha un errore durante la dereferenziazione delle variabili contenute in term.

visit

public void visit(DottedTermSexp d)
           throws InterpreterException
Non dovrebbe mai essere utilizzata: lancia una eccezione.
Parameters:
d - termine che non può essere dereferenziato.
Overrides:
visit in class RenameVisitor

visit

public void visit(VarSexp var)
           throws InterpreterException
Effettua la visita di un oggetto VarSexp. Dereferenzia la variabile.
Parameters:
var - oggetto della classe VarSexp che viene visitato.
Overrides:
visit in class RenameVisitor


Codice realizzato da Francesco Geri & Marco Tamanti