public class Variable extends AssignableExpression
| Constructor and Description |
|---|
Variable(Rule rule,
Type type,
ParseNode token) |
Variable(Rule rule,
Type type,
ParseNode token,
String name) |
| Modifier and Type | Method and Description |
|---|---|
void |
bind()
verify that variables mentioned in this expression are actually available in the supplied
bindings list and infer/validate the type of this expression or its subexpressions
where possible
|
void |
bindAssign()
verify that variables mentioned in this expression are actually available in the supplied
bindings list.
|
void |
compile(org.objectweb.asm.MethodVisitor mv,
CompileContext compileContext) |
void |
compileAssign(org.objectweb.asm.MethodVisitor mv,
CompileContext compileContext)
compile an assignment to the referenced location using the value on the top of the
Java stack.
|
Object |
interpret(HelperAdapter helper)
evaluate the expression by interpreting the expression tree
|
Object |
interpretAssign(HelperAdapter helperAdapter,
Object value)
execute an assignment to the referenced location by interpretation of the expression,
using the object passed in this call
|
Type |
typeCheck(Type expected)
ensure that all type references in the expression and its component expressions
can be resolved, that the type of the expression is well-defined and that it is
compatible with the type expected in the context in which it occurs.
|
void |
typeCheckAny() |
Type |
typeCheckAssign(Type expected)
typecheck the expression as an lvalue of an assignment operation
|
void |
writeTo(StringWriter stringWriter) |
getPos, getTypecompileBooleanConversion, compileBox, compileNumericConversion, compileObjectConversion, compilePrimitiveConversion, compileStringConversion, compileTypeConversion, compileUnbox, getBindings, getTypeGroup, rebox, toStringpublic void bind()
throws TypeException
bind in class ExpressionTypeException - if any variable is missing or has the wrong typepublic void bindAssign()
throws TypeException
bindAssign in class AssignableExpressionTypeException - if any variable is missing or has the wrong typepublic Type typeCheck(Type expected) throws TypeException
ExpressiontypeCheck in class Expressionexpected - the type expected for the expression in the contxet in which it occurs. this
may be void but should not be undefined at the point where type checking is performed.TypeException - if a type check failure occurspublic Type typeCheckAssign(Type expected) throws TypeException
AssignableExpressiontypeCheckAssign in class AssignableExpressionexpected - the expected type for the expressionTypeException - if a type check error occurspublic void typeCheckAny()
throws TypeException
TypeExceptionpublic Object interpret(HelperAdapter helper) throws ExecuteException
Expressioninterpret in class Expressionhelper - an execution context associated with the rule which contains a map of
current bindings for rule variables and another map of their declared types both of which
are indexed by variable name. This includes entries for the helper (name "-1"), the
recipient if the trigger method is not static (name "0") and the trigger method arguments
(names "1", ...)ExecuteException - if an error occurs during executionpublic void compile(org.objectweb.asm.MethodVisitor mv,
CompileContext compileContext)
throws CompileException
compile in class RuleElementCompileExceptionpublic Object interpretAssign(HelperAdapter helperAdapter, Object value) throws ExecuteException
AssignableExpressioninterpretAssign in class AssignableExpressionhelperAdapter - an execution context associated with the rule which contains a map of
current bindings for rule variables and another map of their declared types both of which
are indexed by variable name. This includes entries for the helper (name "-1"), the
recipient if the trigger method is not static (name "0") and the trigger method arguments
(names "1", ...)value - the value to be assigned to this objectExecuteException - if an error occurs during executionpublic void compileAssign(org.objectweb.asm.MethodVisitor mv,
CompileContext compileContext)
throws CompileException
AssignableExpressioncompileAssign in class AssignableExpressionmv - the current method visitorcompileContext - the current compile contextCompileException - if a compile error occurspublic void writeTo(StringWriter stringWriter)
writeTo in class ExpressionCopyright © 2016. All rights reserved.