Interpreter.PrologInterpreter
Class CompleteDerefVisitor

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

public class CompleteDerefVisitor
extends RenameVisitor

Visitor che ricrea un termine prolog dereferenziando le variabili e valutandole.
Il termine costruito è identico al primo eccetto per le variabili che vengono dereferenziate utilizzando i valori presi dalla SexpHashtable passata al costruttore e valutate.
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
CompleteDerefVisitor(SexpHashtable subs)
          Costruisce un nuovo CompleteDerefVisitor.
 
Method Summary
 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, 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

CompleteDerefVisitor

public CompleteDerefVisitor(SexpHashtable subs)
Costruisce un nuovo CompleteDerefVisitor.
Parameters:
tabella - delle sostituzioni.
Method Detail

visit

public void visit(VarSexp var)
           throws InterpreterException
Effettua la visita di un oggetto VarSexp. Dereferenzia la variabile e la valuta.
Parameters:
var - oggetto della classe VarSexp che viene visitato.
Throws:
InterpreterException - se si sta cercando di valutare una variabile non istanziata.
Overrides:
visit in class RenameVisitor


Codice realizzato da Francesco Geri & Marco Tamanti