Interpreter.PrologInterpreter
Class EvalVisitor

java.lang.Object
  |
  +--Interpreter.Sexp.Utils.SexpVisitor
        |
        +--Interpreter.PrologInterpreter.Sexp.Utils.StructureSexpVisitor
              |
              +--Interpreter.PrologInterpreter.Sexp.Utils.EvalSexpVisitor
                    |
                    +--Interpreter.PrologInterpreter.EvalVisitor
Direct Known Subclasses:
ExtendedPrologEvalVisitor

public class EvalVisitor
extends EvalSexpVisitor

Un oggetto EvalVisitor realizza un Pattern Visitor per una s-expression.
Visitor che serve per la valutazione dei termini aritmetici. Vengono lanciate eccezioni se si sta cercando di valutare termini non aritmetici e quindi non valutabili. Il risultato viene preso dallo stack tramite il metodi getResult().

See Also:
SexpVisitor.getResult()

Fields inherited from class Interpreter.Sexp.Utils.SexpVisitor
stack
 
Constructor Summary
EvalVisitor(SexpHashtable subs, SexpStack EngineStack)
          Costruisce un nuovo EvalVisitor.
 
Method Summary
 void visit(DivSexp div)
          Effettua la visita di un DivSexp, cioč valuta una divisione (operatore /).
 void visit(ExpOnSexp expOn)
          Effettua la visita di un ExpOnSexp, cioč valuta un esponente (operatore ^).
 void visit(IdentSexp id)
          Effettua la visita di un IdentSexp, cioč sostanziamlmente valuta un numero.
 void visit(InfixSexp e)
          Effettua la visita di un InfixSexp.
 void visit(MinusSexp minus)
          Effettua la visita di un MinusSexp, cioč valuta una differenza (operatore -).
 void visit(MulSexp mul)
          Effettua la visita di un MulSexp, cioč valuta una moltiplicazione (operatore *).
 void visit(NilSexp nil)
          Effettua la visita di un NilSexp, cioč valuta un NilSexp.
 void visit(NoArgsSexp e)
          Effettua la visita di un NoArgsSexp.
 void visit(PlusSexp plus)
          Effettua la visita di un PlusSexp, cioč valuta una somma (operatore +).
 void visit(PostfixSexp e)
          Effettua la visita di un PostfixSexp.
 void visit(PrefixSexp e)
          Effettua la visita di un PrefixSexp.
 void visit(TermSexp e)
          Effettua la visita di un TermSexp.
 void visit(UnaryMinusSexp minus)
          Effettua la visita di un UnaryMinusSexp, cioč valuta un operatore - unario.
 void visit(UnaryPlusSexp plus)
          Effettua la visita di un UnaryPlusSexp, cioč valuta un operatore + unario.
 void visit(VarSexp var)
          Effettua la visita di un VarSexp, cioč valuta una variabile.
 
Methods inherited from class Interpreter.PrologInterpreter.Sexp.Utils.StructureSexpVisitor
visit, 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
 

Constructor Detail

EvalVisitor

public EvalVisitor(SexpHashtable subs,
                   SexpStack EngineStack)
Costruisce un nuovo EvalVisitor.
Method Detail

visit

public void visit(TermSexp e)
           throws InterpreterException
Effettua la visita di un TermSexp.
Parameters:
e - oggetto che viene visitato.
Throws:
InterpreterException - incondizionatamente.
Overrides:
visit in class EvalSexpVisitor

visit

public void visit(NoArgsSexp e)
           throws InterpreterException
Effettua la visita di un NoArgsSexp.
Parameters:
e - oggetto che viene visitato.
Throws:
InterpreterException - incondizionatamente.
Overrides:
visit in class StructureSexpVisitor

visit

public void visit(InfixSexp e)
           throws InterpreterException
Effettua la visita di un InfixSexp.
Parameters:
e - oggetto che viene visitato.
Throws:
InterpreterException - incondizionatamente.
Overrides:
visit in class StructureSexpVisitor

visit

public void visit(PrefixSexp e)
           throws InterpreterException
Effettua la visita di un PrefixSexp.
Parameters:
e - oggetto che viene visitato.
Throws:
InterpreterException - incondizionatamente.
Overrides:
visit in class StructureSexpVisitor

visit

public void visit(PostfixSexp e)
           throws InterpreterException
Effettua la visita di un PostfixSexp.
Parameters:
e - oggetto che viene visitato.
Throws:
InterpreterException - incondizionatamente.
Overrides:
visit in class StructureSexpVisitor

visit

public void visit(UnaryPlusSexp plus)
           throws InterpreterException
Effettua la visita di un UnaryPlusSexp, cioč valuta un operatore + unario.
Parameters:
plus - oggetto che viene visitato.
Overrides:
visit in class EvalSexpVisitor

visit

public void visit(PlusSexp plus)
           throws InterpreterException
Effettua la visita di un PlusSexp, cioč valuta una somma (operatore +).
Parameters:
plus - oggetto che viene visitato.
Overrides:
visit in class EvalSexpVisitor

visit

public void visit(UnaryMinusSexp minus)
           throws InterpreterException
Effettua la visita di un UnaryMinusSexp, cioč valuta un operatore - unario.
Parameters:
minus - oggetto che viene visitato.
Overrides:
visit in class EvalSexpVisitor

visit

public void visit(MinusSexp minus)
           throws InterpreterException
Effettua la visita di un MinusSexp, cioč valuta una differenza (operatore -).
Parameters:
minus - oggetto che viene visitato.
Overrides:
visit in class EvalSexpVisitor

visit

public void visit(MulSexp mul)
           throws InterpreterException
Effettua la visita di un MulSexp, cioč valuta una moltiplicazione (operatore *).
Parameters:
mul - oggetto che viene visitato.
Overrides:
visit in class EvalSexpVisitor

visit

public void visit(DivSexp div)
           throws InterpreterException
Effettua la visita di un DivSexp, cioč valuta una divisione (operatore /).
Parameters:
div - oggetto che viene visitato.
Overrides:
visit in class EvalSexpVisitor

visit

public void visit(ExpOnSexp expOn)
           throws InterpreterException
Effettua la visita di un ExpOnSexp, cioč valuta un esponente (operatore ^).
Parameters:
expOn - oggetto che viene visitato.
Overrides:
visit in class EvalSexpVisitor

visit

public void visit(IdentSexp id)
           throws InterpreterException
Effettua la visita di un IdentSexp, cioč sostanziamlmente valuta un numero.
Parameters:
id - oggetto che viene visitato.
Overrides:
visit in class SexpVisitor

visit

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

visit

public void visit(VarSexp var)
           throws InterpreterException
Effettua la visita di un VarSexp, cioč valuta una variabile.
Parameters:
var - oggetto che viene visitato.
Overrides:
visit in class EvalSexpVisitor


Codice realizzato da Francesco Geri & Marco Tamanti