org.codehaus.groovy.classgen
Class AsmClassGenerator

java.lang.Object
  extended by org.codehaus.groovy.ast.CodeVisitorSupport
      extended by org.codehaus.groovy.ast.ClassCodeVisitorSupport
          extended by org.codehaus.groovy.classgen.ClassGenerator
              extended by org.codehaus.groovy.classgen.AsmClassGenerator
All Implemented Interfaces:
GroovyClassVisitor, GroovyCodeVisitor, org.objectweb.asm.Opcodes

public class AsmClassGenerator
extends ClassGenerator

Generates Java class versions of Groovy classes using ASM.

Version:
$Revision$
Author:
James Strachan, Bing Ran, Jochen Theodorou, Alex Popescu, Alex Tkachman

Field Summary
static boolean ASM_DEBUG
           
static boolean CREATE_DEBUG_INFO
           
static boolean CREATE_LINE_NUMBER_INFO
           
static MethodCallerMultiAdapter setProperty
           
 
Fields inherited from class org.codehaus.groovy.classgen.ClassGenerator
innerClasses
 
Fields inherited from interface org.objectweb.asm.Opcodes
AALOAD, AASTORE, ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_DEPRECATED, ACC_ENUM, 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_VARARGS, 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, DOUBLE, DREM, DRETURN, DSTORE, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F_APPEND, F_CHOP, F_FULL, F_NEW, F_SAME, F_SAME1, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FLOAT, 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, INTEGER, INVOKEDYNAMIC, INVOKEDYNAMIC_OWNER, 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, LONG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, NULL, 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, TOP, UNINITIALIZED_THIS, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6, V1_7
 
Constructor Summary
AsmClassGenerator(SourceUnit source, GeneratorContext context, org.objectweb.asm.ClassVisitor classVisitor, String sourceFile)
           
 
Method Summary
 boolean addInnerClass(ClassNode innerClass)
           
static int argumentSize(Expression arguments)
           
static boolean containsSpreadExpression(Expression arguments)
           
protected  void createInterfaceSyntheticStaticFields()
           
protected  void createSyntheticStaticFields()
           
 void despreadList(List expressions, boolean wrap)
           
protected  boolean emptyArguments(Expression arguments)
           
protected  int getBytecodeVersion()
           
protected  CompileUnit getCompileUnit()
           
 SourceUnit getSourceUnit()
           
static boolean isThisExpression(Expression expression)
           
 void loadInstanceField(FieldExpression fldExp)
          RHS instance field. should move most of the code in the BytecodeHelper
 void loadStaticField(FieldExpression fldExp)
           
protected  void loadThisOrOwner()
          Loads either this object or if we're inside a closure then load the top level owner
 void loadWrapper(Expression argument)
           
 void onLineNumber(ASTNode statement, String message)
           
 void throwException(String s)
           
 void visitAnnotations(AnnotatedNode node)
          Note: ignore it.
 void visitArgumentlistExpression(ArgumentListExpression ale)
           
 void visitArrayExpression(ArrayExpression expression)
           
 void visitAssertStatement(AssertStatement statement)
           
 void visitAttributeExpression(AttributeExpression expression)
           
 void visitBinaryExpression(BinaryExpression expression)
           
 void visitBitwiseNegationExpression(BitwiseNegationExpression expression)
           
 void visitBlockStatement(BlockStatement block)
           
 void visitBooleanExpression(BooleanExpression expression)
          return a primitive boolean value of the BooleanExpression.
 void visitBreakStatement(BreakStatement statement)
           
 void visitBytecodeExpression(BytecodeExpression cle)
           
 void visitBytecodeSequence(BytecodeSequence bytecodeSequence)
           
 void visitCaseStatement(CaseStatement statement)
           
 void visitCastExpression(CastExpression castExpression)
           
 void visitCatchStatement(CatchStatement statement)
           
 void visitClass(ClassNode classNode)
          Visit a ClassNode.
 void visitClassExpression(ClassExpression expression)
          load class object on stack
 void visitClosureExpression(ClosureExpression expression)
           
 void visitClosureListExpression(ClosureListExpression expression)
           
 void visitConstantExpression(ConstantExpression expression)
          Generate byte code for constants
 void visitConstructor(ConstructorNode node)
          Visit a ConstructorNode.
 void visitConstructorCallExpression(ConstructorCallExpression call)
           
