public class javassist.compiler.JvstCodeGen extends javassist.compiler.MemberCodeGen
{
java.lang.String paramArrayName;
java.lang.String paramListName;
javassist.CtClass[] paramTypeList;
private int paramVarBase;
private boolean useParam;
private java.lang.String param0Type;
public static final java.lang.String sigName;
public static final java.lang.String dollarTypeName;
public static final java.lang.String clazzName;
private javassist.CtClass dollarType;
javassist.CtClass returnType;
java.lang.String returnCastName;
private java.lang.String returnVarName;
public static final java.lang.String wrapperCastName;
java.lang.String proceedName;
public static final java.lang.String cflowName;
javassist.compiler.ProceedHandler procHandler;
public void <init>(javassist.bytecode.Bytecode, javassist.CtClass, javassist.ClassPool)
{
javassist.compiler.JvstCodeGen v;
javassist.bytecode.Bytecode v;
javassist.CtClass v;
javassist.compiler.JvstTypeChecker v;
javassist.ClassPool v;
v := @this: javassist.compiler.JvstCodeGen;
v := @parameter: javassist.bytecode.Bytecode;
v := @parameter: javassist.CtClass;
v := @parameter: javassist.ClassPool;
specialinvoke v.<javassist.compiler.MemberCodeGen: void <init>(javassist.bytecode.Bytecode,javassist.CtClass,javassist.ClassPool)>(v, v, v);
v.<javassist.compiler.JvstCodeGen: java.lang.String paramArrayName> = null;
v.<javassist.compiler.JvstCodeGen: java.lang.String paramListName> = null;
v.<javassist.compiler.JvstCodeGen: javassist.CtClass[] paramTypeList> = null;
v.<javassist.compiler.JvstCodeGen: int paramVarBase> = 0;
v.<javassist.compiler.JvstCodeGen: boolean useParam0> = 0;
v.<javassist.compiler.JvstCodeGen: java.lang.String param0Type> = null;
v.<javassist.compiler.JvstCodeGen: javassist.CtClass dollarType> = null;
v.<javassist.compiler.JvstCodeGen: javassist.CtClass returnType> = null;
v.<javassist.compiler.JvstCodeGen: java.lang.String returnCastName> = null;
v.<javassist.compiler.JvstCodeGen: java.lang.String returnVarName> = null;
v.<javassist.compiler.JvstCodeGen: java.lang.String proceedName> = null;
v.<javassist.compiler.JvstCodeGen: javassist.compiler.ProceedHandler procHandler> = null;
v = new javassist.compiler.JvstTypeChecker;
specialinvoke v.<javassist.compiler.JvstTypeChecker: void <init>(javassist.CtClass,javassist.ClassPool,javassist.compiler.JvstCodeGen)>(v, v, v);
virtualinvoke v.<javassist.compiler.JvstCodeGen: void setTypeChecker(javassist.compiler.TypeChecker)>(v);
return;
}
private int indexOfParam1()
{
javassist.compiler.JvstCodeGen v;
int v, v;
boolean v, v;
v := @this: javassist.compiler.JvstCodeGen;
v = v.<javassist.compiler.JvstCodeGen: int paramVarBase>;
v = v.<javassist.compiler.JvstCodeGen: boolean useParam0>;
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v + v;
return v;
}
public void setProceedHandler(javassist.compiler.ProceedHandler, java.lang.String)
{
java.lang.String v;
javassist.compiler.JvstCodeGen v;
javassist.compiler.ProceedHandler v;
v := @this: javassist.compiler.JvstCodeGen;
v := @parameter: javassist.compiler.ProceedHandler;
v := @parameter: java.lang.String;
v.<javassist.compiler.JvstCodeGen: java.lang.String proceedName> = v;
v.<javassist.compiler.JvstCodeGen: javassist.compiler.ProceedHandler procHandler> = v;
return;
}
public void addNullIfVoid()
{
int v;
javassist.compiler.JvstCodeGen v;
javassist.bytecode.Bytecode v;
v := @this: javassist.compiler.JvstCodeGen;
v = v.<javassist.compiler.JvstCodeGen: int exprType>;
if v != 344 goto label;
v = v.<javassist.compiler.JvstCodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(1);
v.<javassist.compiler.JvstCodeGen: int exprType> = 307;
v.<javassist.compiler.JvstCodeGen: int arrayDim> = 0;
v.<javassist.compiler.JvstCodeGen: java.lang.String className> = "java/lang/Object";
label:
return;
}
public void atMember(javassist.compiler.ast.Member) throws javassist.compiler.CompileError
{
javassist.CtClass v, v, v;
int v;
java.lang.String v, v, v, v, v, v;
boolean v, v, v, v;
javassist.compiler.CompileError v, v;
javassist.compiler.JvstCodeGen v;
javassist.bytecode.Bytecode v, v, v, v, v;
javassist.CtClass[] v, v;
javassist.compiler.ast.Member v;
v := @this: javassist.compiler.JvstCodeGen;
v := @parameter: javassist.compiler.ast.Member;
v = virtualinvoke v.<javassist.compiler.ast.Member: java.lang.String get()>();
v = v.<javassist.compiler.JvstCodeGen: java.lang.String paramArrayName>;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = v.<javassist.compiler.JvstCodeGen: javassist.bytecode.Bytecode bytecode>;
v = v.<javassist.compiler.JvstCodeGen: javassist.CtClass[] paramTypeList>;
v = specialinvoke v.<javassist.compiler.JvstCodeGen: int indexOfParam1()>();
staticinvoke <javassist.compiler.JvstCodeGen: int compileParameterList(javassist.bytecode.Bytecode,javassist.CtClass[],int)>(v, v, v);
v.<javassist.compiler.JvstCodeGen: int exprType> = 307;
v.<javassist.compiler.JvstCodeGen: int arrayDim> = 1;
v.<javassist.compiler.JvstCodeGen: java.lang.String className> = "java/lang/Object";
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("$sig");
if v == 0 goto label;
v = v.<javassist.compiler.JvstCodeGen: javassist.bytecode.Bytecode bytecode>;
v = v.<javassist.compiler.JvstCodeGen: javassist.CtClass returnType>;
v = v.<javassist.compiler.JvstCodeGen: javassist.CtClass[] paramTypeList>;
v = staticinvoke <javassist.bytecode.Descriptor: java.lang.String ofMethod(javassist.CtClass,javassist.CtClass[])>(v, v);
virtualinvoke v.<javassist.bytecode.Bytecode: void addLdc(java.lang.String)>(v);
v = v.<javassist.compiler.JvstCodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addInvokestatic(java.lang.String,java.lang.String,java.lang.String)>("javassist/runtime/Desc", "getParams", "(Ljava/lang/String;)[Ljava/lang/Class;");
v.<javassist.compiler.JvstCodeGen: int exprType> = 307;
v.<javassist.compiler.JvstCodeGen: int arrayDim> = 1;
v.<javassist.compiler.JvstCodeGen: java.lang.String className> = "java/lang/Class";
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("$type");
if v == 0 goto label;
v = v.<javassist.compiler.JvstCodeGen: javassist.CtClass dollarType>;
if v != null goto label;
v = new javassist.compiler.CompileError;
specialinvoke v.<javassist.compiler.CompileError: void <init>(java.lang.String)>("$type is not available");
throw v;
label:
v = v.<javassist.compiler.JvstCodeGen: javassist.bytecode.Bytecode bytecode>;
v = v.<javassist.compiler.JvstCodeGen: javassist.CtClass dollarType>;
v = staticinvoke <javassist.bytecode.Descriptor: java.lang.String of(javassist.CtClass)>(v);
virtualinvoke v.<javassist.bytecode.Bytecode: void addLdc(java.lang.String)>(v);
specialinvoke v.<javassist.compiler.JvstCodeGen: void callGetType(java.lang.String)>("getType");
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("$class");
if v == 0 goto label;
v = v.<javassist.compiler.JvstCodeGen: java.lang.String param0Type>;
if v != null goto label;
v = new javassist.compiler.CompileError;
specialinvoke v.<javassist.compiler.CompileError: void <init>(java.lang.String)>("$class is not available");
throw v;
label:
v = v.<javassist.compiler.JvstCodeGen: javassist.bytecode.Bytecode bytecode>;
v = v.<javassist.compiler.JvstCodeGen: java.lang.String param0Type>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addLdc(java.lang.String)>(v);
specialinvoke v.<javassist.compiler.JvstCodeGen: void callGetType(java.lang.String)>("getClazz");
goto label;
label:
specialinvoke v.<javassist.compiler.MemberCodeGen: void atMember(javassist.compiler.ast.Member)>(v);
label:
return;
}
private void callGetType(java.lang.String)
{
java.lang.String v;
javassist.compiler.JvstCodeGen v;
javassist.bytecode.Bytecode v;
v := @this: javassist.compiler.JvstCodeGen;
v := @parameter: java.lang.String;
v = v.<javassist.compiler.JvstCodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addInvokestatic(java.lang.String,java.lang.String,java.lang.String)>("javassist/runtime/Desc", v, "(Ljava/lang/String;)Ljava/lang/Class;");
v.<javassist.compiler.JvstCodeGen: int exprType> = 307;
v.<javassist.compiler.JvstCodeGen: int arrayDim> = 0;
v.<javassist.compiler.JvstCodeGen: java.lang.String className> = "java/lang/Class";
return;
}
protected void atFieldAssign(javassist.compiler.ast.Expr, int, javassist.compiler.ast.ASTree, javassist.compiler.ast.ASTree, boolean) throws javassist.compiler.CompileError
{
int v, v, v;
java.lang.String v, v, v, v, v, v;
boolean v, v, v;
javassist.compiler.CompileError v, v;
javassist.compiler.JvstCodeGen v;
javassist.compiler.ast.Expr v;
javassist.compiler.ast.ASTree v, v;
javassist.bytecode.Bytecode v, v;
javassist.CtClass[] v;
v := @this: javassist.compiler.JvstCodeGen;
v := @parameter: javassist.compiler.ast.Expr;
v := @parameter: int;
v := @parameter: javassist.compiler.ast.ASTree;
v := @parameter: javassist.compiler.ast.ASTree;
v := @parameter: boolean;
v = v instanceof javassist.compiler.ast.Member;
if v == 0 goto label;
v = virtualinvoke v.<javassist.compiler.ast.Member: java.lang.String get()>();
v = v.<javassist.compiler.JvstCodeGen: java.lang.String paramArrayName>;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
if v == 61 goto label;
v = new javassist.compiler.CompileError;
v = v.<javassist.compiler.JvstCodeGen: java.lang.String paramArrayName>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("bad operator for \u0001");
specialinvoke v.<javassist.compiler.CompileError: void <init>(java.lang.String)>(v);
throw v;
label:
virtualinvoke v.<javassist.compiler.ast.ASTree: void accept(javassist.compiler.ast.Visitor)>(v);
v = v.<javassist.compiler.JvstCodeGen: int arrayDim>;
if v != 1 goto label;
v = v.<javassist.compiler.JvstCodeGen: int exprType>;
if v == 307 goto label;
label:
v = new javassist.compiler.CompileError;
v = v.<javassist.compiler.JvstCodeGen: java.lang.String paramArrayName>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("invalid type for \u0001");
specialinvoke v.<javassist.compiler.CompileError: void <init>(java.lang.String)>(v);
throw v;
label:
v = v.<javassist.compiler.JvstCodeGen: javassist.CtClass[] paramTypeList>;
v = v.<javassist.compiler.JvstCodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.compiler.JvstCodeGen: void atAssignParamList(javassist.CtClass[],javassist.bytecode.Bytecode)>(v, v);
if v != 0 goto label;
v = v.<javassist.compiler.JvstCodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(87);
goto label;
label:
specialinvoke v.<javassist.compiler.MemberCodeGen: void atFieldAssign(javassist.compiler.ast.Expr,int,javassist.compiler.ast.ASTree,javassist.compiler.ast.ASTree,boolean)>(v, v, v, v, v);
label:
return;
}
protected void atAssignParamList(javassist.CtClass[], javassist.bytecode.Bytecode) throws javassist.compiler.CompileError
{
javassist.compiler.JvstCodeGen v;
javassist.CtClass v, v;
byte v;
javassist.bytecode.Bytecode v;
int v, v, v, v, v, v;
javassist.CtClass[] v;
boolean v;
v := @this: javassist.compiler.JvstCodeGen;
v := @parameter: javassist.CtClass[];
v := @parameter: javassist.bytecode.Bytecode;
if v != null goto label;
return;
label:
v = specialinvoke v.<javassist.compiler.JvstCodeGen: int indexOfParam1()>();
v = lengthof v;
v = 0;
label:
if v >= v goto label;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(89);
virtualinvoke v.<javassist.bytecode.Bytecode: void addIconst(int)>(v);
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(50);
v = v[v];
virtualinvoke v.<javassist.compiler.JvstCodeGen: void compileUnwrapValue(javassist.CtClass,javassist.bytecode.Bytecode)>(v, v);
v = v[v];
virtualinvoke v.<javassist.bytecode.Bytecode: int addStore(int,javassist.CtClass)>(v, v);
v = v;
v = v.<javassist.compiler.JvstCodeGen: int exprType>;
v = v.<javassist.compiler.JvstCodeGen: int arrayDim>;
v = staticinvoke <javassist.compiler.JvstCodeGen: boolean is2word(int,int)>(v, v);
if v == 0 goto label;
v = 2;
goto label;
label:
v = 1;
label:
v = v + v;
v = v + 1;
goto label;
label:
return;
}
public void atCastExpr(javassist.compiler.ast.CastExpr) throws javassist.compiler.CompileError
{
javassist.compiler.JvstCodeGen v;
javassist.compiler.ast.ASTree v;
javassist.compiler.ast.CastExpr v;
int v;
java.lang.String v, v;
javassist.compiler.ast.ASTList v, v;
boolean v, v, v;
v := @this: javassist.compiler.JvstCodeGen;
v := @parameter: javassist.compiler.ast.CastExpr;
v = virtualinvoke v.<javassist.compiler.ast.CastExpr: javassist.compiler.ast.ASTList getClassName()>();
if v == null goto label;
v = virtualinvoke v.<javassist.compiler.ast.CastExpr: int getArrayDim()>();
if v != 0 goto label;
v = virtualinvoke v.<javassist.compiler.ast.ASTList: javassist.compiler.ast.ASTree head()>();
v = v instanceof javassist.compiler.ast.Symbol;
if v == 0 goto label;
v = virtualinvoke v.<javassist.compiler.ast.ASTList: javassist.compiler.ast.ASTList tail()>();
if v != null goto label;
v = virtualinvoke v.<javassist.compiler.ast.Symbol: java.lang.String get()>();
v = v.<javassist.compiler.JvstCodeGen: java.lang.String returnCastName>;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
virtualinvoke v.<javassist.compiler.JvstCodeGen: void atCastToRtype(javassist.compiler.ast.CastExpr)>(v);
return;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("$w");
if v == 0 goto label;
virtualinvoke v.<javassist.compiler.JvstCodeGen: void atCastToWrapper(javassist.compiler.ast.CastExpr)>(v);
return;
label:
specialinvoke v.<javassist.compiler.MemberCodeGen: void atCastExpr(javassist.compiler.ast.CastExpr)>(v);
return;
}
protected void atCastToRtype(javassist.compiler.ast.CastExpr) throws javassist.compiler.CompileError
{
javassist.CtClass v, v, v;
javassist.compiler.ast.CastExpr v;
int v, v, v, v, v;
boolean v, v;
javassist.compiler.CompileError v;
javassist.compiler.JvstCodeGen v;
char v;
javassist.compiler.ast.ASTree v;
javassist.bytecode.Bytecode v;
v := @this: javassist.compiler.JvstCodeGen;
v := @parameter: javassist.compiler.ast.CastExpr;
v = virtualinvoke v.<javassist.compiler.ast.CastExpr: javassist.compiler.ast.ASTree getOprand()>();
virtualinvoke v.<javassist.compiler.ast.ASTree: void accept(javassist.compiler.ast.Visitor)>(v);
v = v.<javassist.compiler.JvstCodeGen: int exprType>;
if v == 344 goto label;
v = v.<javassist.compiler.JvstCodeGen: int exprType>;
v = staticinvoke <javassist.compiler.JvstCodeGen: boolean isRefType(int)>(v);
if v != 0 goto label;
v = v.<javassist.compiler.JvstCodeGen: int arrayDim>;
if v <= 0 goto label;
label:
v = v.<javassist.compiler.JvstCodeGen: javassist.CtClass returnType>;
v = v.<javassist.compiler.JvstCodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.compiler.JvstCodeGen: void compileUnwrapValue(javassist.CtClass,javassist.bytecode.Bytecode)>(v, v);
goto label;
label:
v = v.<javassist.compiler.JvstCodeGen: javassist.CtClass returnType>;
v = v instanceof javassist.CtPrimitiveType;
if v == 0 goto label;
v = v.<javassist.compiler.JvstCodeGen: javassist.CtClass returnType>;
v = virtualinvoke v.<javassist.CtPrimitiveType: char getDescriptor()>();
v = staticinvoke <javassist.compiler.MemberResolver: int descToType(char)>(v);
v = v.<javassist.compiler.JvstCodeGen: int exprType>;
virtualinvoke v.<javassist.compiler.JvstCodeGen: void atNumCastExpr(int,int)>(v, v);
v.<javassist.compiler.JvstCodeGen: int exprType> = v;
v.<javassist.compiler.JvstCodeGen: int arrayDim> = 0;
v.<javassist.compiler.JvstCodeGen: java.lang.String className> = null;
goto label;
label:
v = new javassist.compiler.CompileError;
specialinvoke v.<javassist.compiler.CompileError: void <init>(java.lang.String)>("invalid cast");
throw v;
label:
return;
}
protected void atCastToWrapper(javassist.compiler.ast.CastExpr) throws javassist.compiler.CompileError
{
javassist.CtClass v;
javassist.compiler.MemberResolver v;
javassist.compiler.ast.CastExpr v;
int v, v, v, v, v;
java.lang.String v, v, v;
boolean v, v;
javassist.compiler.JvstCodeGen v;
char v;
javassist.compiler.ast.ASTree v;
javassist.bytecode.Bytecode v, v, v, v, v, v;
v := @this: javassist.compiler.JvstCodeGen;
v := @parameter: javassist.compiler.ast.CastExpr;
v = virtualinvoke v.<javassist.compiler.ast.CastExpr: javassist.compiler.ast.ASTree getOprand()>();
virtualinvoke v.<javassist.compiler.ast.ASTree: void accept(javassist.compiler.ast.Visitor)>(v);
v = v.<javassist.compiler.JvstCodeGen: int exprType>;
v = staticinvoke <javassist.compiler.JvstCodeGen: boolean isRefType(int)>(v);
if v != 0 goto label;
v = v.<javassist.compiler.JvstCodeGen: int arrayDim>;
if v <= 0 goto label;
label:
return;
label:
v = v.<javassist.compiler.JvstCodeGen: javassist.compiler.MemberResolver resolver>;
v = v.<javassist.compiler.JvstCodeGen: int exprType>;
v = v.<javassist.compiler.JvstCodeGen: int arrayDim>;
v = v.<javassist.compiler.JvstCodeGen: java.lang.String className>;
v = virtualinvoke v.<javassist.compiler.MemberResolver: javassist.CtClass lookupClass(int,int,java.lang.String)>(v, v, v);
v = v instanceof javassist.CtPrimitiveType;
if v == 0 goto label;
v = virtualinvoke v.<javassist.CtPrimitiveType: java.lang.String getWrapperName()>();
v = v.<javassist.compiler.JvstCodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addNew(java.lang.String)>(v);
v = v.<javassist.compiler.JvstCodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(89);
v = virtualinvoke v.<javassist.CtPrimitiveType: int getDataSize()>();
if v <= 1 goto label;
v = v.<javassist.compiler.JvstCodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(94);
goto label;
label:
v = v.<javassist.compiler.JvstCodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(93);
label:
v = v.<javassist.compiler.JvstCodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(88);
v = v.<javassist.compiler.JvstCodeGen: javassist.bytecode.Bytecode bytecode>;
v = virtualinvoke v.<javassist.CtPrimitiveType: char getDescriptor()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (char)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("(\u)V");
virtualinvoke v.<javassist.bytecode.Bytecode: void addInvokespecial(java.lang.String,java.lang.String,java.lang.String)>(v, "<init>", v);
v.<javassist.compiler.JvstCodeGen: int exprType> = 307;
v.<javassist.compiler.JvstCodeGen: int arrayDim> = 0;
v.<javassist.compiler.JvstCodeGen: java.lang.String className> = "java/lang/Object";
label:
return;
}
public void atCallExpr(javassist.compiler.ast.CallExpr) throws javassist.compiler.CompileError
{
javassist.compiler.JvstCodeGen v;
javassist.compiler.ast.ASTree v, v, v;
javassist.compiler.ProceedHandler v, v;
javassist.bytecode.Bytecode v;
java.lang.String v, v;
javassist.compiler.ast.CallExpr v;
boolean v, v, v;
v := @this: javassist.compiler.JvstCodeGen;
v := @parameter: javassist.compiler.ast.CallExpr;
v = virtualinvoke v.<javassist.compiler.ast.CallExpr: javassist.compiler.ast.ASTree oprand1()>();
v = v instanceof javassist.compiler.ast.Member;
if v == 0 goto label;
v = virtualinvoke v.<javassist.compiler.ast.Member: java.lang.String get()>();
v = v.<javassist.compiler.JvstCodeGen: javassist.compiler.ProceedHandler procHandler>;
if v == null goto label;
v = v.<javassist.compiler.JvstCodeGen: java.lang.String proceedName>;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = v.<javassist.compiler.JvstCodeGen: javassist.compiler.ProceedHandler procHandler>;
v = v.<javassist.compiler.JvstCodeGen: javassist.bytecode.Bytecode bytecode>;
v = virtualinvoke v.<javassist.compiler.ast.CallExpr: javassist.compiler.ast.ASTree oprand2()>();
interfaceinvoke v.<javassist.compiler.ProceedHandler: void doit(javassist.compiler.JvstCodeGen,javassist.bytecode.Bytecode,javassist.compiler.ast.ASTList)>(v, v, v);
return;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("$cflow");
if v == 0 goto label;
v = virtualinvoke v.<javassist.compiler.ast.CallExpr: javassist.compiler.ast.ASTree oprand2()>();
virtualinvoke v.<javassist.compiler.JvstCodeGen: void atCflow(javassist.compiler.ast.ASTList)>(v);
return;
label:
specialinvoke v.<javassist.compiler.MemberCodeGen: void atCallExpr(javassist.compiler.ast.CallExpr)>(v);
return;
}
protected void atCflow(javassist.compiler.ast.ASTList) throws javassist.compiler.CompileError
{
java.lang.Object[] v;
javassist.compiler.MemberResolver v;
java.lang.String v, v;
javassist.compiler.CompileError v, v;
javassist.compiler.JvstCodeGen v;
javassist.compiler.ast.ASTree v;
javassist.bytecode.Bytecode v, v;
java.lang.Object v, v;
java.lang.StringBuilder v;
javassist.compiler.ast.ASTList v, v;
javassist.ClassPool v;
v := @this: javassist.compiler.JvstCodeGen;
v := @parameter: javassist.compiler.ast.ASTList;
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
if v == null goto label;
v = virtualinvoke v.<javassist.compiler.ast.ASTList: javassist.compiler.ast.ASTList tail()>();
if v == null goto label;
label:
v = new javassist.compiler.CompileError;
specialinvoke v.<javassist.compiler.CompileError: void <init>(java.lang.String)>("bad $cflow");
throw v;
label:
v = virtualinvoke v.<javassist.compiler.ast.ASTList: javassist.compiler.ast.ASTree head()>();
staticinvoke <javassist.compiler.JvstCodeGen: void makeCflowName(java.lang.StringBuilder,javassist.compiler.ast.ASTree)>(v, v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
v = v.<javassist.compiler.JvstCodeGen: javassist.compiler.MemberResolver resolver>;
v = virtualinvoke v.<javassist.compiler.MemberResolver: javassist.ClassPool getClassPool()>();
v = virtualinvoke v.<javassist.ClassPool: java.lang.Object[] lookupCflow(java.lang.String)>(v);
if v != null goto label;
v = new javassist.compiler.CompileError;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("no such $cflow: \u0001");
specialinvoke v.<javassist.compiler.CompileError: void <init>(java.lang.String)>(v);
throw v;
label:
v = v.<javassist.compiler.JvstCodeGen: javassist.bytecode.Bytecode bytecode>;
v = v[0];
v = v[1];
virtualinvoke v.<javassist.bytecode.Bytecode: void addGetstatic(java.lang.String,java.lang.String,java.lang.String)>(v, v, "Ljavassist/runtime/Cflow;");
v = v.<javassist.compiler.JvstCodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addInvokevirtual(java.lang.String,java.lang.String,java.lang.String)>("javassist.runtime.Cflow", "value", "()I");
v.<javassist.compiler.JvstCodeGen: int exprType> = 324;
v.<javassist.compiler.JvstCodeGen: int arrayDim> = 0;
v.<javassist.compiler.JvstCodeGen: java.lang.String className> = null;
return;
}
private static void makeCflowName(java.lang.StringBuilder, javassist.compiler.ast.ASTree) throws javassist.compiler.CompileError
{
javassist.compiler.ast.ASTree v, v, v;
int v;
java.lang.StringBuilder v;
java.lang.String v;
boolean v, v;
javassist.compiler.CompileError v;
v := @parameter: java.lang.StringBuilder;
v := @parameter: javassist.compiler.ast.ASTree;
v = v instanceof javassist.compiler.ast.Symbol;
if v == 0 goto label;
v = virtualinvoke v.<javassist.compiler.ast.Symbol: java.lang.String get()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
return;
label:
v = v instanceof javassist.compiler.ast.Expr;
if v == 0 goto label;
v = virtualinvoke v.<javassist.compiler.ast.Expr: int getOperator()>();
if v != 46 goto label;
v = virtualinvoke v.<javassist.compiler.ast.Expr: javassist.compiler.ast.ASTree oprand1()>();
staticinvoke <javassist.compiler.JvstCodeGen: void makeCflowName(java.lang.StringBuilder,javassist.compiler.ast.ASTree)>(v, v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(46);
v = virtualinvoke v.<javassist.compiler.ast.Expr: javassist.compiler.ast.ASTree oprand2()>();
staticinvoke <javassist.compiler.JvstCodeGen: void makeCflowName(java.lang.StringBuilder,javassist.compiler.ast.ASTree)>(v, v);
return;
label:
v = new javassist.compiler.CompileError;
specialinvoke v.<javassist.compiler.CompileError: void <init>(java.lang.String)>("bad $cflow");
throw v;
}
public boolean isParamListName(javassist.compiler.ast.ASTList)
{
javassist.compiler.JvstCodeGen v;
javassist.compiler.ast.ASTree v;
javassist.CtClass[] v;
java.lang.String v, v;
javassist.compiler.ast.ASTList v, v;
boolean v, v, v;
v := @this: javassist.compiler.JvstCodeGen;
v := @parameter: javassist.compiler.ast.ASTList;
v = v.<javassist.compiler.JvstCodeGen: javassist.CtClass[] paramTypeList>;
if v == null goto label;
if v == null goto label;
v = virtualinvoke v.<javassist.compiler.ast.ASTList: javassist.compiler.ast.ASTList tail()>();
if v != null goto label;
v = virtualinvoke v.<javassist.compiler.ast.ASTList: javassist.compiler.ast.ASTree head()>();
v = v instanceof javassist.compiler.ast.Member;
if v == 0 goto label;
v = virtualinvoke v.<javassist.compiler.ast.Member: java.lang.String get()>();
v = v.<javassist.compiler.JvstCodeGen: java.lang.String paramListName>;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
label:
return 0;
}
public int getMethodArgsLength(javassist.compiler.ast.ASTList)
{
javassist.compiler.JvstCodeGen v;
javassist.compiler.ast.ASTree v;
int v, v;
javassist.CtClass[] v, v;
java.lang.String v, v;
javassist.compiler.ast.ASTList v;
boolean v, v;
v := @this: javassist.compiler.JvstCodeGen;
v := @parameter: javassist.compiler.ast.ASTList;
v = v.<javassist.compiler.JvstCodeGen: java.lang.String paramListName>;
v = 0;
label:
if v == null goto label;
v = virtualinvoke v.<javassist.compiler.ast.ASTList: javassist.compiler.ast.ASTree head()>();
v = v instanceof javassist.compiler.ast.Member;
if v == 0 goto label;
v = virtualinvoke v.<javassist.compiler.ast.Member: java.lang.String get()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = v.<javassist.compiler.JvstCodeGen: javassist.CtClass[] paramTypeList>;
if v == null goto label;
v = v.<javassist.compiler.JvstCodeGen: javassist.CtClass[] paramTypeList>;
v = lengthof v;
v = v + v;
goto label;
label:
v = v + 1;
label:
v = virtualinvoke v.<javassist.compiler.ast.ASTList: javassist.compiler.ast.ASTList tail()>();
goto label;
label:
return v;
}
public void atMethodArgs(javassist.compiler.ast.ASTList, int[], int[], java.lang.String[]) throws javassist.compiler.CompileError
{
java.lang.String[] v;
javassist.CtClass v;
int[] v, v;
int v, v, v, v, v, v, v, v, v;
java.lang.String v, v, v, v;
boolean v, v;
javassist.compiler.JvstCodeGen v;
javassist.compiler.ast.ASTree v;
javassist.bytecode.Bytecode v;
javassist.CtClass[] v;
javassist.compiler.ast.ASTList v;
v := @this: javassist.compiler.JvstCodeGen;
v := @parameter: javassist.compiler.ast.ASTList;
v := @parameter: int[];
v := @parameter: int[];
v := @parameter: java.lang.String[];
v = v.<javassist.compiler.JvstCodeGen: javassist.CtClass[] paramTypeList>;
v = v.<javassist.compiler.JvstCodeGen: java.lang.String paramListName>;
v = 0;
label:
if v == null goto label;
v = virtualinvoke v.<javassist.compiler.ast.ASTList: javassist.compiler.ast.ASTree head()>();
v = v instanceof javassist.compiler.ast.Member;
if v == 0 goto label;
v = virtualinvoke v.<javassist.compiler.ast.Member: java.lang.String get()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
if v == null goto label;
v = lengthof v;
v = specialinvoke v.<javassist.compiler.JvstCodeGen: int indexOfParam1()>();
v = 0;
label:
if v >= v goto label;
v = v[v];
v = v.<javassist.compiler.JvstCodeGen: javassist.bytecode.Bytecode bytecode>;
v = virtualinvoke v.<javassist.bytecode.Bytecode: int addLoad(int,javassist.CtClass)>(v, v);
v = v + v;
virtualinvoke v.<javassist.compiler.JvstCodeGen: void setType(javassist.CtClass)>(v);
v = v.<javassist.compiler.JvstCodeGen: int exprType>;
v[v] = v;
v = v.<javassist.compiler.JvstCodeGen: int arrayDim>;
v[v] = v;
v = v.<javassist.compiler.JvstCodeGen: java.lang.String className>;
v[v] = v;
v = v + 1;
v = v + 1;
goto label;
label:
virtualinvoke v.<javassist.compiler.ast.ASTree: void accept(javassist.compiler.ast.Visitor)>(v);
v = v.<javassist.compiler.JvstCodeGen: int exprType>;
v[v] = v;
v = v.<javassist.compiler.JvstCodeGen: int arrayDim>;
v[v] = v;
v = v.<javassist.compiler.JvstCodeGen: java.lang.String className>;
v[v] = v;
v = v + 1;
label:
v = virtualinvoke v.<javassist.compiler.ast.ASTList: javassist.compiler.ast.ASTList tail()>();
goto label;
label:
return;
}
void compileInvokeSpecial(javassist.compiler.ast.ASTree, int, java.lang.String, javassist.compiler.ast.ASTList) throws javassist.compiler.CompileError
{
javassist.compiler.JvstCodeGen v;
java.lang.String[] v;
javassist.compiler.ast.ASTree v;
javassist.bytecode.Bytecode v;
int[] v, v;
int v, v;
java.lang.String v;
javassist.compiler.ast.ASTList v;
v := @this: javassist.compiler.JvstCodeGen;
v := @parameter: javassist.compiler.ast.ASTree;
v := @parameter: int;
v := @parameter: java.lang.String;
v := @parameter: javassist.compiler.ast.ASTList;
virtualinvoke v.<javassist.compiler.ast.ASTree: void accept(javassist.compiler.ast.Visitor)>(v);
v = virtualinvoke v.<javassist.compiler.JvstCodeGen: int getMethodArgsLength(javassist.compiler.ast.ASTList)>(v);
v = newarray (int)[v];
v = newarray (int)[v];
v = newarray (java.lang.String)[v];
virtualinvoke v.<javassist.compiler.JvstCodeGen: void atMethodArgs(javassist.compiler.ast.ASTList,int[],int[],java.lang.String[])>(v, v, v, v);
v = v.<javassist.compiler.JvstCodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addInvokespecial(int,java.lang.String)>(v, v);
virtualinvoke v.<javassist.compiler.JvstCodeGen: void setReturnType(java.lang.String,boolean,boolean)>(v, 0, 0);
virtualinvoke v.<javassist.compiler.JvstCodeGen: void addNullIfVoid()>();
return;
}
protected void atReturnStmnt(javassist.compiler.ast.Stmnt) throws javassist.compiler.CompileError
{
javassist.compiler.JvstCodeGen v;
javassist.compiler.ast.Stmnt v;
javassist.CtClass v, v;
javassist.compiler.ast.ASTree v;
javassist.bytecode.Bytecode v, v;
int v, v, v;
boolean v;
v := @this: javassist.compiler.JvstCodeGen;
v := @parameter: javassist.compiler.ast.Stmnt;
v = virtualinvoke v.<javassist.compiler.ast.Stmnt: javassist.compiler.ast.ASTree getLeft()>();
if v == null goto label;
v = v.<javassist.compiler.JvstCodeGen: javassist.CtClass returnType>;
v = <javassist.CtClass: javassist.CtClass voidType>;
if v != v goto label;
virtualinvoke v.<javassist.compiler.JvstCodeGen: void compileExpr(javassist.compiler.ast.ASTree)>(v);
v = v.<javassist.compiler.JvstCodeGen: int exprType>;
v = v.<javassist.compiler.JvstCodeGen: int arrayDim>;
v = staticinvoke <javassist.compiler.JvstCodeGen: boolean is2word(int,int)>(v, v);
if v == 0 goto label;
v = v.<javassist.compiler.JvstCodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(88);
goto label;
label:
v = v.<javassist.compiler.JvstCodeGen: int exprType>;
if v == 344 goto label;
v = v.<javassist.compiler.JvstCodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(87);
label:
v = null;
label:
virtualinvoke v.<javassist.compiler.JvstCodeGen: void atReturnStmnt2(javassist.compiler.ast.ASTree)>(v);
return;
}
public int recordReturnType(javassist.CtClass, java.lang.String, java.lang.String, javassist.compiler.SymbolTable) throws javassist.compiler.CompileError
{
javassist.compiler.JvstCodeGen v;
javassist.CtClass v;
int v, v, v, v;
java.lang.String v, v;
javassist.compiler.SymbolTable v;
v := @this: javassist.compiler.JvstCodeGen;
v := @parameter: javassist.CtClass;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: javassist.compiler.SymbolTable;
v.<javassist.compiler.JvstCodeGen: javassist.CtClass returnType> = v;
v.<javassist.compiler.JvstCodeGen: java.lang.String returnCastName> = v;
v.<javassist.compiler.JvstCodeGen: java.lang.String returnVarName> = v;
if v != null goto label;
v = (int) -1;
return v;
label:
v = virtualinvoke v.<javassist.compiler.JvstCodeGen: int getMaxLocals()>();
v = specialinvoke v.<javassist.compiler.JvstCodeGen: int recordVar(javassist.CtClass,java.lang.String,int,javassist.compiler.SymbolTable)>(v, v, v, v);
v = v + v;
virtualinvoke v.<javassist.compiler.JvstCodeGen: void setMaxLocals(int)>(v);
return v;
}
public void recordType(javassist.CtClass)
{
javassist.CtClass v;
javassist.compiler.JvstCodeGen v;
v := @this: javassist.compiler.JvstCodeGen;
v := @parameter: javassist.CtClass;
v.<javassist.compiler.JvstCodeGen: javassist.CtClass dollarType> = v;
return;
}
public int recordParams(javassist.CtClass[], boolean, java.lang.String, java.lang.String, java.lang.String, javassist.compiler.SymbolTable) throws javassist.compiler.CompileError
{
javassist.compiler.JvstCodeGen v;
int v;
javassist.CtClass[] v;
java.lang.String v, v, v, v;
javassist.compiler.SymbolTable v;
boolean v, v;
v := @this: javassist.compiler.JvstCodeGen;
v := @parameter: javassist.CtClass[];
v := @parameter: boolean;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: javassist.compiler.SymbolTable;
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = virtualinvoke v.<javassist.compiler.JvstCodeGen: java.lang.String getThisName()>();
v = virtualinvoke v.<javassist.compiler.JvstCodeGen: int recordParams(javassist.CtClass[],boolean,java.lang.String,java.lang.String,java.lang.String,boolean,int,java.lang.String,javassist.compiler.SymbolTable)>(v, v, v, v, v, v, 0, v, v);
return v;
}
public int recordParams(javassist.CtClass[], boolean, java.lang.String, java.lang.String, java.lang.String, boolean, int, java.lang.String, javassist.compiler.SymbolTable) throws javassist.compiler.CompileError
{
javassist.compiler.ast.Declarator v;
javassist.compiler.ast.Symbol v;
javassist.CtClass v;
int v, v, v, v, v, v, v;
java.lang.String v, v, v, v, v, v, v, v;
javassist.compiler.SymbolTable v;
boolean v, v;
javassist.compiler.JvstCodeGen v;
javassist.CtClass[] v;
v := @this: javassist.compiler.JvstCodeGen;
v := @parameter: javassist.CtClass[];
v := @parameter: boolean;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: boolean;
v := @parameter: int;
v := @parameter: java.lang.String;
v := @parameter: javassist.compiler.SymbolTable;
v.<javassist.compiler.JvstCodeGen: javassist.CtClass[] paramTypeList> = v;
v.<javassist.compiler.JvstCodeGen: java.lang.String paramArrayName> = v;
v.<javassist.compiler.JvstCodeGen: java.lang.String paramListName> = v;
v.<javassist.compiler.JvstCodeGen: int paramVarBase> = v;
v.<javassist.compiler.JvstCodeGen: boolean useParam0> = v;
if v == null goto label;
v = staticinvoke <javassist.compiler.MemberResolver: java.lang.String jvmToJavaName(java.lang.String)>(v);
v.<javassist.compiler.JvstCodeGen: java.lang.String param0Type> = v;
label:
v.<javassist.compiler.JvstCodeGen: boolean inStaticMethod> = v;
v = v;
if v == 0 goto label;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u00010");
v = new javassist.compiler.ast.Declarator;
v = staticinvoke <javassist.compiler.MemberResolver: java.lang.String javaToJvmName(java.lang.String)>(v);
v = v + 1;
v = new javassist.compiler.ast.Symbol;
specialinvoke v.<javassist.compiler.ast.Symbol: void <init>(java.lang.String)>(v);
specialinvoke v.<javassist.compiler.ast.Declarator: void <init>(int,java.lang.String,int,int,javassist.compiler.ast.Symbol)>(307, v, 0, v, v);
virtualinvoke v.<javassist.compiler.SymbolTable: void append(java.lang.String,javassist.compiler.ast.Declarator)>(v, v);
label:
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = v[v];
v = v + 1;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,int)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001\u0001");
v = specialinvoke v.<javassist.compiler.JvstCodeGen: int recordVar(javassist.CtClass,java.lang.String,int,javassist.compiler.SymbolTable)>(v, v, v, v);
v = v + v;
v = v + 1;
goto label;
label:
v = virtualinvoke v.<javassist.compiler.JvstCodeGen: int getMaxLocals()>();
if v >= v goto label;
virtualinvoke v.<javassist.compiler.JvstCodeGen: void setMaxLocals(int)>(v);
label:
return v;
}
public int recordVariable(javassist.CtClass, java.lang.String, javassist.compiler.SymbolTable) throws javassist.compiler.CompileError
{
javassist.compiler.JvstCodeGen v;
javassist.CtClass v;
int v, v, v, v;
java.lang.String v;
javassist.compiler.SymbolTable v;
v := @this: javassist.compiler.JvstCodeGen;
v := @parameter: javassist.CtClass;
v := @parameter: java.lang.String;
v := @parameter: javassist.compiler.SymbolTable;
if v != null goto label;
v = (int) -1;
return v;
label:
v = virtualinvoke v.<javassist.compiler.JvstCodeGen: int getMaxLocals()>();
v = specialinvoke v.<javassist.compiler.JvstCodeGen: int recordVar(javassist.CtClass,java.lang.String,int,javassist.compiler.SymbolTable)>(v, v, v, v);
v = v + v;
virtualinvoke v.<javassist.compiler.JvstCodeGen: void setMaxLocals(int)>(v);
return v;
}
private int recordVar(javassist.CtClass, java.lang.String, int, javassist.compiler.SymbolTable) throws javassist.compiler.CompileError
{
javassist.compiler.ast.Declarator v;
javassist.compiler.JvstCodeGen v;
javassist.compiler.ast.Symbol v;
javassist.CtClass v, v;
byte v;
int v, v, v, v, v;
java.lang.String v, v;
javassist.compiler.SymbolTable v;
boolean v;
v := @this: javassist.compiler.JvstCodeGen;
v := @parameter: javassist.CtClass;
v := @parameter: java.lang.String;
v := @parameter: int;
v := @parameter: javassist.compiler.SymbolTable;
v = <javassist.CtClass: javassist.CtClass voidType>;
if v != v goto label;
v.<javassist.compiler.JvstCodeGen: int exprType> = 307;
v.<javassist.compiler.JvstCodeGen: int arrayDim> = 0;
v.<javassist.compiler.JvstCodeGen: java.lang.String className> = "java/lang/Object";
goto label;
label:
virtualinvoke v.<javassist.compiler.JvstCodeGen: void setType(javassist.CtClass)>(v);
label:
v = new javassist.compiler.ast.Declarator;
v = v.<javassist.compiler.JvstCodeGen: int exprType>;
v = v.<javassist.compiler.JvstCodeGen: java.lang.String className>;
v = v.<javassist.compiler.JvstCodeGen: int arrayDim>;
v = new javassist.compiler.ast.Symbol;
specialinvoke v.<javassist.compiler.ast.Symbol: void <init>(java.lang.String)>(v);
specialinvoke v.<javassist.compiler.ast.Declarator: void <init>(int,java.lang.String,int,int,javassist.compiler.ast.Symbol)>(v, v, v, v, v);
virtualinvoke v.<javassist.compiler.SymbolTable: void append(java.lang.String,javassist.compiler.ast.Declarator)>(v, v);
v = v.<javassist.compiler.JvstCodeGen: int exprType>;
v = v.<javassist.compiler.JvstCodeGen: int arrayDim>;
v = staticinvoke <javassist.compiler.JvstCodeGen: boolean is2word(int,int)>(v, v);
if v == 0 goto label;
v = 2;
goto label;
label:
v = 1;
label:
return v;
}
public void recordVariable(java.lang.String, java.lang.String, int, javassist.compiler.SymbolTable) throws javassist.compiler.CompileError
{
javassist.compiler.ast.Declarator v;
javassist.compiler.ast.Symbol v;
int v, v, v, v, v, v, v, v;
java.lang.String v, v, v;
javassist.compiler.SymbolTable v;
javassist.compiler.JvstCodeGen v;
char v;
v := @this: javassist.compiler.JvstCodeGen;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: int;
v := @parameter: javassist.compiler.SymbolTable;
v = 0;
label:
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
if v != 91 goto label;
v = v + 1;
goto label;
label:
v = staticinvoke <javassist.compiler.MemberResolver: int descToType(char)>(v);
v = null;
if v != 307 goto label;
if v != 0 goto label;
v = virtualinvoke v.<java.lang.String: int length()>();
v = v - 1;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(1, v);
goto label;
label:
v = v + 1;
v = virtualinvoke v.<java.lang.String: int length()>();
v = v - 1;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(v, v);
label:
v = new javassist.compiler.ast.Declarator;
v = new javassist.compiler.ast.Symbol;
specialinvoke v.<javassist.compiler.ast.Symbol: void <init>(java.lang.String)>(v);
specialinvoke v.<javassist.compiler.ast.Declarator: void <init>(int,java.lang.String,int,int,javassist.compiler.ast.Symbol)>(v, v, v, v, v);
virtualinvoke v.<javassist.compiler.SymbolTable: void append(java.lang.String,javassist.compiler.ast.Declarator)>(v, v);
return;
}
public static int compileParameterList(javassist.bytecode.Bytecode, javassist.CtClass[], int)
{
javassist.CtClass v, v, v;
javassist.bytecode.Bytecode v;
int v, v, v, v;
javassist.CtClass[] v, v;
java.lang.String v, v;
boolean v;
v := @parameter: javassist.bytecode.Bytecode;
v := @parameter: javassist.CtClass[];
v := @parameter: int;
if v != null goto label;
virtualinvoke v.<javassist.bytecode.Bytecode: void addIconst(int)>(0);
virtualinvoke v.<javassist.bytecode.Bytecode: void addAnewarray(java.lang.String)>("java.lang.Object");
return 1;
label:
v = newarray (javassist.CtClass)[1];
v = lengthof v;
virtualinvoke v.<javassist.bytecode.Bytecode: void addIconst(int)>(v);
virtualinvoke v.<javassist.bytecode.Bytecode: void addAnewarray(java.lang.String)>("java.lang.Object");
v = 0;
label:
if v >= v goto label;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(89);
virtualinvoke v.<javassist.bytecode.Bytecode: void addIconst(int)>(v);
v = v[v];
v = virtualinvoke v.<javassist.CtClass: boolean isPrimitive()>();
if v == 0 goto label;
v = v[v];
v = virtualinvoke v.<javassist.CtPrimitiveType: java.lang.String getWrapperName()>();
virtualinvoke v.<javassist.bytecode.Bytecode: void addNew(java.lang.String)>(v);
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(89);
v = virtualinvoke v.<javassist.bytecode.Bytecode: int addLoad(int,javassist.CtClass)>(v, v);
v = v + v;
v[0] = v;
v = <javassist.CtClass: javassist.CtClass voidType>;
v = staticinvoke <javassist.bytecode.Descriptor: java.lang.String ofMethod(javassist.CtClass,javassist.CtClass[])>(v, v);
virtualinvoke v.<javassist.bytecode.Bytecode: void addInvokespecial(java.lang.String,java.lang.String,java.lang.String)>(v, "<init>", v);
goto label;
label:
virtualinvoke v.<javassist.bytecode.Bytecode: void addAload(int)>(v);
v = v + 1;
label:
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(83);
v = v + 1;
goto label;
label:
return 8;
}
protected void compileUnwrapValue(javassist.CtClass, javassist.bytecode.Bytecode) throws javassist.compiler.CompileError
{
javassist.compiler.JvstCodeGen v;
javassist.CtClass v, v;
javassist.bytecode.Bytecode v;
int v;
java.lang.String v, v, v, v, v;
boolean v;
javassist.compiler.CompileError v;
v := @this: javassist.compiler.JvstCodeGen;
v := @parameter: javassist.CtClass;
v := @parameter: javassist.bytecode.Bytecode;
v = <javassist.CtClass: javassist.CtClass voidType>;
if v != v goto label;
virtualinvoke v.<javassist.compiler.JvstCodeGen: void addNullIfVoid()>();
return;
label:
v = v.<javassist.compiler.JvstCodeGen: int exprType>;
if v != 344 goto label;
v = new javassist.compiler.CompileError;
v = v.<javassist.compiler.JvstCodeGen: java.lang.String returnCastName>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("invalid type for \u0001");
specialinvoke v.<javassist.compiler.CompileError: void <init>(java.lang.String)>(v);
throw v;
label:
v = v instanceof javassist.CtPrimitiveType;
if v == 0 goto label;
v = virtualinvoke v.<javassist.CtPrimitiveType: java.lang.String getWrapperName()>();
virtualinvoke v.<javassist.bytecode.Bytecode: void addCheckcast(java.lang.String)>(v);
v = virtualinvoke v.<javassist.CtPrimitiveType: java.lang.String getGetMethodName()>();
v = virtualinvoke v.<javassist.CtPrimitiveType: java.lang.String getGetMethodDescriptor()>();
virtualinvoke v.<javassist.bytecode.Bytecode: void addInvokevirtual(java.lang.String,java.lang.String,java.lang.String)>(v, v, v);
virtualinvoke v.<javassist.compiler.JvstCodeGen: void setType(javassist.CtClass)>(v);
goto label;
label:
virtualinvoke v.<javassist.bytecode.Bytecode: void addCheckcast(javassist.CtClass)>(v);
virtualinvoke v.<javassist.compiler.JvstCodeGen: void setType(javassist.CtClass)>(v);
label:
return;
}
public void setType(javassist.CtClass) throws javassist.compiler.CompileError
{
javassist.CtClass v;
javassist.compiler.JvstCodeGen v;
v := @this: javassist.compiler.JvstCodeGen;
v := @parameter: javassist.CtClass;
specialinvoke v.<javassist.compiler.JvstCodeGen: void setType(javassist.CtClass,int)>(v, 0);
return;
}
private void setType(javassist.CtClass, int) throws javassist.compiler.CompileError
{
javassist.compiler.JvstCodeGen v;
char v;
javassist.CtClass v, v;
int v, v, v;
javassist.NotFoundException v;
java.lang.String v, v, v, v;
boolean v, v;
javassist.compiler.CompileError v;
v := @this: javassist.compiler.JvstCodeGen;
v := @parameter: javassist.CtClass;
v := @parameter: int;
v = virtualinvoke v.<javassist.CtClass: boolean isPrimitive()>();
if v == 0 goto label;
v = virtualinvoke v.<javassist.CtPrimitiveType: char getDescriptor()>();
v = staticinvoke <javassist.compiler.MemberResolver: int descToType(char)>(v);
v.<javassist.compiler.JvstCodeGen: int exprType> = v;
v.<javassist.compiler.JvstCodeGen: int arrayDim> = v;
v.<javassist.compiler.JvstCodeGen: java.lang.String className> = null;
goto label;
label:
v = virtualinvoke v.<javassist.CtClass: boolean isArray()>();
if v == 0 goto label;
label:
v = virtualinvoke v.<javassist.CtClass: javassist.CtClass getComponentType()>();
v = v + 1;
specialinvoke v.<javassist.compiler.JvstCodeGen: void setType(javassist.CtClass,int)>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = new javassist.compiler.CompileError;
v = virtualinvoke v.<javassist.CtClass: java.lang.String getName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("undefined type: \u0001");
specialinvoke v.<javassist.compiler.CompileError: void <init>(java.lang.String)>(v);
throw v;
label:
v.<javassist.compiler.JvstCodeGen: int exprType> = 307;
v.<javassist.compiler.JvstCodeGen: int arrayDim> = v;
v = virtualinvoke v.<javassist.CtClass: java.lang.String getName()>();
v = staticinvoke <javassist.compiler.MemberResolver: java.lang.String javaToJvmName(java.lang.String)>(v);
v.<javassist.compiler.JvstCodeGen: java.lang.String className> = v;
label:
return;
catch javassist.NotFoundException from label to label with label;
}
public void doNumCast(javassist.CtClass) throws javassist.compiler.CompileError
{
javassist.compiler.JvstCodeGen v;
char v;
javassist.CtClass v;
int v, v, v, v;
boolean v, v;
javassist.compiler.CompileError v;
v := @this: javassist.compiler.JvstCodeGen;
v := @parameter: javassist.CtClass;
v = v.<javassist.compiler.JvstCodeGen: int arrayDim>;
if v != 0 goto label;
v = v.<javassist.compiler.JvstCodeGen: int exprType>;
v = staticinvoke <javassist.compiler.JvstCodeGen: boolean isRefType(int)>(v);
if v != 0 goto label;
v = v instanceof javassist.CtPrimitiveType;
if v == 0 goto label;
v = v.<javassist.compiler.JvstCodeGen: int exprType>;
v = virtualinvoke v.<javassist.CtPrimitiveType: char getDescriptor()>();
v = staticinvoke <javassist.compiler.MemberResolver: int descToType(char)>(v);
virtualinvoke v.<javassist.compiler.JvstCodeGen: void atNumCastExpr(int,int)>(v, v);
goto label;
label:
v = new javassist.compiler.CompileError;
specialinvoke v.<javassist.compiler.CompileError: void <init>(java.lang.String)>("type mismatch");
throw v;
label:
return;
}
}