public class AsmClassGenerator extends ClassGenerator
| Modifier and Type | Field and Description |
|---|---|
static boolean |
ASM_DEBUG |
static boolean |
CREATE_DEBUG_INFO |
static boolean |
CREATE_LINE_NUMBER_INFO |
static MethodCallerMultiAdapter |
getField |
static MethodCallerMultiAdapter |
getGroovyObjectField |
static MethodCallerMultiAdapter |
setField |
static MethodCallerMultiAdapter |
setGroovyObjectField |
static MethodCallerMultiAdapter |
setProperty |
innerClassesAALOAD, AASTORE, ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_DEPRECATED, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_MANDATED, ACC_MODULE, ACC_NATIVE, ACC_OPEN, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STATIC_PHASE, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_TRANSITIVE, ACC_VARARGS, ACC_VOLATILE, ACONST_NULL, ALOAD, ANEWARRAY, ARETURN, ARRAYLENGTH, ASM4, ASM5, ASM6, ASM7, 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, H_GETFIELD, H_GETSTATIC, H_INVOKEINTERFACE, H_INVOKESPECIAL, H_INVOKESTATIC, H_INVOKEVIRTUAL, H_NEWINVOKESPECIAL, H_PUTFIELD, H_PUTSTATIC, 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, 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, SOURCE_DEPRECATED, SOURCE_MASK, SWAP, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH, TOP, UNINITIALIZED_THIS, V_PREVIEW, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6, V1_7, V1_8, V10, V11, V12, V13, V14, V9| Constructor and Description |
|---|
AsmClassGenerator(SourceUnit source,
GeneratorContext context,
org.objectweb.asm.ClassVisitor classVisitor,
java.lang.String sourceFile) |
getInnerClassesaddError, visitClassCodeContainer, visitImports, visitObjectInitializerStatements, visitPackagevisitEmptyStatement, visitListOfExpressions, visitShortTernaryExpressionpublic static final MethodCallerMultiAdapter setField
public static final MethodCallerMultiAdapter getField
public static final MethodCallerMultiAdapter setGroovyObjectField
public static final MethodCallerMultiAdapter getGroovyObjectField
public static final MethodCallerMultiAdapter setProperty
public static final boolean CREATE_DEBUG_INFO
public static final boolean CREATE_LINE_NUMBER_INFO
public static final boolean ASM_DEBUG
public AsmClassGenerator(SourceUnit source, GeneratorContext context, org.objectweb.asm.ClassVisitor classVisitor, java.lang.String sourceFile)
public SourceUnit getSourceUnit()
getSourceUnit in class ClassGeneratorpublic WriterController getController()
public void visitClass(ClassNode classNode)
GroovyClassVisitorvisitClass in interface GroovyClassVisitorvisitClass in class ClassCodeVisitorSupportpublic void visitGenericType(GenericsType genericsType)
protected void visitConstructorOrMethod(MethodNode node, boolean isConstructor)
visitConstructorOrMethod in class ClassCodeVisitorSupportpublic void visitConstructor(ConstructorNode node)
GroovyClassVisitorvisitConstructor in interface GroovyClassVisitorvisitConstructor in class ClassCodeVisitorSupportpublic void visitMethod(MethodNode node)
GroovyClassVisitorvisitMethod in interface GroovyClassVisitorvisitMethod in class ClassCodeVisitorSupportpublic void visitField(FieldNode fieldNode)
GroovyClassVisitorvisitField in interface GroovyClassVisitorvisitField in class ClassCodeVisitorSupportpublic void visitProperty(PropertyNode statement)
GroovyClassVisitorvisitProperty in interface GroovyClassVisitorvisitProperty in class ClassCodeVisitorSupportprotected void visitStatement(Statement statement)
visitStatement in class ClassCodeVisitorSupportpublic void visitCatchStatement(CatchStatement statement)
visitCatchStatement in interface GroovyCodeVisitorvisitCatchStatement in class ClassCodeVisitorSupportpublic void visitBlockStatement(BlockStatement block)
visitBlockStatement in interface GroovyCodeVisitorvisitBlockStatement in class ClassCodeVisitorSupportpublic void visitForLoop(ForStatement loop)
visitForLoop in interface GroovyCodeVisitorvisitForLoop in class ClassCodeVisitorSupportpublic void visitWhileLoop(WhileStatement loop)
visitWhileLoop in interface GroovyCodeVisitorvisitWhileLoop in class ClassCodeVisitorSupportpublic void visitDoWhileLoop(DoWhileStatement loop)
visitDoWhileLoop in interface GroovyCodeVisitorvisitDoWhileLoop in class ClassCodeVisitorSupportpublic void visitIfElse(IfStatement ifElse)
visitIfElse in interface GroovyCodeVisitorvisitIfElse in class ClassCodeVisitorSupportpublic void visitAssertStatement(AssertStatement statement)
visitAssertStatement in interface GroovyCodeVisitorvisitAssertStatement in class ClassCodeVisitorSupportpublic void visitTryCatchFinally(TryCatchStatement statement)
visitTryCatchFinally in interface GroovyCodeVisitorvisitTryCatchFinally in class ClassCodeVisitorSupportpublic void visitSwitch(SwitchStatement statement)
visitSwitch in interface GroovyCodeVisitorvisitSwitch in class ClassCodeVisitorSupportpublic void visitCaseStatement(CaseStatement statement)
visitCaseStatement in interface GroovyCodeVisitorvisitCaseStatement in class ClassCodeVisitorSupportpublic void visitBreakStatement(BreakStatement statement)
visitBreakStatement in interface GroovyCodeVisitorvisitBreakStatement in class ClassCodeVisitorSupportpublic void visitContinueStatement(ContinueStatement statement)
visitContinueStatement in interface GroovyCodeVisitorvisitContinueStatement in class ClassCodeVisitorSupportpublic void visitSynchronizedStatement(SynchronizedStatement statement)
visitSynchronizedStatement in interface GroovyCodeVisitorvisitSynchronizedStatement in class ClassCodeVisitorSupportpublic void visitThrowStatement(ThrowStatement statement)
visitThrowStatement in interface GroovyCodeVisitorvisitThrowStatement in class ClassCodeVisitorSupportpublic void visitReturnStatement(ReturnStatement statement)
visitReturnStatement in interface GroovyCodeVisitorvisitReturnStatement in class ClassCodeVisitorSupportpublic void visitExpressionStatement(ExpressionStatement statement)
visitExpressionStatement in interface GroovyCodeVisitorvisitExpressionStatement in class ClassCodeVisitorSupportpublic void visitTernaryExpression(TernaryExpression expression)
visitTernaryExpression in interface GroovyCodeVisitorvisitTernaryExpression in class CodeVisitorSupportpublic void visitDeclarationExpression(DeclarationExpression expression)
visitDeclarationExpression in interface GroovyCodeVisitorvisitDeclarationExpression in class ClassCodeVisitorSupportpublic void visitBinaryExpression(BinaryExpression expression)
visitBinaryExpression in interface GroovyCodeVisitorvisitBinaryExpression in class CodeVisitorSupportpublic void visitPostfixExpression(PostfixExpression expression)
visitPostfixExpression in interface GroovyCodeVisitorvisitPostfixExpression in class CodeVisitorSupportpublic void throwException(java.lang.String s)
public void visitPrefixExpression(PrefixExpression expression)
visitPrefixExpression in interface GroovyCodeVisitorvisitPrefixExpression in class CodeVisitorSupportpublic void visitClosureExpression(ClosureExpression expression)
visitClosureExpression in interface GroovyCodeVisitorvisitClosureExpression in class CodeVisitorSupportprotected void loadThisOrOwner()
public void visitConstantExpression(ConstantExpression expression)
visitConstantExpression in interface GroovyCodeVisitorvisitConstantExpression in class CodeVisitorSupportpublic void visitSpreadExpression(SpreadExpression expression)
visitSpreadExpression in interface GroovyCodeVisitorvisitSpreadExpression in class CodeVisitorSupportpublic void visitSpreadMapExpression(SpreadMapExpression expression)
visitSpreadMapExpression in interface GroovyCodeVisitorvisitSpreadMapExpression in class CodeVisitorSupportpublic void visitMethodPointerExpression(MethodPointerExpression expression)
visitMethodPointerExpression in interface GroovyCodeVisitorvisitMethodPointerExpression in class CodeVisitorSupportpublic void visitUnaryMinusExpression(UnaryMinusExpression expression)
visitUnaryMinusExpression in interface GroovyCodeVisitorvisitUnaryMinusExpression in class CodeVisitorSupportpublic void visitUnaryPlusExpression(UnaryPlusExpression expression)
visitUnaryPlusExpression in interface GroovyCodeVisitorvisitUnaryPlusExpression in class CodeVisitorSupportpublic void visitBitwiseNegationExpression(BitwiseNegationExpression expression)
visitBitwiseNegationExpression in interface GroovyCodeVisitorvisitBitwiseNegationExpression in class CodeVisitorSupportpublic void visitCastExpression(CastExpression castExpression)
visitCastExpression in interface GroovyCodeVisitorvisitCastExpression in class CodeVisitorSupportpublic void visitNotExpression(NotExpression expression)
visitNotExpression in interface GroovyCodeVisitorvisitNotExpression in class CodeVisitorSupportpublic void visitBooleanExpression(BooleanExpression expression)
visitBooleanExpression in interface GroovyCodeVisitorvisitBooleanExpression in class CodeVisitorSupportexpression - public void visitMethodCallExpression(MethodCallExpression call)
visitMethodCallExpression in interface GroovyCodeVisitorvisitMethodCallExpression in class CodeVisitorSupportprotected boolean emptyArguments(Expression arguments)
public static boolean containsSpreadExpression(Expression arguments)
public static int argumentSize(Expression arguments)
public void visitStaticMethodCallExpression(StaticMethodCallExpression call)
visitStaticMethodCallExpression in interface GroovyCodeVisitorvisitStaticMethodCallExpression in class CodeVisitorSupportpublic static boolean isNullConstant(Expression expr)
public void visitConstructorCallExpression(ConstructorCallExpression call)
visitConstructorCallExpression in interface GroovyCodeVisitorvisitConstructorCallExpression in class CodeVisitorSupportpublic static boolean samePackages(java.lang.String pkg1,
java.lang.String pkg2)
public static FieldNode getDeclaredFieldOfCurrentClassOrAccessibleFieldOfSuper(ClassNode accessingNode, ClassNode current, java.lang.String name, boolean skipCurrent)
public void visitPropertyExpression(PropertyExpression expression)
visitPropertyExpression in interface GroovyCodeVisitorvisitPropertyExpression in class CodeVisitorSupportpublic void visitAttributeExpression(AttributeExpression expression)
visitAttributeExpression in interface GroovyCodeVisitorvisitAttributeExpression in class CodeVisitorSupportpublic void visitFieldExpression(FieldExpression expression)
visitFieldExpression in interface GroovyCodeVisitorvisitFieldExpression in class CodeVisitorSupportpublic void loadStaticField(FieldExpression fldExp)
fldExp - public void loadInstanceField(FieldExpression fldExp)
fldExp - public void visitVariableExpression(VariableExpression expression)
visitVariableExpression in interface GroovyCodeVisitorvisitVariableExpression in class CodeVisitorSupportprotected void createInterfaceSyntheticStaticFields()
protected void createSyntheticStaticFields()
public void visitClassExpression(ClassExpression expression)
visitClassExpression in interface GroovyCodeVisitorvisitClassExpression in class CodeVisitorSupportpublic void visitRangeExpression(RangeExpression expression)
visitRangeExpression in interface GroovyCodeVisitorvisitRangeExpression in class CodeVisitorSupportpublic void visitMapEntryExpression(MapEntryExpression expression)
visitMapEntryExpression in interface GroovyCodeVisitorvisitMapEntryExpression in class CodeVisitorSupportpublic void visitMapExpression(MapExpression expression)
visitMapExpression in interface GroovyCodeVisitorvisitMapExpression in class CodeVisitorSupportpublic void visitArgumentlistExpression(ArgumentListExpression ale)
visitArgumentlistExpression in interface GroovyCodeVisitorvisitArgumentlistExpression in class CodeVisitorSupportpublic void despreadList(java.util.List expressions,
boolean wrap)
public void visitTupleExpression(TupleExpression expression)
visitTupleExpression in interface GroovyCodeVisitorvisitTupleExpression in class CodeVisitorSupportpublic void loadWrapper(Expression argument)
public void visitArrayExpression(ArrayExpression expression)
visitArrayExpression in interface GroovyCodeVisitorvisitArrayExpression in class CodeVisitorSupportpublic void visitClosureListExpression(ClosureListExpression expression)
visitClosureListExpression in interface GroovyCodeVisitorvisitClosureListExpression in class CodeVisitorSupportpublic void visitBytecodeSequence(BytecodeSequence bytecodeSequence)
visitBytecodeSequence in class ClassGeneratorpublic void visitListExpression(ListExpression expression)
visitListExpression in interface GroovyCodeVisitorvisitListExpression in class CodeVisitorSupportpublic void visitGStringExpression(GStringExpression expression)
visitGStringExpression in interface GroovyCodeVisitorvisitGStringExpression in class CodeVisitorSupportpublic void visitAnnotations(AnnotatedNode node)
visitAnnotations in class ClassCodeVisitorSupportpublic void visitBytecodeExpression(BytecodeExpression cle)
visitBytecodeExpression in interface GroovyCodeVisitorvisitBytecodeExpression in class CodeVisitorSupportpublic static boolean isThisExpression(Expression expression)
public void onLineNumber(ASTNode statement, java.lang.String message)
protected CompileUnit getCompileUnit()
public boolean addInnerClass(ClassNode innerClass)