protected  void visitConstructorOrMethod(MethodNode node, boolean isConstructor)
           
 void visitContinueStatement(ContinueStatement statement)
           
 void visitDeclarationExpression(DeclarationExpression expression)
           
 void visitDoWhileLoop(DoWhileStatement loop)
           
 void visitExpressionStatement(ExpressionStatement statement)
           
 void visitField(FieldNode fieldNode)
          Visit a FieldNode.
 void visitFieldExpression(FieldExpression expression)
           
 void visitForLoop(ForStatement loop)
           
 void visitGenericType(GenericsType genericsType)
           
 void visitGStringExpression(GStringExpression expression)
           
 void visitIfElse(IfStatement ifElse)
           
 void visitListExpression(ListExpression expression)
           
 void visitMapEntryExpression(MapEntryExpression expression)
           
 void visitMapExpression(MapExpression expression)
           
 void visitMethod(MethodNode node)
          Visit a MethodNode.
 void visitMethodCallExpression(MethodCallExpression call)
           
 void visitMethodPointerExpression(MethodPointerExpression expression)
           
 void visitNotExpression(NotExpression expression)
           
 void visitPostfixExpression(PostfixExpression expression)
           
 void visitPrefixExpression(PrefixExpression expression)
           
 void visitProperty(PropertyNode statement)
          Visit a PropertyNode.
 void visitPropertyExpression(PropertyExpression expression)
           
 void visitRangeExpression(RangeExpression expression)
           
 void visitReturnStatement(ReturnStatement statement)
           
 void visitSpreadExpression(SpreadExpression expression)
           
 void visitSpreadMapExpression(SpreadMapExpression expression)
           
protected  void visitStatement(Statement statement)
           
 void visitStaticMethodCallExpression(StaticMethodCallExpression call)
           
 void visitSwitch(SwitchStatement statement)
           
 void visitSynchronizedStatement(SynchronizedStatement statement)
           
 void visitTernaryExpression(TernaryExpression expression)
           
 void visitThrowStatement(ThrowStatement statement)
           
 void visitTryCatchFinally(TryCatchStatement statement)
           
 void visitTupleExpression(TupleExpression expression)
           
 void visitUnaryMinusExpression(UnaryMinusExpression expression)
           
 void visitUnaryPlusExpression(UnaryPlusExpression expression)
           
 void visitVariableExpression(VariableExpression expression)
          Visits a bare (unqualified) variable expression.
 void visitWhileLoop(WhileStatement loop)
           
 
Methods inherited from class org.codehaus.groovy.classgen.ClassGenerator
getInnerClasses
 
Methods inherited from class org.codehaus.groovy.ast.ClassCodeVisitorSupport
addError, visitClassCodeContainer, visitImports, visitObjectInitializerStatements, visitPackage
 
Methods inherited from class org.codehaus.groovy.ast.CodeVisitorSupport
visitEmptyStatement, visitListOfExpressions, visitShortTernaryExpression
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

setProperty

public static final MethodCallerMultiAdapter setProperty

CREATE_DEBUG_INFO

public static final boolean CREATE_DEBUG_INFO
See Also:
Constant Field Values

CREATE_LINE_NUMBER_INFO

public static final boolean CREATE_LINE_NUMBER_INFO
See Also:
Constant Field Values

ASM_DEBUG

public static final boolean ASM_DEBUG
See Also:
Constant Field Values
Constructor Detail

