|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Object
|
+--Interpreter.Sexp.Utils.SexpVisitor
|
+--Interpreter.PrologInterpreter.Sexp.Utils.StructureSexpVisitor
|
+--Interpreter.PrologInterpreter.Sexp.Utils.PrologSexpVisitor
|
+--Interpreter.PrologInterpreter.EngineSexpVisitor
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.
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 |
public boolean SLD
protected DataBase dataBase
public boolean safeness
protected boolean success
public boolean stop
public java.lang.String file
| Constructor Detail |
public EngineSexpVisitor(InputBuffer In,
OutputBuffer Out,
NewParser par,
java.lang.Class extEval)
throws InterpreterException
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.| Method Detail |
protected void init(InputBuffer In,
OutputBuffer Out,
NewParser par)
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.public void reset()
public void set_OCCUR_CHECK(boolean flag)
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.
flag - se true abilita l'occur check, se false lo disabilita.public DataBase getDataBase()
public void visit(DottedQuerySexp d)
throws InterpreterException
d - query che viene risolta.
public void visit(DottedClauseSexp d)
throws InterpreterException
d - clausola che viene messa nel database
public void visit(DottedTermSexp d)
throws InterpreterException
d - termine che viene messo nel database
public void visit(QuerySexp d)
throws InterpreterException
d - query che viene risolta.
public void visit(UnaryClauseSexp d)
throws InterpreterException
d - query che viene risolta.
public void visit(ClauseSexp d)
throws InterpreterException
d - clausola che viene messa nel database
protected boolean Stampa(boolean result)
throws InterpreterException
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.
deve - essere true se l'operazione che chiama stampa ha avuto successo, false in caso di fallimento.
public void visit(TermSexp term)
throws InterpreterException
term - oggetto che viene visitato.
public void visit(FunctorTerm f)
throws InterpreterException
f - oggetto che viene visitato.
public void visit(ArgTerm a)
throws InterpreterException
a - oggetto che viene visitato.
public void visit(AssertTerm a)
throws InterpreterException
a - oggetto che viene visitato.
public void visit(AssertaTerm a)
throws InterpreterException
a - oggetto che viene visitato.
public void visit(RetractTerm retract)
throws InterpreterException
retract - oggetto che viene visitato.
public void visit(RetractAllTerm retract)
throws InterpreterException
retract - oggetto che viene visitato.
public void visit(ListingTerm listing)
throws InterpreterException
listing - oggetto che viene visitato.
public void visit(ListingSexp listing)
throws InterpreterException
listing - oggetto che viene visitato.
public void visit(WriteTerm w)
throws InterpreterException
w - oggetto che viene visitato.
public void visit(ReadTerm r)
throws InterpreterException
r - oggetto che viene visitato.
public void visit(VarTerm e)
throws InterpreterException
e - oggetto che viene visitato.
public void visit(NonVarTerm e)
throws InterpreterException
e - oggetto che viene visitato.
public void visit(AtomTerm a)
throws InterpreterException
a - oggetto che viene visitato.
public void visit(AtomicTerm a)
throws InterpreterException
a - oggetto che viene visitato.
public void visit(NumberTerm n)
throws InterpreterException
n - oggetto che viene visitato.
public void visit(IntegerTerm n)
throws InterpreterException
n - oggetto che viene visitato.
public void visit(CompoundTerm c)
throws InterpreterException
c - oggetto che viene visitato.
public void visit(SetOfTerm e)
throws InterpreterException
e - oggetto che viene visitato.
public void visit(BagOfTerm e)
throws InterpreterException
e - oggetto che viene visitato.
public void visit(FindAllTerm e)
throws InterpreterException
e - oggetto che viene visitato.
public void visit(RandomTerm r)
throws InterpreterException
r - oggetto che viene visitato.
public void visit(NameTerm e)
throws InterpreterException
e - oggetto che viene visitato.
public void visit(CallTerm call)
throws InterpreterException
call - oggetto che viene visitato.
public void visit(GroundTerm ground)
throws InterpreterException
ground - oggetto che viene visitato.
public void visit(ClauseTerm c)
throws InterpreterException
c - oggetto che viene visitato.
public void visit(TrueTerm t)
throws InterpreterException
t - oggetto che viene visitato.
public void visit(NoArgsSexp d)
throws InterpreterException
d - termine senza argomenti.
public void visit(InfixSexp d)
throws InterpreterException
d - operatore infisso.
public void visit(PrefixSexp d)
throws InterpreterException
d - operatore prefisso.
public void visit(PostfixSexp d)
throws InterpreterException
d - operatore postfisso.
public void visit(AndSexp and)
throws InterpreterException
e - oggetto che viene visitato.
public void visit(OrSexp or)
throws InterpreterException
e - oggetto che viene visitato.
public void visit(UnifySexp uni)
throws InterpreterException
e - oggetto della classe UnifySexp che viene visitato.
public void visit(TermToListSexp ttl)
throws InterpreterException
ttl - oggetto che viene visitato.
protected ListSexp toListSexp(Sexp e)
throws InterpreterException
e - un termine.
return la lista prolog.
protected Sexp build(Sexp fun,
Sexp args)
throws InterpreterException
fun - il funtore.la - lista degli argomenti.
public void visit(NotSexp not)
throws InterpreterException
not - oggetto che viene visitato.
public void visit(CutSexp e)
throws InterpreterException
e - oggetto che viene visitato.
public void visit(FailSexp e)
throws InterpreterException
e - oggetto che viene visitato.
public void visit(NlSexp e)
throws InterpreterException
e - oggetto che viene visitato.
public void visit(ListSexp list)
throws InterpreterException
list - oggetto che viene visitato.
public void visit(NilListSexp nilList)
throws InterpreterException
nilList - oggetto che viene visitato.
public void visit(IsSexp is)
throws InterpreterException
is - oggetto che viene visitato.
public void visit(ArEqualSexp arEqual)
throws InterpreterException
arEqual - oggetto che viene visitato.
public void visit(ArNotEqualSexp arNotEqual)
throws InterpreterException
arNotEqual - oggetto che viene visitato.
public void visit(GreatSexp great)
throws InterpreterException
great - oggetto che viene visitato.
public void visit(LessSexp less)
throws InterpreterException
less - oggetto che viene visitato.
public void visit(GreatEqualSexp greq)
throws InterpreterException
greq - oggetto che viene visitato.
public void visit(EqualLessSexp eqls)
throws InterpreterException
eqls - oggetto che viene visitato.
public void visit(EqualSexp Equal)
throws InterpreterException
Equal - oggetto che viene visitato.
public void visit(NotEqualSexp NotEqual)
throws InterpreterException
NotEqual - oggetto che viene visitato.
public void visit(VarSexp var)
throws InterpreterException
var - oggetto che viene visitato.
public void visit(IdentSexp id)
throws InterpreterException
id - oggetto che viene visitato.
public void visit(NilSexp nil)
throws InterpreterException
nil - oggetto che viene visitato.
public static void main(java.lang.String[] s)
throws InterpreterException
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||