Interpreter.PrologInterpreter
Class EngineSexpVisitor

java.lang.Object
  |
  +--Interpreter.Sexp.Utils.SexpVisitor
        |
        +--Interpreter.PrologInterpreter.Sexp.Utils.StructureSexpVisitor
              |
              +--Interpreter.PrologInterpreter.Sexp.Utils.PrologSexpVisitor
                    |
                    +--Interpreter.PrologInterpreter.EngineSexpVisitor
Direct Known Subclasses:
ExtendedPrologEngineVisitor

public class EngineSexpVisitor
extends PrologSexpVisitor

Un oggetto EngineSexpVisitor realizza un Pattern Visitor per una s-expression.
Questa è l'implementazione del motore di ricerca prolog. Il risultato viene preso dallo stack tramite il metodo getResult() ereditato da SexpVisitor.

See Also:
Stampa(boolean), SexpVisitor.getResult()

Field Summary
protected  DataBase dataBase
          Database globale usato per la valutazione.
 java.lang.String file
          Variabile in cui viene memorizzato il nome di un file che deve essere consultato.
 boolean safeness
          Se è true, la valutazione di un not seguito da una clausola non ground viene posticipata il più possibile.
 boolean SLD
          Se true indica che ragioniamo in logica positiva, altrimenti in logica negata (SLDNF) poiché abbiamo incontrato un not.
 boolean stop
          Se impostato a true viene fermata la risoluzione.
protected  boolean success
          Se true indica successo della risoluzione.
 
Fields inherited from class Interpreter.Sexp.Utils.SexpVisitor
stack
 
Constructor Summary
EngineSexpVisitor(InputBuffer In, OutputBuffer Out, NewParser par, java.lang.Class extEval)
          Costruisce un nuovo EngineSexpVisitor.
 
Method Summary
protected  Sexp build(Sexp fun, Sexp args)
          Costruisce un nuovo termine predefinito.
 DataBase getDataBase()
          Restituisce il DataBase interno all'EngineSexpVisitor.
protected  void init(InputBuffer In, OutputBuffer Out, NewParser par)
          Inizializza il motore di ricerca.
static void main(java.lang.String[] s)
          Metodo mein utilizzato per il debug.
 void reset()
          Per cancellare tutto il database.
 void set_OCCUR_CHECK(boolean flag)
          Consente di modificare l'opzione di occur check per l'algoritmo di l'unificazione.
protected  boolean Stampa(boolean result)
          Fa continuare la risoluzione se necessario, oppure stampa il risultato.