AsmClassGenerator

public AsmClassGenerator(SourceUnit source,
                         GeneratorContext context,
                         org.objectweb.asm.ClassVisitor classVisitor,
                         String sourceFile)
Method Detail

getSourceUnit

public SourceUnit getSourceUnit()
Overrides:
getSourceUnit in class ClassGenerator

visitClass

public void visitClass(ClassNode classNode)
Description copied from interface: GroovyClassVisitor
Visit a ClassNode.

Specified by:
visitClass in interface GroovyClassVisitor
Overrides:
visitClass in class ClassCodeVisitorSupport

visitGenericType

public void visitGenericType(GenericsType genericsType)

visitConstructorOrMethod

protected void visitConstructorOrMethod(MethodNode node,
                                        boolean isConstructor)
Overrides:
visitConstructorOrMethod in class ClassCodeVisitorSupport

visitConstructor

public void visitConstructor(ConstructorNode node)
Description copied from interface: GroovyClassVisitor
Visit a ConstructorNode.

Specified by:
visitConstructor in interface GroovyClassVisitor
Overrides:
visitConstructor in class ClassCodeVisitorSupport

visitMethod

public void visitMethod(MethodNode node)
Description copied from interface: GroovyClassVisitor
Visit a MethodNode.

Specified by:
visitMethod in interface GroovyClassVisitor
Overrides:
visitMethod in class ClassCodeVisitorSupport

visitField

public void visitField(FieldNode fieldNode)
Description copied from interface: GroovyClassVisitor
Visit a FieldNode.

Specified by:
visitField in interface GroovyClassVisitor
Overrides:
visitField in class ClassCodeVisitorSupport

visitProperty

public void visitProperty(PropertyNode statement)
Description copied from interface: GroovyClassVisitor
Visit a PropertyNode.

Specified by:
visitProperty in interface GroovyClassVisitor
Overrides:
visitProperty in class ClassCodeVisitorSupport

visitStatement

protected void visitStatement(Statement statement)
Overrides:
visitStatement in class ClassCodeVisitorSupport

visitCatchStatement

public void visitCatchStatement(CatchStatement statement)
Specified by:
visitCatchStatement in interface GroovyCodeVisitor
Overrides:
visitCatchStatement in class ClassCodeVisitorSupport

visitBlockStatement

public void visitBlockStatement(BlockStatement block)
Specified by:
visitBlockStatement in interface GroovyCodeVisitor
Overrides:
visitBlockStatement in class ClassCodeVisitorSupport

visitForLoop

public void visitForLoop(ForStatement loop)
Specified by:
visitForLoop in interface GroovyCodeVisitor
Overrides:
visitForLoop in class ClassCodeVisitorSupport

visitWhileLoop

public void visitWhileLoop(WhileStatement loop)
Specified by:
visitWhileLoop in interface GroovyCodeVisitor
Overrides:
visitWhileLoop in class ClassCodeVisitorSupport

visitDoWhileLoop

public void visitDoWhileLoop(DoWhileStatement loop)
Specified by:
visitDoWhileLoop in interface GroovyCodeVisitor
Overrides:
visitDoWhileLoop in class ClassCodeVisitorSupport

visitIfElse

public void visitIfElse(IfStatement ifElse)
Specified by:
visitIfElse in interface GroovyCodeVisitor
Overrides:
visitIfElse in class ClassCodeVisitorSupport

visitAssertStatement

public void visitAssertStatement(AssertStatement statement)
Specified by:
visitAssertStatement in interface GroovyCodeVisitor
Overrides:
visitAssertStatement in class ClassCodeVisitorSupport

visitTryCatchFinally

public void visitTryCatchFinally(TryCatchStatement statement)
Specified by:
visitTryCatchFinally in interface GroovyCodeVisitor
Overrides:
visitTryCatchFinally in class ClassCodeVisitorSupport

visitSwitch

