|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectkoala.dynamicjava.tree.visitor.AbstractVisitor<java.lang.Object>
edu.rice.cs.dynamicjava.interpreter.ExpressionEvaluator
public class ExpressionEvaluator
Evaluates the given expression. The expression is assumed to have been
checked without any errors. Note that the result of a visitor method is not necessarily
the value of the expression -- for example, a primitive casting conversion might be required.
The value(koala.dynamicjava.tree.Node) method contains additional checks and conversions, and should be used exclusively
by clients to evaluate an expression.
| Field Summary | |
|---|---|
static Lambda2<java.lang.Object,java.lang.Object,java.lang.Object> |
ADD
|
static Lambda2<java.lang.Object,java.lang.Object,java.lang.Object> |
BIT_AND
|
static Lambda2<java.lang.Object,java.lang.Object,java.lang.Object> |
BIT_OR
|
static Lambda<java.lang.Object,java.lang.Object> |
COMPLEMENT
|
static Lambda2<java.lang.Object,java.lang.Object,java.lang.Object> |
CONCATENATE
|
static Lambda<java.lang.Object,java.lang.Object> |
DECREMENT
|
static Lambda2<java.lang.Object,java.lang.Object,java.lang.Object> |
DIVIDE
|
static Lambda2<java.lang.Object,java.lang.Object,java.lang.Object> |
EXCLUSIVE_OR
|
static Lambda2<java.lang.Object,java.lang.Object,java.lang.Object> |
GREATER
|
static Lambda2<java.lang.Object,java.lang.Object,java.lang.Object> |
GREATER_OR_EQUAL
|
static Lambda<java.lang.Object,java.lang.Object> |
INCREMENT
|
static Lambda2<java.lang.Object,java.lang.Object,java.lang.Object> |
LESS
|
static Lambda2<java.lang.Object,java.lang.Object,java.lang.Object> |
LESS_OR_EQUAL
|
static Lambda<java.lang.Object,java.lang.Object> |
MINUS
|
static Lambda2<java.lang.Object,java.lang.Object,java.lang.Object> |
MULTIPLY
|
static Lambda<java.lang.Object,java.lang.Object> |
NOT
|
static Lambda2<java.lang.Object,java.lang.Object,java.lang.Object> |
OBJECT_EQUAL
|
static Lambda2<java.lang.Object,java.lang.Object,java.lang.Object> |
OBJECT_NOT_EQUAL
|
static Lambda<java.lang.Object,java.lang.Object> |
PLUS
|
static Lambda2<java.lang.Object,java.lang.Object,java.lang.Object> |
PRIMITIVE_EQUAL
|
static Lambda2<java.lang.Object,java.lang.Object,java.lang.Object> |
PRIMITIVE_NOT_EQUAL
|
static Lambda2<java.lang.Object,java.lang.Object,java.lang.Object> |
REMAINDER
|
static Lambda2<java.lang.Object,java.lang.Object,java.lang.Object> |
SHIFT_LEFT
|
static Lambda2<java.lang.Object,java.lang.Object,java.lang.Object> |
SHIFT_RIGHT
|
static Lambda2<java.lang.Object,java.lang.Object,java.lang.Object> |
SUBTRACT
|
static Lambda2<java.lang.Object,java.lang.Object,java.lang.Object> |
UNSIGNED_SHIFT_RIGHT
|
| Constructor Summary | |
|---|---|
ExpressionEvaluator(RuntimeBindings bindings,
Options options)
|
|
| Method Summary | |
|---|---|
static java.lang.Object |
convert(java.lang.Object obj,
java.lang.Class<?> target)
Convert a primitive to the appropriate type |
java.lang.Object |
value(Node n)
|
java.lang.Object |
visit(AddAssignExpression node)
Visits an AddAssignExpression |
java.lang.Object |
visit(AddExpression node)
Visits a AddExpression |
java.lang.Object |
visit(AndExpression node)
Visits a AndExpression |
java.lang.Object |
visit(AnonymousAllocation node)
Visits an AnonymousAllocation |
java.lang.Object |
visit(AnonymousInnerAllocation node)
Visits an AnonymousInnerAllocation |
java.lang.Object |
visit(ArrayAccess node)
Visits a ArrayAccess |
java.lang.Object |
visit(ArrayAllocation node)
Visits an ArrayAllocation |
java.lang.Object |
visit(ArrayInitializer node)
Visits an ArrayInitializer |
java.lang.Object |
visit(BitAndAssignExpression node)
Visits a BitAndAssignExpression |
java.lang.Object |
visit(BitAndExpression node)
Visits a BitAndExpression |
java.lang.Object |
visit(BitOrAssignExpression node)
Visits a BitOrAssignExpression |
java.lang.Object |
visit(BitOrExpression node)
Visits a BitOrExpression |
java.lang.Object |
visit(CastExpression node)
Visits a CastExpression |
java.lang.Object |
visit(ComplementExpression node)
Visits a ComplementExpression |
java.lang.Object |
visit(ConditionalExpression node)
Visits a ConditionalExpression |
java.lang.Object |
visit(DivideAssignExpression node)
Visits an DivideAssignExpression |
java.lang.Object |
visit(DivideExpression node)
Visits a DivideExpression |
java.lang.Object |
visit(EqualExpression node)
Visits a EqualExpression |
java.lang.Object |
visit(ExclusiveOrAssignExpression node)
Visits a ExclusiveOrAssignExpression |
java.lang.Object |
visit(ExclusiveOrExpression node)
Visits a ExclusiveOrExpression |
java.lang.Object |
visit(GreaterExpression node)
Visits a GreaterExpression |
java.lang.Object |
visit(GreaterOrEqualExpression node)
Visits a GreaterOrEqualExpression |
java.lang.Object |
visit(InnerAllocation node)
Visits an InnerAllocation |
java.lang.Object |
visit(InstanceOfExpression node)
Visits an InstanceOfExpression |
java.lang.Object |
visit(LessExpression node)
Visits a LessExpression |
java.lang.Object |
visit(LessOrEqualExpression node)
Visits a LessOrEqualExpression |
java.lang.Object |
visit(Literal node)
Visits a Literal |
java.lang.Object |
visit(MinusExpression node)
Visits a MinusExpression |
java.lang.Object |
visit(MultiplyAssignExpression node)
Visits an MultiplyAssignExpression |
java.lang.Object |
visit(MultiplyExpression node)
Visits a MultiplyExpression |
java.lang.Object |
visit(NotEqualExpression node)
Visits a NotEqualExpression |
java.lang.Object |
visit(NotExpression node)
Visits a NotExpression |
java.lang.Object |
visit(ObjectFieldAccess node)
Visits a ObjectFieldAccess |
java.lang.Object |
visit(ObjectMethodCall node)
Visits a ObjectMethodCall |
java.lang.Object |
visit(OrExpression node)
Visits a OrExpression |
java.lang.Object |
visit(PlusExpression node)
Visits a PlusExpression |
java.lang.Object |
visit(PostDecrement node)
Visits a PostDecrement |
java.lang.Object |
visit(PostIncrement node)
Visits a PostIncrement |
java.lang.Object |
visit(PreDecrement node)
Visits a PreDecrement |
java.lang.Object |
visit(PreIncrement node)
Visits a PreIncrement |
java.lang.Object |
visit(RemainderAssignExpression node)
Visits an RemainderAssignExpression |
java.lang.Object |
visit(RemainderExpression node)
Visits a RemainderExpression |
java.lang.Object |
visit(ShiftLeftAssignExpression node)
Visits an ShiftLeftAssignExpression |
java.lang.Object |
visit(ShiftLeftExpression node)
Visits a ShiftLeftExpression |
java.lang.Object |
visit(ShiftRightAssignExpression node)
Visits an ShiftRightAssignExpression |
java.lang.Object |
visit(ShiftRightExpression node)
Visits a ShiftRightExpression |
java.lang.Object |
visit(SimpleAllocation node)
Visits a SimpleAllocation |
java.lang.Object |
visit(SimpleAssignExpression node)
Visits an SimpleAssignExpression |
java.lang.Object |
visit(SimpleFieldAccess node)
Visits a SimpleFieldAccess |
java.lang.Object |
visit(SimpleMethodCall node)
Visits a SimpleMethodCall |
java.lang.Object |
visit(StaticFieldAccess node)
Visits a StaticFieldAccess |
java.lang.Object |
visit(StaticMethodCall node)
Visits a StaticMethodCall |
java.lang.Object |
visit(SubtractAssignExpression node)
Visits an SubtractAssignExpression |
java.lang.Object |
visit(SubtractExpression node)
Visits a SubtractExpression |
java.lang.Object |
visit(SuperFieldAccess node)
Visits a SuperFieldAccess |
java.lang.Object |
visit(SuperMethodCall node)
Visits a SuperMethodCall |
java.lang.Object |
visit(ThisExpression node)
Visits a ThisExpression |
java.lang.Object |
visit(TypeExpression node)
Visits a TypeExpression |
java.lang.Object |
visit(UnsignedShiftRightAssignExpression node)
Visits an UnsignedShiftRightAssignExpression |
java.lang.Object |
visit(UnsignedShiftRightExpression node)
Visits a UnsignedShiftRightExpression |
java.lang.Object |
visit(VariableAccess node)
Visits a VariableAccess |
| Methods inherited from class koala.dynamicjava.tree.visitor.AbstractVisitor |
|---|
defaultCase, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final Lambda<java.lang.Object,java.lang.Object> NOT
public static final Lambda<java.lang.Object,java.lang.Object> COMPLEMENT
public static final Lambda<java.lang.Object,java.lang.Object> PLUS
public static final Lambda<java.lang.Object,java.lang.Object> MINUS
public static final Lambda<java.lang.Object,java.lang.Object> INCREMENT
public static final Lambda<java.lang.Object,java.lang.Object> DECREMENT
public static final Lambda2<java.lang.Object,java.lang.Object,java.lang.Object> OBJECT_EQUAL
public static final Lambda2<java.lang.Object,java.lang.Object,java.lang.Object> PRIMITIVE_EQUAL
public static final Lambda2<java.lang.Object,java.lang.Object,java.lang.Object> OBJECT_NOT_EQUAL
public static final Lambda2<java.lang.Object,java.lang.Object,java.lang.Object> PRIMITIVE_NOT_EQUAL
public static final Lambda2<java.lang.Object,java.lang.Object,java.lang.Object> CONCATENATE
public static final Lambda2<java.lang.Object,java.lang.Object,java.lang.Object> ADD
public static final Lambda2<java.lang.Object,java.lang.Object,java.lang.Object> SUBTRACT
public static final Lambda2<java.lang.Object,java.lang.Object,java.lang.Object> MULTIPLY
public static final Lambda2<java.lang.Object,java.lang.Object,java.lang.Object> DIVIDE
public static final Lambda2<java.lang.Object,java.lang.Object,java.lang.Object> REMAINDER
public static final Lambda2<java.lang.Object,java.lang.Object,java.lang.Object> LESS
public static final Lambda2<java.lang.Object,java.lang.Object,java.lang.Object> LESS_OR_EQUAL
public static final Lambda2<java.lang.Object,java.lang.Object,java.lang.Object> GREATER
public static final Lambda2<java.lang.Object,java.lang.Object,java.lang.Object> GREATER_OR_EQUAL
public static final Lambda2<java.lang.Object,java.lang.Object,java.lang.Object> BIT_AND
public static final Lambda2<java.lang.Object,java.lang.Object,java.lang.Object> BIT_OR
public static final Lambda2<java.lang.Object,java.lang.Object,java.lang.Object> EXCLUSIVE_OR
public static final Lambda2<java.lang.Object,java.lang.Object,java.lang.Object> SHIFT_LEFT
public static final Lambda2<java.lang.Object,java.lang.Object,java.lang.Object> SHIFT_RIGHT
public static final Lambda2<java.lang.Object,java.lang.Object,java.lang.Object> UNSIGNED_SHIFT_RIGHT
| Constructor Detail |
|---|
public ExpressionEvaluator(RuntimeBindings bindings,
Options options)
| Method Detail |
|---|
public java.lang.Object value(Node n)
value in interface Lambda<Node,java.lang.Object>public java.lang.Object visit(Literal node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(VariableAccess node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(SimpleFieldAccess node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(ObjectFieldAccess node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(SuperFieldAccess node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(StaticFieldAccess node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(ThisExpression node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(SimpleMethodCall node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(ObjectMethodCall node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(SuperMethodCall node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(StaticMethodCall node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(SimpleAllocation node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(AnonymousAllocation node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(InnerAllocation node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(AnonymousInnerAllocation node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(SimpleAssignExpression node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(TypeExpression node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(ArrayAllocation node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(ArrayInitializer node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(ArrayAccess node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(NotExpression node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(ComplementExpression node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(PlusExpression node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(MinusExpression node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(AddExpression node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(AddAssignExpression node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(SubtractExpression node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(SubtractAssignExpression node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(MultiplyExpression node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(MultiplyAssignExpression node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(DivideExpression node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(DivideAssignExpression node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(RemainderExpression node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(RemainderAssignExpression node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(EqualExpression node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(NotEqualExpression node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(LessExpression node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(LessOrEqualExpression node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(GreaterExpression node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(GreaterOrEqualExpression node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(BitAndExpression node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(BitAndAssignExpression node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(ExclusiveOrExpression node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(ExclusiveOrAssignExpression node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(BitOrExpression node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(BitOrAssignExpression node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(ShiftLeftExpression node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(ShiftLeftAssignExpression node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(ShiftRightExpression node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(ShiftRightAssignExpression node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(UnsignedShiftRightExpression node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(UnsignedShiftRightAssignExpression node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(AndExpression node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(OrExpression node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(InstanceOfExpression node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(CastExpression node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(ConditionalExpression node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(PostIncrement node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(PreIncrement node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(PostDecrement node)
AbstractVisitor
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visitpublic java.lang.Object visit(PreDecrement node)
visit in interface Visitor<java.lang.Object>visit in class AbstractVisitor<java.lang.Object>node - the node to visit
public static java.lang.Object convert(java.lang.Object obj,
java.lang.Class<?> target)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||