Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Interpreter
Class QuadInterpreter  view QuadInterpreter download QuadInterpreter.java

java.lang.Object
  extended byCompil3r.Quad.QuadVisitor.EmptyVisitor
      extended byInterpreter.QuadInterpreter
All Implemented Interfaces:
Compil3r.Quad.QuadVisitor

public class QuadInterpreter
extends Compil3r.Quad.QuadVisitor.EmptyVisitor

Version:
$Id: QuadInterpreter.java,v 1.20 2003/05/12 10:05:17 joewhaley Exp $

Nested Class Summary
static class QuadInterpreter.UninitializedReference
           
 
Nested classes inherited from class Compil3r.Quad.QuadVisitor
Compil3r.Quad.QuadVisitor.AllQuadVisitor, Compil3r.Quad.QuadVisitor.EmptyVisitor
 
Field Summary
(package private) static java.util.Set bad_classes
           
(package private) static java.util.Set bad_methods
           
(package private)  java.lang.Throwable caught
           
(package private)  Compil3r.Quad.ControlFlowGraph cfg
           
(package private)  Compil3r.Quad.BasicBlock current_bb
           
(package private)  Util.Templates.ListIterator.Quad current_iterator
           
(package private)  Compil3r.Quad.Quad current_quad
           
static Util.Collections.FilterIterator.Filter interpret_filter
           
(package private)  Clazz.jq_Method method
           
static long num_nullchecks
           
static long num_quads
           
(package private)  java.util.Map registers
           
(package private)  java.lang.Object return_value
           
(package private)  Compil3r.Quad.RegisterFactory rf
           
(package private)  java.lang.Throwable thrown
           
static boolean TRACE
           
 
Constructor Summary
QuadInterpreter(Clazz.jq_Method m)
           
 
Method Summary
 void branchTo(Compil3r.Quad.BasicBlock bb)
           
 java.lang.String currentLocation()
           
 java.lang.Object[] generateParamArray(Clazz.jq_Method f, Compil3r.Quad.Operand.ParamListOperand plo)
           
 java.lang.Throwable getCaught()
           
 Compil3r.Quad.RegisterFactory.Register getExceptionRegister()
           
 java.lang.Object getReg_A(Compil3r.Quad.RegisterFactory.Register r)
           
 double getReg_D(Compil3r.Quad.RegisterFactory.Register r)
           
 float getReg_F(Compil3r.Quad.RegisterFactory.Register r)
           
 int getReg_I(Compil3r.Quad.RegisterFactory.Register r)
           
 long getReg_L(Compil3r.Quad.RegisterFactory.Register r)
           
 Memory.Address getReg_P(Compil3r.Quad.RegisterFactory.Register r)
           
 java.lang.Object getReg(Compil3r.Quad.RegisterFactory.Register r)
           
 java.lang.Object getReturnValue()
           
 java.lang.Throwable getThrown()
           
 void handleException(java.lang.Throwable x)
           
static QuadInterpreter interpretMethod(Clazz.jq_Method f, java.lang.Object[] params)
           
 void interpretMethod(Clazz.jq_Method m, java.lang.Object[] params, Compil3r.Quad.RegisterFactory rf, Compil3r.Quad.ControlFlowGraph cfg)
           
 QuadInterpreter invokeInstanceReflective(Clazz.jq_InstanceMethod f, Compil3r.Quad.Operand.ParamListOperand plo)
           
 QuadInterpreter invokeMethod(Clazz.jq_Method f, Compil3r.Quad.Operand.ParamListOperand plo)
           
 QuadInterpreter invokeReflective(Clazz.jq_Method f, Compil3r.Quad.Operand.ParamListOperand plo)
           
 QuadInterpreter invokeStaticReflective(Clazz.jq_StaticMethod f, Compil3r.Quad.Operand.ParamListOperand plo)
           
 void output()
           
 void putReg_A(Compil3r.Quad.RegisterFactory.Register r, java.lang.Object i)
           
 void putReg_D(Compil3r.Quad.RegisterFactory.Register r, double i)
           
 void putReg_F(Compil3r.Quad.RegisterFactory.Register r, float i)
           
 void putReg_I(Compil3r.Quad.RegisterFactory.Register r, int i)
           
 void putReg_L(Compil3r.Quad.RegisterFactory.Register r, long i)
           
 void putReg_P(Compil3r.Quad.RegisterFactory.Register r, Memory.Address i)
           
 void putReg(Compil3r.Quad.RegisterFactory.Register r, java.lang.Object i)
           
 void replaceUninitializedReferences(java.lang.Object o, QuadInterpreter.UninitializedReference u)
           
 void setReturnValue(java.lang.Object o)
           
 void setThrown(java.lang.Throwable t)
           
 java.lang.String toString()
          Convert this Object to a human-readable String.
 void trapOnSystemExit()
           
 void visitNullCheck(Compil3r.Quad.Quad q)
          A null pointer check instruction.
 void visitQuad(Compil3r.Quad.Quad q)
          Any quad.
 
Methods inherited from class Compil3r.Quad.QuadVisitor.EmptyVisitor
visitALength, visitAllocation, visitALoad, visitArray, visitAStore, visitBinary, visitBoundsCheck, visitBranch, visitCheck, visitCheckCast, visitCondBranch, visitExceptionThrower, visitGetfield, visitGetstatic, visitGoto, visitInstanceField, visitInstanceOf, visitIntIfCmp, visitInvoke, visitJsr, visitLoad, visitLookupSwitch, visitMemLoad, visitMemStore, visitMonitor, visitMove, visitNew, visitNewArray, visitPutfield, visitPutstatic, visitRet, visitReturn, visitSpecial, visitStaticField, visitStore, visitStoreCheck, visitTableSwitch, visitTypeCheck, visitUnary, visitZeroCheck
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