public void visitSwitch(SwitchStatement statement)
Specified by:
visitSwitch in interface GroovyCodeVisitor
Overrides:
visitSwitch in class ClassCodeVisitorSupport

visitCaseStatement

public void visitCaseStatement(CaseStatement statement)
Specified by:
visitCaseStatement in interface GroovyCodeVisitor
Overrides:
visitCaseStatement in class ClassCodeVisitorSupport

visitBreakStatement

public void visitBreakStatement(BreakStatement statement)
Specified by:
visitBreakStatement in interface GroovyCodeVisitor
Overrides:
visitBreakStatement in class ClassCodeVisitorSupport

visitContinueStatement

public void visitContinueStatement(ContinueStatement statement)
Specified by:
visitContinueStatement in interface GroovyCodeVisitor
Overrides:
visitContinueStatement in class ClassCodeVisitorSupport

visitSynchronizedStatement

public void visitSynchronizedStatement(SynchronizedStatement statement)
Specified by:
visitSynchronizedStatement in interface GroovyCodeVisitor
Overrides:
visitSynchronizedStatement in class ClassCodeVisitorSupport

visitThrowStatement

public void visitThrowStatement(ThrowStatement statement)
Specified by:
visitThrowStatement in interface GroovyCodeVisitor
Overrides:
visitThrowStatement in class ClassCodeVisitorSupport

visitReturnStatement

public void visitReturnStatement(ReturnStatement statement)
Specified by:
visitReturnStatement in interface GroovyCodeVisitor
Overrides:
visitReturnStatement in class ClassCodeVisitorSupport

visitExpressionStatement

public void visitExpressionStatement(ExpressionStatement statement)
Specified by:
visitExpressionStatement in interface GroovyCodeVisitor
Overrides:
visitExpressionStatement in class ClassCodeVisitorSupport

visitTernaryExpression

public void visitTernaryExpression(TernaryExpression expression)
Specified by:
visitTernaryExpression in interface GroovyCodeVisitor
Overrides:
visitTernaryExpression in class CodeVisitorSupport

visitDeclarationExpression

public void visitDeclarationExpression(DeclarationExpression expression)
Specified by:
visitDeclarationExpression in interface GroovyCodeVisitor
Overrides:
visitDeclarationExpression in class ClassCodeVisitorSupport

visitBinaryExpression

public void visitBinaryExpression(BinaryExpression expression)
Specified by:
visitBinaryExpression in interface GroovyCodeVisitor
Overrides:
visitBinaryExpression in class CodeVisitorSupport

visitPostfixExpression

public void visitPostfixExpression(PostfixExpression expression)
Specified by:
visitPostfixExpression in interface GroovyCodeVisitor
Overrides:
visitPostfixExpression in class CodeVisitorSupport

throwException

public void throwException(String s)

visitPrefixExpression

public void visitPrefixExpression(PrefixExpression expression)
Specified by:
visitPrefixExpression in interface GroovyCodeVisitor
Overrides:
visitPrefixExpression in class CodeVisitorSupport

visitClosureExpression

public void visitClosureExpression(ClosureExpression expression)
Specified by:
visitClosureExpression in interface GroovyCodeVisitor
Overrides:
visitClosureExpression in class CodeVisitorSupport

loadThisOrOwner

protected void loadThisOrOwner()
Loads either this object or if we're inside a closure then load the top level owner


visitConstantExpression

public void visitConstantExpression(ConstantExpression expression)
Generate byte code for constants

Specified by:
visitConstantExpression in interface GroovyCodeVisitor
Overrides:
visitConstantExpression in class CodeVisitorSupport
See Also:
Class field types

visitSpreadExpression

public void visitSpreadExpression(SpreadExpression expression)
Specified by:
visitSpreadExpression in interface GroovyCodeVisitor
Overrides:
visitSpreadExpression in class CodeVisitorSupport