protected  ListSexp toListSexp(Sexp e)
          Restituisce la lista che ha come testa il funtore del termine e come coda la lista degli argomenti del termine
 void visit(AndSexp and)
          Effettua la visita di un AndSexp, cioè risolve un and tra due termini (operatore ,).
 void visit(ArEqualSexp arEqual)
          Effettua la visita di un ArEqualSexp, cioè risolve l'operatore di uguaglianza =:=.
 void visit(ArgTerm a)
          Effettua la visita di un ArgTerm, cioè risolve il predicato predefinito arg.
 void visit(ArNotEqualSexp arNotEqual)
          Effettua la visita di un ArNotEqualSexp, cioè risolve un operatore aritmetico =/=.
 void visit(AssertaTerm a)
          Effettua la visita di un AssertaTerm, cioè risolve il predicato predefinito asserta.
 void visit(AssertTerm a)
          Effettua la visita di un AssertTerm, cioè risolve il predicato predefinito assert.
 void visit(AtomicTerm a)
          Effettua la visita di un AtomicTerm, cioè risolve il predicato predefinito atomic.
 void visit(AtomTerm a)
          Effettua la visita di un AtomTerm, cioè risolve il predicato predefinito atom.
 void visit(BagOfTerm e)
          Effettua la visita di un BagOfTerm, cioè risolve il predicato predefinito bagof.
 void visit(CallTerm call)
          Effettua la visita di un CallTerm, cioè risolve il predicato predefinito call.
 void visit(ClauseSexp d)
          Effettua la visita di una ClauseSexp.
 void visit(ClauseTerm c)
          Effettua la visita di un ClauseTerm, cioè risolve il predicato predefinito clause.
 void visit(CompoundTerm c)
          Effettua la visita di un CompoundTerm, cioè risolve il predicato predefinito compound.
 void visit(CutSexp e)
          Effettua la visita di un CutSexp, cioè risolve il predicato cut (!).
 void visit(DottedClauseSexp d)
          Effettua la visita di un DottedClauseSexp, cioè la mette nel database.
 void visit(DottedQuerySexp d)
          Effettua la visita di un DottedQuerySexp, cioè inizia la ricerca di una soluzione.
 void visit(DottedTermSexp d)
          Effettua la visita di un DottedTermSexp, cioè lo mette nel database.
 void visit(EqualLessSexp eqls)
          Effettua la visita di un EqualLessSexp, cioè risolve un operatore =<.
 void visit(EqualSexp Equal)
          Effettua la visita di un EqualSexp, cioè risolve un operatore ==.
 void visit(FailSexp e)
          Effettua la visita di un FailSexp, cioè risolve il predicato fail.
 void visit(FindAllTerm e)
          Effettua la visita di un FindAllTerm, cioè risolve il predicato predefinito findall.
 void visit(FunctorTerm f)
          Effettua la visita di un FunctorTerm, cioè risolve il predicato predefinito functor.
 void visit(GreatEqualSexp greq)
          Effettua la visita di un GreatEqualSexp, cioè risolve un operatore >=.
 void visit(GreatSexp great)
          Effettua la visita di un GreatSexp, cioè risolve un operatore aritmetico >.
 void visit(GroundTerm ground)
          Effettua la visita di un GroundTerm, cioè risolve il predicato predefinito ground.
 void visit(IdentSexp id)
          Effettua la visita di un IdentSexp, cioè risolve un IdentSexp.
 void visit(InfixSexp d)
          Effettua la visita di una InfixSexp.
 void visit(IntegerTerm n)
          Effettua la visita di un IntegerTerm, cioè risolve il predicato predefinito integer.
 void visit(IsSexp is)
          Effettua la visita di un IsSexp, cioè risolve un operando is valutando l'argomento.
 void visit(LessSexp less)
          Effettua la visita di un LessSexp, cioè risolve un operatore <.
 void visit(ListingSexp listing)
          Effettua la visita di un ListingTerm, cioè risolve il predicato predefinito listing/0.
 void visit(ListingTerm listing)
          Effettua la visita di un ListingTerm, cioè risolve il predicato predefinito listing/1.
 void visit(ListSexp list)
          Effettua la visita di una ListSexp, cioè risolve le liste prolog (simboli [ ] |).
 void visit(NameTerm e)
          Effettua la visita di un NameTerm, cioè risolve il predicato predefinito name.
 void visit(NilListSexp nilList)
          Effettua la visita di una NilListSexp, cioè risolve una lista nulla.
 void visit(NilSexp nil)
          Effettua la visita di un NilSexp, cioè risolve un NilSexp.
 void visit(NlSexp e)
          Effettua la visita di un NlSexp, cioè risolve il predicato nl.
 void visit(NoArgsSexp d)
          Effettua la visita di una NoArgsSexp.
 void visit(NonVarTerm e)
          Effettua la visita di un NonVarTerm, cioè risolve il predicato predefinito nonvar.
 void visit(NotEqualSexp NotEqual)
          Effettua la visita di un NotEqualSexp, cioè risolve un operatore \==.
 void visit(NotSexp not)
          Effettua la visita di un NotSexp, cioè risolve il predicato not.
 void visit(NumberTerm n)
          Effettua la visita di un NumberTerm, cioè risolve il predicato predefinito number.
 void visit(OrSexp or)
          Effettua la visita di un OrSexp, cioè risolve un or tra due termini (operatore ;).
 void visit(PostfixSexp d)
          Effettua la visita di una PostfixSexp.
 void visit(PrefixSexp d)
          Effettua la visita di una PrefixSexp.
 void visit(QuerySexp d)
          Effettua la visita di una QuerySexp, cioè inizia la ricerca di una soluzione.
 void visit(RandomTerm r)
          Effettua la visita di un RandomTerm, cioè risolve il predicato predefinito random/3.
 void visit(ReadTerm r)
          Effettua la visita di un ReadTerm, cioè risolve il predicato predefinito read.
 void visit(RetractAllTerm retract)
          Effettua la visita di un RetractAllTerm, cioè risolve il predicato predefinito retractall.
 void visit(RetractTerm retract)
          Effettua la visita di un RetractTerm, cioè risolve il predicato predefinito retract.
 void visit(SetOfTerm e)
          Effettua la visita di un SetOfTerm, cioè risolve il predicato predefinito setof.
 void visit(TermSexp term)
          Effettua la visita di un TermSexp, cioè risolve un termine prolog.
 void visit(TermToListSexp ttl)
          Effettua la visita di un TermToListSexp, cioè risolve l'operatore '=..'.
 void visit(TrueTerm t)
          Effettua la visita di un TrueTerm, cioè risolve il predicato predefinito true.
 void visit(UnaryClauseSexp d)
          Effettua la visita di una UnaryClauseSexp.
 void visit(UnifySexp uni)
          Effettua la visita di un UnifySexp, cioè unifica due termini (operatore =).
 void visit(VarSexp var)
          Effettua la visita di un VarSexp, cioè risolve una variabile.
 void visit(VarTerm e)
          Effettua la visita di un VarTerm, cioè risolve il predicato predefinito var.
 void visit(WriteTerm w)
          Effettua la visita di un WriteTerm, cioè risolve il predicato predefinito write.
 
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
 