method

Clazz.jq_Method method

registers

java.util.Map registers

cfg

Compil3r.Quad.ControlFlowGraph cfg

rf

Compil3r.Quad.RegisterFactory rf

current_bb

Compil3r.Quad.BasicBlock current_bb

current_iterator

Util.Templates.ListIterator.Quad current_iterator

current_quad

Compil3r.Quad.Quad current_quad

return_value

java.lang.Object return_value

thrown

java.lang.Throwable thrown

caught

java.lang.Throwable caught

TRACE

public static boolean TRACE

num_quads

public static long num_quads

num_nullchecks

public static long num_nullchecks

bad_methods

static java.util.Set bad_methods

bad_classes

static java.util.Set bad_classes

interpret_filter

public static Util.Collections.FilterIterator.Filter interpret_filter
Constructor Detail

QuadInterpreter

public QuadInterpreter(Clazz.jq_Method m)
Method Detail

visitNullCheck

public void visitNullCheck(Compil3r.Quad.Quad q)
Description copied from class: Compil3r.Quad.QuadVisitor.EmptyVisitor
A null pointer check instruction.


visitQuad

public void visitQuad(Compil3r.Quad.Quad q)
Description copied from class: Compil3r.Quad.QuadVisitor.EmptyVisitor
Any quad.


setReturnValue

public void setReturnValue(java.lang.Object o)

getReturnValue

public java.lang.Object getReturnValue()

getThrown

public java.lang.Throwable getThrown()

setThrown

public void setThrown(java.lang.Throwable t)

getCaught

public java.lang.Throwable getCaught()

getExceptionRegister

public Compil3r.Quad.RegisterFactory.Register getExceptionRegister()

invokeReflective

public QuadInterpreter invokeReflective(Clazz.jq_Method f,
                                        Compil3r.Quad.Operand.ParamListOperand plo)

generateParamArray

public java.lang.Object[] generateParamArray(Clazz.jq_Method f,
                                             Compil3r.Quad.Operand.ParamListOperand plo)

invokeInstanceReflective

public QuadInterpreter invokeInstanceReflective(Clazz.jq_InstanceMethod f,
                                                Compil3r.Quad.Operand.ParamListOperand plo)

invokeStaticReflective

public QuadInterpreter invokeStaticReflective(Clazz.jq_StaticMethod f,
                                              Compil3r.Quad.Operand.ParamListOperand plo)

invokeMethod

public QuadInterpreter invokeMethod(Clazz.jq_Method f,
                                    Compil3r.Quad.Operand.ParamListOperand plo)

output

public void output()

trapOnSystemExit

public void trapOnSystemExit()

interpretMethod

public static QuadInterpreter interpretMethod(Clazz.jq_Method f,
                                              java.lang.Object[] params)

interpretMethod

public void interpretMethod(Clazz.jq_Method m,
                            java.lang.Object[] params,
                            Compil3r.Quad.RegisterFactory rf,
                            Compil3r.Quad.ControlFlowGraph cfg)

branchTo

public void branchTo(Compil3r.Quad.BasicBlock bb)

handleException

public void handleException(java.lang.Throwable x)

getReg_I

public int getReg_I(Compil3r.Quad.RegisterFactory.Register r)

getReg_F

public float getReg_F(Compil3r.Quad.RegisterFactory.Register r)

getReg_L

public long getReg_L(Compil3r.Quad.RegisterFactory.Register r)

getReg_D

public double getReg_D(Compil3r.Quad.RegisterFactory.Register r)

getReg_A

public java.lang.Object getReg_A(Compil3r.Quad.RegisterFactory.Register r)

getReg_P

public Memory.Address getReg_P(Compil3r.Quad.RegisterFactory.Register r)

getReg

public java.lang.Object getReg(Compil3r.Quad.RegisterFactory.Register r)

putReg_I

public void putReg_I(Compil3r.Quad.RegisterFactory.Register r,
                     int i)

putReg_F

public void putReg_F(Compil3r.Quad.RegisterFactory.Register r,
                     float i)

putReg_L

public void putReg_L(Compil3r.Quad.RegisterFactory.Register r,
                     long i)

putReg_D

public void putReg_D(Compil3r.Quad.RegisterFactory.Register r,
                     double i)

putReg_A

public void putReg_A(Compil3r.Quad.RegisterFactory.Register r,
                     java.lang.Object i)

putReg_P

public void putReg_P(Compil3r.Quad.RegisterFactory.Register r,
                     Memory.Address i)

putReg

public void putReg(Compil3r.Quad.RegisterFactory.Register r,
                   java.lang.Object i)

replaceUninitializedReferences

public void replaceUninitializedReferences(java.lang.Object o,
                                           QuadInterpreter.UninitializedReference u)

currentLocation

public java.lang.String currentLocation()

toString

public java.lang.String toString()
Description copied from class: java.lang.Object
Convert this Object to a human-readable String. There are no limits placed on how long this String should be or what it should contain. We suggest you make it as intuitive as possible to be able to place it into System.out.println() 55 and such.

It is typical, but not required, to ensure that this method never completes abruptly with a java.lang.RuntimeException.

This method will be called when performing string concatenation with this object. If the result is null, string concatenation will instead use "null".

The default implementation returns getClass().getName() + "@" + Integer.toHexString(hashCode()).