visitSpreadMapExpression

public void visitSpreadMapExpression(SpreadMapExpression expression)
Specified by:
visitSpreadMapExpression in interface GroovyCodeVisitor
Overrides:
visitSpreadMapExpression in class CodeVisitorSupport

visitMethodPointerExpression

public void visitMethodPointerExpression(MethodPointerExpression expression)
Specified by:
visitMethodPointerExpression in interface GroovyCodeVisitor
Overrides:
visitMethodPointerExpression in class CodeVisitorSupport

visitUnaryMinusExpression

public void visitUnaryMinusExpression(UnaryMinusExpression expression)
Specified by:
visitUnaryMinusExpression in interface GroovyCodeVisitor
Overrides:
visitUnaryMinusExpression in class CodeVisitorSupport

visitUnaryPlusExpression

public void visitUnaryPlusExpression(UnaryPlusExpression expression)
Specified by:
visitUnaryPlusExpression in interface GroovyCodeVisitor
Overrides:
visitUnaryPlusExpression in class CodeVisitorSupport

visitBitwiseNegationExpression

public void visitBitwiseNegationExpression(BitwiseNegationExpression expression)
Specified by:
visitBitwiseNegationExpression in interface GroovyCodeVisitor
Overrides:
visitBitwiseNegationExpression in class CodeVisitorSupport

visitCastExpression

public void visitCastExpression(CastExpression castExpression)
Specified by:
visitCastExpression in interface GroovyCodeVisitor
Overrides:
visitCastExpression in class CodeVisitorSupport

visitNotExpression

public void visitNotExpression(NotExpression expression)
Specified by:
visitNotExpression in interface GroovyCodeVisitor
Overrides:
visitNotExpression in class CodeVisitorSupport

visitBooleanExpression

public void visitBooleanExpression(BooleanExpression expression)
return a primitive boolean value of the BooleanExpression.

Specified by:
visitBooleanExpression in interface GroovyCodeVisitor
Overrides:
visitBooleanExpression in class CodeVisitorSupport
Parameters:
expression -

visitMethodCallExpression

public void visitMethodCallExpression(MethodCallExpression call)
Specified by:
visitMethodCallExpression in interface GroovyCodeVisitor
Overrides:
visitMethodCallExpression in class CodeVisitorSupport

emptyArguments

protected boolean emptyArguments(Expression arguments)

containsSpreadExpression

public static boolean containsSpreadExpression(Expression arguments)

argumentSize

public static int argumentSize(Expression arguments)

visitStaticMethodCallExpression

public void visitStaticMethodCallExpression(StaticMethodCallExpression call)
Specified by:
visitStaticMethodCallExpression in interface GroovyCodeVisitor
Overrides:
visitStaticMethodCallExpression in class CodeVisitorSupport

visitConstructorCallExpression

public void visitConstructorCallExpression(ConstructorCallExpression call)
Specified by:
visitConstructorCallExpression in interface GroovyCodeVisitor
Overrides:
visitConstructorCallExpression in class CodeVisitorSupport

visitPropertyExpression

public void visitPropertyExpression(PropertyExpression expression)
Specified by:
visitPropertyExpression in interface GroovyCodeVisitor
Overrides:
visitPropertyExpression in class CodeVisitorSupport

visitAttributeExpression

public void visitAttributeExpression(AttributeExpression expression)
Specified by:
visitAttributeExpression in interface GroovyCodeVisitor
Overrides:
visitAttributeExpression in class CodeVisitorSupport

visitFieldExpression

public void visitFieldExpression(FieldExpression expression)
Specified by:
visitFieldExpression in interface GroovyCodeVisitor
Overrides:
visitFieldExpression in class CodeVisitorSupport

loadStaticField

public void loadStaticField(FieldExpression fldExp)
Parameters:
fldExp -

loadInstanceField

public void loadInstanceField(FieldExpression fldExp)
RHS instance field. should move most of the code in the BytecodeHelper

