|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Objectorg.codehaus.groovy.ast.CodeVisitorSupport
org.codehaus.groovy.classgen.ClassGenerator
org.codehaus.groovy.classgen.AsmClassGenerator
Generates Java class versions of Groovy classes using ASM.
| Field Summary | |
static boolean |
ASM_DEBUG
|
static boolean |
CREATE_DEBUG_INFO
|
static boolean |
CREATE_LINE_NUMBER_INFO
|
| Fields inherited from class org.codehaus.groovy.classgen.ClassGenerator |
asmJDKVersion, classLoader, 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, 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, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6 |
| Constructor Summary | |
AsmClassGenerator(GeneratorContext context,
org.objectweb.asm.ClassVisitor classVisitor,
ClassLoader classLoader,
String sourceFile)
|
|
| Methods inherited from class org.codehaus.groovy.classgen.ClassGenerator |
getClassLoader, getInnerClasses |
| Methods inherited from class org.codehaus.groovy.ast.CodeVisitorSupport |
visitBlockStatement, visitCatchStatement, visitDeclarationExpression, visitListOfExpressions |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
public static final boolean CREATE_DEBUG_INFO
public static final boolean CREATE_LINE_NUMBER_INFO
public static final boolean ASM_DEBUG
| Constructor Detail |
public AsmClassGenerator(GeneratorContext context,
org.objectweb.asm.ClassVisitor classVisitor,
ClassLoader classLoader,
String sourceFile)
| Method Detail |
public void visitClass(ClassNode classNode)
public void visitConstructor(ConstructorNode node)
public void visitMethod(MethodNode node)
public void visitField(FieldNode fieldNode)
public void visitProperty(PropertyNode statement)
public void visitForLoop(ForStatement loop)
visitForLoop in interface GroovyCodeVisitorvisitForLoop in class CodeVisitorSupportpublic void visitWhileLoop(WhileStatement loop)
visitWhileLoop in interface GroovyCodeVisitorvisitWhileLoop in class CodeVisitorSupportpublic void visitDoWhileLoop(DoWhileStatement loop)
visitDoWhileLoop in interface GroovyCodeVisitorvisitDoWhileLoop in class CodeVisitorSupportpublic void visitIfElse(IfStatement ifElse)
visitIfElse in interface GroovyCodeVisitorvisitIfElse in class CodeVisitorSupportpublic void visitTernaryExpression(TernaryExpression expression)
visitTernaryExpression in interface GroovyCodeVisitorvisitTernaryExpression in class CodeVisitorSupportpublic void visitAssertStatement(AssertStatement statement)
visitAssertStatement in interface GroovyCodeVisitorvisitAssertStatement in class CodeVisitorSupportpublic void visitTryCatchFinally(TryCatchStatement statement)
visitTryCatchFinally in interface GroovyCodeVisitorvisitTryCatchFinally in class CodeVisitorSupportpublic void visitSwitch(SwitchStatement statement)
visitSwitch in interface GroovyCodeVisitorvisitSwitch in class CodeVisitorSupportpublic void visitCaseStatement(CaseStatement statement)
visitCaseStatement in interface GroovyCodeVisitorvisitCaseStatement in class CodeVisitorSupport
public void visitCaseStatement(CaseStatement statement,
int switchVariableIndex,
org.objectweb.asm.Label thisLabel,
org.objectweb.asm.Label nextLabel)
public void visitBreakStatement(BreakStatement statement)
visitBreakStatement in interface GroovyCodeVisitorvisitBreakStatement in class CodeVisitorSupportpublic void visitContinueStatement(ContinueStatement statement)
visitContinueStatement in interface GroovyCodeVisitorvisitContinueStatement in class CodeVisitorSupportpublic void visitSynchronizedStatement(SynchronizedStatement statement)
visitSynchronizedStatement in interface GroovyCodeVisitorvisitSynchronizedStatement in class CodeVisitorSupportpublic void visitThrowStatement(ThrowStatement statement)
visitThrowStatement in interface GroovyCodeVisitorvisitThrowStatement in class CodeVisitorSupportpublic void visitReturnStatement(ReturnStatement statement)
visitReturnStatement in interface GroovyCodeVisitorvisitReturnStatement in class CodeVisitorSupport
protected void doConvertAndCast(ClassNode type,
Expression expression,
boolean ignoreAutoboxing,
boolean forceCast)
protected void evaluateExpression(Expression expression)
expression - public void visitExpressionStatement(ExpressionStatement statement)
visitExpressionStatement in interface GroovyCodeVisitorvisitExpressionStatement in class CodeVisitorSupportpublic void visitBinaryExpression(BinaryExpression expression)
visitBinaryExpression in interface GroovyCodeVisitorvisitBinaryExpression in class CodeVisitorSupportpublic void visitPostfixExpression(PostfixExpression expression)
visitPostfixExpression in interface GroovyCodeVisitorvisitPostfixExpression in class CodeVisitorSupportpublic 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 visitRegexExpression(RegexExpression expression)
visitRegexExpression in interface GroovyCodeVisitorvisitRegexExpression in class CodeVisitorSupportpublic 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 visitNegationExpression(NegationExpression expression)
visitNegationExpression in interface GroovyCodeVisitorvisitNegationExpression in class CodeVisitorSupportpublic void visitBitwiseNegExpression(BitwiseNegExpression expression)
visitBitwiseNegExpression in interface GroovyCodeVisitorvisitBitwiseNegExpression in class CodeVisitorSupportpublic void visitCastExpression(CastExpression expression)
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 CodeVisitorSupport
protected void loadArguments(Parameter[] parameters,
Expression expression)
protected MethodNode findSuperMethod(MethodCallExpression call)
protected ConstructorNode findSuperConstructor(MethodCallExpression call)
protected boolean emptyArguments(Expression arguments)
public void visitStaticMethodCallExpression(StaticMethodCallExpression call)
visitStaticMethodCallExpression in interface GroovyCodeVisitorvisitStaticMethodCallExpression in class CodeVisitorSupportpublic void visitConstructorCallExpression(ConstructorCallExpression call)
visitConstructorCallExpression in interface GroovyCodeVisitorvisitConstructorCallExpression in class CodeVisitorSupport
protected void pushClassTypeArgument(ClassNode ownerType,
ClassNode type)
public void visitPropertyExpression(PropertyExpression expression)
visitPropertyExpression in interface GroovyCodeVisitorvisitPropertyExpression in class CodeVisitorSupportpublic void visitAttributeExpression(AttributeExpression expression)
visitAttributeExpression in interface GroovyCodeVisitorvisitAttributeExpression in class CodeVisitorSupportprotected boolean isGroovyObject(Expression objectExpression)
public void visitFieldExpression(FieldExpression expression)
visitFieldExpression in interface GroovyCodeVisitorvisitFieldExpression in class CodeVisitorSupportpublic void loadStaticField(FieldExpression fldExp)
fldExp - public void loadInstanceField(FieldExpression fldExp)
fldExp - public void storeThisInstanceField(FieldExpression expression)
public void storeStaticField(FieldExpression expression)
protected void visitOuterFieldExpression(FieldExpression expression,
ClassNode outerClassNode,
int steps,
boolean first)
public void visitVariableExpression(VariableExpression expression)
visitVariableExpression in interface GroovyCodeVisitorvisitVariableExpression in class CodeVisitorSupportprotected void processStackVariable(Variable variable)
protected void processPropertyVariable(Variable variable)
protected void processFieldAccess(String name,
FieldNode field,
int steps)
protected boolean isInScriptBody()
protected boolean isPopRequired(Expression expression)
protected boolean firstStatementIsSuperInit(Statement code)
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 visitTupleExpression(TupleExpression expression)
visitTupleExpression in interface GroovyCodeVisitorvisitTupleExpression in class CodeVisitorSupportpublic void visitArrayExpression(ArrayExpression expression)
visitArrayExpression in interface GroovyCodeVisitorvisitArrayExpression in class CodeVisitorSupportpublic 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)
protected boolean addInnerClass(ClassNode innerClass)
protected ClassNode createClosureClass(ClosureExpression expression)
protected ClassNode getOutermostClass()
protected ClassNode createGStringClass(GStringExpression expression)
protected void doConvertAndCast(ClassNode type)
protected void evaluateLogicalOrExpression(BinaryExpression expression)
protected void evaluateLogicalAndExpression(BinaryExpression expression)
protected void evaluateBinaryExpression(String method,
BinaryExpression expression)
protected void evaluateCompareTo(BinaryExpression expression)
protected void evaluateBinaryExpressionWithAsignment(String method,
BinaryExpression expression)
protected void evalBinaryExp_LateBinding(MethodCaller compareMethod,
BinaryExpression expression)
protected void evaluateEqual(BinaryExpression expression)
protected ClassNode getLHSType(Expression leftExpression)
protected boolean isValidTypeForCast(ClassNode type)
protected void visitAndAutoboxBoolean(Expression expression)
protected void evaluatePrefixMethod(String method,
Expression expression)
protected void evaluatePostfixMethod(String method,
Expression expression)
protected boolean isHolderVariable(Expression expression)
protected void evaluateInstanceof(BinaryExpression expression)
protected boolean argumentsUseStack(Expression arguments)
protected boolean isNonStaticField(Expression expression)
protected boolean isThisExpression(Expression expression)
protected Expression createReturnLHSExpression(Expression expression)
protected Expression createReusableExpression(Expression expression)
protected boolean isComparisonExpression(Expression expression)
protected void onLineNumber(ASTNode statement,
String message)
protected VariableScope getVariableScope()
protected Parameter[] getClosureSharedVariables(ClosureExpression expression)
protected boolean isNotFieldOfOutermostClass(String var)
protected void findMutableVariables()
protected ClassNode getVariableType(String name)
protected void resetVariableStack(Parameter[] parameters)
protected void popScope()
protected void pushBlockScope()
protected void pushBlockScope(boolean canContinue,
boolean canBreak)
canContinue - true if the start of the scope can take continue labelcanBreak - true if the end of the scope can take break label
protected Variable defineVariable(String name,
ClassNode type)
protected boolean isFieldOrVariable(String name)
protected String createVariableName(String type)
protected ClassNode getExpressionType(Expression expression)
protected boolean isInClosureConstructor()
protected boolean isStaticMethod()
protected CompileUnit getCompileUnit()
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||