public abstract class javassist.compiler.CodeGen extends javassist.compiler.ast.Visitor implements javassist.bytecode.Opcode, javassist.compiler.TokenId
{
static final java.lang.String javaLangObject;
static final java.lang.String jvmJavaLangObject;
static final java.lang.String javaLangString;
static final java.lang.String jvmJavaLangString;
protected javassist.bytecode.Bytecode bytecode;
private int tempVar;
javassist.compiler.TypeChecker typeChecker;
protected boolean hasReturned;
public boolean inStaticMethod;
protected java.util.List breakList;
protected java.util.List continueList;
protected javassist.compiler.CodeGen$ReturnHook returnHooks;
protected int exprType;
protected int arrayDim;
protected java.lang.String className;
static final int[] binOp;
private static final int[] ifOp;
private static final int[] ifOp;
private static final int P_DOUBLE;
private static final int P_FLOAT;
private static final int P_LONG;
private static final int P_INT;
private static final int P_OTHER;
private static final int[] castOp;
public void <init>(javassist.bytecode.Bytecode)
{
int v;
javassist.compiler.CodeGen v;
javassist.bytecode.Bytecode v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.bytecode.Bytecode;
specialinvoke v.<javassist.compiler.ast.Visitor: void <init>()>();
v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode> = v;
v = (int) -1;
v.<javassist.compiler.CodeGen: int tempVar> = v;
v.<javassist.compiler.CodeGen: javassist.compiler.TypeChecker typeChecker> = null;
v.<javassist.compiler.CodeGen: boolean hasReturned> = 0;
v.<javassist.compiler.CodeGen: boolean inStaticMethod> = 0;
v.<javassist.compiler.CodeGen: java.util.List breakList> = null;
v.<javassist.compiler.CodeGen: java.util.List continueList> = null;
v.<javassist.compiler.CodeGen: javassist.compiler.CodeGen$ReturnHook returnHooks> = null;
return;
}
public void setTypeChecker(javassist.compiler.TypeChecker)
{
javassist.compiler.CodeGen v;
javassist.compiler.TypeChecker v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.TypeChecker;
v.<javassist.compiler.CodeGen: javassist.compiler.TypeChecker typeChecker> = v;
return;
}
protected static void fatal() throws javassist.compiler.CompileError
{
javassist.compiler.CompileError v;
v = new javassist.compiler.CompileError;
specialinvoke v.<javassist.compiler.CompileError: void <init>(java.lang.String)>("fatal");
throw v;
}
public static boolean is2word(int, int)
{
int v, v;
boolean v;
v := @parameter: int;
v := @parameter: int;
if v != 0 goto label;
if v == 312 goto label;
if v != 326 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public int getMaxLocals()
{
int v;
javassist.compiler.CodeGen v;
javassist.bytecode.Bytecode v;
v := @this: javassist.compiler.CodeGen;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = virtualinvoke v.<javassist.bytecode.Bytecode: int getMaxLocals()>();
return v;
}
public void setMaxLocals(int)
{
int v;
javassist.compiler.CodeGen v;
javassist.bytecode.Bytecode v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: int;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void setMaxLocals(int)>(v);
return;
}
protected void incMaxLocals(int)
{
int v;
javassist.compiler.CodeGen v;
javassist.bytecode.Bytecode v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: int;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void incMaxLocals(int)>(v);
return;
}
protected int getTempVar()
{
javassist.compiler.CodeGen v;
int v, v, v;
v := @this: javassist.compiler.CodeGen;
v = v.<javassist.compiler.CodeGen: int tempVar>;
if v >= 0 goto label;
v = virtualinvoke v.<javassist.compiler.CodeGen: int getMaxLocals()>();
v.<javassist.compiler.CodeGen: int tempVar> = v;
virtualinvoke v.<javassist.compiler.CodeGen: void incMaxLocals(int)>(2);
label:
v = v.<javassist.compiler.CodeGen: int tempVar>;
return v;
}
protected int getLocalVar(javassist.compiler.ast.Declarator)
{
int v;
javassist.compiler.CodeGen v;
javassist.compiler.ast.Declarator v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.ast.Declarator;
v = virtualinvoke v.<javassist.compiler.ast.Declarator: int getLocalVar()>();
if v >= 0 goto label;
v = virtualinvoke v.<javassist.compiler.CodeGen: int getMaxLocals()>();
virtualinvoke v.<javassist.compiler.ast.Declarator: void setLocalVar(int)>(v);
virtualinvoke v.<javassist.compiler.CodeGen: void incMaxLocals(int)>(1);
label:
return v;
}
protected abstract java.lang.String getThisName();
protected abstract java.lang.String getSuperName() throws javassist.compiler.CompileError;
protected abstract java.lang.String resolveClassName(javassist.compiler.ast.ASTList) throws javassist.compiler.CompileError;
protected abstract java.lang.String resolveClassName(java.lang.String) throws javassist.compiler.CompileError;
protected static java.lang.String toJvmArrayName(java.lang.String, int)
{
int v, v, v;
java.lang.StringBuilder v;
java.lang.String v, v;
v := @parameter: java.lang.String;
v := @parameter: int;
if v != null goto label;
return null;
label:
if v != 0 goto label;
return v;
label:
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
v = v;
label:
v = v;
v = v - 1;
if v <= 0 goto label;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(91);
goto label;
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(76);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(59);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
return v;
}
protected static java.lang.String toJvmTypeName(int, int)
{
int v, v, v;
char v;
java.lang.StringBuilder v;
java.lang.String v;
v := @parameter: int;
v := @parameter: int;
v = 73;
lookupswitch(v)
{
case 301: goto label;
case 303: goto label;
case 306: goto label;
case 312: goto label;
case 317: goto label;
case 324: goto label;
case 326: goto label;
case 334: goto label;
case 344: goto label;
default: goto label;
};
label:
v = 90;
goto label;
label:
v = 66;
goto label;
label:
v = 67;
goto label;
label:
v = 83;
goto label;
label:
v = 73;
goto label;
label:
v = 74;
goto label;
label:
v = 70;
goto label;
label:
v = 68;
goto label;
label:
v = 86;
label:
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
label:
v = v;
v = v - 1;
if v <= 0 goto label;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(91);
goto label;
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
return v;
}
public void compileExpr(javassist.compiler.ast.ASTree) throws javassist.compiler.CompileError
{
javassist.compiler.CodeGen v;
javassist.compiler.ast.ASTree v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.ast.ASTree;
virtualinvoke v.<javassist.compiler.CodeGen: void doTypeCheck(javassist.compiler.ast.ASTree)>(v);
virtualinvoke v.<javassist.compiler.ast.ASTree: void accept(javassist.compiler.ast.Visitor)>(v);
return;
}
public boolean compileBooleanExpr(boolean, javassist.compiler.ast.ASTree) throws javassist.compiler.CompileError
{
javassist.compiler.CodeGen v;
javassist.compiler.ast.ASTree v;
boolean v, v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: boolean;
v := @parameter: javassist.compiler.ast.ASTree;
virtualinvoke v.<javassist.compiler.CodeGen: void doTypeCheck(javassist.compiler.ast.ASTree)>(v);
v = specialinvoke v.<javassist.compiler.CodeGen: boolean booleanExpr(boolean,javassist.compiler.ast.ASTree)>(v, v);
return v;
}
public void doTypeCheck(javassist.compiler.ast.ASTree) throws javassist.compiler.CompileError
{
javassist.compiler.CodeGen v;
javassist.compiler.TypeChecker v, v;
javassist.compiler.ast.ASTree v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.ast.ASTree;
v = v.<javassist.compiler.CodeGen: javassist.compiler.TypeChecker typeChecker>;
if v == null goto label;
v = v.<javassist.compiler.CodeGen: javassist.compiler.TypeChecker typeChecker>;
virtualinvoke v.<javassist.compiler.ast.ASTree: void accept(javassist.compiler.ast.Visitor)>(v);
label:
return;
}
public void atASTList(javassist.compiler.ast.ASTList) throws javassist.compiler.CompileError
{
javassist.compiler.CodeGen v;
javassist.compiler.ast.ASTList v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.ast.ASTList;
staticinvoke <javassist.compiler.CodeGen: void fatal()>();
return;
}
public void atPair(javassist.compiler.ast.Pair) throws javassist.compiler.CompileError
{
javassist.compiler.ast.Pair v;
javassist.compiler.CodeGen v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.ast.Pair;
staticinvoke <javassist.compiler.CodeGen: void fatal()>();
return;
}
public void atSymbol(javassist.compiler.ast.Symbol) throws javassist.compiler.CompileError
{
javassist.compiler.CodeGen v;
javassist.compiler.ast.Symbol v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.ast.Symbol;
staticinvoke <javassist.compiler.CodeGen: void fatal()>();
return;
}
public void atFieldDecl(javassist.compiler.ast.FieldDecl) throws javassist.compiler.CompileError
{
javassist.compiler.CodeGen v;
javassist.compiler.ast.ASTree v;
javassist.compiler.ast.FieldDecl v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.ast.FieldDecl;
v = virtualinvoke v.<javassist.compiler.ast.FieldDecl: javassist.compiler.ast.ASTree getInit()>();
virtualinvoke v.<javassist.compiler.ast.ASTree: void accept(javassist.compiler.ast.Visitor)>(v);
return;
}
public void atMethodDecl(javassist.compiler.ast.MethodDecl) throws javassist.compiler.CompileError
{
javassist.compiler.ast.Declarator v;
javassist.compiler.ast.MethodDecl v;
javassist.compiler.ast.Stmnt v;
javassist.compiler.ast.ASTree v, v;
javassist.compiler.CodeGen v;
int v, v;
javassist.compiler.ast.ASTList v, v;
boolean v, v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.ast.MethodDecl;
v = virtualinvoke v.<javassist.compiler.ast.MethodDecl: javassist.compiler.ast.ASTList getModifiers()>();
virtualinvoke v.<javassist.compiler.CodeGen: void setMaxLocals(int)>(1);
label:
if v == null goto label;
v = virtualinvoke v.<javassist.compiler.ast.ASTList: javassist.compiler.ast.ASTree head()>();
v = virtualinvoke v.<javassist.compiler.ast.ASTList: javassist.compiler.ast.ASTList tail()>();
v = virtualinvoke v.<javassist.compiler.ast.Keyword: int get()>();
if v != 335 goto label;
virtualinvoke v.<javassist.compiler.CodeGen: void setMaxLocals(int)>(0);
v.<javassist.compiler.CodeGen: boolean inStaticMethod> = 1;
goto label;
label:
v = virtualinvoke v.<javassist.compiler.ast.MethodDecl: javassist.compiler.ast.ASTList getParams()>();
label:
if v == null goto label;
v = virtualinvoke v.<javassist.compiler.ast.ASTList: javassist.compiler.ast.ASTree head()>();
virtualinvoke v.<javassist.compiler.CodeGen: void atDeclarator(javassist.compiler.ast.Declarator)>(v);
v = virtualinvoke v.<javassist.compiler.ast.ASTList: javassist.compiler.ast.ASTList tail()>();
goto label;
label:
v = virtualinvoke v.<javassist.compiler.ast.MethodDecl: javassist.compiler.ast.Stmnt getBody()>();
v = virtualinvoke v.<javassist.compiler.ast.MethodDecl: boolean isConstructor()>();
v = virtualinvoke v.<javassist.compiler.ast.MethodDecl: javassist.compiler.ast.Declarator getReturn()>();
v = virtualinvoke v.<javassist.compiler.ast.Declarator: int getType()>();
if v != 344 goto label;
v = 1;
goto label;
label:
v = 0;
label:
virtualinvoke v.<javassist.compiler.CodeGen: void atMethodBody(javassist.compiler.ast.Stmnt,boolean,boolean)>(v, v, v);
return;
}
public void atMethodBody(javassist.compiler.ast.Stmnt, boolean, boolean) throws javassist.compiler.CompileError
{
javassist.compiler.ast.Stmnt v;
javassist.compiler.CodeGen v;
javassist.bytecode.Bytecode v;
boolean v, v, v, v;
javassist.compiler.CompileError v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.ast.Stmnt;
v := @parameter: boolean;
v := @parameter: boolean;
if v != null goto label;
return;
label:
if v == 0 goto label;
v = specialinvoke v.<javassist.compiler.CodeGen: boolean needsSuperCall(javassist.compiler.ast.Stmnt)>(v);
if v == 0 goto label;
virtualinvoke v.<javassist.compiler.CodeGen: void insertDefaultSuperCall()>();
label:
v.<javassist.compiler.CodeGen: boolean hasReturned> = 0;
virtualinvoke v.<javassist.compiler.ast.Stmnt: void accept(javassist.compiler.ast.Visitor)>(v);
v = v.<javassist.compiler.CodeGen: boolean hasReturned>;
if v != 0 goto label;
if v == 0 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(177);
v.<javassist.compiler.CodeGen: boolean hasReturned> = 1;
goto label;
label:
v = new javassist.compiler.CompileError;
specialinvoke v.<javassist.compiler.CompileError: void <init>(java.lang.String)>("no return statement");
throw v;
label:
return;
}
private boolean needsSuperCall(javassist.compiler.ast.Stmnt) throws javassist.compiler.CompileError
{
javassist.compiler.ast.Stmnt v;
javassist.compiler.ast.ASTree v, v, v;
javassist.compiler.CodeGen v;
int v, v, v, v;
boolean v, v, v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.ast.Stmnt;
v = virtualinvoke v.<javassist.compiler.ast.Stmnt: int getOperator()>();
if v != 66 goto label;
v = virtualinvoke v.<javassist.compiler.ast.Stmnt: javassist.compiler.ast.ASTree head()>();
label:
if v == null goto label;
v = virtualinvoke v.<javassist.compiler.ast.Stmnt: int getOperator()>();
if v != 69 goto label;
v = virtualinvoke v.<javassist.compiler.ast.Stmnt: javassist.compiler.ast.ASTree head()>();
if v == null goto label;
v = v instanceof javassist.compiler.ast.Expr;
if v == 0 goto label;
v = virtualinvoke v.<javassist.compiler.ast.Expr: int getOperator()>();
if v != 67 goto label;
v = virtualinvoke v.<javassist.compiler.ast.Expr: javassist.compiler.ast.ASTree head()>();
v = v instanceof javassist.compiler.ast.Keyword;
if v == 0 goto label;
v = virtualinvoke v.<javassist.compiler.ast.Keyword: int get()>();
if v == 339 goto label;
if v == 336 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
label:
return 1;
}
protected abstract void insertDefaultSuperCall() throws javassist.compiler.CompileError;
public void atStmnt(javassist.compiler.ast.Stmnt) throws javassist.compiler.CompileError
{
javassist.compiler.ast.Stmnt v;
javassist.compiler.CodeGen v;
int v, v, v, v, v;
java.lang.String v;
boolean v, v, v, v, v;
javassist.compiler.CompileError v;
javassist.compiler.ast.ASTree v, v, v;
javassist.bytecode.Bytecode v, v;
javassist.compiler.ast.ASTList v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.ast.Stmnt;
if v != null goto label;
return;
label:
v = virtualinvoke v.<javassist.compiler.ast.Stmnt: int getOperator()>();
if v != 69 goto label;
v = virtualinvoke v.<javassist.compiler.ast.Stmnt: javassist.compiler.ast.ASTree getLeft()>();
virtualinvoke v.<javassist.compiler.CodeGen: void doTypeCheck(javassist.compiler.ast.ASTree)>(v);
v = v instanceof javassist.compiler.ast.AssignExpr;
if v == 0 goto label;
virtualinvoke v.<javassist.compiler.CodeGen: void atAssignExpr(javassist.compiler.ast.AssignExpr,boolean)>(v, 0);
goto label;
label:
v = staticinvoke <javassist.compiler.CodeGen: boolean isPlusPlusExpr(javassist.compiler.ast.ASTree)>(v);
if v == 0 goto label;
v = virtualinvoke v.<javassist.compiler.ast.Expr: int getOperator()>();
v = virtualinvoke v.<javassist.compiler.ast.Expr: javassist.compiler.ast.ASTree oprand1()>();
specialinvoke v.<javassist.compiler.CodeGen: void atPlusPlus(int,javassist.compiler.ast.ASTree,javassist.compiler.ast.Expr,boolean)>(v, v, v, 0);
goto label;
label:
virtualinvoke v.<javassist.compiler.ast.ASTree: void accept(javassist.compiler.ast.Visitor)>(v);
v = v.<javassist.compiler.CodeGen: int exprType>;
v = v.<javassist.compiler.CodeGen: int arrayDim>;
v = staticinvoke <javassist.compiler.CodeGen: boolean is2word(int,int)>(v, v);
if v == 0 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(88);
goto label;
label:
v = v.<javassist.compiler.CodeGen: int exprType>;
if v == 344 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(87);
goto label;
label:
if v == 68 goto label;
if v != 66 goto label;
label:
v = v;
label:
if v == null goto label;
v = virtualinvoke v.<javassist.compiler.ast.ASTList: javassist.compiler.ast.ASTree head()>();
v = virtualinvoke v.<javassist.compiler.ast.ASTList: javassist.compiler.ast.ASTList tail()>();
if v == null goto label;
virtualinvoke v.<javassist.compiler.ast.ASTree: void accept(javassist.compiler.ast.Visitor)>(v);
goto label;
label:
if v != 320 goto label;
specialinvoke v.<javassist.compiler.CodeGen: void atIfStmnt(javassist.compiler.ast.Stmnt)>(v);
goto label;
label:
if v == 346 goto label;
if v != 311 goto label;
label:
if v != 346 goto label;
v = 1;
goto label;
label:
v = 0;
label:
specialinvoke v.<javassist.compiler.CodeGen: void atWhileStmnt(javassist.compiler.ast.Stmnt,boolean)>(v, v);
goto label;
label:
if v != 318 goto label;
specialinvoke v.<javassist.compiler.CodeGen: void atForStmnt(javassist.compiler.ast.Stmnt)>(v);
goto label;
label:
if v == 302 goto label;
if v != 309 goto label;
label:
if v != 302 goto label;
v = 1;
goto label;
label:
v = 0;
label:
specialinvoke v.<javassist.compiler.CodeGen: void atBreakStmnt(javassist.compiler.ast.Stmnt,boolean)>(v, v);
goto label;
label:
if v != 333 goto label;
virtualinvoke v.<javassist.compiler.CodeGen: void atReturnStmnt(javassist.compiler.ast.Stmnt)>(v);
goto label;
label:
if v != 340 goto label;
specialinvoke v.<javassist.compiler.CodeGen: void atThrowStmnt(javassist.compiler.ast.Stmnt)>(v);
goto label;
label:
if v != 343 goto label;
virtualinvoke v.<javassist.compiler.CodeGen: void atTryStmnt(javassist.compiler.ast.Stmnt)>(v);
goto label;
label:
if v != 337 goto label;
specialinvoke v.<javassist.compiler.CodeGen: void atSwitchStmnt(javassist.compiler.ast.Stmnt)>(v);
goto label;
label:
if v != 338 goto label;
specialinvoke v.<javassist.compiler.CodeGen: void atSyncStmnt(javassist.compiler.ast.Stmnt)>(v);
goto label;
label:
v.<javassist.compiler.CodeGen: boolean hasReturned> = 0;
v = new javassist.compiler.CompileError;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(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[])>("sorry, not supported statement: TokenId \u0001");
specialinvoke v.<javassist.compiler.CompileError: void <init>(java.lang.String)>(v);
throw v;
label:
return;
}
private void atIfStmnt(javassist.compiler.ast.Stmnt) throws javassist.compiler.CompileError
{
javassist.compiler.ast.Stmnt v;
javassist.compiler.CodeGen v;
int v, v, v, v, v, v, v, v;
boolean v, v, v, v;
javassist.compiler.ast.ASTree v, v, v;
javassist.bytecode.Bytecode v, v, v, v, v, v, v, v, v;
javassist.compiler.ast.ASTList v, v, v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.ast.Stmnt;
v = virtualinvoke v.<javassist.compiler.ast.Stmnt: javassist.compiler.ast.ASTree head()>();
v = virtualinvoke v.<javassist.compiler.ast.Stmnt: javassist.compiler.ast.ASTList tail()>();
v = virtualinvoke v.<javassist.compiler.ast.ASTList: javassist.compiler.ast.ASTree head()>();
v = virtualinvoke v.<javassist.compiler.ast.Stmnt: javassist.compiler.ast.ASTList tail()>();
v = virtualinvoke v.<javassist.compiler.ast.ASTList: javassist.compiler.ast.ASTList tail()>();
v = virtualinvoke v.<javassist.compiler.ast.ASTList: javassist.compiler.ast.ASTree head()>();
v = virtualinvoke v.<javassist.compiler.CodeGen: boolean compileBooleanExpr(boolean,javassist.compiler.ast.ASTree)>(0, v);
if v == 0 goto label;
v.<javassist.compiler.CodeGen: boolean hasReturned> = 0;
if v == null goto label;
virtualinvoke v.<javassist.compiler.ast.Stmnt: void accept(javassist.compiler.ast.Visitor)>(v);
label:
return;
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = virtualinvoke v.<javassist.bytecode.Bytecode: int currentPc()>();
v = 0;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addIndex(int)>(0);
v.<javassist.compiler.CodeGen: boolean hasReturned> = 0;
if v == null goto label;
virtualinvoke v.<javassist.compiler.ast.Stmnt: void accept(javassist.compiler.ast.Visitor)>(v);
label:
v = v.<javassist.compiler.CodeGen: boolean hasReturned>;
v.<javassist.compiler.CodeGen: boolean hasReturned> = 0;
if v == null goto label;
if v != 0 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(167);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = virtualinvoke v.<javassist.bytecode.Bytecode: int currentPc()>();
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addIndex(int)>(0);
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = virtualinvoke v.<javassist.bytecode.Bytecode: int currentPc()>();
v = v - v;
v = v + 1;
virtualinvoke v.<javassist.bytecode.Bytecode: void write16bit(int,int)>(v, v);
if v == null goto label;
virtualinvoke v.<javassist.compiler.ast.Stmnt: void accept(javassist.compiler.ast.Visitor)>(v);
if v != 0 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = virtualinvoke v.<javassist.bytecode.Bytecode: int currentPc()>();
v = v - v;
v = v + 1;
virtualinvoke v.<javassist.bytecode.Bytecode: void write16bit(int,int)>(v, v);
label:
if v == 0 goto label;
v = v.<javassist.compiler.CodeGen: boolean hasReturned>;
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v.<javassist.compiler.CodeGen: boolean hasReturned> = v;
label:
return;
}
private void atWhileStmnt(javassist.compiler.ast.Stmnt, boolean) throws javassist.compiler.CompileError
{
javassist.compiler.CodeGen v;
boolean v, v;
java.util.List v, v, v, v, v;
javassist.compiler.ast.Stmnt v;
java.util.ArrayList v, v;
int v, v, v, v, v, v, v, v, v;
javassist.compiler.ast.ASTree v;
javassist.bytecode.Bytecode v, v, v, v, v, v, v, v, v, v;
javassist.compiler.ast.ASTList v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.ast.Stmnt;
v := @parameter: boolean;
v = v.<javassist.compiler.CodeGen: java.util.List breakList>;
v = v.<javassist.compiler.CodeGen: java.util.List continueList>;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v.<javassist.compiler.CodeGen: java.util.List breakList> = v;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v.<javassist.compiler.CodeGen: java.util.List continueList> = v;
v = virtualinvoke v.<javassist.compiler.ast.Stmnt: javassist.compiler.ast.ASTree head()>();
v = virtualinvoke v.<javassist.compiler.ast.Stmnt: javassist.compiler.ast.ASTList tail()>();
v = 0;
if v == 0 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(167);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = virtualinvoke v.<javassist.bytecode.Bytecode: int currentPc()>();
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addIndex(int)>(0);
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = virtualinvoke v.<javassist.bytecode.Bytecode: int currentPc()>();
if v == null goto label;
virtualinvoke v.<javassist.compiler.ast.Stmnt: void accept(javassist.compiler.ast.Visitor)>(v);
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = virtualinvoke v.<javassist.bytecode.Bytecode: int currentPc()>();
if v == 0 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = v - v;
v = v + 1;
virtualinvoke v.<javassist.bytecode.Bytecode: void write16bit(int,int)>(v, v);
label:
v = virtualinvoke v.<javassist.compiler.CodeGen: boolean compileBooleanExpr(boolean,javassist.compiler.ast.ASTree)>(1, v);
if v == 0 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(167);
v = v.<javassist.compiler.CodeGen: java.util.List breakList>;
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = virtualinvoke v.<javassist.bytecode.Bytecode: int currentPc()>();
v = v - v;
v = v + 1;
virtualinvoke v.<javassist.bytecode.Bytecode: void addIndex(int)>(v);
v = v.<javassist.compiler.CodeGen: java.util.List breakList>;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = virtualinvoke v.<javassist.bytecode.Bytecode: int currentPc()>();
virtualinvoke v.<javassist.compiler.CodeGen: void patchGoto(java.util.List,int)>(v, v);
v = v.<javassist.compiler.CodeGen: java.util.List continueList>;
virtualinvoke v.<javassist.compiler.CodeGen: void patchGoto(java.util.List,int)>(v, v);
v.<javassist.compiler.CodeGen: java.util.List continueList> = v;
v.<javassist.compiler.CodeGen: java.util.List breakList> = v;
v.<javassist.compiler.CodeGen: boolean hasReturned> = v;
return;
}
protected void patchGoto(java.util.List, int)
{
java.util.Iterator v;
javassist.compiler.CodeGen v;
java.util.List v;
javassist.bytecode.Bytecode v;
int v, v, v, v;
java.lang.Object v;
boolean v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: java.util.List;
v := @parameter: int;
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = v - v;
v = v + 1;
virtualinvoke v.<javassist.bytecode.Bytecode: void write16bit(int,int)>(v, v);
goto label;
label:
return;
}
private void atForStmnt(javassist.compiler.ast.Stmnt) throws javassist.compiler.CompileError
{
javassist.compiler.CodeGen v;
boolean v;
java.util.List v, v, v, v;
javassist.compiler.ast.Stmnt v;
java.util.ArrayList v, v;
int v, v, v, v, v, v, v, v, v;
javassist.compiler.ast.ASTree v, v, v;
javassist.bytecode.Bytecode v, v, v, v, v, v, v, v, v;
javassist.compiler.ast.ASTList v, v, v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.ast.Stmnt;
v = v.<javassist.compiler.CodeGen: java.util.List breakList>;
v = v.<javassist.compiler.CodeGen: java.util.List continueList>;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v.<javassist.compiler.CodeGen: java.util.List breakList> = v;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v.<javassist.compiler.CodeGen: java.util.List continueList> = v;
v = virtualinvoke v.<javassist.compiler.ast.Stmnt: javassist.compiler.ast.ASTree head()>();
v = virtualinvoke v.<javassist.compiler.ast.Stmnt: javassist.compiler.ast.ASTList tail()>();
v = virtualinvoke v.<javassist.compiler.ast.ASTList: javassist.compiler.ast.ASTree head()>();
v = virtualinvoke v.<javassist.compiler.ast.ASTList: javassist.compiler.ast.ASTList tail()>();
v = virtualinvoke v.<javassist.compiler.ast.ASTList: javassist.compiler.ast.ASTree head()>();
v = virtualinvoke v.<javassist.compiler.ast.ASTList: javassist.compiler.ast.ASTList tail()>();
if v == null goto label;
virtualinvoke v.<javassist.compiler.ast.Stmnt: void accept(javassist.compiler.ast.Visitor)>(v);
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = virtualinvoke v.<javassist.bytecode.Bytecode: int currentPc()>();
v = 0;
if v == null goto label;
v = virtualinvoke v.<javassist.compiler.CodeGen: boolean compileBooleanExpr(boolean,javassist.compiler.ast.ASTree)>(0, v);
if v == 0 goto label;
v.<javassist.compiler.CodeGen: java.util.List continueList> = v;
v.<javassist.compiler.CodeGen: java.util.List breakList> = v;
v.<javassist.compiler.CodeGen: boolean hasReturned> = 0;
return;
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = virtualinvoke v.<javassist.bytecode.Bytecode: int currentPc()>();
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addIndex(int)>(0);
label:
if v == null goto label;
virtualinvoke v.<javassist.compiler.ast.Stmnt: void accept(javassist.compiler.ast.Visitor)>(v);
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = virtualinvoke v.<javassist.bytecode.Bytecode: int currentPc()>();
if v == null goto label;
virtualinvoke v.<javassist.compiler.ast.Stmnt: void accept(javassist.compiler.ast.Visitor)>(v);
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(167);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = virtualinvoke v.<javassist.bytecode.Bytecode: int currentPc()>();
v = v - v;
v = v + 1;
virtualinvoke v.<javassist.bytecode.Bytecode: void addIndex(int)>(v);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = virtualinvoke v.<javassist.bytecode.Bytecode: int currentPc()>();
if v == null goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = v - v;
v = v + 1;
virtualinvoke v.<javassist.bytecode.Bytecode: void write16bit(int,int)>(v, v);
label:
v = v.<javassist.compiler.CodeGen: java.util.List breakList>;
virtualinvoke v.<javassist.compiler.CodeGen: void patchGoto(java.util.List,int)>(v, v);
v = v.<javassist.compiler.CodeGen: java.util.List continueList>;
virtualinvoke v.<javassist.compiler.CodeGen: void patchGoto(java.util.List,int)>(v, v);
v.<javassist.compiler.CodeGen: java.util.List continueList> = v;
v.<javassist.compiler.CodeGen: java.util.List breakList> = v;
v.<javassist.compiler.CodeGen: boolean hasReturned> = 0;
return;
}
private void atSwitchStmnt(javassist.compiler.ast.Stmnt) throws javassist.compiler.CompileError
{
javassist.compiler.TypeChecker v, v, v, v;
javassist.compiler.ast.Stmnt v;
long v, v, v, v, v, v;
java.util.ArrayList v, v;
java.lang.String v, v;
javassist.compiler.ast.ASTree v, v, v, v, v, v;
javassist.bytecode.Bytecode v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
javassist.compiler.CodeGen v;
boolean v, v, v, v;
java.util.List v, v, v;
long[] v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.util.Iterator v;
java.lang.Object v;
javassist.compiler.ast.ASTList v, v, v, v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.ast.Stmnt;
v = 0;
v = v.<javassist.compiler.CodeGen: javassist.compiler.TypeChecker typeChecker>;
if v == null goto label;
v = virtualinvoke v.<javassist.compiler.ast.Stmnt: javassist.compiler.ast.ASTree head()>();
virtualinvoke v.<javassist.compiler.CodeGen: void doTypeCheck(javassist.compiler.ast.ASTree)>(v);
v = v.<javassist.compiler.CodeGen: javassist.compiler.TypeChecker typeChecker>;
v = v.<javassist.compiler.TypeChecker: int exprType>;
if v != 307 goto label;
v = v.<javassist.compiler.CodeGen: javassist.compiler.TypeChecker typeChecker>;
v = v.<javassist.compiler.TypeChecker: int arrayDim>;
if v != 0 goto label;
v = "java/lang/String";
v = v.<javassist.compiler.CodeGen: javassist.compiler.TypeChecker typeChecker>;
v = v.<javassist.compiler.TypeChecker: java.lang.String className>;
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:
v = v;
label:
v = virtualinvoke v.<javassist.compiler.ast.Stmnt: javassist.compiler.ast.ASTree head()>();
virtualinvoke v.<javassist.compiler.CodeGen: void compileExpr(javassist.compiler.ast.ASTree)>(v);
v = (int) -1;
v = v;
if v == 0 goto label;
v = virtualinvoke v.<javassist.compiler.CodeGen: int getMaxLocals()>();
virtualinvoke v.<javassist.compiler.CodeGen: void incMaxLocals(int)>(1);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addAstore(int)>(v);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addAload(int)>(v);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addInvokevirtual(java.lang.String,java.lang.String,java.lang.String)>("java/lang/String", "hashCode", "()I");
label:
v = v.<javassist.compiler.CodeGen: java.util.List breakList>;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v.<javassist.compiler.CodeGen: java.util.List breakList> = v;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = virtualinvoke v.<javassist.bytecode.Bytecode: int currentPc()>();
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(171);
v = v & 3;
v = 3 - v;
label:
v = v;
v = v - 1;
if v <= 0 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void add(int)>(0);
goto label;
label:
v = virtualinvoke v.<javassist.compiler.ast.Stmnt: javassist.compiler.ast.ASTList tail()>();
v = 0;
v = v;
label:
if v == null goto label;
v = virtualinvoke v.<javassist.compiler.ast.ASTList: javassist.compiler.ast.ASTree head()>();
v = virtualinvoke v.<javassist.compiler.ast.Stmnt: int getOperator()>();
if v != 304 goto label;
v = v + 1;
label:
v = virtualinvoke v.<javassist.compiler.ast.ASTList: javassist.compiler.ast.ASTList tail()>();
goto label;
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = virtualinvoke v.<javassist.bytecode.Bytecode: int currentPc()>();
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addGap(int)>(4);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void add32bit(int)>(v);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = v * 8;
virtualinvoke v.<javassist.bytecode.Bytecode: void addGap(int)>(v);
v = newarray (long)[v];
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = 0;
v = (int) -1;
v = v;
v = v;
label:
if v == null goto label;
v = virtualinvoke v.<javassist.compiler.ast.ASTList: javassist.compiler.ast.ASTree head()>();
v = virtualinvoke v.<javassist.compiler.ast.Stmnt: int getOperator()>();
if v != 310 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = virtualinvoke v.<javassist.bytecode.Bytecode: int currentPc()>();
goto label;
label:
if v == 304 goto label;
staticinvoke <javassist.compiler.CodeGen: void fatal()>();
goto label;
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = virtualinvoke v.<javassist.bytecode.Bytecode: int currentPc()>();
if v == 0 goto label;
v = virtualinvoke v.<javassist.compiler.ast.Stmnt: javassist.compiler.ast.ASTree head()>();
v = specialinvoke v.<javassist.compiler.CodeGen: int computeStringLabel(javassist.compiler.ast.ASTree,int,java.util.List)>(v, v, v);
goto label;
label:
v = virtualinvoke v.<javassist.compiler.ast.Stmnt: javassist.compiler.ast.ASTree head()>();
specialinvoke v.<javassist.compiler.CodeGen: int computeLabel(javassist.compiler.ast.ASTree)>(v);
label:
v = v;
v = v + 1;
v = v << 32;
v = v - v;
v = v & -1L;
v = v + v;
v[v] = v;
label:
v.<javassist.compiler.CodeGen: boolean hasReturned> = 0;
v = virtualinvoke v.<javassist.compiler.ast.Stmnt: javassist.compiler.ast.ASTList tail()>();
virtualinvoke v.<javassist.compiler.ast.Stmnt: void accept(javassist.compiler.ast.Visitor)>(v);
v = virtualinvoke v.<javassist.compiler.ast.ASTList: javassist.compiler.ast.ASTList tail()>();
goto label;
label:
staticinvoke <java.util.Arrays: void sort(long[])>(v);
v = v + 8;
v = 0;
label:
if v >= v goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = v[v];
v = v >>> 32;
virtualinvoke v.<javassist.bytecode.Bytecode: void write32bit(int,int)>(v, v);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = v + 4;
v = v[v];
virtualinvoke v.<javassist.bytecode.Bytecode: void write32bit(int,int)>(v, v);
v = v + 8;
v = v + 1;
goto label;
label:
if v < 0 goto label;
v = v.<javassist.compiler.CodeGen: java.util.List breakList>;
v = interfaceinvoke v.<java.util.List: int size()>();
if v <= 0 goto label;
label:
v.<javassist.compiler.CodeGen: boolean hasReturned> = 0;
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = virtualinvoke v.<javassist.bytecode.Bytecode: int currentPc()>();
if v >= 0 goto label;
v = v;
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = v - v;
virtualinvoke v.<javassist.bytecode.Bytecode: void write32bit(int,int)>(v, v);
v = virtualinvoke v.<java.util.ArrayList: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = v - v;
v = v + 1;
virtualinvoke v.<javassist.bytecode.Bytecode: void write16bit(int,int)>(v, v);
goto label;
label:
v = v.<javassist.compiler.CodeGen: java.util.List breakList>;
virtualinvoke v.<javassist.compiler.CodeGen: void patchGoto(java.util.List,int)>(v, v);
v.<javassist.compiler.CodeGen: java.util.List breakList> = v;
return;
}
private int computeLabel(javassist.compiler.ast.ASTree) throws javassist.compiler.CompileError
{
javassist.compiler.CodeGen v;
long v;
javassist.compiler.ast.ASTree v, v;
boolean v;
javassist.compiler.CompileError v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.ast.ASTree;
virtualinvoke v.<javassist.compiler.CodeGen: void doTypeCheck(javassist.compiler.ast.ASTree)>(v);
v = staticinvoke <javassist.compiler.TypeChecker: javassist.compiler.ast.ASTree stripPlusExpr(javassist.compiler.ast.ASTree)>(v);
v = v instanceof javassist.compiler.ast.IntConst;
if v == 0 goto label;
v = virtualinvoke v.<javassist.compiler.ast.IntConst: long get()>();
return v;
label:
v = new javassist.compiler.CompileError;
specialinvoke v.<javassist.compiler.CompileError: void <init>(java.lang.String)>("bad case label");
throw v;
}
private int computeStringLabel(javassist.compiler.ast.ASTree, int, java.util.List) throws javassist.compiler.CompileError
{
java.lang.Integer v;
javassist.compiler.CodeGen v;
int v, v, v;
java.lang.String v;
boolean v;
javassist.compiler.CompileError v;
javassist.compiler.ast.ASTree v, v;
java.util.List v;
javassist.bytecode.Bytecode v, v, v, v, v, v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.ast.ASTree;
v := @parameter: int;
v := @parameter: java.util.List;
virtualinvoke v.<javassist.compiler.CodeGen: void doTypeCheck(javassist.compiler.ast.ASTree)>(v);
v = staticinvoke <javassist.compiler.TypeChecker: javassist.compiler.ast.ASTree stripPlusExpr(javassist.compiler.ast.ASTree)>(v);
v = v instanceof javassist.compiler.ast.StringL;
if v == 0 goto label;
v = virtualinvoke v.<javassist.compiler.ast.StringL: java.lang.String get()>();
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addAload(int)>(v);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addLdc(java.lang.String)>(v);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addInvokevirtual(java.lang.String,java.lang.String,java.lang.String)>("java/lang/String", "equals", "(Ljava/lang/Object;)Z");
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(153);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = virtualinvoke v.<javassist.bytecode.Bytecode: int currentPc()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addIndex(int)>(0);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = virtualinvoke v.<java.lang.String: int hashCode()>();
return v;
label:
v = new javassist.compiler.CompileError;
specialinvoke v.<javassist.compiler.CompileError: void <init>(java.lang.String)>("bad case label");
throw v;
}
private void atBreakStmnt(javassist.compiler.ast.Stmnt, boolean) throws javassist.compiler.CompileError
{
javassist.compiler.ast.Stmnt v;
javassist.compiler.ast.ASTree v;
java.lang.Integer v;
javassist.compiler.CodeGen v;
java.util.List v, v;
javassist.bytecode.Bytecode v, v, v;
int v;
boolean v;
javassist.compiler.CompileError v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.ast.Stmnt;
v := @parameter: boolean;
v = virtualinvoke v.<javassist.compiler.ast.Stmnt: javassist.compiler.ast.ASTree head()>();
if v == null goto label;
v = new javassist.compiler.CompileError;
specialinvoke v.<javassist.compiler.CompileError: void <init>(java.lang.String)>("sorry, not support labeled break or continue");
throw v;
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(167);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = virtualinvoke v.<javassist.bytecode.Bytecode: int currentPc()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addIndex(int)>(0);
if v == 0 goto label;
v = v.<javassist.compiler.CodeGen: java.util.List breakList>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v = v.<javassist.compiler.CodeGen: java.util.List continueList>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
return;
}
protected void atReturnStmnt(javassist.compiler.ast.Stmnt) throws javassist.compiler.CompileError
{
javassist.compiler.CodeGen v;
javassist.compiler.ast.Stmnt v;
javassist.compiler.ast.ASTree v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.ast.Stmnt;
v = virtualinvoke v.<javassist.compiler.ast.Stmnt: javassist.compiler.ast.ASTree getLeft()>();
virtualinvoke v.<javassist.compiler.CodeGen: void atReturnStmnt2(javassist.compiler.ast.ASTree)>(v);
return;
}
protected final void atReturnStmnt2(javassist.compiler.ast.ASTree) throws javassist.compiler.CompileError
{
javassist.compiler.CodeGen$ReturnHook v;
javassist.compiler.ast.ASTree v;
javassist.compiler.CodeGen v;
short v;
javassist.bytecode.Bytecode v, v;
int v, v;
boolean v, v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.ast.ASTree;
if v != null goto label;
v = 177;
goto label;
label:
virtualinvoke v.<javassist.compiler.CodeGen: void compileExpr(javassist.compiler.ast.ASTree)>(v);
v = v.<javassist.compiler.CodeGen: int arrayDim>;
if v <= 0 goto label;
v = 176;
goto label;
label:
v = v.<javassist.compiler.CodeGen: int exprType>;
if v != 312 goto label;
v = 175;
goto label;
label:
if v != 317 goto label;
v = 174;
goto label;
label:
if v != 326 goto label;
v = 173;
goto label;
label:
v = staticinvoke <javassist.compiler.CodeGen: boolean isRefType(int)>(v);
if v == 0 goto label;
v = 176;
goto label;
label:
v = 172;
label:
v = v.<javassist.compiler.CodeGen: javassist.compiler.CodeGen$ReturnHook returnHooks>;
label:
if v == null goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = virtualinvoke v.<javassist.compiler.CodeGen$ReturnHook: boolean doit(javassist.bytecode.Bytecode,int)>(v, v);
if v == 0 goto label;
v.<javassist.compiler.CodeGen: boolean hasReturned> = 1;
return;
label:
v = v.<javassist.compiler.CodeGen$ReturnHook: javassist.compiler.CodeGen$ReturnHook next>;
goto label;
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(v);
v.<javassist.compiler.CodeGen: boolean hasReturned> = 1;
return;
}
private void atThrowStmnt(javassist.compiler.ast.Stmnt) throws javassist.compiler.CompileError
{
javassist.compiler.CodeGen v;
javassist.bytecode.Bytecode v;
int v, v;
javassist.compiler.ast.Stmnt v;
javassist.compiler.ast.ASTree v;
javassist.compiler.CompileError v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.ast.Stmnt;
v = virtualinvoke v.<javassist.compiler.ast.Stmnt: javassist.compiler.ast.ASTree getLeft()>();
virtualinvoke v.<javassist.compiler.CodeGen: void compileExpr(javassist.compiler.ast.ASTree)>(v);
v = v.<javassist.compiler.CodeGen: int exprType>;
if v != 307 goto label;
v = v.<javassist.compiler.CodeGen: int arrayDim>;
if v <= 0 goto label;
label:
v = new javassist.compiler.CompileError;
specialinvoke v.<javassist.compiler.CompileError: void <init>(java.lang.String)>("bad throw statement");
throw v;
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(191);
v.<javassist.compiler.CodeGen: boolean hasReturned> = 1;
return;
}
protected void atTryStmnt(javassist.compiler.ast.Stmnt) throws javassist.compiler.CompileError
{
javassist.compiler.CodeGen v;
javassist.compiler.ast.Stmnt v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.ast.Stmnt;
v.<javassist.compiler.CodeGen: boolean hasReturned> = 0;
return;
}
private void atSyncStmnt(javassist.compiler.ast.Stmnt) throws javassist.compiler.CompileError
{
javassist.compiler.ast.Stmnt v;
javassist.compiler.CodeGen v;
javassist.compiler.CodeGen$1 v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v;
boolean v, v;
javassist.compiler.CompileError v, v;
javassist.compiler.ast.ASTree v;
java.util.List v, v, v, v;
javassist.bytecode.Bytecode v;
javassist.compiler.ast.ASTList v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.ast.Stmnt;
v = v.<javassist.compiler.CodeGen: java.util.List breakList>;
v = staticinvoke <javassist.compiler.CodeGen: int getListSize(java.util.List)>(v);
v = v.<javassist.compiler.CodeGen: java.util.List continueList>;
v = staticinvoke <javassist.compiler.CodeGen: int getListSize(java.util.List)>(v);
v = virtualinvoke v.<javassist.compiler.ast.Stmnt: javassist.compiler.ast.ASTree head()>();
virtualinvoke v.<javassist.compiler.CodeGen: void compileExpr(javassist.compiler.ast.ASTree)>(v);
v = v.<javassist.compiler.CodeGen: int exprType>;
if v == 307 goto label;
v = v.<javassist.compiler.CodeGen: int arrayDim>;
if v != 0 goto label;
v = new javassist.compiler.CompileError;
specialinvoke v.<javassist.compiler.CompileError: void <init>(java.lang.String)>("bad type expr for synchronized block");
throw v;
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = virtualinvoke v.<javassist.bytecode.Bytecode: int getMaxLocals()>();
virtualinvoke v.<javassist.bytecode.Bytecode: void incMaxLocals(int)>(1);
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(89);
virtualinvoke v.<javassist.bytecode.Bytecode: void addAstore(int)>(v);
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(194);
v = new javassist.compiler.CodeGen$1;
specialinvoke v.<javassist.compiler.CodeGen$1: void <init>(javassist.compiler.CodeGen,javassist.compiler.CodeGen,int)>(v, v, v);
v = virtualinvoke v.<javassist.bytecode.Bytecode: int currentPc()>();
v = virtualinvoke v.<javassist.compiler.ast.Stmnt: javassist.compiler.ast.ASTList tail()>();
if v == null goto label;
virtualinvoke v.<javassist.compiler.ast.Stmnt: void accept(javassist.compiler.ast.Visitor)>(v);
label:
v = virtualinvoke v.<javassist.bytecode.Bytecode: int currentPc()>();
v = 0;
v = v.<javassist.compiler.CodeGen: boolean hasReturned>;
if v != 0 goto label;
virtualinvoke v.<javassist.compiler.CodeGen$ReturnHook: boolean doit(javassist.bytecode.Bytecode,int)>(v, 0);
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(167);
v = virtualinvoke v.<javassist.bytecode.Bytecode: int currentPc()>();
virtualinvoke v.<javassist.bytecode.Bytecode: void addIndex(int)>(0);
label:
if v >= v goto label;
v = virtualinvoke v.<javassist.bytecode.Bytecode: int currentPc()>();
virtualinvoke v.<javassist.compiler.CodeGen$ReturnHook: boolean doit(javassist.bytecode.Bytecode,int)>(v, 0);
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(191);
virtualinvoke v.<javassist.bytecode.Bytecode: void addExceptionHandler(int,int,int,int)>(v, v, v, 0);
label:
v = v.<javassist.compiler.CodeGen: boolean hasReturned>;
if v != 0 goto label;
v = virtualinvoke v.<javassist.bytecode.Bytecode: int currentPc()>();
v = v - v;
v = v + 1;
virtualinvoke v.<javassist.bytecode.Bytecode: void write16bit(int,int)>(v, v);
label:
virtualinvoke v.<javassist.compiler.CodeGen$ReturnHook: void remove(javassist.compiler.CodeGen)>(v);
v = v.<javassist.compiler.CodeGen: java.util.List breakList>;
v = staticinvoke <javassist.compiler.CodeGen: int getListSize(java.util.List)>(v);
if v != v goto label;
v = v.<javassist.compiler.CodeGen: java.util.List continueList>;
v = staticinvoke <javassist.compiler.CodeGen: int getListSize(java.util.List)>(v);
if v == v goto label;
label:
v = new javassist.compiler.CompileError;
specialinvoke v.<javassist.compiler.CompileError: void <init>(java.lang.String)>("sorry, cannot break/continue in synchronized block");
throw v;
label:
return;
}
private static int getListSize(java.util.List)
{
int v;
java.util.List v;
v := @parameter: java.util.List;
if v != null goto label;
v = 0;
goto label;
label:
v = interfaceinvoke v.<java.util.List: int size()>();
label:
return v;
}
private static boolean isPlusPlusExpr(javassist.compiler.ast.ASTree)
{
int v;
javassist.compiler.ast.ASTree v;
boolean v, v;
v := @parameter: javassist.compiler.ast.ASTree;
v = v instanceof javassist.compiler.ast.Expr;
if v == 0 goto label;
v = virtualinvoke v.<javassist.compiler.ast.Expr: int getOperator()>();
if v == 362 goto label;
if v != 363 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
label:
return 0;
}
public void atDeclarator(javassist.compiler.ast.Declarator) throws javassist.compiler.CompileError
{
javassist.compiler.ast.Declarator v;
javassist.compiler.ast.ASTree v;
javassist.compiler.CodeGen v;
byte v;
int v, v, v;
java.lang.String v, v;
boolean v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.ast.Declarator;
v = virtualinvoke v.<javassist.compiler.CodeGen: int getMaxLocals()>();
virtualinvoke v.<javassist.compiler.ast.Declarator: void setLocalVar(int)>(v);
v = virtualinvoke v.<javassist.compiler.ast.Declarator: java.lang.String getClassName()>();
v = virtualinvoke v.<javassist.compiler.CodeGen: java.lang.String resolveClassName(java.lang.String)>(v);
virtualinvoke v.<javassist.compiler.ast.Declarator: void setClassName(java.lang.String)>(v);
v = virtualinvoke v.<javassist.compiler.ast.Declarator: int getType()>();
v = virtualinvoke v.<javassist.compiler.ast.Declarator: int getArrayDim()>();
v = staticinvoke <javassist.compiler.CodeGen: boolean is2word(int,int)>(v, v);
if v == 0 goto label;
v = 2;
goto label;
label:
v = 1;
label:
virtualinvoke v.<javassist.compiler.CodeGen: void incMaxLocals(int)>(v);
v = virtualinvoke v.<javassist.compiler.ast.Declarator: javassist.compiler.ast.ASTree getInitializer()>();
if v == null goto label;
virtualinvoke v.<javassist.compiler.CodeGen: void doTypeCheck(javassist.compiler.ast.ASTree)>(v);
specialinvoke v.<javassist.compiler.CodeGen: void atVariableAssign(javassist.compiler.ast.Expr,int,javassist.compiler.ast.Variable,javassist.compiler.ast.Declarator,javassist.compiler.ast.ASTree,boolean)>(null, 61, null, v, v, 0);
label:
return;
}
public abstract void atNewExpr(javassist.compiler.ast.NewExpr) throws javassist.compiler.CompileError;
public abstract void atArrayInit(javassist.compiler.ast.ArrayInit) throws javassist.compiler.CompileError;
public void atAssignExpr(javassist.compiler.ast.AssignExpr) throws javassist.compiler.CompileError
{
javassist.compiler.CodeGen v;
javassist.compiler.ast.AssignExpr v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.ast.AssignExpr;
virtualinvoke v.<javassist.compiler.CodeGen: void atAssignExpr(javassist.compiler.ast.AssignExpr,boolean)>(v, 1);
return;
}
protected void atAssignExpr(javassist.compiler.ast.AssignExpr, boolean) throws javassist.compiler.CompileError
{
javassist.compiler.ast.Declarator v;
javassist.compiler.ast.AssignExpr v;
javassist.compiler.ast.ASTree v, v;
javassist.compiler.CodeGen v;
int v, v;
boolean v, v, v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.ast.AssignExpr;
v := @parameter: boolean;
v = virtualinvoke v.<javassist.compiler.ast.AssignExpr: int getOperator()>();
v = virtualinvoke v.<javassist.compiler.ast.AssignExpr: javassist.compiler.ast.ASTree oprand1()>();
v = virtualinvoke v.<javassist.compiler.ast.AssignExpr: javassist.compiler.ast.ASTree oprand2()>();
v = v instanceof javassist.compiler.ast.Variable;
if v == 0 goto label;
v = virtualinvoke v.<javassist.compiler.ast.Variable: javassist.compiler.ast.Declarator getDeclarator()>();
specialinvoke v.<javassist.compiler.CodeGen: void atVariableAssign(javassist.compiler.ast.Expr,int,javassist.compiler.ast.Variable,javassist.compiler.ast.Declarator,javassist.compiler.ast.ASTree,boolean)>(v, v, v, v, v, v);
goto label;
label:
v = v instanceof javassist.compiler.ast.Expr;
if v == 0 goto label;
v = virtualinvoke v.<javassist.compiler.ast.Expr: int getOperator()>();
if v != 65 goto label;
specialinvoke v.<javassist.compiler.CodeGen: void atArrayAssign(javassist.compiler.ast.Expr,int,javassist.compiler.ast.Expr,javassist.compiler.ast.ASTree,boolean)>(v, v, v, v, v);
return;
label:
virtualinvoke v.<javassist.compiler.CodeGen: void atFieldAssign(javassist.compiler.ast.Expr,int,javassist.compiler.ast.ASTree,javassist.compiler.ast.ASTree,boolean)>(v, v, v, v, v);
label:
return;
}
protected static void badAssign(javassist.compiler.ast.Expr) throws javassist.compiler.CompileError
{
javassist.compiler.ast.Expr v;
java.lang.String v, v;
javassist.compiler.CompileError v;
v := @parameter: javassist.compiler.ast.Expr;
if v != null goto label;
v = "incompatible type for assignment";
goto label;
label:
v = virtualinvoke v.<javassist.compiler.ast.Expr: 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[])>("incompatible type for \u0001");
label:
v = new javassist.compiler.CompileError;
specialinvoke v.<javassist.compiler.CompileError: void <init>(java.lang.String)>(v);
throw v;
}
private void atVariableAssign(javassist.compiler.ast.Expr, int, javassist.compiler.ast.Variable, javassist.compiler.ast.Declarator, javassist.compiler.ast.ASTree, boolean) throws javassist.compiler.CompileError
{
javassist.compiler.ast.Declarator v;
javassist.compiler.CodeGen v;
int v, v, v, v;
java.lang.String v;
boolean v, v, v, v;
javassist.compiler.ast.Expr v;
javassist.compiler.ast.ASTree v;
javassist.bytecode.Bytecode v, v, v, v, v, v, v, v;
javassist.compiler.ast.Variable v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.ast.Expr;
v := @parameter: int;
v := @parameter: javassist.compiler.ast.Variable;
v := @parameter: javassist.compiler.ast.Declarator;
v := @parameter: javassist.compiler.ast.ASTree;
v := @parameter: boolean;
v = virtualinvoke v.<javassist.compiler.ast.Declarator: int getType()>();
v = virtualinvoke v.<javassist.compiler.ast.Declarator: int getArrayDim()>();
v = virtualinvoke v.<javassist.compiler.ast.Declarator: java.lang.String getClassName()>();
v = virtualinvoke v.<javassist.compiler.CodeGen: int getLocalVar(javassist.compiler.ast.Declarator)>(v);
if v == 61 goto label;
virtualinvoke v.<javassist.compiler.CodeGen: void atVariable(javassist.compiler.ast.Variable)>(v);
label:
if v != null goto label;
v = v instanceof javassist.compiler.ast.ArrayInit;
if v == 0 goto label;
virtualinvoke v.<javassist.compiler.CodeGen: void atArrayVariableAssign(javassist.compiler.ast.ArrayInit,int,int,java.lang.String)>(v, v, v, v);
goto label;
label:
virtualinvoke v.<javassist.compiler.CodeGen: void atAssignCore(javassist.compiler.ast.Expr,int,javassist.compiler.ast.ASTree,int,int,java.lang.String)>(v, v, v, v, v, v);
label:
if v == 0 goto label;
v = staticinvoke <javassist.compiler.CodeGen: boolean is2word(int,int)>(v, v);
if v == 0 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(92);
goto label;
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(89);
label:
if v <= 0 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addAstore(int)>(v);
goto label;
label:
if v != 312 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addDstore(int)>(v);
goto label;
label:
if v != 317 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addFstore(int)>(v);
goto label;
label:
if v != 326 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addLstore(int)>(v);
goto label;
label:
v = staticinvoke <javassist.compiler.CodeGen: boolean isRefType(int)>(v);
if v == 0 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addAstore(int)>(v);
goto label;
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addIstore(int)>(v);
label:
v.<javassist.compiler.CodeGen: int exprType> = v;
v.<javassist.compiler.CodeGen: int arrayDim> = v;
v.<javassist.compiler.CodeGen: java.lang.String className> = v;
return;
}
protected abstract void atArrayVariableAssign(javassist.compiler.ast.ArrayInit, int, int, java.lang.String) throws javassist.compiler.CompileError;
private void atArrayAssign(javassist.compiler.ast.Expr, int, javassist.compiler.ast.Expr, javassist.compiler.ast.ASTree, boolean) throws javassist.compiler.CompileError
{
javassist.compiler.CodeGen v;
int v, v, v, v, v, v, v;
java.lang.String v;
boolean v, v;
javassist.compiler.ast.Expr v, v;
javassist.compiler.ast.ASTree v, v, v;
javassist.bytecode.Bytecode v, v, v, v, v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.ast.Expr;
v := @parameter: int;
v := @parameter: javassist.compiler.ast.Expr;
v := @parameter: javassist.compiler.ast.ASTree;
v := @parameter: boolean;
v = virtualinvoke v.<javassist.compiler.ast.Expr: javassist.compiler.ast.ASTree oprand1()>();
v = virtualinvoke v.<javassist.compiler.ast.Expr: javassist.compiler.ast.ASTree oprand2()>();
virtualinvoke v.<javassist.compiler.CodeGen: void arrayAccess(javassist.compiler.ast.ASTree,javassist.compiler.ast.ASTree)>(v, v);
if v == 61 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(92);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = v.<javassist.compiler.CodeGen: int exprType>;
v = v.<javassist.compiler.CodeGen: int arrayDim>;
v = staticinvoke <javassist.compiler.CodeGen: int getArrayReadOp(int,int)>(v, v);
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(v);
label:
v = v.<javassist.compiler.CodeGen: int exprType>;
v = v.<javassist.compiler.CodeGen: int arrayDim>;
v = v.<javassist.compiler.CodeGen: java.lang.String className>;
virtualinvoke v.<javassist.compiler.CodeGen: void atAssignCore(javassist.compiler.ast.Expr,int,javassist.compiler.ast.ASTree,int,int,java.lang.String)>(v, v, v, v, v, v);
if v == 0 goto label;
v = staticinvoke <javassist.compiler.CodeGen: boolean is2word(int,int)>(v, v);
if v == 0 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(94);
goto label;
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(91);
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = staticinvoke <javassist.compiler.CodeGen: int getArrayWriteOp(int,int)>(v, v);
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(v);
v.<javassist.compiler.CodeGen: int exprType> = v;
v.<javassist.compiler.CodeGen: int arrayDim> = v;
v.<javassist.compiler.CodeGen: java.lang.String className> = v;
return;
}
protected abstract void atFieldAssign(javassist.compiler.ast.Expr, int, javassist.compiler.ast.ASTree, javassist.compiler.ast.ASTree, boolean) throws javassist.compiler.CompileError;
protected void atAssignCore(javassist.compiler.ast.Expr, int, javassist.compiler.ast.ASTree, int, int, java.lang.String) throws javassist.compiler.CompileError
{
javassist.compiler.CodeGen v;
int[] v;
int v, v, v, v, v, v, v, v, v;
java.lang.String v, v;
boolean v, v;
javassist.compiler.ast.Expr v;
javassist.compiler.ast.ASTree v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.ast.Expr;
v := @parameter: int;
v := @parameter: javassist.compiler.ast.ASTree;
v := @parameter: int;
v := @parameter: int;
v := @parameter: java.lang.String;
if v != 354 goto label;
if v != 0 goto label;
if v != 307 goto label;
specialinvoke v.<javassist.compiler.CodeGen: void atStringPlusEq(javassist.compiler.ast.Expr,int,int,java.lang.String,javassist.compiler.ast.ASTree)>(v, v, v, v, v);
goto label;
label:
virtualinvoke v.<javassist.compiler.ast.ASTree: void accept(javassist.compiler.ast.Visitor)>(v);
v = v.<javassist.compiler.CodeGen: int exprType>;
v = v.<javassist.compiler.CodeGen: int arrayDim>;
v = v.<javassist.compiler.CodeGen: java.lang.String className>;
v = specialinvoke v.<javassist.compiler.CodeGen: boolean invalidDim(int,int,java.lang.String,int,int,java.lang.String,boolean)>(v, v, v, v, v, v, 0);
if v != 0 goto label;
if v == 61 goto label;
if v <= 0 goto label;
label:
staticinvoke <javassist.compiler.CodeGen: void badAssign(javassist.compiler.ast.Expr)>(v);
label:
if v == 61 goto label;
v = <javassist.compiler.CodeGen: int[] assignOps>;
v = v - 351;
v = v[v];
v = staticinvoke <javassist.compiler.CodeGen: int lookupBinOp(int)>(v);
if v >= 0 goto label;
staticinvoke <javassist.compiler.CodeGen: void fatal()>();
label:
specialinvoke v.<javassist.compiler.CodeGen: void atArithBinExpr(javassist.compiler.ast.Expr,int,int,int)>(v, v, v, v);
label:
if v != 61 goto label;
if v != 0 goto label;
v = staticinvoke <javassist.compiler.CodeGen: boolean isRefType(int)>(v);
if v != 0 goto label;
label:
v = v.<javassist.compiler.CodeGen: int exprType>;
virtualinvoke v.<javassist.compiler.CodeGen: void atNumCastExpr(int,int)>(v, v);
label:
return;
}
private void atStringPlusEq(javassist.compiler.ast.Expr, int, int, java.lang.String, javassist.compiler.ast.ASTree) throws javassist.compiler.CompileError
{
javassist.compiler.ast.Expr v;
javassist.compiler.ast.ASTree v;
javassist.compiler.CodeGen v;
javassist.bytecode.Bytecode v;
int v, v, v, v;
java.lang.String v, v;
boolean v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.ast.Expr;
v := @parameter: int;
v := @parameter: int;
v := @parameter: java.lang.String;
v := @parameter: javassist.compiler.ast.ASTree;
v = "java/lang/String";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
staticinvoke <javassist.compiler.CodeGen: void badAssign(javassist.compiler.ast.Expr)>(v);
label:
specialinvoke v.<javassist.compiler.CodeGen: void convToString(int,int)>(v, v);
virtualinvoke v.<javassist.compiler.ast.ASTree: void accept(javassist.compiler.ast.Visitor)>(v);
v = v.<javassist.compiler.CodeGen: int exprType>;
v = v.<javassist.compiler.CodeGen: int arrayDim>;
specialinvoke v.<javassist.compiler.CodeGen: void convToString(int,int)>(v, v);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addInvokevirtual(java.lang.String,java.lang.String,java.lang.String)>("java.lang.String", "concat", "(Ljava/lang/String;)Ljava/lang/String;");
v.<javassist.compiler.CodeGen: int exprType> = 307;
v.<javassist.compiler.CodeGen: int arrayDim> = 0;
v.<javassist.compiler.CodeGen: java.lang.String className> = "java/lang/String";
return;
}
private boolean invalidDim(int, int, java.lang.String, int, int, java.lang.String, boolean)
{
javassist.compiler.CodeGen v;
int v, v, v, v;
java.lang.String v, v, v, v;
boolean v, v, v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: int;
v := @parameter: int;
v := @parameter: java.lang.String;
v := @parameter: int;
v := @parameter: int;
v := @parameter: java.lang.String;
v := @parameter: boolean;
if v == v goto label;
if v != 412 goto label;
return 0;
label:
if v != 0 goto label;
if v != 307 goto label;
v = "java/lang/Object";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
return 0;
label:
if v == 0 goto label;
if v != 0 goto label;
if v != 307 goto label;
v = "java/lang/Object";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
return 0;
label:
return 1;
label:
return 0;
}
public void atCondExpr(javassist.compiler.ast.CondExpr) throws javassist.compiler.CompileError
{
javassist.compiler.CodeGen v;
int v, v, v, v, v, v, v, v, v, v;
boolean v;
javassist.compiler.CompileError v;
javassist.compiler.ast.CondExpr v;
javassist.compiler.ast.ASTree v, v, v, v;
javassist.bytecode.Bytecode v, v, v, v, v, v, v, v, v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.ast.CondExpr;
v = virtualinvoke v.<javassist.compiler.ast.CondExpr: javassist.compiler.ast.ASTree condExpr()>();
v = specialinvoke v.<javassist.compiler.CodeGen: boolean booleanExpr(boolean,javassist.compiler.ast.ASTree)>(0, v);
if v == 0 goto label;
v = virtualinvoke v.<javassist.compiler.ast.CondExpr: javassist.compiler.ast.ASTree elseExpr()>();
virtualinvoke v.<javassist.compiler.ast.ASTree: void accept(javassist.compiler.ast.Visitor)>(v);
goto label;
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = virtualinvoke v.<javassist.bytecode.Bytecode: int currentPc()>();
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addIndex(int)>(0);
v = virtualinvoke v.<javassist.compiler.ast.CondExpr: javassist.compiler.ast.ASTree thenExpr()>();
virtualinvoke v.<javassist.compiler.ast.ASTree: void accept(javassist.compiler.ast.Visitor)>(v);
v = v.<javassist.compiler.CodeGen: int arrayDim>;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(167);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = virtualinvoke v.<javassist.bytecode.Bytecode: int currentPc()>();
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addIndex(int)>(0);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = virtualinvoke v.<javassist.bytecode.Bytecode: int currentPc()>();
v = v - v;
v = v + 1;
virtualinvoke v.<javassist.bytecode.Bytecode: void write16bit(int,int)>(v, v);
v = virtualinvoke v.<javassist.compiler.ast.CondExpr: javassist.compiler.ast.ASTree elseExpr()>();
virtualinvoke v.<javassist.compiler.ast.ASTree: void accept(javassist.compiler.ast.Visitor)>(v);
v = v.<javassist.compiler.CodeGen: int arrayDim>;
if v == v goto label;
v = new javassist.compiler.CompileError;
specialinvoke v.<javassist.compiler.CompileError: void <init>(java.lang.String)>("type mismatch in ?:");
throw v;
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = virtualinvoke v.<javassist.bytecode.Bytecode: int currentPc()>();
v = v - v;
v = v + 1;
virtualinvoke v.<javassist.bytecode.Bytecode: void write16bit(int,int)>(v, v);
label:
return;
}
static int lookupBinOp(int)
{
int[] v;
int v, v, v, v, v;
v := @parameter: int;
v = <javassist.compiler.CodeGen: int[] binOp>;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
if v != v goto label;
return v;
label:
v = v + 5;
goto label;
label:
v = (int) -1;
return v;
}
public void atBinExpr(javassist.compiler.ast.BinExpr) throws javassist.compiler.CompileError
{
javassist.compiler.CodeGen v;
int v, v, v, v, v, v;
java.lang.String v;
boolean v;
javassist.compiler.CompileError v;
javassist.compiler.ast.ASTree v, v;
javassist.compiler.ast.BinExpr v;
javassist.bytecode.Bytecode v, v, v, v, v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.ast.BinExpr;
v = virtualinvoke v.<javassist.compiler.ast.BinExpr: int getOperator()>();
v = staticinvoke <javassist.compiler.CodeGen: int lookupBinOp(int)>(v);
if v < 0 goto label;
v = virtualinvoke v.<javassist.compiler.ast.BinExpr: javassist.compiler.ast.ASTree oprand1()>();
virtualinvoke v.<javassist.compiler.ast.ASTree: void accept(javassist.compiler.ast.Visitor)>(v);
v = virtualinvoke v.<javassist.compiler.ast.BinExpr: javassist.compiler.ast.ASTree oprand2()>();
if v != null goto label;
return;
label:
v = v.<javassist.compiler.CodeGen: int exprType>;
v = v.<javassist.compiler.CodeGen: int arrayDim>;
v = v.<javassist.compiler.CodeGen: java.lang.String className>;
virtualinvoke v.<javassist.compiler.ast.ASTree: void accept(javassist.compiler.ast.Visitor)>(v);
v = v.<javassist.compiler.CodeGen: int arrayDim>;
if v == v goto label;
v = new javassist.compiler.CompileError;
specialinvoke v.<javassist.compiler.CompileError: void <init>(java.lang.String)>("incompatible array types");
throw v;
label:
if v != 43 goto label;
if v != 0 goto label;
if v == 307 goto label;
v = v.<javassist.compiler.CodeGen: int exprType>;
if v != 307 goto label;
label:
specialinvoke v.<javassist.compiler.CodeGen: void atStringConcatExpr(javassist.compiler.ast.Expr,int,int,java.lang.String)>(v, v, v, v);
goto label;
label:
specialinvoke v.<javassist.compiler.CodeGen: void atArithBinExpr(javassist.compiler.ast.Expr,int,int,int)>(v, v, v, v);
goto label;
label:
v = specialinvoke v.<javassist.compiler.CodeGen: boolean booleanExpr(boolean,javassist.compiler.ast.ASTree)>(1, v);
if v != 0 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addIndex(int)>(7);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addIconst(int)>(0);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(167);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addIndex(int)>(4);
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addIconst(int)>(1);
label:
return;
}
private void atArithBinExpr(javassist.compiler.ast.Expr, int, int, int) throws javassist.compiler.CompileError
{
javassist.compiler.ast.Expr v;
javassist.compiler.CodeGen v;
javassist.bytecode.Bytecode v;
int[] v;
int v, v, v, v, v, v, v, v, v, v, v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.ast.Expr;
v := @parameter: int;
v := @parameter: int;
v := @parameter: int;
v = v.<javassist.compiler.CodeGen: int arrayDim>;
if v == 0 goto label;
staticinvoke <javassist.compiler.CodeGen: void badTypes(javassist.compiler.ast.Expr)>(v);
label:
v = v.<javassist.compiler.CodeGen: int exprType>;
if v == 364 goto label;
if v == 366 goto label;
if v != 370 goto label;
label:
if v == 324 goto label;
if v == 334 goto label;
if v == 306 goto label;
if v != 303 goto label;
label:
v.<javassist.compiler.CodeGen: int exprType> = v;
goto label;
label:
staticinvoke <javassist.compiler.CodeGen: void badTypes(javassist.compiler.ast.Expr)>(v);
goto label;
label:
specialinvoke v.<javassist.compiler.CodeGen: void convertOprandTypes(int,int,javassist.compiler.ast.Expr)>(v, v, v);
label:
v = v.<javassist.compiler.CodeGen: int exprType>;
v = staticinvoke <javassist.compiler.CodeGen: int typePrecedence(int)>(v);
if v < 0 goto label;
v = <javassist.compiler.CodeGen: int[] binOp>;
v = v + v;
v = v + 1;
v = v[v];
if v == 0 goto label;
if v != 3 goto label;
v = v.<javassist.compiler.CodeGen: int exprType>;
if v == 301 goto label;
v.<javassist.compiler.CodeGen: int exprType> = 324;
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(v);
return;
label:
staticinvoke <javassist.compiler.CodeGen: void badTypes(javassist.compiler.ast.Expr)>(v);
return;
}
private void atStringConcatExpr(javassist.compiler.ast.Expr, int, int, java.lang.String) throws javassist.compiler.CompileError
{
javassist.compiler.CodeGen v;
int v, v, v, v;
java.lang.String v, v, v;
boolean v, v, v, v, v;
javassist.compiler.ast.Expr v;
javassist.bytecode.Bytecode v, v, v, v, v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.ast.Expr;
v := @parameter: int;
v := @parameter: int;
v := @parameter: java.lang.String;
v = v.<javassist.compiler.CodeGen: int exprType>;
v = v.<javassist.compiler.CodeGen: int arrayDim>;
v = staticinvoke <javassist.compiler.CodeGen: boolean is2word(int,int)>(v, v);
if v != 307 goto label;
v = "java/lang/String";
v = v.<javassist.compiler.CodeGen: java.lang.String className>;
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:
v = v;
if v == 0 goto label;
specialinvoke v.<javassist.compiler.CodeGen: void convToString(int,int)>(v, v);
label:
v = staticinvoke <javassist.compiler.CodeGen: boolean is2word(int,int)>(v, v);
if v == 0 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(91);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(87);
goto label;
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(95);
label:
specialinvoke v.<javassist.compiler.CodeGen: void convToString(int,int)>(v, v);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(95);
if v != 0 goto label;
if v != 0 goto label;
specialinvoke v.<javassist.compiler.CodeGen: void convToString(int,int)>(v, v);
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addInvokevirtual(java.lang.String,java.lang.String,java.lang.String)>("java.lang.String", "concat", "(Ljava/lang/String;)Ljava/lang/String;");
v.<javassist.compiler.CodeGen: int exprType> = 307;
v.<javassist.compiler.CodeGen: int arrayDim> = 0;
v.<javassist.compiler.CodeGen: java.lang.String className> = "java/lang/String";
return;
}
private void convToString(int, int) throws javassist.compiler.CompileError
{
javassist.compiler.CodeGen v;
javassist.bytecode.Bytecode v, v, v, v, v, v, v;
int v, v;
boolean v;
javassist.compiler.CompileError v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: int;
v := @parameter: int;
v = staticinvoke <javassist.compiler.CodeGen: boolean isRefType(int)>(v);
if v != 0 goto label;
if v <= 0 goto label;
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addInvokestatic(java.lang.String,java.lang.String,java.lang.String)>("java.lang.String", "valueOf", "(Ljava/lang/Object;)Ljava/lang/String;");
goto label;
label:
if v != 312 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addInvokestatic(java.lang.String,java.lang.String,java.lang.String)>("java.lang.String", "valueOf", "(D)Ljava/lang/String;");
goto label;
label:
if v != 317 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addInvokestatic(java.lang.String,java.lang.String,java.lang.String)>("java.lang.String", "valueOf", "(F)Ljava/lang/String;");
goto label;
label:
if v != 326 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addInvokestatic(java.lang.String,java.lang.String,java.lang.String)>("java.lang.String", "valueOf", "(J)Ljava/lang/String;");
goto label;
label:
if v != 301 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addInvokestatic(java.lang.String,java.lang.String,java.lang.String)>("java.lang.String", "valueOf", "(Z)Ljava/lang/String;");
goto label;
label:
if v != 306 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addInvokestatic(java.lang.String,java.lang.String,java.lang.String)>("java.lang.String", "valueOf", "(C)Ljava/lang/String;");
goto label;
label:
if v != 344 goto label;
v = new javassist.compiler.CompileError;
specialinvoke v.<javassist.compiler.CompileError: void <init>(java.lang.String)>("void type expression");
throw v;
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addInvokestatic(java.lang.String,java.lang.String,java.lang.String)>("java.lang.String", "valueOf", "(I)Ljava/lang/String;");
label:
return;
}
private boolean booleanExpr(boolean, javassist.compiler.ast.ASTree) throws javassist.compiler.CompileError
{
javassist.compiler.CodeGen v;
boolean v, v, v, v, v, v, v, v, v;
javassist.compiler.CompileError v;
short v;
int v, v, v, v, v, v, v, v, v;
javassist.compiler.ast.ASTree v, v, v, v;
javassist.bytecode.Bytecode v, v, v, v, v, v, v, v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: boolean;
v := @parameter: javassist.compiler.ast.ASTree;
v = staticinvoke <javassist.compiler.CodeGen: int getCompOperator(javassist.compiler.ast.ASTree)>(v);
if v != 358 goto label;
v = specialinvoke v.<javassist.compiler.CodeGen: int compileOprands(javassist.compiler.ast.BinExpr)>(v);
v = virtualinvoke v.<javassist.compiler.ast.BinExpr: int getOperator()>();
specialinvoke v.<javassist.compiler.CodeGen: void compareExpr(boolean,int,int,javassist.compiler.ast.BinExpr)>(v, v, v, v);
goto label;
label:
if v != 33 goto label;
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = virtualinvoke v.<javassist.compiler.ast.Expr: javassist.compiler.ast.ASTree oprand1()>();
v = specialinvoke v.<javassist.compiler.CodeGen: boolean booleanExpr(boolean,javassist.compiler.ast.ASTree)>(v, v);
return v;
label:
if v != 369 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
if v != 0 goto label;
if v != 368 goto label;
label:
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = virtualinvoke v.<javassist.compiler.ast.BinExpr: javassist.compiler.ast.ASTree oprand1()>();
v = specialinvoke v.<javassist.compiler.CodeGen: boolean booleanExpr(boolean,javassist.compiler.ast.ASTree)>(v, v);
if v == 0 goto label;
v.<javassist.compiler.CodeGen: int exprType> = 301;
v.<javassist.compiler.CodeGen: int arrayDim> = 0;
return 1;
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = virtualinvoke v.<javassist.bytecode.Bytecode: int currentPc()>();
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addIndex(int)>(0);
v = virtualinvoke v.<javassist.compiler.ast.BinExpr: javassist.compiler.ast.ASTree oprand2()>();
v = specialinvoke v.<javassist.compiler.CodeGen: boolean booleanExpr(boolean,javassist.compiler.ast.ASTree)>(v, v);
if v == 0 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(167);
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = virtualinvoke v.<javassist.bytecode.Bytecode: int currentPc()>();
v = v - v;
v = v + 3;
virtualinvoke v.<javassist.bytecode.Bytecode: void write16bit(int,int)>(v, v);
if v == v goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addIndex(int)>(6);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(167);
goto label;
label:
v = staticinvoke <javassist.compiler.CodeGen: boolean isAlwaysBranch(javassist.compiler.ast.ASTree,boolean)>(v, v);
if v == 0 goto label;
v.<javassist.compiler.CodeGen: int exprType> = 301;
v.<javassist.compiler.CodeGen: int arrayDim> = 0;
return 1;
label:
virtualinvoke v.<javassist.compiler.ast.ASTree: void accept(javassist.compiler.ast.Visitor)>(v);
v = v.<javassist.compiler.CodeGen: int exprType>;
if v != 301 goto label;
v = v.<javassist.compiler.CodeGen: int arrayDim>;
if v == 0 goto label;
label:
v = new javassist.compiler.CompileError;
specialinvoke v.<javassist.compiler.CompileError: void <init>(java.lang.String)>("boolean expr is required");
throw v;
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
if v == 0 goto label;
v = 154;
goto label;
label:
v = 153;
label:
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(v);
label:
v.<javassist.compiler.CodeGen: int exprType> = 301;
v.<javassist.compiler.CodeGen: int arrayDim> = 0;
return 0;
}
private static boolean isAlwaysBranch(javassist.compiler.ast.ASTree, boolean)
{
int v;
javassist.compiler.ast.ASTree v;
boolean v, v, v;
v := @parameter: javassist.compiler.ast.ASTree;
v := @parameter: boolean;
v = v instanceof javassist.compiler.ast.Keyword;
if v == 0 goto label;
v = virtualinvoke v.<javassist.compiler.ast.Keyword: int get()>();
if v == 0 goto label;
if v != 410 goto label;
v = 1;
goto label;
label:
v = 0;
goto label;
label:
if v != 411 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
label:
return 0;
}
static int getCompOperator(javassist.compiler.ast.ASTree) throws javassist.compiler.CompileError
{
int v;
javassist.compiler.ast.ASTree v;
boolean v, v;
v := @parameter: javassist.compiler.ast.ASTree;
v = v instanceof javassist.compiler.ast.Expr;
if v == 0 goto label;
v = virtualinvoke v.<javassist.compiler.ast.Expr: int getOperator()>();
if v != 33 goto label;
return 33;
label:
v = v instanceof javassist.compiler.ast.BinExpr;
if v == 0 goto label;
if v == 368 goto label;
if v == 369 goto label;
if v == 38 goto label;
if v == 124 goto label;
return 358;
label:
return v;
label:
return 32;
}
private int compileOprands(javassist.compiler.ast.BinExpr) throws javassist.compiler.CompileError
{
javassist.compiler.ast.ASTree v, v;
javassist.compiler.ast.BinExpr v;
javassist.compiler.CodeGen v;
int v, v, v, v, v, v;
javassist.compiler.CompileError v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.ast.BinExpr;
v = virtualinvoke v.<javassist.compiler.ast.BinExpr: javassist.compiler.ast.ASTree oprand1()>();
virtualinvoke v.<javassist.compiler.ast.ASTree: void accept(javassist.compiler.ast.Visitor)>(v);
v = v.<javassist.compiler.CodeGen: int exprType>;
v = v.<javassist.compiler.CodeGen: int arrayDim>;
v = virtualinvoke v.<javassist.compiler.ast.BinExpr: javassist.compiler.ast.ASTree oprand2()>();
virtualinvoke v.<javassist.compiler.ast.ASTree: void accept(javassist.compiler.ast.Visitor)>(v);
v = v.<javassist.compiler.CodeGen: int arrayDim>;
if v == v goto label;
if v == 412 goto label;
v = v.<javassist.compiler.CodeGen: int exprType>;
if v == 412 goto label;
v = new javassist.compiler.CompileError;
specialinvoke v.<javassist.compiler.CompileError: void <init>(java.lang.String)>("incompatible array types");
throw v;
label:
v = v.<javassist.compiler.CodeGen: int exprType>;
if v != 412 goto label;
v.<javassist.compiler.CodeGen: int arrayDim> = v;
label:
if v != 412 goto label;
v = v.<javassist.compiler.CodeGen: int exprType>;
return v;
label:
return v;
}
private void compareExpr(boolean, int, int, javassist.compiler.ast.BinExpr) throws javassist.compiler.CompileError
{
javassist.compiler.CodeGen v;
byte v, v;
int[] v, v;
boolean v;
javassist.compiler.ast.BinExpr v;
short v, v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
javassist.bytecode.Bytecode v, v, v, v, v, v, v, v, v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: boolean;
v := @parameter: int;
v := @parameter: int;
v := @parameter: javassist.compiler.ast.BinExpr;
v = v.<javassist.compiler.CodeGen: int arrayDim>;
if v != 0 goto label;
v = v.<javassist.compiler.CodeGen: int exprType>;
specialinvoke v.<javassist.compiler.CodeGen: void convertOprandTypes(int,int,javassist.compiler.ast.Expr)>(v, v, v);
label:
v = v.<javassist.compiler.CodeGen: int exprType>;
v = staticinvoke <javassist.compiler.CodeGen: int typePrecedence(int)>(v);
v = (int) -1;
if v == v goto label;
v = v.<javassist.compiler.CodeGen: int arrayDim>;
if v <= 0 goto label;
label:
if v != 358 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
if v == 0 goto label;
v = 165;
goto label;
label:
v = 166;
label:
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(v);
goto label;
label:
if v != 350 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
if v == 0 goto label;
v = 166;
goto label;
label:
v = 165;
label:
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(v);
goto label;
label:
staticinvoke <javassist.compiler.CodeGen: void badTypes(javassist.compiler.ast.Expr)>(v);
goto label;
label:
if v != 3 goto label;
v = <javassist.compiler.CodeGen: int[] ifOp>;
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = v[v];
if v != v goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = v;
if v == 0 goto label;
v = 1;
goto label;
label:
v = 2;
label:
v = v + v;
v = v[v];
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(v);
return;
label:
v = v + 3;
goto label;
label:
staticinvoke <javassist.compiler.CodeGen: void badTypes(javassist.compiler.ast.Expr)>(v);
goto label;
label:
if v != 0 goto label;
if v == 60 goto label;
if v != 357 goto label;
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(152);
goto label;
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(151);
goto label;
label:
if v != 1 goto label;
if v == 60 goto label;
if v != 357 goto label;
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(150);
goto label;
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(149);
goto label;
label:
if v != 2 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(148);
goto label;
label:
staticinvoke <javassist.compiler.CodeGen: void fatal()>();
label:
v = <javassist.compiler.CodeGen: int[] ifOp2>;
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = v[v];
if v != v goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = v;
if v == 0 goto label;
v = 1;
goto label;
label:
v = 2;
label:
v = v + v;
v = v[v];
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(v);
return;
label:
v = v + 3;
goto label;
label:
staticinvoke <javassist.compiler.CodeGen: void badTypes(javassist.compiler.ast.Expr)>(v);
label:
return;
}
protected static void badTypes(javassist.compiler.ast.Expr) throws javassist.compiler.CompileError
{
javassist.compiler.ast.Expr v;
java.lang.String v, v;
javassist.compiler.CompileError v;
v := @parameter: javassist.compiler.ast.Expr;
v = new javassist.compiler.CompileError;
v = virtualinvoke v.<javassist.compiler.ast.Expr: 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[])>("invalid types for \u0001");
specialinvoke v.<javassist.compiler.CompileError: void <init>(java.lang.String)>(v);
throw v;
}
protected static boolean isRefType(int)
{
int v;
boolean v;
v := @parameter: int;
if v == 307 goto label;
if v != 412 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private static int typePrecedence(int)
{
int v, v, v;
boolean v;
v := @parameter: int;
if v != 312 goto label;
return 0;
label:
if v != 317 goto label;
return 1;
label:
if v != 326 goto label;
return 2;
label:
v = staticinvoke <javassist.compiler.CodeGen: boolean isRefType(int)>(v);
if v == 0 goto label;
v = (int) -1;
return v;
label:
if v != 344 goto label;
v = (int) -1;
return v;
label:
return 3;
}
static boolean isP_INT(int)
{
int v, v;
boolean v;
v := @parameter: int;
v = staticinvoke <javassist.compiler.CodeGen: int typePrecedence(int)>(v);
if v != 3 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
static boolean rightIsStrong(int, int)
{
int v, v, v, v;
boolean v;
v := @parameter: int;
v := @parameter: int;
v = staticinvoke <javassist.compiler.CodeGen: int typePrecedence(int)>(v);
v = staticinvoke <javassist.compiler.CodeGen: int typePrecedence(int)>(v);
if v < 0 goto label;
if v < 0 goto label;
if v <= v goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private void convertOprandTypes(int, int, javassist.compiler.ast.Expr) throws javassist.compiler.CompileError
{
javassist.compiler.CodeGen v;
int[] v, v;
int v, v, v, v, v, v, v, v, v, v;
boolean v;
javassist.compiler.ast.Expr v;
javassist.bytecode.Bytecode v, v, v, v, v, v, v, v, v, v, v, v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: int;
v := @parameter: int;
v := @parameter: javassist.compiler.ast.Expr;
v = staticinvoke <javassist.compiler.CodeGen: int typePrecedence(int)>(v);
v = staticinvoke <javassist.compiler.CodeGen: int typePrecedence(int)>(v);
if v >= 0 goto label;
if v >= 0 goto label;
return;
label:
if v < 0 goto label;
if v >= 0 goto label;
label:
staticinvoke <javassist.compiler.CodeGen: void badTypes(javassist.compiler.ast.Expr)>(v);
label:
if v > v goto label;
v = 0;
v.<javassist.compiler.CodeGen: int exprType> = v;
v = <javassist.compiler.CodeGen: int[] castOp>;
v = v * 4;
v = v + v;
v = v[v];
v = v;
goto label;
label:
v = 1;
v = <javassist.compiler.CodeGen: int[] castOp>;
v = v * 4;
v = v + v;
v = v[v];
v = v;
label:
if v == 0 goto label;
if v == 0 goto label;
if v != 2 goto label;
label:
if v == 0 goto label;
if v != 2 goto label;
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(94);
goto label;
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(93);
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(88);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(v);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(94);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(88);
goto label;
label:
if v != 1 goto label;
if v != 2 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(91);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(87);
goto label;
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(95);
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(v);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(95);
goto label;
label:
staticinvoke <javassist.compiler.CodeGen: void fatal()>();
goto label;
label:
if v == 0 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(v);
label:
return;
}
public void atCastExpr(javassist.compiler.ast.CastExpr) throws javassist.compiler.CompileError
{
javassist.compiler.CodeGen v;
javassist.compiler.ast.CastExpr v;
javassist.bytecode.Bytecode v;
int v, v, v, v;
java.lang.String v, v;
javassist.compiler.ast.ASTList v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.ast.CastExpr;
v = virtualinvoke v.<javassist.compiler.ast.CastExpr: javassist.compiler.ast.ASTList getClassName()>();
v = virtualinvoke v.<javassist.compiler.CodeGen: java.lang.String resolveClassName(javassist.compiler.ast.ASTList)>(v);
v = specialinvoke v.<javassist.compiler.CodeGen: java.lang.String checkCastExpr(javassist.compiler.ast.CastExpr,java.lang.String)>(v, v);
v = v.<javassist.compiler.CodeGen: int exprType>;
v = virtualinvoke v.<javassist.compiler.ast.CastExpr: int getType()>();
v.<javassist.compiler.CodeGen: int exprType> = v;
v = virtualinvoke v.<javassist.compiler.ast.CastExpr: int getArrayDim()>();
v.<javassist.compiler.CodeGen: int arrayDim> = v;
v.<javassist.compiler.CodeGen: java.lang.String className> = v;
if v != null goto label;
v = v.<javassist.compiler.CodeGen: int exprType>;
virtualinvoke v.<javassist.compiler.CodeGen: void atNumCastExpr(int,int)>(v, v);
goto label;
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addCheckcast(java.lang.String)>(v);
label:
return;
}
public void atInstanceOfExpr(javassist.compiler.ast.InstanceOfExpr) throws javassist.compiler.CompileError
{
javassist.compiler.CodeGen v;
javassist.bytecode.Bytecode v;
java.lang.String v, v;
javassist.compiler.ast.ASTList v;
javassist.compiler.ast.InstanceOfExpr v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.ast.InstanceOfExpr;
v = virtualinvoke v.<javassist.compiler.ast.InstanceOfExpr: javassist.compiler.ast.ASTList getClassName()>();
v = virtualinvoke v.<javassist.compiler.CodeGen: java.lang.String resolveClassName(javassist.compiler.ast.ASTList)>(v);
v = specialinvoke v.<javassist.compiler.CodeGen: java.lang.String checkCastExpr(javassist.compiler.ast.CastExpr,java.lang.String)>(v, v);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addInstanceof(java.lang.String)>(v);
v.<javassist.compiler.CodeGen: int exprType> = 301;
v.<javassist.compiler.CodeGen: int arrayDim> = 0;
return;
}
private java.lang.String checkCastExpr(javassist.compiler.ast.CastExpr, java.lang.String) throws javassist.compiler.CompileError
{
javassist.compiler.CodeGen v;
javassist.compiler.ast.CastExpr v;
int v, v, v, v, v;
java.lang.String v, v, v, v;
boolean v, v;
javassist.compiler.CompileError v, v;
javassist.compiler.ast.ASTree v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.ast.CastExpr;
v := @parameter: java.lang.String;
v = virtualinvoke v.<javassist.compiler.ast.CastExpr: javassist.compiler.ast.ASTree getOprand()>();
v = virtualinvoke v.<javassist.compiler.ast.CastExpr: int getArrayDim()>();
v = virtualinvoke v.<javassist.compiler.ast.CastExpr: int getType()>();
virtualinvoke v.<javassist.compiler.ast.ASTree: void accept(javassist.compiler.ast.Visitor)>(v);
v = v.<javassist.compiler.CodeGen: int exprType>;
v = v.<javassist.compiler.CodeGen: int arrayDim>;
v = v.<javassist.compiler.CodeGen: int arrayDim>;
v = v.<javassist.compiler.CodeGen: java.lang.String className>;
v = specialinvoke v.<javassist.compiler.CodeGen: boolean invalidDim(int,int,java.lang.String,int,int,java.lang.String,boolean)>(v, v, v, v, v, v, 1);
if v != 0 goto label;
if v == 344 goto label;
if v != 344 goto label;
label:
v = new javassist.compiler.CompileError;
specialinvoke v.<javassist.compiler.CompileError: void <init>(java.lang.String)>("invalid cast");
throw v;
label:
if v != 307 goto label;
v = staticinvoke <javassist.compiler.CodeGen: boolean isRefType(int)>(v);
if v != 0 goto label;
if v != 0 goto label;
v = new javassist.compiler.CompileError;
specialinvoke v.<javassist.compiler.CompileError: void <init>(java.lang.String)>("invalid cast");
throw v;
label:
v = staticinvoke <javassist.compiler.CodeGen: java.lang.String toJvmArrayName(java.lang.String,int)>(v, v);
return v;
label:
if v <= 0 goto label;
v = staticinvoke <javassist.compiler.CodeGen: java.lang.String toJvmTypeName(int,int)>(v, v);
return v;
label:
return null;
}
void atNumCastExpr(int, int) throws javassist.compiler.CompileError
{
javassist.compiler.CodeGen v;
short v;
javassist.bytecode.Bytecode v, v;
int[] v;
int v, v, v, v, v, v, v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: int;
v := @parameter: int;
if v != v goto label;
return;
label:
v = staticinvoke <javassist.compiler.CodeGen: int typePrecedence(int)>(v);
v = staticinvoke <javassist.compiler.CodeGen: int typePrecedence(int)>(v);
if 0 > v goto label;
if v >= 3 goto label;
v = <javassist.compiler.CodeGen: int[] castOp>;
v = v * 4;
v = v + v;
v = v[v];
goto label;
label:
v = 0;
label:
if v != 312 goto label;
v = 135;
goto label;
label:
if v != 317 goto label;
v = 134;
goto label;
label:
if v != 326 goto label;
v = 133;
goto label;
label:
if v != 334 goto label;
v = 147;
goto label;
label:
if v != 306 goto label;
v = 146;
goto label;
label:
if v != 303 goto label;
v = 145;
goto label;
label:
v = 0;
label:
if v == 0 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(v);
if v == 0 goto label;
if v == 136 goto label;
if v == 139 goto label;
if v != 142 goto label;
label:
if v == 0 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(v);
label:
return;
}
public void atExpr(javassist.compiler.ast.Expr) throws javassist.compiler.CompileError
{
javassist.compiler.CodeGen v;
int v, v, v, v, v, v;
java.lang.String v;
boolean v, v;
javassist.compiler.ast.Expr v;
javassist.compiler.ast.ASTree v, v, v, v;
javassist.bytecode.Bytecode v, v, v, v, v, v, v, v, v, v, v, v, v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.ast.Expr;
v = virtualinvoke v.<javassist.compiler.ast.Expr: int getOperator()>();
v = virtualinvoke v.<javassist.compiler.ast.Expr: javassist.compiler.ast.ASTree oprand1()>();
if v != 46 goto label;
v = virtualinvoke v.<javassist.compiler.ast.Expr: javassist.compiler.ast.ASTree oprand2()>();
v = virtualinvoke v.<javassist.compiler.ast.Symbol: java.lang.String get()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("class");
if v == 0 goto label;
virtualinvoke v.<javassist.compiler.CodeGen: void atClassObject(javassist.compiler.ast.Expr)>(v);
goto label;
label:
virtualinvoke v.<javassist.compiler.CodeGen: void atFieldRead(javassist.compiler.ast.ASTree)>(v);
goto label;
label:
if v != 35 goto label;
virtualinvoke v.<javassist.compiler.CodeGen: void atFieldRead(javassist.compiler.ast.ASTree)>(v);
goto label;
label:
if v != 65 goto label;
v = virtualinvoke v.<javassist.compiler.ast.Expr: javassist.compiler.ast.ASTree oprand2()>();
virtualinvoke v.<javassist.compiler.CodeGen: void atArrayRead(javassist.compiler.ast.ASTree,javassist.compiler.ast.ASTree)>(v, v);
goto label;
label:
if v == 362 goto label;
if v != 363 goto label;
label:
specialinvoke v.<javassist.compiler.CodeGen: void atPlusPlus(int,javassist.compiler.ast.ASTree,javassist.compiler.ast.Expr,boolean)>(v, v, v, 1);
goto label;
label:
if v != 33 goto label;
v = specialinvoke v.<javassist.compiler.CodeGen: boolean booleanExpr(boolean,javassist.compiler.ast.ASTree)>(0, v);
if v != 0 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addIndex(int)>(7);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addIconst(int)>(1);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(167);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addIndex(int)>(4);
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addIconst(int)>(0);
goto label;
label:
if v != 67 goto label;
staticinvoke <javassist.compiler.CodeGen: void fatal()>();
goto label;
label:
v = virtualinvoke v.<javassist.compiler.ast.Expr: javassist.compiler.ast.ASTree oprand1()>();
virtualinvoke v.<javassist.compiler.ast.ASTree: void accept(javassist.compiler.ast.Visitor)>(v);
v = v.<javassist.compiler.CodeGen: int exprType>;
v = staticinvoke <javassist.compiler.CodeGen: int typePrecedence(int)>(v);
v = v.<javassist.compiler.CodeGen: int arrayDim>;
if v <= 0 goto label;
staticinvoke <javassist.compiler.CodeGen: void badType(javassist.compiler.ast.Expr)>(v);
label:
if v != 45 goto label;
if v != 0 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(119);
goto label;
label:
if v != 1 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(118);
goto label;
label:
if v != 2 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(117);
goto label;
label:
if v != 3 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(116);
v.<javassist.compiler.CodeGen: int exprType> = 324;
goto label;
label:
staticinvoke <javassist.compiler.CodeGen: void badType(javassist.compiler.ast.Expr)>(v);
goto label;
label:
if v != 126 goto label;
if v != 3 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = (int) -1;
virtualinvoke v.<javassist.bytecode.Bytecode: void addIconst(int)>(v);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(130);
v.<javassist.compiler.CodeGen: int exprType> = 324;
goto label;
label:
if v != 2 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addLconst(long)>(-1L);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(131);
goto label;
label:
staticinvoke <javassist.compiler.CodeGen: void badType(javassist.compiler.ast.Expr)>(v);
goto label;
label:
if v != 43 goto label;
v = (int) -1;
if v != v goto label;
staticinvoke <javassist.compiler.CodeGen: void badType(javassist.compiler.ast.Expr)>(v);
goto label;
label:
staticinvoke <javassist.compiler.CodeGen: void fatal()>();
label:
return;
}
protected static void badType(javassist.compiler.ast.Expr) throws javassist.compiler.CompileError
{
javassist.compiler.ast.Expr v;
java.lang.String v, v;
javassist.compiler.CompileError v;
v := @parameter: javassist.compiler.ast.Expr;
v = new javassist.compiler.CompileError;
v = virtualinvoke v.<javassist.compiler.ast.Expr: 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[])>("invalid type for \u0001");
specialinvoke v.<javassist.compiler.CompileError: void <init>(java.lang.String)>(v);
throw v;
}
public abstract void atCallExpr(javassist.compiler.ast.CallExpr) throws javassist.compiler.CompileError;
protected abstract void atFieldRead(javassist.compiler.ast.ASTree) throws javassist.compiler.CompileError;
public void atClassObject(javassist.compiler.ast.Expr) throws javassist.compiler.CompileError
{
javassist.compiler.CodeGen v;
int v, v, v, v, v;
java.lang.String v, v, v, v, v, v;
boolean v, v, v;
javassist.compiler.CompileError v;
javassist.compiler.ast.Expr v;
javassist.compiler.ast.ASTree v;
java.lang.StringBuilder v, v, v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.ast.Expr;
v = virtualinvoke v.<javassist.compiler.ast.Expr: javassist.compiler.ast.ASTree oprand1()>();
v = v instanceof javassist.compiler.ast.Symbol;
if v != 0 goto label;
v = new javassist.compiler.CompileError;
specialinvoke v.<javassist.compiler.CompileError: void <init>(java.lang.String)>("fatal error: badly parsed .class expr");
throw v;
label:
v = virtualinvoke v.<javassist.compiler.ast.Symbol: java.lang.String get()>();
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("[");
if v == 0 goto label;
v = virtualinvoke v.<java.lang.String: int indexOf(java.lang.String)>("[L");
if v < 0 goto label;
v = v + 2;
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);
v = virtualinvoke v.<javassist.compiler.CodeGen: java.lang.String resolveClassName(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = staticinvoke <javassist.compiler.MemberResolver: java.lang.String jvmToJavaName(java.lang.String)>(v);
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
label:
v = v;
v = v - 1;
if v < 0 goto label;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(91);
goto label;
label:
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(76);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(59);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
goto label;
label:
v = staticinvoke <javassist.compiler.MemberResolver: java.lang.String javaToJvmName(java.lang.String)>(v);
v = virtualinvoke v.<javassist.compiler.CodeGen: java.lang.String resolveClassName(java.lang.String)>(v);
v = staticinvoke <javassist.compiler.MemberResolver: java.lang.String jvmToJavaName(java.lang.String)>(v);
label:
virtualinvoke v.<javassist.compiler.CodeGen: void atClassObject2(java.lang.String)>(v);
v.<javassist.compiler.CodeGen: int exprType> = 307;
v.<javassist.compiler.CodeGen: int arrayDim> = 0;
v.<javassist.compiler.CodeGen: java.lang.String className> = "java/lang/Class";
return;
}
protected void atClassObject2(java.lang.String) throws javassist.compiler.CompileError
{
javassist.compiler.CodeGen v;
int v, v, v, v, v, v, v;
java.lang.String v;
javassist.bytecode.Bytecode v, v, v, v, v, v, v, v, v, v, v, v, v, v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: java.lang.String;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = virtualinvoke v.<javassist.bytecode.Bytecode: int currentPc()>();
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addLdc(java.lang.String)>(v);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addInvokestatic(java.lang.String,java.lang.String,java.lang.String)>("java.lang.Class", "forName", "(Ljava/lang/String;)Ljava/lang/Class;");
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = virtualinvoke v.<javassist.bytecode.Bytecode: int currentPc()>();
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(167);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = virtualinvoke v.<javassist.bytecode.Bytecode: int currentPc()>();
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addIndex(int)>(0);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = virtualinvoke v.<javassist.bytecode.Bytecode: int currentPc()>();
virtualinvoke v.<javassist.bytecode.Bytecode: void addExceptionHandler(int,int,int,java.lang.String)>(v, v, v, "java.lang.ClassNotFoundException");
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void growStack(int)>(1);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addInvokestatic(java.lang.String,java.lang.String,java.lang.String)>("javassist.runtime.DotClass", "fail", "(Ljava/lang/ClassNotFoundException;)Ljava/lang/NoClassDefFoundError;");
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(191);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = virtualinvoke v.<javassist.bytecode.Bytecode: int currentPc()>();
v = v - v;
v = v + 1;
virtualinvoke v.<javassist.bytecode.Bytecode: void write16bit(int,int)>(v, v);
return;
}
public void atArrayRead(javassist.compiler.ast.ASTree, javassist.compiler.ast.ASTree) throws javassist.compiler.CompileError
{
javassist.compiler.CodeGen v;
javassist.bytecode.Bytecode v;
int v, v, v;
javassist.compiler.ast.ASTree v, v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.ast.ASTree;
v := @parameter: javassist.compiler.ast.ASTree;
virtualinvoke v.<javassist.compiler.CodeGen: void arrayAccess(javassist.compiler.ast.ASTree,javassist.compiler.ast.ASTree)>(v, v);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = v.<javassist.compiler.CodeGen: int exprType>;
v = v.<javassist.compiler.CodeGen: int arrayDim>;
v = staticinvoke <javassist.compiler.CodeGen: int getArrayReadOp(int,int)>(v, v);
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(v);
return;
}
protected void arrayAccess(javassist.compiler.ast.ASTree, javassist.compiler.ast.ASTree) throws javassist.compiler.CompileError
{
javassist.compiler.ast.ASTree v, v;
javassist.compiler.CodeGen v;
int v, v, v, v, v, v;
java.lang.String v;
javassist.compiler.CompileError v, v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.ast.ASTree;
v := @parameter: javassist.compiler.ast.ASTree;
virtualinvoke v.<javassist.compiler.ast.ASTree: void accept(javassist.compiler.ast.Visitor)>(v);
v = v.<javassist.compiler.CodeGen: int exprType>;
v = v.<javassist.compiler.CodeGen: int arrayDim>;
if v != 0 goto label;
v = new javassist.compiler.CompileError;
specialinvoke v.<javassist.compiler.CompileError: void <init>(java.lang.String)>("bad array access");
throw v;
label:
v = v.<javassist.compiler.CodeGen: java.lang.String className>;
virtualinvoke v.<javassist.compiler.ast.ASTree: void accept(javassist.compiler.ast.Visitor)>(v);
v = v.<javassist.compiler.CodeGen: int exprType>;
v = staticinvoke <javassist.compiler.CodeGen: int typePrecedence(int)>(v);
if v != 3 goto label;
v = v.<javassist.compiler.CodeGen: int arrayDim>;
if v <= 0 goto label;
label:
v = new javassist.compiler.CompileError;
specialinvoke v.<javassist.compiler.CompileError: void <init>(java.lang.String)>("bad array index");
throw v;
label:
v.<javassist.compiler.CodeGen: int exprType> = v;
v = v - 1;
v.<javassist.compiler.CodeGen: int arrayDim> = v;
v.<javassist.compiler.CodeGen: java.lang.String className> = v;
return;
}
protected static int getArrayReadOp(int, int)
{
int v, v;
v := @parameter: int;
v := @parameter: int;
if v <= 0 goto label;
return 50;
label:
lookupswitch(v)
{
case 301: goto label;
case 303: goto label;
case 306: goto label;
case 312: goto label;
case 317: goto label;
case 324: goto label;
case 326: goto label;
case 334: goto label;
default: goto label;
};
label:
return 49;
label:
return 48;
label:
return 47;
label:
return 46;
label:
return 53;
label:
return 52;
label:
return 51;
label:
return 50;
}
protected static int getArrayWriteOp(int, int)
{
int v, v;
v := @parameter: int;
v := @parameter: int;
if v <= 0 goto label;
return 83;
label:
lookupswitch(v)
{
case 301: goto label;
case 303: goto label;
case 306: goto label;
case 312: goto label;
case 317: goto label;
case 324: goto label;
case 326: goto label;
case 334: goto label;
default: goto label;
};
label:
return 82;
label:
return 81;
label:
return 80;
label:
return 79;
label:
return 86;
label:
return 85;
label:
return 84;
label:
return 83;
}
private void atPlusPlus(int, javassist.compiler.ast.ASTree, javassist.compiler.ast.Expr, boolean) throws javassist.compiler.CompileError
{
javassist.compiler.ast.Declarator v;
javassist.compiler.CodeGen v;
byte v, v, v, v;
boolean v, v, v, v, v;
int v, v, v, v, v, v;
javassist.compiler.ast.Expr v;
javassist.compiler.ast.ASTree v;
javassist.bytecode.Bytecode v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: int;
v := @parameter: javassist.compiler.ast.ASTree;
v := @parameter: javassist.compiler.ast.Expr;
v := @parameter: boolean;
if v != null goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
if v == 0 goto label;
v = virtualinvoke v.<javassist.compiler.ast.Expr: javassist.compiler.ast.ASTree oprand2()>();
label:
v = v instanceof javassist.compiler.ast.Variable;
if v == 0 goto label;
v = virtualinvoke v.<javassist.compiler.ast.Variable: javassist.compiler.ast.Declarator getDeclarator()>();
v = virtualinvoke v.<javassist.compiler.ast.Declarator: int getType()>();
v.<javassist.compiler.CodeGen: int exprType> = v;
v = virtualinvoke v.<javassist.compiler.ast.Declarator: int getArrayDim()>();
v.<javassist.compiler.CodeGen: int arrayDim> = v;
v = virtualinvoke v.<javassist.compiler.CodeGen: int getLocalVar(javassist.compiler.ast.Declarator)>(v);
v = v.<javassist.compiler.CodeGen: int arrayDim>;
if v <= 0 goto label;
staticinvoke <javassist.compiler.CodeGen: void badType(javassist.compiler.ast.Expr)>(v);
label:
if v != 312 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addDload(int)>(v);
if v == 0 goto label;
if v == 0 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(92);
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addDconst(double)>(1.0);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
if v != 362 goto label;
v = 99;
goto label;
label:
v = 103;
label:
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(v);
if v == 0 goto label;
if v != 0 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(92);
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addDstore(int)>(v);
goto label;
label:
if v != 326 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addLload(int)>(v);
if v == 0 goto label;
if v == 0 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(92);
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addLconst(long)>(1L);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
if v != 362 goto label;
v = 97;
goto label;
label:
v = 101;
label:
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(v);
if v == 0 goto label;
if v != 0 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(92);
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addLstore(int)>(v);
goto label;
label:
if v != 317 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addFload(int)>(v);
if v == 0 goto label;
if v == 0 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(89);
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addFconst(float)>(1.0F);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
if v != 362 goto label;
v = 98;
goto label;
label:
v = 102;
label:
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(v);
if v == 0 goto label;
if v != 0 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(89);
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addFstore(int)>(v);
goto label;
label:
if v == 303 goto label;
if v == 306 goto label;
if v == 334 goto label;
if v != 324 goto label;
label:
if v == 0 goto label;
if v == 0 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addIload(int)>(v);
label:
if v != 362 goto label;
v = 1;
goto label;
label:
v = -1;
label:
if v <= 255 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(196);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(132);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addIndex(int)>(v);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addIndex(int)>(v);
goto label;
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(132);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void add(int)>(v);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void add(int)>(v);
label:
if v == 0 goto label;
if v != 0 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addIload(int)>(v);
goto label;
label:
staticinvoke <javassist.compiler.CodeGen: void badType(javassist.compiler.ast.Expr)>(v);
goto label;
label:
v = v instanceof javassist.compiler.ast.Expr;
if v == 0 goto label;
v = virtualinvoke v.<javassist.compiler.ast.Expr: int getOperator()>();
if v != 65 goto label;
virtualinvoke v.<javassist.compiler.CodeGen: void atArrayPlusPlus(int,boolean,javassist.compiler.ast.Expr,boolean)>(v, v, v, v);
return;
label:
virtualinvoke v.<javassist.compiler.CodeGen: void atFieldPlusPlus(int,boolean,javassist.compiler.ast.ASTree,javassist.compiler.ast.Expr,boolean)>(v, v, v, v, v);
label:
return;
}
public void atArrayPlusPlus(int, boolean, javassist.compiler.ast.Expr, boolean) throws javassist.compiler.CompileError
{
javassist.compiler.CodeGen v;
byte v;
int v, v, v, v, v, v;
boolean v, v, v;
javassist.compiler.ast.Expr v;
javassist.compiler.ast.ASTree v, v;
javassist.bytecode.Bytecode v, v, v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: int;
v := @parameter: boolean;
v := @parameter: javassist.compiler.ast.Expr;
v := @parameter: boolean;
v = virtualinvoke v.<javassist.compiler.ast.Expr: javassist.compiler.ast.ASTree oprand1()>();
v = virtualinvoke v.<javassist.compiler.ast.Expr: javassist.compiler.ast.ASTree oprand2()>();
virtualinvoke v.<javassist.compiler.CodeGen: void arrayAccess(javassist.compiler.ast.ASTree,javassist.compiler.ast.ASTree)>(v, v);
v = v.<javassist.compiler.CodeGen: int exprType>;
v = v.<javassist.compiler.CodeGen: int arrayDim>;
if v <= 0 goto label;
staticinvoke <javassist.compiler.CodeGen: void badType(javassist.compiler.ast.Expr)>(v);
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(92);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = v.<javassist.compiler.CodeGen: int arrayDim>;
v = staticinvoke <javassist.compiler.CodeGen: int getArrayReadOp(int,int)>(v, v);
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(v);
v = staticinvoke <javassist.compiler.CodeGen: boolean is2word(int,int)>(v, v);
if v == 0 goto label;
v = 94;
goto label;
label:
v = 91;
label:
virtualinvoke v.<javassist.compiler.CodeGen: void atPlusPlusCore(int,boolean,int,boolean,javassist.compiler.ast.Expr)>(v, v, v, v, v);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = staticinvoke <javassist.compiler.CodeGen: int getArrayWriteOp(int,int)>(v, v);
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(v);
return;
}
protected void atPlusPlusCore(int, boolean, int, boolean, javassist.compiler.ast.Expr) throws javassist.compiler.CompileError
{
javassist.compiler.CodeGen v;
byte v, v, v, v;
int v, v, v;
boolean v, v;
javassist.compiler.ast.Expr v;
javassist.bytecode.Bytecode v, v, v, v, v, v, v, v, v, v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: int;
v := @parameter: boolean;
v := @parameter: int;
v := @parameter: boolean;
v := @parameter: javassist.compiler.ast.Expr;
v = v.<javassist.compiler.CodeGen: int exprType>;
if v == 0 goto label;
if v == 0 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(v);
label:
if v == 324 goto label;
if v == 303 goto label;
if v == 306 goto label;
if v != 334 goto label;
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addIconst(int)>(1);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
if v != 362 goto label;
v = 96;
goto label;
label:
v = 100;
label:
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(v);
v.<javassist.compiler.CodeGen: int exprType> = 324;
goto label;
label:
if v != 326 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addLconst(long)>(1L);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
if v != 362 goto label;
v = 97;
goto label;
label:
v = 101;
label:
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(v);
goto label;
label:
if v != 317 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addFconst(float)>(1.0F);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
if v != 362 goto label;
v = 98;
goto label;
label:
v = 102;
label:
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(v);
goto label;
label:
if v != 312 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addDconst(double)>(1.0);
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
if v != 362 goto label;
v = 99;
goto label;
label:
v = 103;
label:
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(v);
goto label;
label:
staticinvoke <javassist.compiler.CodeGen: void badType(javassist.compiler.ast.Expr)>(v);
label:
if v == 0 goto label;
if v != 0 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(v);
label:
return;
}
protected abstract void atFieldPlusPlus(int, boolean, javassist.compiler.ast.ASTree, javassist.compiler.ast.Expr, boolean) throws javassist.compiler.CompileError;
public abstract void atMember(javassist.compiler.ast.Member) throws javassist.compiler.CompileError;
public void atVariable(javassist.compiler.ast.Variable) throws javassist.compiler.CompileError
{
javassist.compiler.ast.Declarator v;
javassist.compiler.CodeGen v;
javassist.bytecode.Bytecode v, v, v, v, v, v;
int v, v, v, v, v;
javassist.compiler.ast.Variable v;
java.lang.String v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.ast.Variable;
v = virtualinvoke v.<javassist.compiler.ast.Variable: javassist.compiler.ast.Declarator getDeclarator()>();
v = virtualinvoke v.<javassist.compiler.ast.Declarator: int getType()>();
v.<javassist.compiler.CodeGen: int exprType> = v;
v = virtualinvoke v.<javassist.compiler.ast.Declarator: int getArrayDim()>();
v.<javassist.compiler.CodeGen: int arrayDim> = v;
v = virtualinvoke v.<javassist.compiler.ast.Declarator: java.lang.String getClassName()>();
v.<javassist.compiler.CodeGen: java.lang.String className> = v;
v = virtualinvoke v.<javassist.compiler.CodeGen: int getLocalVar(javassist.compiler.ast.Declarator)>(v);
v = v.<javassist.compiler.CodeGen: int arrayDim>;
if v <= 0 goto label;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addAload(int)>(v);
goto label;
label:
v = v.<javassist.compiler.CodeGen: int exprType>;
lookupswitch(v)
{
case 307: goto label;
case 312: goto label;
case 317: goto label;
case 326: goto label;
default: goto label;
};
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addAload(int)>(v);
goto label;
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addLload(int)>(v);
goto label;
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addFload(int)>(v);
goto label;
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addDload(int)>(v);
goto label;
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addIload(int)>(v);
label:
return;
}
public void atKeyword(javassist.compiler.ast.Keyword) throws javassist.compiler.CompileError
{
javassist.compiler.CodeGen v;
javassist.bytecode.Bytecode v, v, v, v;
javassist.compiler.ast.Keyword v;
int v;
java.lang.String v, v, v, v;
boolean v;
javassist.compiler.CompileError v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.ast.Keyword;
v.<javassist.compiler.CodeGen: int arrayDim> = 0;
v = virtualinvoke v.<javassist.compiler.ast.Keyword: int get()>();
lookupswitch(v)
{
case 336: goto label;
case 339: goto label;
case 410: goto label;
case 411: goto label;
case 412: goto label;
default: goto label;
};
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addIconst(int)>(1);
v.<javassist.compiler.CodeGen: int exprType> = 301;
goto label;
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addIconst(int)>(0);
v.<javassist.compiler.CodeGen: int exprType> = 301;
goto label;
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addOpcode(int)>(1);
v.<javassist.compiler.CodeGen: int exprType> = 412;
goto label;
label:
v = v.<javassist.compiler.CodeGen: boolean inStaticMethod>;
if v == 0 goto label;
v = new javassist.compiler.CompileError;
if v != 339 goto label;
v = "this";
goto label;
label:
v = "super";
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[])>("not-available: \u0001");
specialinvoke v.<javassist.compiler.CompileError: void <init>(java.lang.String)>(v);
throw v;
label:
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addAload(int)>(0);
v.<javassist.compiler.CodeGen: int exprType> = 307;
if v != 339 goto label;
v = virtualinvoke v.<javassist.compiler.CodeGen: java.lang.String getThisName()>();
v.<javassist.compiler.CodeGen: java.lang.String className> = v;
goto label;
label:
v = virtualinvoke v.<javassist.compiler.CodeGen: java.lang.String getSuperName()>();
v.<javassist.compiler.CodeGen: java.lang.String className> = v;
goto label;
label:
staticinvoke <javassist.compiler.CodeGen: void fatal()>();
label:
return;
}
public void atStringL(javassist.compiler.ast.StringL) throws javassist.compiler.CompileError
{
javassist.compiler.CodeGen v;
javassist.compiler.ast.StringL v;
javassist.bytecode.Bytecode v;
java.lang.String v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.ast.StringL;
v.<javassist.compiler.CodeGen: int exprType> = 307;
v.<javassist.compiler.CodeGen: int arrayDim> = 0;
v.<javassist.compiler.CodeGen: java.lang.String className> = "java/lang/String";
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = virtualinvoke v.<javassist.compiler.ast.StringL: java.lang.String get()>();
virtualinvoke v.<javassist.bytecode.Bytecode: void addLdc(java.lang.String)>(v);
return;
}
public void atIntConst(javassist.compiler.ast.IntConst) throws javassist.compiler.CompileError
{
javassist.compiler.CodeGen v;
short v;
javassist.bytecode.Bytecode v, v;
int v;
long v;
javassist.compiler.ast.IntConst v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.ast.IntConst;
v.<javassist.compiler.CodeGen: int arrayDim> = 0;
v = virtualinvoke v.<javassist.compiler.ast.IntConst: long get()>();
v = virtualinvoke v.<javassist.compiler.ast.IntConst: int getType()>();
if v == 402 goto label;
if v != 401 goto label;
label:
if v != 402 goto label;
v = 324;
goto label;
label:
v = 306;
label:
v.<javassist.compiler.CodeGen: int exprType> = v;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addIconst(int)>(v);
goto label;
label:
v.<javassist.compiler.CodeGen: int exprType> = 326;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
virtualinvoke v.<javassist.bytecode.Bytecode: void addLconst(long)>(v);
label:
return;
}
public void atDoubleConst(javassist.compiler.ast.DoubleConst) throws javassist.compiler.CompileError
{
javassist.compiler.CodeGen v;
javassist.bytecode.Bytecode v, v;
javassist.compiler.ast.DoubleConst v;
int v;
double v, v;
v := @this: javassist.compiler.CodeGen;
v := @parameter: javassist.compiler.ast.DoubleConst;
v.<javassist.compiler.CodeGen: int arrayDim> = 0;
v = virtualinvoke v.<javassist.compiler.ast.DoubleConst: int getType()>();
if v != 405 goto label;
v.<javassist.compiler.CodeGen: int exprType> = 312;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = virtualinvoke v.<javassist.compiler.ast.DoubleConst: double get()>();
virtualinvoke v.<javassist.bytecode.Bytecode: void addDconst(double)>(v);
goto label;
label:
v.<javassist.compiler.CodeGen: int exprType> = 317;
v = v.<javassist.compiler.CodeGen: javassist.bytecode.Bytecode bytecode>;
v = virtualinvoke v.<javassist.compiler.ast.DoubleConst: double get()>();
virtualinvoke v.<javassist.bytecode.Bytecode: void addFconst(float)>(v);
label:
return;
}
static void <clinit>()
{
int[] v, v, v, v;
v = newarray (int)[55];
v[0] = 43;
v[1] = 99;
v[2] = 98;
v[3] = 97;
v[4] = 96;
v[5] = 45;
v[6] = 103;
v[7] = 102;
v[8] = 101;
v[9] = 100;
v[10] = 42;
v[11] = 107;
v[12] = 106;
v[13] = 105;
v[14] = 104;
v[15] = 47;
v[16] = 111;
v[17] = 110;
v[18] = 109;
v[19] = 108;
v[20] = 37;
v[21] = 115;
v[22] = 114;
v[23] = 113;
v[24] = 112;
v[25] = 124;
v[26] = 0;
v[27] = 0;
v[28] = 129;
v[29] = 128;
v[30] = 94;
v[31] = 0;
v[32] = 0;
v[33] = 131;
v[34] = 130;
v[35] = 38;
v[36] = 0;
v[37] = 0;
v[38] = 127;
v[39] = 126;
v[40] = 364;
v[41] = 0;
v[42] = 0;
v[43] = 121;
v[44] = 120;
v[45] = 366;
v[46] = 0;
v[47] = 0;
v[48] = 123;
v[49] = 122;
v[50] = 370;
v[51] = 0;
v[52] = 0;
v[53] = 125;
v[54] = 124;
<javassist.compiler.CodeGen: int[] binOp> = v;
v = newarray (int)[18];
v[0] = 358;
v[1] = 159;
v[2] = 160;
v[3] = 350;
v[4] = 160;
v[5] = 159;
v[6] = 357;
v[7] = 164;
v[8] = 163;
v[9] = 359;
v[10] = 162;
v[11] = 161;
v[12] = 60;
v[13] = 161;
v[14] = 162;
v[15] = 62;
v[16] = 163;
v[17] = 164;
<javassist.compiler.CodeGen: int[] ifOp> = v;
v = newarray (int)[18];
v[0] = 358;
v[1] = 153;
v[2] = 154;
v[3] = 350;
v[4] = 154;
v[5] = 153;
v[6] = 357;
v[7] = 158;
v[8] = 157;
v[9] = 359;
v[10] = 156;
v[11] = 155;
v[12] = 60;
v[13] = 155;
v[14] = 156;
v[15] = 62;
v[16] = 157;
v[17] = 158;
<javassist.compiler.CodeGen: int[] ifOp2> = v;
v = newarray (int)[16];
v[0] = 0;
v[1] = 144;
v[2] = 143;
v[3] = 142;
v[4] = 141;
v[5] = 0;
v[6] = 140;
v[7] = 139;
v[8] = 138;
v[9] = 137;
v[10] = 0;
v[11] = 136;
v[12] = 135;
v[13] = 134;
v[14] = 133;
v[15] = 0;
<javassist.compiler.CodeGen: int[] castOp> = v;
return;
}
}