Parameters:
fldExp -

visitVariableExpression

public void visitVariableExpression(VariableExpression expression)
Visits a bare (unqualified) variable expression.

Specified by:
visitVariableExpression in interface GroovyCodeVisitor
Overrides:
visitVariableExpression in class CodeVisitorSupport

createInterfaceSyntheticStaticFields

protected void createInterfaceSyntheticStaticFields()

createSyntheticStaticFields

protected void createSyntheticStaticFields()

visitClassExpression

public void visitClassExpression(ClassExpression expression)
load class object on stack

Specified by:
visitClassExpression in interface GroovyCodeVisitor
Overrides:
visitClassExpression in class CodeVisitorSupport

visitRangeExpression

public void visitRangeExpression(RangeExpression expression)
Specified by:
visitRangeExpression in interface GroovyCodeVisitor
Overrides:
visitRangeExpression in class CodeVisitorSupport

visitMapEntryExpression

public void visitMapEntryExpression(MapEntryExpression expression)
Specified by:
visitMapEntryExpression in interface GroovyCodeVisitor
Overrides:
visitMapEntryExpression in class CodeVisitorSupport

visitMapExpression

public void visitMapExpression(MapExpression expression)
Specified by:
visitMapExpression in interface GroovyCodeVisitor
Overrides:
visitMapExpression in class CodeVisitorSupport

visitArgumentlistExpression

public void visitArgumentlistExpression(ArgumentListExpression ale)
Specified by:
visitArgumentlistExpression in interface GroovyCodeVisitor
Overrides:
visitArgumentlistExpression in class CodeVisitorSupport

despreadList

public void despreadList(List expressions,
                         boolean wrap)

visitTupleExpression

public void visitTupleExpression(TupleExpression expression)
Specified by:
visitTupleExpression in interface GroovyCodeVisitor
Overrides:
visitTupleExpression in class CodeVisitorSupport

loadWrapper

public void loadWrapper(Expression argument)

visitArrayExpression

public void visitArrayExpression(ArrayExpression expression)
Specified by:
visitArrayExpression in interface GroovyCodeVisitor
Overrides:
visitArrayExpression in class CodeVisitorSupport

visitClosureListExpression

public void visitClosureListExpression(ClosureListExpression expression)
Specified by:
visitClosureListExpression in interface GroovyCodeVisitor
Overrides:
visitClosureListExpression in class CodeVisitorSupport

visitBytecodeSequence

public void visitBytecodeSequence(BytecodeSequence bytecodeSequence)
Overrides:
visitBytecodeSequence in class ClassGenerator

visitListExpression

public void visitListExpression(ListExpression expression)
Specified by:
visitListExpression in interface GroovyCodeVisitor
Overrides:
visitListExpression in class CodeVisitorSupport

visitGStringExpression

public void visitGStringExpression(GStringExpression expression)
Specified by:
visitGStringExpression in interface GroovyCodeVisitor
Overrides:
visitGStringExpression in class CodeVisitorSupport

visitAnnotations

public void visitAnnotations(AnnotatedNode node)
Note: ignore it. Annotation generation needs the current visitor.

Overrides:
visitAnnotations in class ClassCodeVisitorSupport

visitBytecodeExpression

public void visitBytecodeExpression(BytecodeExpression cle)
Specified by:
visitBytecodeExpression in interface GroovyCodeVisitor
Overrides:
visitBytecodeExpression in class CodeVisitorSupport

isThisExpression

public static boolean isThisExpression(Expression expression)

onLineNumber

public void onLineNumber(ASTNode statement,
                         String message)

getCompileUnit

protected CompileUnit getCompileUnit()

getBytecodeVersion

protected int getBytecodeVersion()

addInnerClass

public boolean addInnerClass(ClassNode innerClass)

Copyright © 2003-2012 The Codehaus. All rights reserved.