Field Detail

SLD

public boolean SLD
Se true indica che ragioniamo in logica positiva, altrimenti in logica negata (SLDNF) poiché abbiamo incontrato un not.

dataBase

protected DataBase dataBase
Database globale usato per la valutazione.

safeness

public boolean safeness
Se è true, la valutazione di un not seguito da una clausola non ground viene posticipata il più possibile.
Viene lanciata una eccezione quando non è più possibile posticipare una clausola negata non ground.
Di default è true.

success

protected boolean success
Se true indica successo della risoluzione.

stop

public boolean stop
Se impostato a true viene fermata la risoluzione. Viene controllato nei cicli più lunghi.

file

public java.lang.String file
Variabile in cui viene memorizzato il nome di un file che deve essere consultato.
È compito di chi utilizza l'EngineSexpVisitor consultare il nuovo file.
Constructor Detail

EngineSexpVisitor

public EngineSexpVisitor(InputBuffer In,
                         OutputBuffer Out,
                         NewParser par,
                         java.lang.Class extEval)
                  throws InterpreterException
Costruisce un nuovo EngineSexpVisitor.
Parameters:
In - stream di input da cui vengono lette le risposte date dall'utente.
Out - stream di output dove vengono stampati i risultati.
par - parser prolog.
extEval - valutatore esteso (se esiste), altrimenti null.
Throws:
InterpreterException - se si ha errore durante la creazione del valutatore esterno.
Method Detail

init

protected void init(InputBuffer In,
                    OutputBuffer Out,
                    NewParser par)
Inizializza il motore di ricerca.
Parameters:
In - stream di input da cui vengono lette le risposte date dall'utente.
Out - stream di output dove vengono stampati i risultati.
par - parser prolog.

reset

public void reset()
Per cancellare tutto il database.

set_OCCUR_CHECK

public void set_OCCUR_CHECK(boolean flag)
Consente di modificare l'opzione di occur check per l'algoritmo di l'unificazione. L'occur check è il controllo della presenza di riferimenti circolari.


Di default l'unificazione viene eseguita senza controllare l'eventuale presenza di occur check.

Invocando il metodo set_OCCUR_CHECK() con true si abilita tale controllo.

Invocando il metodo set_OCCUR_CHECK() con false si disabilita tale controllo.

Parameters:
flag - se true abilita l'occur check, se false lo disabilita.

getDataBase

public DataBase getDataBase()
Restituisce il DataBase interno all'EngineSexpVisitor.
Returns:
il DataBase.

visit

public void visit(DottedQuerySexp d)
           throws InterpreterException
Effettua la visita di un DottedQuerySexp, cioè inizia la ricerca di una soluzione.
Parameters:
d - query che viene risolta.
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(DottedClauseSexp d)
           throws InterpreterException
Effettua la visita di un DottedClauseSexp, cioè la mette nel database.
Parameters:
d - clausola che viene messa nel database
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(DottedTermSexp d)
           throws InterpreterException
Effettua la visita di un DottedTermSexp, cioè lo mette nel database.
Parameters:
d - termine che viene messo nel database
Overrides:
visit in class StructureSexpVisitor

visit

public void visit(QuerySexp d)
           throws InterpreterException
Effettua la visita di una QuerySexp, cioè inizia la ricerca di una soluzione.
Parameters:
d - query che viene risolta.
Throws:
InterpreterException - incondizionatamente.
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(UnaryClauseSexp d)
           throws InterpreterException
