lisp
Class LispEvaluator

java.lang.Object
  |
  +--lisp.LispEvaluator

public class LispEvaluator
extends java.lang.Object

LispEvaluator Valutatore di espressioni

Version:
01/02/2000
Author:
Marco Chiesi

Field Summary
static Sexp ATOM
           
static Sexp CAR
           
static Sexp CDR
           
static Sexp CLOSURE
           
static Sexp COND
           
static Sexp CONS
           
static Sexp DEFINE
           
static Sexp DEFUN
           
static Sexp EQ
           
static Sexp EVAL
           
static Sexp IF
           
static Sexp LAMBDA
           
static Sexp LET
           
static Sexp NULL
           
static Sexp OP_AND
           
static Sexp OP_DIFFER
           
static Sexp OP_DIV
           
static Sexp OP_EQUAL
           
static Sexp OP_EQUIV
           
static Sexp OP_GREATER
           
static Sexp OP_GROREQ
           
static Sexp OP_IMP
           
static Sexp OP_LESS
           
static Sexp OP_LSOREQ
           
static Sexp OP_MINUS
           
static Sexp OP_MUL
           
static Sexp OP_NOT
           
static Sexp OP_OR
           
static Sexp OP_PLUS
           
static Sexp PRIMITIVE
           
static Sexp PRIN1
           
static Sexp PRINT
           
static Sexp QUOTE
           
static Sexp READ
           
static Sexp SET
           
static Sexp SETQ
           
 
Constructor Summary
LispEvaluator(SexpReader reader, Environment globalEnv)
          Costruttore
LispEvaluator(SexpReader reader, Environment globalEnv, OutputDevice stdOut, OutputDevice msgOut)
          Costruttore con specifica di dispositivo di output
 
Method Summary
protected  Sexp apply(Sexp fun, Sexp argList)
          Applicazione di una funzione a una lista di argomenti
protected  Sexp applyAritmOperator(Sexp argList, java.lang.String op)
          Applicazione di un operatore aritmetico
protected  Sexp applyLogOperator(Sexp argList, java.lang.String op)
          Applicazione di un operatore logico
protected  Sexp applyPrimitive(Sexp fun, Sexp argList)
          Applicazione di una primitiva
protected  Sexp applyPrin1(Sexp arg)
          Applicazione della primitiva prin1
protected  Sexp applyPrint(Sexp arg)
          Applicazione della primitiva print
protected  Sexp applyRead()
          Applicazione della primitiva read
protected  Sexp applyRelOperator(Sexp argList, java.lang.String op)
          Applicazione di un operatore relazionale
static Sexp createPrimitiveSet(Sexp nameList)
          Costruzione della lista dei binding per le primitive
 Sexp eval(Sexp e)
          Valutazione di un'espressione
protected  Sexp eval(Sexp e, Sexp env)
          Valutazione di un'espressione con environment locale
protected  Sexp evalArgList(Sexp e, Sexp env)
          Valutazione di una lista di argomenti
protected  Sexp evalAtom(Sexp e, Sexp env)
          Valutazione di un atomo
protected  Sexp evalCond(Sexp first, Sexp rest, Sexp env)
          Valutazione di cond
protected  Sexp evalDefine(Sexp name, Sexp val, Sexp env)
          Valutazione di define
protected  Sexp evalDefun(Sexp name, Sexp def, Sexp env)
          Valutazione di defun
protected  Sexp evalIf(Sexp test, Sexp e, Sexp env)
          Valutazione di if
protected  Sexp evalLambda(Sexp argList, Sexp bodyList, Sexp env)
          Valutazione di lambda
protected  Sexp evalLet(Sexp bindList, Sexp e, Sexp env)
          Valutazione di let
protected  Sexp evalQuote(Sexp e)
          Valutazione di quote
protected  Sexp evalSequence(Sexp seq, Sexp env)
          Valutazione di una sequenza
protected  Sexp evalSet(Sexp name, Sexp val, Sexp env)
          Valutazione di set
protected  Sexp evalSetq(Sexp name, Sexp val, Sexp env)
          Valutazione di setq
 void print(java.lang.String s)
          Scrittura di un messaggio in output
 void println(java.lang.String s)
          Scrittura di un messaggio in output con ritorno a capo
static Sexp setPrimitiveNames()
          Costruzione della lista delle primitive
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PRIMITIVE

public static final Sexp PRIMITIVE

CLOSURE

public static final Sexp CLOSURE

OP_PLUS

public static final Sexp OP_PLUS

OP_MINUS

public static final Sexp OP_MINUS

OP_MUL

public static final Sexp OP_MUL

OP_DIV

public static final Sexp OP_DIV

OP_EQUAL

public static final Sexp OP_EQUAL

