Class ByteCodeParser
java.lang.Object
org.jd.core.v1.service.converter.classfiletojavasyntax.util.ByteCodeParser
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static class
private static class
private static class
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate AttributeBootstrapMethods
private ClassFileBodyDeclaration
private String
private static final ByteCodeParser.JsrReturnAddressExpression
private LocalVariableMaker
private ByteCodeParser.MemberVisitor
private Type
private SearchFirstLineNumberVisitor
private TypeMaker
-
Constructor Summary
ConstructorsConstructorDescriptionByteCodeParser
(TypeMaker typeMaker, LocalVariableMaker localVariableMaker, ClassFile classFile, ClassFileBodyDeclaration bodyDeclaration, ClassFileConstructorOrMethodDeclaration comd) -
Method Summary
Modifier and TypeMethodDescriptionprivate static Expression
checkIfLastStatementIsAMultiAssignment
(Statements statements, Expression parameter) private static void
checkStack
(DefaultStack<Expression> stack, byte[] code, int offset) private static int
countMethodParameters
(String descriptor) private static Expression
createAssignment
(BinaryOperatorExpression boe, String operator) private void
createAssignment
(Statements statements, DefaultStack<Expression> stack, int lineNumber, Expression leftExpression, Expression rightExpression) static int
evalStackDepth
(ConstantPool constants, byte[] code, BasicBlock bb) static int
private BaseExpression
extractParametersFromStack
(Statements statements, DefaultStack<Expression> stack, BaseType parameterTypes) static int
getExceptionLocalVariableIndex
(BasicBlock basicBlock) private Expression
getFieldInstanceReference
(Expression expression, ObjectType ot, String name) static int
getLastOpcode
(BasicBlock basicBlock) private static Expression
private AbstractLocalVariable
getLocalVariableInAssignment
(int index, int offset, Expression value) private Expression
getMethodInstanceReference
(Expression expression, ObjectType ot, String name, String descriptor) static boolean
isAssertCondition
(String internalTypeName, BasicBlock basicBlock) private static boolean
isNegativeOne
(Expression expression) private static boolean
isPositiveOne
(Expression expression) private Expression
newIntegerBinaryOperatorExpression
(int lineNumber, Expression leftExpression, String operator, Expression rightExpression, int priority) private Expression
newIntegerComparisonOperatorExpression
(int lineNumber, Expression leftExpression, String operator, Expression rightExpression, int priority) private Expression
newIntegerOrBooleanBinaryOperatorExpression
(int lineNumber, Expression leftExpression, String operator, Expression rightExpression, int priority) private Expression
newIntegerOrBooleanComparisonOperatorExpression
(int lineNumber, Expression leftExpression, String operator, Expression rightExpression, int priority) private Expression
newNewExpression
(int lineNumber, String internalTypeName) private Expression
newPostArithmeticOperatorExpression
(int lineNumber, Expression expression, String operator) private Expression
newPreArithmeticOperatorExpression
(int lineNumber, String operator, Expression expression) void
parse
(BasicBlock basicBlock, Statements statements, DefaultStack<Expression> stack) private void
parseASTORE
(Statements statements, DefaultStack<Expression> stack, int lineNumber, AbstractLocalVariable localVariable, Expression valueRef) private void
parseGetField
(DefaultStack<Expression> stack, ConstantPool constants, int lineNumber, int index) private void
parseGetStatic
(DefaultStack<Expression> stack, ConstantPool constants, int lineNumber, int index) private void
parseIF
(DefaultStack<Expression> stack, int lineNumber, BasicBlock basicBlock, String operator1, String operator2, int priority) private void
parseIINC
(Statements statements, DefaultStack<Expression> stack, int lineNumber, AbstractLocalVariable localVariable, int count) private static void
parseILOAD
(Statements statements, DefaultStack<Expression> stack, int lineNumber, AbstractLocalVariable localVariable) private void
parseInvokeDynamic
(Statements statements, DefaultStack<Expression> stack, ConstantPool constants, int lineNumber, int index) private void
parseLDC
(DefaultStack<Expression> stack, ConstantPool constants, int lineNumber, Constant constant) private void
parsePUT
(Statements statements, DefaultStack<Expression> stack, int lineNumber, FieldReferenceExpression fr, Expression valueRef) private void
parsePutField
(Statements statements, DefaultStack<Expression> stack, ConstantPool constants, int lineNumber, int index) private void
parsePutStatic
(Statements statements, DefaultStack<Expression> stack, ConstantPool constants, int lineNumber, int index) private void
parseSTORE
(Statements statements, DefaultStack<Expression> stack, int lineNumber, AbstractLocalVariable localVariable, Expression valueRef) private void
parseXRETURN
(Statements statements, DefaultStack<Expression> stack, int lineNumber) prepareLambdaParameters
(BaseFormalParameter formalParameters, int parameterCount) private static BaseStatement
prepareLambdaStatements
(BaseStatement baseStatement) private void
reduceIntegerLocalVariableType
(Expression expression) static int
searchNextOpcode
(BasicBlock basicBlock, int maxOffset) private static boolean
private static boolean
stackContainsLocalVariableReference
(DefaultStack<Expression> stack, AbstractLocalVariable localVariable)
-
Field Details
-
JSR_RETURN_ADDRESS_EXPRESSION
-
memberVisitor
-
searchFirstLineNumberVisitor
-
typeMaker
-
localVariableMaker
-
internalTypeName
-
typeParametersToTypeArgumentsBinder
-
attributeBootstrapMethods
-
bodyDeclaration
-
typeBounds
-
returnedType
-
-
Constructor Details
-
ByteCodeParser
public ByteCodeParser(TypeMaker typeMaker, LocalVariableMaker localVariableMaker, ClassFile classFile, ClassFileBodyDeclaration bodyDeclaration, ClassFileConstructorOrMethodDeclaration comd)
-
-
Method Details
-
parse
-
extractParametersFromStack
private BaseExpression extractParametersFromStack(Statements statements, DefaultStack<Expression> stack, BaseType parameterTypes) -
checkIfLastStatementIsAMultiAssignment
private static Expression checkIfLastStatementIsAMultiAssignment(Statements statements, Expression parameter) -
getLocalVariableInAssignment
-
parseLDC
private void parseLDC(DefaultStack<Expression> stack, ConstantPool constants, int lineNumber, Constant constant) -
parseILOAD
private static void parseILOAD(Statements statements, DefaultStack<Expression> stack, int lineNumber, AbstractLocalVariable localVariable) -
parseSTORE
private void parseSTORE(Statements statements, DefaultStack<Expression> stack, int lineNumber, AbstractLocalVariable localVariable, Expression valueRef) -
stackContainsLocalVariableReference
private static boolean stackContainsLocalVariableReference(DefaultStack<Expression> stack, AbstractLocalVariable localVariable) -
parsePUT
private void parsePUT(Statements statements, DefaultStack<Expression> stack, int lineNumber, FieldReferenceExpression fr, Expression valueRef) -
parseInvokeDynamic
private void parseInvokeDynamic(Statements statements, DefaultStack<Expression> stack, ConstantPool constants, int lineNumber, int index) -
prepareLambdaParameters
private static List<String> prepareLambdaParameters(BaseFormalParameter formalParameters, int parameterCount) -
prepareLambdaStatements
-
stackContainsFieldReference
private static boolean stackContainsFieldReference(DefaultStack<Expression> stack, FieldReferenceExpression fr) -
createAssignment
-
isPositiveOne
-
isNegativeOne
-
parseASTORE
private void parseASTORE(Statements statements, DefaultStack<Expression> stack, int lineNumber, AbstractLocalVariable localVariable, Expression valueRef) -
createAssignment
private void createAssignment(Statements statements, DefaultStack<Expression> stack, int lineNumber, Expression leftExpression, Expression rightExpression) -
parseIINC
private void parseIINC(Statements statements, DefaultStack<Expression> stack, int lineNumber, AbstractLocalVariable localVariable, int count) -
parseIF
private void parseIF(DefaultStack<Expression> stack, int lineNumber, BasicBlock basicBlock, String operator1, String operator2, int priority) -
parseXRETURN
-
parseGetStatic
private void parseGetStatic(DefaultStack<Expression> stack, ConstantPool constants, int lineNumber, int index) -
parsePutStatic
private void parsePutStatic(Statements statements, DefaultStack<Expression> stack, ConstantPool constants, int lineNumber, int index) -
parseGetField
private void parseGetField(DefaultStack<Expression> stack, ConstantPool constants, int lineNumber, int index) -
parsePutField
private void parsePutField(Statements statements, DefaultStack<Expression> stack, ConstantPool constants, int lineNumber, int index) -
getLastRightExpression
-
newNewExpression
-
newIntegerBinaryOperatorExpression
private Expression newIntegerBinaryOperatorExpression(int lineNumber, Expression leftExpression, String operator, Expression rightExpression, int priority) -
newIntegerOrBooleanBinaryOperatorExpression
private Expression newIntegerOrBooleanBinaryOperatorExpression(int lineNumber, Expression leftExpression, String operator, Expression rightExpression, int priority) -
newIntegerOrBooleanComparisonOperatorExpression
private Expression newIntegerOrBooleanComparisonOperatorExpression(int lineNumber, Expression leftExpression, String operator, Expression rightExpression, int priority) -
newIntegerComparisonOperatorExpression
private Expression newIntegerComparisonOperatorExpression(int lineNumber, Expression leftExpression, String operator, Expression rightExpression, int priority) -
newPreArithmeticOperatorExpression
private Expression newPreArithmeticOperatorExpression(int lineNumber, String operator, Expression expression) -
newPostArithmeticOperatorExpression
private Expression newPostArithmeticOperatorExpression(int lineNumber, Expression expression, String operator) -
reduceIntegerLocalVariableType
-
getFieldInstanceReference
- Returns:
- expression, 'this' or 'super'
-
getMethodInstanceReference
private Expression getMethodInstanceReference(Expression expression, ObjectType ot, String name, String descriptor) - Returns:
- expression, 'this' or 'super'
-
checkStack
-
isAssertCondition
-
getExceptionLocalVariableIndex
-
searchNextOpcode
-
getLastOpcode
-
evalStackDepth
-
evalStackDepth
-
countMethodParameters
-