Effettua la visita di una UnaryClauseSexp.
Parameters:
d - query che viene risolta.
Throws:
InterpreterException - incondizionatamente.
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(ClauseSexp d)
           throws InterpreterException
Effettua la visita di una ClauseSexp.
Parameters:
d - clausola che viene messa nel database
Throws:
InterpreterException - incondizionatamente.
Overrides:
visit in class PrologSexpVisitor

Stampa

protected boolean Stampa(boolean result)
                  throws InterpreterException
Fa continuare la risoluzione se necessario, oppure stampa il risultato.
Controlla se esistono ancora altri termini da risolvere nell'andStack ed in tal caso fa partire la risoluzione per il termine al top dello stack.
Se l'andStack è vuoto stampa la sostituzione risultante e propone all'utente la possibilità di continuare la ricerca di un altra sostituzione plausibile. Per far questo l'utente deve digitare ";".

Il metodo Stampa dovrebbe essere invocato al termine di ogni operazione:
Stampa(true) in caso di successo; Stampa(false) in caso di insuccesso.
Il metodo Stampa controlla anche il campo not per sapere se stiamo lavorando in logica negata.

Parameters:
deve - essere true se l'operazione che chiama stampa ha avuto successo, false in caso di fallimento.
Returns:
true se la ricerca è terminata, false se deve continuare.

visit

public void visit(TermSexp term)
           throws InterpreterException
Effettua la visita di un TermSexp, cioè risolve un termine prolog.
Parameters:
term - oggetto che viene visitato.
Overrides:
visit in class StructureSexpVisitor

visit

public void visit(FunctorTerm f)
           throws InterpreterException
Effettua la visita di un FunctorTerm, cioè risolve il predicato predefinito functor.
Parameters:
f - oggetto che viene visitato.
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(ArgTerm a)
           throws InterpreterException
Effettua la visita di un ArgTerm, cioè risolve il predicato predefinito arg.
Parameters:
a - oggetto che viene visitato.
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(AssertTerm a)
           throws InterpreterException
Effettua la visita di un AssertTerm, cioè risolve il predicato predefinito assert.
Parameters:
a - oggetto che viene visitato.
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(AssertaTerm a)
           throws InterpreterException
Effettua la visita di un AssertaTerm, cioè risolve il predicato predefinito asserta.
Parameters:
a - oggetto che viene visitato.
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(RetractTerm retract)
           throws InterpreterException
Effettua la visita di un RetractTerm, cioè risolve il predicato predefinito retract.
Parameters:
retract - oggetto che viene visitato.
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(RetractAllTerm retract)
           throws InterpreterException
Effettua la visita di un RetractAllTerm, cioè risolve il predicato predefinito retractall.
Parameters:
retract - oggetto che viene visitato.
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(ListingTerm listing)
           throws InterpreterException
Effettua la visita di un ListingTerm, cioè risolve il predicato predefinito listing/1.
Parameters:
listing - oggetto che viene visitato.
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(ListingSexp listing)
           throws InterpreterException
Effettua la visita di un ListingTerm, cioè risolve il predicato predefinito listing/0.
Parameters:
listing - oggetto che viene visitato.
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(WriteTerm w)
           throws InterpreterException
Effettua la visita di un WriteTerm, cioè risolve il predicato predefinito write.
Parameters:
w - oggetto che viene visitato.
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(ReadTerm r)
           throws InterpreterException
Effettua la visita di un ReadTerm, cioè risolve il predicato predefinito read.
Parameters:
r - oggetto che viene visitato.
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(VarTerm e)
           throws InterpreterException
Effettua la visita di un VarTerm, cioè risolve il predicato predefinito var.
Parameters:
e - oggetto che viene visitato.
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(NonVarTerm e)
           throws InterpreterException
Effettua la visita di un NonVarTerm, cioè risolve il predicato predefinito nonvar.
Parameters:
e - oggetto che viene visitato.
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(AtomTerm a)
           throws InterpreterException
Effettua la visita di un AtomTerm, cioè risolve il predicato predefinito atom.
Parameters:
a - oggetto che viene visitato.
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(AtomicTerm a)
           throws InterpreterException
Effettua la visita di un AtomicTerm, cioè risolve il predicato predefinito atomic.
Parameters:
a - oggetto che viene visitato.
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(NumberTerm n)
           throws InterpreterException
Effettua la visita di un NumberTerm, cioè risolve il predicato predefinito number.
Parameters:
n - oggetto che viene visitato.
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(IntegerTerm n)
           throws InterpreterException
Effettua la visita di un IntegerTerm, cioè risolve il predicato predefinito integer.
Parameters:
n - oggetto che viene visitato.
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(CompoundTerm c)
           throws InterpreterException
Effettua la visita di un CompoundTerm, cioè risolve il predicato predefinito compound.
Parameters:
c - oggetto che viene visitato.
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(SetOfTerm e)
           throws InterpreterException
Effettua la visita di un SetOfTerm, cioè risolve il predicato predefinito setof.
Parameters:
e - oggetto che viene visitato.
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(BagOfTerm e)
           throws InterpreterException
Effettua la visita di un BagOfTerm, cioè risolve il predicato predefinito bagof.
Parameters:
e - oggetto che viene visitato.
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(FindAllTerm e)
           throws InterpreterException
Effettua la visita di un FindAllTerm, cioè risolve il predicato predefinito findall.
Parameters:
e - oggetto che viene visitato.
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(RandomTerm r)
           throws InterpreterException
Effettua la visita di un RandomTerm, cioè risolve il predicato predefinito random/3.
Parameters:
r - oggetto che viene visitato.
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(NameTerm e)
           throws InterpreterException
Effettua la visita di un NameTerm, cioè risolve il predicato predefinito name.
Parameters:
e - oggetto che viene visitato.
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(CallTerm call)
           throws InterpreterException
Effettua la visita di un CallTerm, cioè risolve il predicato predefinito call.
Parameters:
call - oggetto che viene visitato.
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(GroundTerm ground)
           throws InterpreterException
Effettua la visita di un GroundTerm, cioè risolve il predicato predefinito ground.
Parameters:
ground - oggetto che viene visitato.
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(ClauseTerm c)
           throws InterpreterException
Effettua la visita di un ClauseTerm, cioè risolve il predicato predefinito clause.
Parameters:
c - oggetto che viene visitato.
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(TrueTerm t)
           throws InterpreterException
Effettua la visita di un TrueTerm, cioè risolve il predicato predefinito true.
Parameters:
t - oggetto che viene visitato.
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(NoArgsSexp d)
           throws InterpreterException
Effettua la visita di una NoArgsSexp.
Parameters:
d - termine senza argomenti.
Throws:
InterpreterException - incondizionatamente.
Overrides:
visit in class StructureSexpVisitor

visit

public void visit(InfixSexp d)
           throws InterpreterException
Effettua la visita di una InfixSexp.
Parameters:
d - operatore infisso.
Throws:
InterpreterException - incondizionatamente.
Overrides:
visit in class StructureSexpVisitor

visit

public void visit(PrefixSexp d)
           throws InterpreterException
Effettua la visita di una PrefixSexp.
Parameters:
d - operatore prefisso.
Throws:
InterpreterException - incondizionatamente.
Overrides:
visit in class StructureSexpVisitor

visit

public void visit(PostfixSexp d)
           throws InterpreterException
Effettua la visita di una PostfixSexp.
Parameters:
d - operatore postfisso.
Throws:
InterpreterException - incondizionatamente.
Overrides:
visit in class StructureSexpVisitor

visit

public void visit(AndSexp and)
           throws InterpreterException
Effettua la visita di un AndSexp, cioè risolve un and tra due termini (operatore ,).
Parameters:
e - oggetto che viene visitato.
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(OrSexp or)
           throws InterpreterException
Effettua la visita di un OrSexp, cioè risolve un or tra due termini (operatore ;).
Parameters:
e - oggetto che viene visitato.
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(UnifySexp uni)
           throws InterpreterException
Effettua la visita di un UnifySexp, cioè unifica due termini (operatore =).
Parameters:
e - oggetto della classe UnifySexp che viene visitato.
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(TermToListSexp ttl)
           throws InterpreterException
Effettua la visita di un TermToListSexp, cioè risolve l'operatore '=..'.
Parameters:
ttl - oggetto che viene visitato.
Overrides:
visit in class PrologSexpVisitor

toListSexp

protected ListSexp toListSexp(Sexp e)
                       throws InterpreterException
Restituisce la lista che ha come testa il funtore del termine e come coda la lista degli argomenti del termine
Parameters:
e - un termine. return la lista prolog.

build

protected Sexp build(Sexp fun,
                     Sexp args)
              throws InterpreterException
Costruisce un nuovo termine predefinito.
Parameters:
fun - il funtore.
la - lista degli argomenti.
Returns:
il nuovo termine.

visit

public void visit(NotSexp not)
           throws InterpreterException
Effettua la visita di un NotSexp, cioè risolve il predicato not.
Parameters:
not - oggetto che viene visitato.
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(CutSexp e)
           throws InterpreterException
Effettua la visita di un CutSexp, cioè risolve il predicato cut (!).
Parameters:
e - oggetto che viene visitato.
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(FailSexp e)
           throws InterpreterException
Effettua la visita di un FailSexp, cioè risolve il predicato fail.
Parameters:
e - oggetto che viene visitato.
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(NlSexp e)
           throws InterpreterException
Effettua la visita di un NlSexp, cioè risolve il predicato nl.
Parameters:
e - oggetto che viene visitato.
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(ListSexp list)
           throws InterpreterException
Effettua la visita di una ListSexp, cioè risolve le liste prolog (simboli [ ] |).
Vengono utilizzate per la consultazione dei file.
Parameters:
list - oggetto che viene visitato.
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(NilListSexp nilList)
           throws InterpreterException
Effettua la visita di una NilListSexp, cioè risolve una lista nulla. Ha sempre successo.
Parameters:
nilList - oggetto che viene visitato.
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(IsSexp is)
           throws InterpreterException
Effettua la visita di un IsSexp, cioè risolve un operando is valutando l'argomento.
Gli argomenti vengono valutati dall'EvalVisitor.
Parameters:
is - oggetto che viene visitato.
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(ArEqualSexp arEqual)
           throws InterpreterException
Effettua la visita di un ArEqualSexp, cioè risolve l'operatore di uguaglianza =:=.
Gli argomenti vengono prima valutati dall'EvalVisitor.
Parameters:
arEqual - oggetto che viene visitato.
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(ArNotEqualSexp arNotEqual)
           throws InterpreterException
Effettua la visita di un ArNotEqualSexp, cioè risolve un operatore aritmetico =/=.
Gli argomenti vengono prima valutati dall'EvalVisitor.
Parameters:
arNotEqual - oggetto che viene visitato.
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(GreatSexp great)
           throws InterpreterException
Effettua la visita di un GreatSexp, cioè risolve un operatore aritmetico >.
Gli argomenti vengono prima valutati dall'EvalVisitor.
Parameters:
great - oggetto che viene visitato.
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(LessSexp less)
           throws InterpreterException
Effettua la visita di un LessSexp, cioè risolve un operatore <.
Gli argomenti vengono prima valutati dall'EvalVisitor.
Parameters:
less - oggetto che viene visitato.
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(GreatEqualSexp greq)
           throws InterpreterException
Effettua la visita di un GreatEqualSexp, cioè risolve un operatore >=.
Gli argomenti vengono prima valutati dall'EvalVisitor.
Parameters:
greq - oggetto che viene visitato.
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(EqualLessSexp eqls)
           throws InterpreterException
Effettua la visita di un EqualLessSexp, cioè risolve un operatore =<.
Gli argomenti vengono prima valutati dall'EvalVisitor.
Parameters:
eqls - oggetto che viene visitato.
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(EqualSexp Equal)
           throws InterpreterException
Effettua la visita di un EqualSexp, cioè risolve un operatore ==.
Parameters:
Equal - oggetto che viene visitato.
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(NotEqualSexp NotEqual)
           throws InterpreterException
Effettua la visita di un NotEqualSexp, cioè risolve un operatore \==.
Parameters:
NotEqual - oggetto che viene visitato.
Overrides:
visit in class PrologSexpVisitor

visit

public void visit(VarSexp var)
           throws InterpreterException
Effettua la visita di un VarSexp, cioè risolve una variabile.
La variabile viene dereferenziata e se è una meta-variabile viene valutata, altrimenti viene lanciata una eccezione.
Parameters:
var - oggetto che viene visitato.
Throws:
InterpreterException - se la variabile non è instanziata.
Overrides:
visit in class StructureSexpVisitor

visit

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

visit

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

main

public static void main(java.lang.String[] s)
                 throws InterpreterException
Metodo mein utilizzato per il debug.
Il codice contiene anche molti esempi per controllare il funzionamento dell'interprete.


Codice realizzato da Francesco Geri & Marco Tamanti