edu.mit.ai.psg.jevaES
Class JNEMethodInvocationExpression
java.lang.Object
|
+--edu.mit.ai.psg.jevaES.SimpleNode
|
+--edu.mit.ai.psg.jevaES.JevaNode
|
+--edu.mit.ai.psg.jevaES.ExpressionNode
|
+--edu.mit.ai.psg.jevaES.JNEMethodInvocationExpression
- public class JNEMethodInvocationExpression
- extends ExpressionNode
Jeva parse node for Method invocation expressions: target.method(args...)
[JavaLangSpec 1.0 sec 15.11 Method Invocation Expressions].
Uses type of target expression to determine signature of method to be called.
The implementation of this signature may be overridden by subclasses
of this type, so the type of the actual target value is also needed.
| Methods inherited from class edu.mit.ai.psg.jevaES.JevaNode |
getBeginToken,
getEndToken,
notVerified,
print,
print,
printToken,
printToString,
printToString,
setBeginToken,
setEndToken,
shouldNotHappen,
shouldNotHappen,
shouldNotHappen |
getMethodSignature
public Method getMethodSignature()
getTargetExpression
public IExpressionNode getTargetExpression()
- Returns target expression if there is one, or may return null if target
is impliict, or if calling a static method (ClassName.method())
getInvocationMode
public int getInvocationMode()
computeType
public Class computeType(IEnv env)
throws VerifyingException
- Description copied from class: ExpressionNode
- Compute the static type of the expression (nodes should not call
this method directly). Called by getType.
- Overrides:
- computeType in class ExpressionNode
- Tags copied from class: ExpressionNode
- Parameters:
env - environment of name bindings, etc.- Throws:
- VerifyingException - if expression is illegal
- See Also:
EvalMethods.getType(IExpressionNode, IEnv)
computeIsConstant
public boolean computeIsConstant(IEnv env)
- Description copied from class: ExpressionNode
- Compute whether this expression is a constant (nodes should not call
this method directly). Called by the isConstant method.
- Overrides:
- computeIsConstant in class ExpressionNode
- Tags copied from class: ExpressionNode
- Parameters:
env - environment of name bindings, etc.- Throws:
- VerifyingException - if expression is illegal.
- See Also:
ExpressionNode.isConstant(edu.mit.ai.psg.jevaES.IEnv),
EvalMethods.isConstant(IExpressionNode, IEnv)
eval
public Object eval(IEnv env)
throws ThrowException
- Description copied from class: ExpressionNode
- Evaluate this expression (nodes should not call this method
directly). Called by the getValue method.
- Overrides:
- eval in class ExpressionNode
- Tags copied from class: ExpressionNode
- Parameters:
env - environment of name bindings, etc.- Throws:
- ThrowException - if abruptly completed with an exception
- See Also:
ExpressionNode.getValue(edu.mit.ai.psg.jevaES.IEnv),
EvalMethods.eval(IExpressionNode, IEnv)
initMethodSignature
protected void initMethodSignature(IEnv env)
throws VerifyingException
- JevaES does not handle special cases used only in non-static methods:
this, super