java.lang.Object
openjava.ptree.util.ParseTreeVisitor
openjava.ptree.util.EvaluationShuttle
openjava.ptree.util.ScopeHandler
openjava.ptree.util.VariableBinder
openjava.ptree.util.ExpansionApplier
- public class ExpansionApplier
- extends VariableBinder
The class ExpansionApplier is an evaluator of each
objects of ParseTree family. Each methods in
this class is invoked from the class EvaluationShuttle.
The method evaluateDown() is invoked before evaluating
the children of the parse tree object, and evaluateUp()
is invoked after the evaluation.
For a class P and a object p statically
typed as P, the parts in source code each expantion will be applied
are:
- Allocation
new P()
- ArrayAllocation
new P[expr]
- MethodCall
P.m(), p.m()
- FieldRead
P.f, p.f as a right side value
- FieldWrite
P.f = expr, p.f = expr
- ArrayAccess
ap[expr] for P[] ap;
- Expression
p
in feature version:
- CastExpression
(P) expr including implicit cast
- CastedExpression
(Q) p including implicit cast
- Since:
- $Id: ExpansionApplier.java,v 1.2 2003/02/19 02:55:00 tatsubori Exp $
- Version:
- 1.0
| Fields inherited from class openjava.ptree.util.ScopeHandler |
|
| Methods inherited from class openjava.ptree.util.ScopeHandler |
evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateUp, evaluateUp, evaluateUp, evaluateUp, evaluateUp, evaluateUp, evaluateUp, evaluateUp, evaluateUp, evaluateUp, evaluateUp, evaluateUp, evaluateUp, pop, push, pushClosedEnvironment |
| Methods inherited from class openjava.ptree.util.EvaluationShuttle |
evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateUp, evaluateUp, evaluateUp, evaluateUp, evaluateUp, evaluateUp, evaluateUp, evaluateUp, evaluateUp, evaluateUp, evaluateUp, evaluateUp, evaluateUp, evaluateUp, evaluateUp, evaluateUp, evaluateUp, evaluateUp, evaluateUp, evaluateUp, evaluateUp, evaluateUp, evaluateUp, evaluateUp, getEnvironment, setEnvironment, 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, visit, visit, visit |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ExpansionApplier
public ExpansionApplier(openjava.mop.Environment env)
getType
private openjava.mop.OJClass getType(openjava.ptree.Expression p)
throws openjava.ptree.ParseTreeException
getSelfType
private openjava.mop.OJClass getSelfType()
throws openjava.ptree.ParseTreeException
getType
private openjava.mop.OJClass getType(openjava.ptree.TypeName typename)
throws openjava.ptree.ParseTreeException
computeRefType
private openjava.mop.OJClass computeRefType(openjava.ptree.TypeName typename,
openjava.ptree.Expression expr)
throws openjava.ptree.ParseTreeException
visit
public void visit(openjava.ptree.AssignmentExpression p)
throws openjava.ptree.ParseTreeException
- Overrides:
visit in class EvaluationShuttle
evaluateUp
public openjava.ptree.Expression evaluateUp(openjava.ptree.AllocationExpression p)
throws openjava.ptree.ParseTreeException
- Includes expandAllocation() and expandExpression().
- Overrides:
evaluateUp in class ScopeHandler
evaluateUp
public openjava.ptree.Expression evaluateUp(openjava.ptree.ArrayAccess p)
throws openjava.ptree.ParseTreeException
- Includes expandArrayAccess() and expandExpression().
- Overrides:
evaluateUp in class EvaluationShuttle
evaluateUp
public openjava.ptree.Expression evaluateUp(openjava.ptree.ArrayAllocationExpression p)
throws openjava.ptree.ParseTreeException
- Includes expandArrayAllocation() and expandExpression().
- Overrides:
evaluateUp in class EvaluationShuttle
evaluateUp
public openjava.ptree.Expression evaluateUp(openjava.ptree.AssignmentExpression p)
throws openjava.ptree.ParseTreeException
- Includes expandFieldWrite(), expandAssignmentExpression()
and expandExpression().
- Overrides:
evaluateUp in class EvaluationShuttle
evaluateUp
public openjava.ptree.Expression evaluateUp(openjava.ptree.BinaryExpression p)
throws openjava.ptree.ParseTreeException
- Includes expandExpression().
- Overrides:
evaluateUp in class EvaluationShuttle
evaluateUp
public openjava.ptree.Expression evaluateUp(openjava.ptree.CastExpression p)
throws openjava.ptree.ParseTreeException
- Includes expandCastExpression(), expandCastedExpression() and
expandExpression().
- Overrides:
evaluateUp in class EvaluationShuttle
evaluateUp
public openjava.ptree.Expression evaluateUp(openjava.ptree.ClassLiteral p)
throws openjava.ptree.ParseTreeException
- Includes expandExpression().
- Overrides:
evaluateUp in class EvaluationShuttle
evaluateUp
public openjava.ptree.Expression evaluateUp(openjava.ptree.ConditionalExpression p)
throws openjava.ptree.ParseTreeException
- Includes expandExpression().
- Overrides:
evaluateUp in class EvaluationShuttle
evaluateUp
public openjava.ptree.Expression evaluateUp(openjava.ptree.FieldAccess p)
throws openjava.ptree.ParseTreeException
- Includes expandFieldRead() and expandExpression().
Not to be applied for itself.
- Overrides:
evaluateUp in class EvaluationShuttle
evaluateUp
public openjava.ptree.Expression evaluateUp(openjava.ptree.InstanceofExpression p)
throws openjava.ptree.ParseTreeException
- Includes expandExpression().
- Overrides:
evaluateUp in class EvaluationShuttle
evaluateUp
public openjava.ptree.Expression evaluateUp(openjava.ptree.Literal p)
throws openjava.ptree.ParseTreeException
- Includes expandExpression().
- Overrides:
evaluateUp in class EvaluationShuttle
evaluateUp
public openjava.ptree.Expression evaluateUp(openjava.ptree.MethodCall p)
throws openjava.ptree.ParseTreeException
- Includes expandMethodCall() and expandExpression().
- Overrides:
evaluateUp in class EvaluationShuttle
evaluateUp
public openjava.ptree.Expression evaluateUp(openjava.ptree.SelfAccess p)
throws openjava.ptree.ParseTreeException
- Includes expandExpression().
- Overrides:
evaluateUp in class EvaluationShuttle
evaluateUp
public openjava.ptree.TypeName evaluateUp(openjava.ptree.TypeName p)
throws openjava.ptree.ParseTreeException
- Includes expandTypeName().
- Overrides:
evaluateUp in class EvaluationShuttle
evaluateUp
public openjava.ptree.Expression evaluateUp(openjava.ptree.UnaryExpression p)
throws openjava.ptree.ParseTreeException
- Includes expandExpression().
- Overrides:
evaluateUp in class EvaluationShuttle
evaluateUp
public openjava.ptree.Expression evaluateUp(openjava.ptree.Variable p)
throws openjava.ptree.ParseTreeException
- Includes expandExpression().
- Overrides:
evaluateUp in class EvaluationShuttle
evaluateUp
public openjava.ptree.Statement evaluateUp(openjava.ptree.VariableDeclaration p)
throws openjava.ptree.ParseTreeException
- Includes expandVariableDeclaration().
- Overrides:
evaluateUp in class EvaluationShuttle