OP_LESS

public static final Sexp OP_LESS

OP_GREATER

public static final Sexp OP_GREATER

OP_GROREQ

public static final Sexp OP_GROREQ

OP_LSOREQ

public static final Sexp OP_LSOREQ

OP_DIFFER

public static final Sexp OP_DIFFER

OP_AND

public static final Sexp OP_AND

OP_NOT

public static final Sexp OP_NOT

OP_OR

public static final Sexp OP_OR

OP_EQUIV

public static final Sexp OP_EQUIV

OP_IMP

public static final Sexp OP_IMP

CONS

public static final Sexp CONS

CAR

public static final Sexp CAR

CDR

public static final Sexp CDR

EQ

public static final Sexp EQ

NULL

public static final Sexp NULL

ATOM

public static final Sexp ATOM

QUOTE

public static final Sexp QUOTE

COND

public static final Sexp COND

DEFINE

public static final Sexp DEFINE

DEFUN

public static final Sexp DEFUN

SETQ

public static final Sexp SETQ

LET

public static final Sexp LET

SET

public static final Sexp SET

IF

public static final Sexp IF

LAMBDA

public static final Sexp LAMBDA

EVAL

public static final Sexp EVAL

READ

public static final Sexp READ

PRINT

public static final Sexp PRINT

PRIN1

public static final Sexp PRIN1
Constructor Detail

LispEvaluator

public LispEvaluator(SexpReader reader,
                     Environment globalEnv)
Costruttore

LispEvaluator

public LispEvaluator(SexpReader reader,
                     Environment globalEnv,
                     OutputDevice stdOut,
                     OutputDevice msgOut)
Costruttore con specifica di dispositivo di output
Method Detail

setPrimitiveNames

public static Sexp setPrimitiveNames()
Costruzione della lista delle primitive

createPrimitiveSet

public static Sexp createPrimitiveSet(Sexp nameList)
Costruzione della lista dei binding per le primitive

print

public void print(java.lang.String s)
Scrittura di un messaggio in output

println

public void println(java.lang.String s)
Scrittura di un messaggio in output con ritorno a capo

eval

public Sexp eval(Sexp e)
Valutazione di un'espressione

eval

protected Sexp eval(Sexp e,
                    Sexp env)
Valutazione di un'espressione con environment locale

evalQuote

protected Sexp evalQuote(Sexp e)
Valutazione di quote

evalDefine

protected Sexp evalDefine(Sexp name,
                          Sexp val,
                          Sexp env)
Valutazione di define

evalDefun

protected Sexp evalDefun(Sexp name,
                         Sexp def,
                         Sexp env)
Valutazione di defun

evalSetq

protected Sexp evalSetq(Sexp name,
                        Sexp val,
                        Sexp env)
Valutazione di setq

evalSet

protected Sexp evalSet(Sexp name,
                       Sexp val,
                       Sexp env)
Valutazione di set

evalLet

protected Sexp evalLet(Sexp bindList,
                       Sexp e,
                       Sexp env)
Valutazione di let

evalIf

protected Sexp evalIf(Sexp test,
                      Sexp e,
                      Sexp env)
Valutazione di if

evalCond

protected Sexp evalCond(Sexp first,
                        Sexp rest,
                        Sexp env)
Valutazione di cond

evalLambda

protected Sexp evalLambda(Sexp argList,
                          Sexp bodyList,
                          Sexp env)
Valutazione di lambda

evalArgList

protected Sexp evalArgList(Sexp e,
                           Sexp env)
Valutazione di una lista di argomenti

evalSequence

protected Sexp evalSequence(Sexp seq,
                            Sexp env)
Valutazione di una sequenza

evalAtom

protected Sexp evalAtom(Sexp e,
                        Sexp env)
Valutazione di un atomo

apply

protected Sexp apply(Sexp fun,
                     Sexp argList)
Applicazione di una funzione a una lista di argomenti

applyPrimitive

protected Sexp applyPrimitive(Sexp fun,
                              Sexp argList)
Applicazione di una primitiva

applyAritmOperator

protected Sexp applyAritmOperator(Sexp argList,
                                  java.lang.String op)
Applicazione di un operatore aritmetico

applyRelOperator

protected Sexp applyRelOperator(Sexp argList,
                                java.lang.String op)
Applicazione di un operatore relazionale

applyLogOperator

protected Sexp applyLogOperator(Sexp argList,
                                java.lang.String op)
Applicazione di un operatore logico

applyPrint

protected Sexp applyPrint(Sexp arg)
Applicazione della primitiva print

applyPrin1

protected Sexp applyPrin1(Sexp arg)
Applicazione della primitiva prin1

applyRead

protected Sexp applyRead()
Applicazione della primitiva read