|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--java.lang.Thread | +--Interpreter.Lisp
Interprete lisp.
Può essere utilizzato tramite l'applet InterpreterApplet,
oppure utilizzato da solo tramite una shell DOS.
Questa classe infatti contiene il metodo main(String s[]).
Esistono due costruttori: il primo è quello standard (a 3 argomenti), mentre il secondo deve essere utilizzato se si costruisce una versione estesa della classe EvalSexpVisitor.
InterpreterApplet
,
EvalSexpVisitor
Field Summary | |
boolean |
addCode
|
boolean |
kill
Se true indica all'interprete lisp di interrompere e terminare l'esecuzione. |
protected boolean |
stop
Se true indica all'interprete lisp di sospendere la valutazione in corso. |
Fields inherited from class java.lang.Thread |
MAX_PRIORITY,
MIN_PRIORITY,
NORM_PRIORITY |
Constructor Summary | |
Lisp(InputBuffer input,
OutputBuffer output,
OutputBuffer codeArea)
Costruttore utilizzato per creare l'interprete lisp di default. |
|
Lisp(InputBuffer input,
OutputBuffer output,
OutputBuffer codeArea,
java.lang.Class extVisitor)
Costruttore utilizzato per creare l'interprete lisp esteso. |
Method Summary | |
SexpHashtable |
getGlobalEnvironment()
Restituisce il global environment. return il global environment preso da EvalSexpVisitor o da una sua sottoclasse corrente. |
protected void |
leggiBuffer()
Legge da buffer. |
protected void |
leggiFile()
Legge input da file. |
protected void |
leggiStdIn()
Attende input ed avvia la risoluzione. |
static void |
main(java.lang.String[] s)
Questo è il metodo main per eseguire l'interprete lisp da shell DOS. |
void |
resetGlobalEnv()
Riporta il glogal environment allo stato di partenza. |
protected void |
risolvi(java.lang.String str)
Avvia la risoluzione. |
void |
run()
Questo è il metodo che pone in esecuzione il corrente thread. |
void |
setBuffer(InputBuffer r)
Utilizzato da InterpreterApplet per compilare il codice presente nella Code Area. |
void |
setStop()
Indica all'interprete di sospendere la risoluzione in corso. |
Methods inherited from class java.lang.Thread |
activeCount,
checkAccess,
countStackFrames,
currentThread,
destroy,
dumpStack,
enumerate,
getContextClassLoader,
getName,
getPriority,
getThreadGroup,
interrupt,
interrupted,
isAlive,
isDaemon,
isInterrupted,
join,
join,
join,
resume,
setContextClassLoader,
setDaemon,
setName,
setPriority,
sleep,
sleep,
start,
stop,
stop,
suspend,
toString,
yield |
Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
wait,
wait,
wait |
Field Detail |
protected boolean stop
setStop()
public boolean kill
Per fermare il thread si setti true questa variabile che normalmente è false.
Viene controllata ciclicamente.
Non è stato utilizzato il metodo stop perché deprecato e inerentemente non safe.
Inoltre in un'applet non è corretto uccidere ogni volta che si esce dalla finestra il thread lisp,
altrimenti si perderebbe tutto il global environment.
Se non utilizzato il thread non consuma risorse: rimane semplicemente in attesa di input.
public boolean addCode
Constructor Detail |
public Lisp(InputBuffer input, OutputBuffer output, OutputBuffer codeArea) throws InterpreterException
input
- stream di input: da dove vengono letti i comandioutput
- stream di output: dove vengono stampati i risultaticodeArea
- stream di codeArea: dove viene stampato il comando corrente in caso di successo della valutazionepublic Lisp(InputBuffer input, OutputBuffer output, OutputBuffer codeArea, java.lang.Class extVisitor) throws InterpreterException
input
- stream di input: da dove vengono letti i comandioutput
- stream di output: dove vengono stampati i risultaticodeArea
- stream di codeArea: dove viene stampato il comando corrente in caso di successo della valutazioneextVisitor
- classe che estende le funzionalità di EvalSexpVisitorEvalSexpVisitor
Method Detail |
public SexpHashtable getGlobalEnvironment()
public void setBuffer(InputBuffer r)
r
- stream da cui l'interprete lisp leggerà i comandi a partire dall'invocazione di questo metodo.
public void resetGlobalEnv()
public void run()
public void setStop()
protected void leggiStdIn()
protected void risolvi(java.lang.String str)
protected void leggiBuffer()
setBuffer(Interpreter.Utils.InputBuffer)
protected void leggiFile()
public static void main(java.lang.String[] s) throws InterpreterException
InputBuffer
,
OutputBuffer
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |