Class ExprProcessor
- java.lang.Object
-
- org.jetbrains.java.decompiler.modules.decompiler.ExprProcessor
-
- All Implemented Interfaces:
CodeConstants
public class ExprProcessor extends java.lang.Object implements CodeConstants
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classExprProcessor.NullCastType-
Nested classes/interfaces inherited from interface org.jetbrains.java.decompiler.code.CodeConstants
CodeConstants.SignaturePolymorphic
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringNULL_TYPE_STRINGstatic java.lang.StringUNDEFINED_TYPE_STRINGstatic java.lang.StringUNKNOWN_TYPE_STRING-
Fields inherited from interface org.jetbrains.java.decompiler.code.CodeConstants
ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_MANDATED, ACC_MODULE, ACC_NATIVE, ACC_OPEN, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STATIC_PHASE, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_TRANSITIVE, ACC_VARARGS, ACC_VOLATILE, CLINIT_NAME, CONSTANT_Class, CONSTANT_Double, CONSTANT_Dynamic, CONSTANT_Fieldref, CONSTANT_Float, CONSTANT_Integer, CONSTANT_InterfaceMethodref, CONSTANT_InvokeDynamic, CONSTANT_Long, CONSTANT_MethodHandle, CONSTANT_MethodHandle_REF_getField, CONSTANT_MethodHandle_REF_getStatic, CONSTANT_MethodHandle_REF_invokeInterface, CONSTANT_MethodHandle_REF_invokeSpecial, CONSTANT_MethodHandle_REF_invokeStatic, CONSTANT_MethodHandle_REF_invokeVirtual, CONSTANT_MethodHandle_REF_newInvokeSpecial, CONSTANT_MethodHandle_REF_putField, CONSTANT_MethodHandle_REF_putStatic, CONSTANT_Methodref, CONSTANT_MethodType, CONSTANT_Module, CONSTANT_NameAndType, CONSTANT_Package, CONSTANT_String, CONSTANT_Utf8, GROUP_FIELDACCESS, GROUP_GENERAL, GROUP_INVOCATION, GROUP_JUMP, GROUP_RETURN, GROUP_SWITCH, INIT_NAME, opc_aaload, opc_aastore, opc_aconst_null, opc_aload, opc_aload_0, opc_aload_1, opc_aload_2, opc_aload_3, opc_anewarray, opc_areturn, opc_arraylength, opc_astore, opc_astore_0, opc_astore_1, opc_astore_2, opc_astore_3, opc_athrow, opc_baload, opc_bastore, opc_bipush, opc_caload, opc_castore, opc_checkcast, opc_d2f, opc_d2i, opc_d2l, opc_dadd, opc_daload, opc_dastore, opc_dcmpg, opc_dcmpl, opc_dconst_0, opc_dconst_1, opc_ddiv, opc_dload, opc_dload_0, opc_dload_1, opc_dload_2, opc_dload_3, opc_dmul, opc_dneg, opc_drem, opc_dreturn, opc_dstore, opc_dstore_0, opc_dstore_1, opc_dstore_2, opc_dstore_3, opc_dsub, opc_dup, opc_dup_x1, opc_dup_x2, opc_dup2, opc_dup2_x1, opc_dup2_x2, opc_f2d, opc_f2i, opc_f2l, opc_fadd, opc_faload, opc_fastore, opc_fcmpg, opc_fcmpl, opc_fconst_0, opc_fconst_1, opc_fconst_2, opc_fdiv, opc_fload, opc_fload_0, opc_fload_1, opc_fload_2, opc_fload_3, opc_fmul, opc_fneg, opc_frem, opc_freturn, opc_fstore, opc_fstore_0, opc_fstore_1, opc_fstore_2, opc_fstore_3, opc_fsub, opc_getfield, opc_getstatic, opc_goto, opc_goto_w, opc_i2b, opc_i2c, opc_i2d, opc_i2f, opc_i2l, opc_i2s, opc_iadd, opc_iaload, opc_iand, opc_iastore, opc_iconst_0, opc_iconst_1, opc_iconst_2, opc_iconst_3, opc_iconst_4, opc_iconst_5, opc_iconst_m1, opc_idiv, opc_if_acmpeq, opc_if_acmpne, opc_if_icmpeq, opc_if_icmpge, opc_if_icmpgt, opc_if_icmple, opc_if_icmplt, opc_if_icmpne, opc_ifeq, opc_ifge, opc_ifgt, opc_ifle, opc_iflt, opc_ifne, opc_ifnonnull, opc_ifnull, opc_iinc, opc_iload, opc_iload_0, opc_iload_1, opc_iload_2, opc_iload_3, opc_imul, opc_ineg, opc_instanceof, opc_invokedynamic, opc_invokeinterface, opc_invokespecial, opc_invokestatic, opc_invokevirtual, opc_ior, opc_irem, opc_ireturn, opc_ishl, opc_ishr, opc_istore, opc_istore_0, opc_istore_1, opc_istore_2, opc_istore_3, opc_isub, opc_iushr, opc_ixor, opc_jsr, opc_jsr_w, opc_l2d, opc_l2f, opc_l2i, opc_ladd, opc_laload, opc_land, opc_lastore, opc_lcmp, opc_lconst_0, opc_lconst_1, opc_ldc, opc_ldc_w, opc_ldc2_w, opc_ldiv, opc_lload, opc_lload_0, opc_lload_1, opc_lload_2, opc_lload_3, opc_lmul, opc_lneg, opc_lookupswitch, opc_lor, opc_lrem, opc_lreturn, opc_lshl, opc_lshr, opc_lstore, opc_lstore_0, opc_lstore_1, opc_lstore_2, opc_lstore_3, opc_lsub, opc_lushr, opc_lxor, opc_monitorenter, opc_monitorexit, opc_multianewarray, opc_new, opc_newarray, opc_nop, opc_pop, opc_pop2, opc_putfield, opc_putstatic, opc_ret, opc_return, opc_saload, opc_sastore, opc_sipush, opc_swap, opc_tableswitch, opc_wide, TYPE_ADDRESS, TYPE_ANY, TYPE_BOOLEAN, TYPE_BYTE, TYPE_BYTECHAR, TYPE_CHAR, TYPE_DOUBLE, TYPE_FAMILY_BOOLEAN, TYPE_FAMILY_DOUBLE, TYPE_FAMILY_FLOAT, TYPE_FAMILY_INTEGER, TYPE_FAMILY_LONG, TYPE_FAMILY_OBJECT, TYPE_FAMILY_UNKNOWN, TYPE_FLOAT, TYPE_GENVAR, TYPE_GROUP2EMPTY, TYPE_INT, TYPE_LONG, TYPE_NOTINITIALIZED, TYPE_NULL, TYPE_OBJECT, TYPE_SHORT, TYPE_SHORTCHAR, TYPE_UNKNOWN, TYPE_VOID
-
-
Constructor Summary
Constructors Constructor Description ExprProcessor(MethodDescriptor md, VarProcessor varProc)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static java.lang.StringbuildJavaClassName(java.lang.String name)static booleancanonicalizeCasts(RootStatement stat)static voidcopyEntries(java.util.List<Exprent> stack)static booleandoesContravarianceNeedCast(VarType left, VarType right)static booleanendsWithSemicolon(Exprent expr)static booleangetCastedExprent(Exprent exprent, VarType leftType, TextBuffer buffer, int indent, boolean castNull)static booleangetCastedExprent(Exprent exprent, VarType leftType, TextBuffer buffer, int indent, ExprProcessor.NullCastType castNull, boolean castAlways, boolean castNarrowing, boolean unbox)static java.lang.StringgetCastTypeName(VarType type)static java.lang.StringgetCastTypeName(VarType type, boolean getShort)static ConstExprentgetDefaultArrayValue(VarType arrType)static PrimitiveExprsListgetExpressionData(VarExprent var)static java.lang.StringgetTypeName(VarType type)static java.lang.StringgetTypeName(VarType type, boolean getShort)static booleanisInvalidTypeName(java.lang.String name)static TextBufferjmpWrapper(Statement stat, int indent, boolean semicolon)static TextBufferlistToJava(java.util.List<? extends Exprent> lst, int indent)static voidmarkExprOddities(RootStatement root)static ExprentnarrowGenericCastType(Exprent expr, VarType type)voidprocessBlock(BasicBlockStatement stat, PrimitiveExprsList data, StructClass cl)voidprocessStatement(RootStatement root, StructClass cl)
-
-
-
Field Detail
-
UNDEFINED_TYPE_STRING
public static final java.lang.String UNDEFINED_TYPE_STRING
- See Also:
- Constant Field Values
-
UNKNOWN_TYPE_STRING
public static final java.lang.String UNKNOWN_TYPE_STRING
- See Also:
- Constant Field Values
-
NULL_TYPE_STRING
public static final java.lang.String NULL_TYPE_STRING
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
ExprProcessor
public ExprProcessor(MethodDescriptor md, VarProcessor varProc)
-
-
Method Detail
-
processStatement
public void processStatement(RootStatement root, StructClass cl)
-
copyEntries
public static void copyEntries(java.util.List<Exprent> stack)
-
processBlock
public void processBlock(BasicBlockStatement stat, PrimitiveExprsList data, StructClass cl)
-
canonicalizeCasts
public static boolean canonicalizeCasts(RootStatement stat)
-
markExprOddities
public static void markExprOddities(RootStatement root)
-
getTypeName
public static java.lang.String getTypeName(VarType type)
-
getTypeName
public static java.lang.String getTypeName(VarType type, boolean getShort)
-
isInvalidTypeName
public static boolean isInvalidTypeName(java.lang.String name)
-
getCastTypeName
public static java.lang.String getCastTypeName(VarType type)
-
getCastTypeName
public static java.lang.String getCastTypeName(VarType type, boolean getShort)
-
getExpressionData
public static PrimitiveExprsList getExpressionData(VarExprent var)
-
endsWithSemicolon
public static boolean endsWithSemicolon(Exprent expr)
-
jmpWrapper
public static TextBuffer jmpWrapper(Statement stat, int indent, boolean semicolon)
-
buildJavaClassName
public static java.lang.String buildJavaClassName(java.lang.String name)
-
listToJava
public static TextBuffer listToJava(java.util.List<? extends Exprent> lst, int indent)
-
getDefaultArrayValue
public static ConstExprent getDefaultArrayValue(VarType arrType)
-
getCastedExprent
public static boolean getCastedExprent(Exprent exprent, VarType leftType, TextBuffer buffer, int indent, boolean castNull)
-
getCastedExprent
public static boolean getCastedExprent(Exprent exprent, VarType leftType, TextBuffer buffer, int indent, ExprProcessor.NullCastType castNull, boolean castAlways, boolean castNarrowing, boolean unbox)
-
-