org.codehaus.groovy.classgen
Class ClassGenerator
java.lang.Object
|
+--org.codehaus.groovy.ast.CodeVisitorSupport
|
+--org.codehaus.groovy.classgen.ClassGenerator
- All Implemented Interfaces:
- org.objectweb.asm.Constants, GroovyClassVisitor, GroovyCodeVisitor
- public class ClassGenerator
- extends CodeVisitorSupport
- implements GroovyClassVisitor, org.objectweb.asm.Constants
Generates Java class versions of Groovy classes
- Version:
- $Revision: 1.109 $
- Author:
- James Strachan
Fields inherited from interface org.objectweb.asm.Constants |
AALOAD, AASTORE, ACC_ABSTRACT, ACC_DEPRECATED, ACC_FINAL, ACC_INTERFACE, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_VOLATILE, ACONST_NULL, ALOAD, ANEWARRAY, ARETURN, ARRAYLENGTH, ASTORE, ATHROW, BALOAD, BASTORE, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DMUL, DNEG, DREM, DRETURN, DSTORE, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FMUL, FNEG, FREM, FRETURN, FSTORE, FSUB, GETFIELD, GETSTATIC, GOTO, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, IF_ACMPEQ, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IINC, ILOAD, IMUL, INEG, INSTANCEOF, INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISUB, IUSHR, IXOR, JSR, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDIV, LLOAD, LMUL, LNEG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, SWAP, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH |
Constructor Summary |
ClassGenerator(org.codehaus.groovy.classgen.GeneratorContext context,
org.objectweb.asm.ClassVisitor classVisitor,
ClassLoader classLoader,
String sourceFile)
|
Method Summary |
protected boolean |
addInnerClass(org.codehaus.groovy.ast.ClassNode innerClass)
|
protected boolean |
argumentsUseStack(org.codehaus.groovy.ast.expr.Expression arguments)
|
protected org.codehaus.groovy.ast.expr.Expression |
assignmentExpression(org.codehaus.groovy.ast.expr.Expression expression)
|
protected String |
checkValidType(String type,
org.codehaus.groovy.ast.ASTNode node,
String message)
|
protected boolean |
comparisonExpression(org.codehaus.groovy.ast.expr.Expression expression)
|
protected org.codehaus.groovy.ast.ClassNode |
createClosureClass(org.codehaus.groovy.ast.expr.ClosureExpression expression)
|
protected org.codehaus.groovy.ast.ClassNode |
createGStringClass(org.codehaus.groovy.ast.expr.GStringExpression expression)
|
protected void |
createSyntheticStaticFields()
|
protected String |
createVariableName(String type)
|
protected org.codehaus.groovy.classgen.Variable |
defineVariable(String name,
String type)
Defines the given variable in scope and assigns it to the stack |
protected org.codehaus.groovy.classgen.Variable |
defineVariable(String name,
String type,
boolean define)
|
protected void |
doCast(String type)
|
protected void |
evaluateBinaryExpression(org.codehaus.groovy.classgen.MethodCaller compareMethod,
org.codehaus.groovy.ast.expr.BinaryExpression expression)
|
protected void |
evaluateBinaryExpression(String method,
org.codehaus.groovy.ast.expr.BinaryExpression expression)
|
protected void |
evaluateBinaryExpressionWithAsignment(String method,
org.codehaus.groovy.ast.expr.BinaryExpression expression)
|
protected void |
evaluateEqual(org.codehaus.groovy.ast.expr.BinaryExpression expression)
|
protected void |
evaluateInstanceof(org.codehaus.groovy.ast.expr.BinaryExpression expression)
|
protected void |
evaluateLogicalAndExpression(org.codehaus.groovy.ast.expr.BinaryExpression expression)
|
protected void |
evaluateLogicalOrExpression(org.codehaus.groovy.ast.expr.BinaryExpression expression)
|
protected void |
evaluatePostfixMethod(String method,
org.codehaus.groovy.ast.expr.Expression expression)
|
protected void |
evaluatePrefixMethod(String method,
org.codehaus.groovy.ast.expr.Expression expression)
|
protected void |
findMutableVariables(org.codehaus.groovy.ast.MethodNode node)
|
protected boolean |
firstStatementIsSuperMethodCall(org.codehaus.groovy.ast.stmt.Statement code)
|
protected String |
getClassInternalName(String name)
|
ClassLoader |
getClassLoader()
|
protected org.codehaus.groovy.ast.Parameter[] |
getClosureSharedVariables(org.codehaus.groovy.ast.expr.ClosureExpression expression)
|
protected Class |
getExpressionType(org.codehaus.groovy.ast.expr.Expression expression)
|
LinkedList |
getInnerClasses()
|
protected int |
getLastStackId()
|
protected String |
getMethodDescriptor(String returnTypeName,
org.codehaus.groovy.ast.Parameter[] paramTypeNames)
|
protected String |
getTypeDescription(String name)
|
protected String |
getVariableType(String name)
|
protected boolean |
isFieldOrVariable(String name)
|
protected boolean |
isHolderVariable(org.codehaus.groovy.ast.expr.Expression expression)
|
protected boolean |
isInClosureConstructor()
|
protected boolean |
isNonStaticField(org.codehaus.groovy.ast.expr.Expression expression)
|
protected boolean |
isPrimitiveFieldType(Object value)
|
protected boolean |
isStaticMethod()
|
protected boolean |
isThisExpression(org.codehaus.groovy.ast.expr.Expression expression)
|
protected Class |
loadClass(String name)
|
protected void |
onLineNumber(org.codehaus.groovy.ast.ASTNode statement)
|
protected void |
pushConstant(int value)
|
protected void |
resetVariableStack(org.codehaus.groovy.ast.Parameter[] parameters)
|
void |
visitArrayExpression(org.codehaus.groovy.ast.expr.ArrayExpression expression)
|
void |
visitAssertStatement(org.codehaus.groovy.ast.stmt.AssertStatement statement)
|
void |
visitBinaryExpression(org.codehaus.groovy.ast.expr.BinaryExpression expression)
|
void |
visitBooleanExpression(org.codehaus.groovy.ast.expr.BooleanExpression expression)
|
void |
visitBreakStatement(org.codehaus.groovy.ast.stmt.BreakStatement statement)
|
void |
visitCaseStatement(org.codehaus.groovy.ast.stmt.CaseStatement statement)
|
void |
visitCaseStatement(org.codehaus.groovy.ast.stmt.CaseStatement statement,
int switchVariableIndex,
org.objectweb.asm.Label thisLabel,
org.objectweb.asm.Label nextLabel)
|
void |
visitClass(org.codehaus.groovy.ast.ClassNode classNode)
|
void |
visitClassExpression(org.codehaus.groovy.ast.expr.ClassExpression expression)
|
void |
visitClosureExpression(org.codehaus.groovy.ast.expr.ClosureExpression expression)
|
void |
visitConstantExpression(org.codehaus.groovy.ast.expr.ConstantExpression expression)
|
void |
visitConstructor(org.codehaus.groovy.ast.ConstructorNode node)
|
void |
visitConstructorCallExpression(org.codehaus.groovy.ast.expr.ConstructorCallExpression call)
|
void |
visitContinueStatement(org.codehaus.groovy.ast.stmt.ContinueStatement statement)
|
void |
visitDoWhileLoop(org.codehaus.groovy.ast.stmt.DoWhileStatement loop)
|
void |
visitExpressionStatement(org.codehaus.groovy.ast.stmt.ExpressionStatement statement)
|
void |
visitField(org.codehaus.groovy.ast.FieldNode fieldNode)
|
void |
visitFieldExpression(org.codehaus.groovy.ast.expr.FieldExpression expression)
|
void |
visitForLoop(org.codehaus.groovy.ast.stmt.ForStatement loop)
|
void |
visitGStringExpression(org.codehaus.groovy.ast.expr.GStringExpression expression)
|
void |
visitIfElse(org.codehaus.groovy.ast.stmt.IfStatement ifElse)
|
void |
visitListExpression(org.codehaus.groovy.ast.expr.ListExpression expression)
|
void |
visitMapEntryExpression(org.codehaus.groovy.ast.expr.MapEntryExpression expression)
|
void |
visitMapExpression(org.codehaus.groovy.ast.expr.MapExpression expression)
|
void |
visitMethod(org.codehaus.groovy.ast.MethodNode node)
|
void |
visitMethodCallExpression(org.codehaus.groovy.ast.expr.MethodCallExpression call)
|
void |
visitNotExpression(org.codehaus.groovy.ast.expr.NotExpression expression)
|
protected void |
visitOuterFieldExpression(org.codehaus.groovy.ast.expr.FieldExpression expression)
|
void |
visitPostfixExpression(org.codehaus.groovy.ast.expr.PostfixExpression expression)
|
void |
visitPrefixExpression(org.codehaus.groovy.ast.expr.PrefixExpression expression)
|
void |
visitProperty(org.codehaus.groovy.ast.PropertyNode statement)
Creates a getter, setter and field |
void |
visitPropertyExpression(org.codehaus.groovy.ast.expr.PropertyExpression expression)
|
void |
visitRangeExpression(org.codehaus.groovy.ast.expr.RangeExpression expression)
|
void |
visitRegexExpression(org.codehaus.groovy.ast.expr.RegexExpression expression)
|
void |
visitReturnStatement(org.codehaus.groovy.ast.stmt.ReturnStatement statement)
|
void |
visitStaticMethodCallExpression(org.codehaus.groovy.ast.expr.StaticMethodCallExpression call)
|
void |
visitSwitch(org.codehaus.groovy.ast.stmt.SwitchStatement statement)
|
void |
visitSynchronizedStatement(org.codehaus.groovy.ast.stmt.SynchronizedStatement statement)
|
void |
visitThrowStatement(org.codehaus.groovy.ast.stmt.ThrowStatement statement)
|
void |
visitTryCatchFinally(org.codehaus.groovy.ast.stmt.TryCatchStatement statement)
|
void |
visitTupleExpression(org.codehaus.groovy.ast.expr.TupleExpression expression)
|
void |
visitVariableExpression(org.codehaus.groovy.ast.expr.VariableExpression expression)
|
void |
visitWhileLoop(org.codehaus.groovy.ast.stmt.WhileStatement loop)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ClassGenerator
public ClassGenerator(org.codehaus.groovy.classgen.GeneratorContext context,
org.objectweb.asm.ClassVisitor classVisitor,
ClassLoader classLoader,
String sourceFile)
getInnerClasses
public LinkedList getInnerClasses()
getClassLoader
public ClassLoader getClassLoader()
visitClass
public void visitClass(org.codehaus.groovy.ast.ClassNode classNode)
- Specified by:
visitClass
in interface GroovyClassVisitor
visitConstructor
public void visitConstructor(org.codehaus.groovy.ast.ConstructorNode node)
- Specified by:
visitConstructor
in interface GroovyClassVisitor
visitMethod
public void visitMethod(org.codehaus.groovy.ast.MethodNode node)
- Specified by:
visitMethod
in interface GroovyClassVisitor
visitField
public void visitField(org.codehaus.groovy.ast.FieldNode fieldNode)
- Specified by:
visitField
in interface GroovyClassVisitor
visitProperty
public void visitProperty(org.codehaus.groovy.ast.PropertyNode statement)
- Creates a getter, setter and field
- Specified by:
visitProperty
in interface GroovyClassVisitor
visitForLoop
public void visitForLoop(org.codehaus.groovy.ast.stmt.ForStatement loop)
- Specified by:
visitForLoop
in interface GroovyCodeVisitor
- Overrides:
visitForLoop
in class CodeVisitorSupport
visitWhileLoop
public void visitWhileLoop(org.codehaus.groovy.ast.stmt.WhileStatement loop)
- Specified by:
visitWhileLoop
in interface GroovyCodeVisitor
- Overrides:
visitWhileLoop
in class CodeVisitorSupport
visitDoWhileLoop
public void visitDoWhileLoop(org.codehaus.groovy.ast.stmt.DoWhileStatement loop)
- Specified by:
visitDoWhileLoop
in interface GroovyCodeVisitor
- Overrides:
visitDoWhileLoop
in class CodeVisitorSupport
visitIfElse
public void visitIfElse(org.codehaus.groovy.ast.stmt.IfStatement ifElse)
- Specified by:
visitIfElse
in interface GroovyCodeVisitor
- Overrides:
visitIfElse
in class CodeVisitorSupport
visitAssertStatement
public void visitAssertStatement(org.codehaus.groovy.ast.stmt.AssertStatement statement)
- Specified by:
visitAssertStatement
in interface GroovyCodeVisitor
- Overrides:
visitAssertStatement
in class CodeVisitorSupport
visitTryCatchFinally
public void visitTryCatchFinally(org.codehaus.groovy.ast.stmt.TryCatchStatement statement)
- Specified by:
visitTryCatchFinally
in interface GroovyCodeVisitor
- Overrides:
visitTryCatchFinally
in class CodeVisitorSupport
visitSwitch
public void visitSwitch(org.codehaus.groovy.ast.stmt.SwitchStatement statement)
- Specified by:
visitSwitch
in interface GroovyCodeVisitor
- Overrides:
visitSwitch
in class CodeVisitorSupport
visitCaseStatement
public void visitCaseStatement(org.codehaus.groovy.ast.stmt.CaseStatement statement)
- Specified by:
visitCaseStatement
in interface GroovyCodeVisitor
- Overrides:
visitCaseStatement
in class CodeVisitorSupport
visitCaseStatement
public void visitCaseStatement(org.codehaus.groovy.ast.stmt.CaseStatement statement,
int switchVariableIndex,
org.objectweb.asm.Label thisLabel,
org.objectweb.asm.Label nextLabel)
visitBreakStatement
public void visitBreakStatement(org.codehaus.groovy.ast.stmt.BreakStatement statement)
- Specified by:
visitBreakStatement
in interface GroovyCodeVisitor
- Overrides:
visitBreakStatement
in class CodeVisitorSupport
visitContinueStatement
public void visitContinueStatement(org.codehaus.groovy.ast.stmt.ContinueStatement statement)
- Specified by:
visitContinueStatement
in interface GroovyCodeVisitor
- Overrides:
visitContinueStatement
in class CodeVisitorSupport
visitSynchronizedStatement
public void visitSynchronizedStatement(org.codehaus.groovy.ast.stmt.SynchronizedStatement statement)
- Specified by:
visitSynchronizedStatement
in interface GroovyCodeVisitor
- Overrides:
visitSynchronizedStatement
in class CodeVisitorSupport
visitThrowStatement
public void visitThrowStatement(org.codehaus.groovy.ast.stmt.ThrowStatement statement)
- Specified by:
visitThrowStatement
in interface GroovyCodeVisitor
- Overrides:
visitThrowStatement
in class CodeVisitorSupport
visitReturnStatement
public void visitReturnStatement(org.codehaus.groovy.ast.stmt.ReturnStatement statement)
- Specified by:
visitReturnStatement
in interface GroovyCodeVisitor
- Overrides:
visitReturnStatement
in class CodeVisitorSupport
visitExpressionStatement
public void visitExpressionStatement(org.codehaus.groovy.ast.stmt.ExpressionStatement statement)
- Specified by:
visitExpressionStatement
in interface GroovyCodeVisitor
- Overrides:
visitExpressionStatement
in class CodeVisitorSupport
visitBinaryExpression
public void visitBinaryExpression(org.codehaus.groovy.ast.expr.BinaryExpression expression)
- Specified by:
visitBinaryExpression
in interface GroovyCodeVisitor
- Overrides:
visitBinaryExpression
in class CodeVisitorSupport
visitPostfixExpression
public void visitPostfixExpression(org.codehaus.groovy.ast.expr.PostfixExpression expression)
- Specified by:
visitPostfixExpression
in interface GroovyCodeVisitor
- Overrides:
visitPostfixExpression
in class CodeVisitorSupport
visitPrefixExpression
public void visitPrefixExpression(org.codehaus.groovy.ast.expr.PrefixExpression expression)
- Specified by:
visitPrefixExpression
in interface GroovyCodeVisitor
- Overrides:
visitPrefixExpression
in class CodeVisitorSupport
visitClosureExpression
public void visitClosureExpression(org.codehaus.groovy.ast.expr.ClosureExpression expression)
- Specified by:
visitClosureExpression
in interface GroovyCodeVisitor
- Overrides:
visitClosureExpression
in class CodeVisitorSupport
visitRegexExpression
public void visitRegexExpression(org.codehaus.groovy.ast.expr.RegexExpression expression)
- Specified by:
visitRegexExpression
in interface GroovyCodeVisitor
- Overrides:
visitRegexExpression
in class CodeVisitorSupport
visitConstantExpression
public void visitConstantExpression(org.codehaus.groovy.ast.expr.ConstantExpression expression)
- Specified by:
visitConstantExpression
in interface GroovyCodeVisitor
- Overrides:
visitConstantExpression
in class CodeVisitorSupport
visitNotExpression
public void visitNotExpression(org.codehaus.groovy.ast.expr.NotExpression expression)
- Specified by:
visitNotExpression
in interface GroovyCodeVisitor
- Overrides:
visitNotExpression
in class CodeVisitorSupport
visitBooleanExpression
public void visitBooleanExpression(org.codehaus.groovy.ast.expr.BooleanExpression expression)
- Specified by:
visitBooleanExpression
in interface GroovyCodeVisitor
- Overrides:
visitBooleanExpression
in class CodeVisitorSupport
visitMethodCallExpression
public void visitMethodCallExpression(org.codehaus.groovy.ast.expr.MethodCallExpression call)
- Specified by:
visitMethodCallExpression
in interface GroovyCodeVisitor
- Overrides:
visitMethodCallExpression
in class CodeVisitorSupport
visitStaticMethodCallExpression
public void visitStaticMethodCallExpression(org.codehaus.groovy.ast.expr.StaticMethodCallExpression call)
- Specified by:
visitStaticMethodCallExpression
in interface GroovyCodeVisitor
- Overrides:
visitStaticMethodCallExpression
in class CodeVisitorSupport
visitConstructorCallExpression
public void visitConstructorCallExpression(org.codehaus.groovy.ast.expr.ConstructorCallExpression call)
- Specified by:
visitConstructorCallExpression
in interface GroovyCodeVisitor
- Overrides:
visitConstructorCallExpression
in class CodeVisitorSupport
visitPropertyExpression
public void visitPropertyExpression(org.codehaus.groovy.ast.expr.PropertyExpression expression)
- Specified by:
visitPropertyExpression
in interface GroovyCodeVisitor
- Overrides:
visitPropertyExpression
in class CodeVisitorSupport
visitFieldExpression
public void visitFieldExpression(org.codehaus.groovy.ast.expr.FieldExpression expression)
- Specified by:
visitFieldExpression
in interface GroovyCodeVisitor
- Overrides:
visitFieldExpression
in class CodeVisitorSupport
visitOuterFieldExpression
protected void visitOuterFieldExpression(org.codehaus.groovy.ast.expr.FieldExpression expression)
visitVariableExpression
public void visitVariableExpression(org.codehaus.groovy.ast.expr.VariableExpression expression)
- Specified by:
visitVariableExpression
in interface GroovyCodeVisitor
- Overrides:
visitVariableExpression
in class CodeVisitorSupport
firstStatementIsSuperMethodCall
protected boolean firstStatementIsSuperMethodCall(org.codehaus.groovy.ast.stmt.Statement code)
createSyntheticStaticFields
protected void createSyntheticStaticFields()
visitClassExpression
public void visitClassExpression(org.codehaus.groovy.ast.expr.ClassExpression expression)
- Specified by:
visitClassExpression
in interface GroovyCodeVisitor
- Overrides:
visitClassExpression
in class CodeVisitorSupport
visitRangeExpression
public void visitRangeExpression(org.codehaus.groovy.ast.expr.RangeExpression expression)
- Specified by:
visitRangeExpression
in interface GroovyCodeVisitor
- Overrides:
visitRangeExpression
in class CodeVisitorSupport
visitMapEntryExpression
public void visitMapEntryExpression(org.codehaus.groovy.ast.expr.MapEntryExpression expression)
- Specified by:
visitMapEntryExpression
in interface GroovyCodeVisitor
- Overrides:
visitMapEntryExpression
in class CodeVisitorSupport
visitMapExpression
public void visitMapExpression(org.codehaus.groovy.ast.expr.MapExpression expression)
- Specified by:
visitMapExpression
in interface GroovyCodeVisitor
- Overrides:
visitMapExpression
in class CodeVisitorSupport
visitTupleExpression
public void visitTupleExpression(org.codehaus.groovy.ast.expr.TupleExpression expression)
- Specified by:
visitTupleExpression
in interface GroovyCodeVisitor
- Overrides:
visitTupleExpression
in class CodeVisitorSupport
visitArrayExpression
public void visitArrayExpression(org.codehaus.groovy.ast.expr.ArrayExpression expression)
- Specified by:
visitArrayExpression
in interface GroovyCodeVisitor
- Overrides:
visitArrayExpression
in class CodeVisitorSupport
visitListExpression
public void visitListExpression(org.codehaus.groovy.ast.expr.ListExpression expression)
- Specified by:
visitListExpression
in interface GroovyCodeVisitor
- Overrides:
visitListExpression
in class CodeVisitorSupport
visitGStringExpression
public void visitGStringExpression(org.codehaus.groovy.ast.expr.GStringExpression expression)
- Specified by:
visitGStringExpression
in interface GroovyCodeVisitor
- Overrides:
visitGStringExpression
in class CodeVisitorSupport
addInnerClass
protected boolean addInnerClass(org.codehaus.groovy.ast.ClassNode innerClass)
createClosureClass
protected org.codehaus.groovy.ast.ClassNode createClosureClass(org.codehaus.groovy.ast.expr.ClosureExpression expression)
createGStringClass
protected org.codehaus.groovy.ast.ClassNode createGStringClass(org.codehaus.groovy.ast.expr.GStringExpression expression)
doCast
protected void doCast(String type)
evaluateLogicalOrExpression
protected void evaluateLogicalOrExpression(org.codehaus.groovy.ast.expr.BinaryExpression expression)
evaluateLogicalAndExpression
protected void evaluateLogicalAndExpression(org.codehaus.groovy.ast.expr.BinaryExpression expression)
evaluateBinaryExpression
protected void evaluateBinaryExpression(String method,
org.codehaus.groovy.ast.expr.BinaryExpression expression)
evaluateBinaryExpressionWithAsignment
protected void evaluateBinaryExpressionWithAsignment(String method,
org.codehaus.groovy.ast.expr.BinaryExpression expression)
evaluateBinaryExpression
protected void evaluateBinaryExpression(org.codehaus.groovy.classgen.MethodCaller compareMethod,
org.codehaus.groovy.ast.expr.BinaryExpression expression)
evaluateEqual
protected void evaluateEqual(org.codehaus.groovy.ast.expr.BinaryExpression expression)
evaluatePrefixMethod
protected void evaluatePrefixMethod(String method,
org.codehaus.groovy.ast.expr.Expression expression)
evaluatePostfixMethod
protected void evaluatePostfixMethod(String method,
org.codehaus.groovy.ast.expr.Expression expression)
isHolderVariable
protected boolean isHolderVariable(org.codehaus.groovy.ast.expr.Expression expression)
evaluateInstanceof
protected void evaluateInstanceof(org.codehaus.groovy.ast.expr.BinaryExpression expression)
argumentsUseStack
protected boolean argumentsUseStack(org.codehaus.groovy.ast.expr.Expression arguments)
- Returns:
- true if the given argument expression requires the stack, in
which case the arguments are evaluated first, stored in the
variable stack and then reloaded to make a method call
isNonStaticField
protected boolean isNonStaticField(org.codehaus.groovy.ast.expr.Expression expression)
- Returns:
- true if the given expression represents a non-static field
isThisExpression
protected boolean isThisExpression(org.codehaus.groovy.ast.expr.Expression expression)
assignmentExpression
protected org.codehaus.groovy.ast.expr.Expression assignmentExpression(org.codehaus.groovy.ast.expr.Expression expression)
comparisonExpression
protected boolean comparisonExpression(org.codehaus.groovy.ast.expr.Expression expression)
onLineNumber
protected void onLineNumber(org.codehaus.groovy.ast.ASTNode statement)
pushConstant
protected void pushConstant(int value)
getClosureSharedVariables
protected org.codehaus.groovy.ast.Parameter[] getClosureSharedVariables(org.codehaus.groovy.ast.expr.ClosureExpression expression)
- Returns:
- a list of parameters for each local variable which needs to be passed into
a closure
findMutableVariables
protected void findMutableVariables(org.codehaus.groovy.ast.MethodNode node)
getVariableType
protected String getVariableType(String name)
getLastStackId
protected int getLastStackId()
- Returns:
- the last ID used by the stack
resetVariableStack
protected void resetVariableStack(org.codehaus.groovy.ast.Parameter[] parameters)
isFieldOrVariable
protected boolean isFieldOrVariable(String name)
- Returns:
- true if the given name is a local variable or a field
defineVariable
protected org.codehaus.groovy.classgen.Variable defineVariable(String name,
String type)
- Defines the given variable in scope and assigns it to the stack
defineVariable
protected org.codehaus.groovy.classgen.Variable defineVariable(String name,
String type,
boolean define)
checkValidType
protected String checkValidType(String type,
org.codehaus.groovy.ast.ASTNode node,
String message)
createVariableName
protected String createVariableName(String type)
getExpressionType
protected Class getExpressionType(org.codehaus.groovy.ast.expr.Expression expression)
- Returns:
- if the type of the expression can be determined at compile time
then this method returns the type - otherwise java.lang.Object
is returned.
isPrimitiveFieldType
protected boolean isPrimitiveFieldType(Object value)
- Returns:
- true if the value is an Integer, a Float, a Long, a Double or a
String .
isInClosureConstructor
protected boolean isInClosureConstructor()
isStaticMethod
protected boolean isStaticMethod()
getClassInternalName
protected String getClassInternalName(String name)
- Returns:
- the ASM internal name of the type
getMethodDescriptor
protected String getMethodDescriptor(String returnTypeName,
org.codehaus.groovy.ast.Parameter[] paramTypeNames)
- Returns:
- the ASM method type descriptor
getTypeDescription
protected String getTypeDescription(String name)
- Returns:
- the ASM type description
loadClass
protected Class loadClass(String name)
- Returns:
- loads the given type name
Copyright © 2003 The Codehaus. All Rights Reserved.