|
|||||||||
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 databasepublic void visit(DottedTermSexp d) throws InterpreterException
d
- termine che viene messo nel databasepublic 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 databaseprotected 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 |