Class InsertParenthesesVisitor
- java.lang.Object
-
- com.strobel.decompiler.languages.java.ast.DepthFirstAstVisitor<java.lang.Void,java.lang.Void>
-
- com.strobel.decompiler.languages.java.ast.InsertParenthesesVisitor
-
- All Implemented Interfaces:
IAstVisitor<java.lang.Void,java.lang.Void>
public final class InsertParenthesesVisitor extends DepthFirstAstVisitor<java.lang.Void,java.lang.Void>
-
-
Field Summary
Fields Modifier and Type Field Description private boolean_insertParenthesesForReadabilityprivate static intADDITIVEprivate static intASSIGNMENTprivate static intBITWISE_ANDprivate static intBITWISE_ORprivate static intCASTprivate static intCONDITIONALprivate static intEQUALITYprivate static intEXCLUSIVE_ORprivate static intLOGICAL_ANDprivate static intLOGICAL_ORprivate static intMULTIPLICATIVEprivate static Function<AstNode,AstNode>PARENTHESIZE_FUNCTIONprivate static intPRIMARYprivate static intRELATIONAL_AND_TYPE_TESTINGprivate static intSHIFTprivate static intUNARY
-
Constructor Summary
Constructors Constructor Description InsertParenthesesVisitor()
-
Method Summary
-
Methods inherited from class com.strobel.decompiler.languages.java.ast.DepthFirstAstVisitor
shouldContinue, visitAnnotation, visitAnonymousObjectCreationExpression, visitArrayCreationExpression, visitArrayInitializerExpression, visitArraySpecifier, visitAssertStatement, visitBlockStatement, visitBreakStatement, visitBytecodeConstant, visitCaseLabel, visitCatchClause, visitChildren, visitClassOfExpression, visitComment, visitCompilationUnit, visitComposedType, visitConstructorDeclaration, visitContinueStatement, visitDoWhileStatement, visitEmptyStatement, visitEnumValueDeclaration, visitExpressionStatement, visitFieldDeclaration, visitForEachStatement, visitForStatement, visitGotoStatement, visitIdentifier, visitIdentifierExpression, visitIfElseStatement, visitImportDeclaration, visitInitializerBlock, visitInlinedBytecode, visitIntersectionType, visitJavaTokenNode, visitLabeledStatement, visitLabelStatement, visitLambdaExpression, visitLocalTypeDeclarationStatement, visitMethodDeclaration, visitMethodGroupExpression, visitModuleDeclaration, visitNewLine, visitNullReferenceExpression, visitObjectCreationExpression, visitPackageDeclaration, visitParameterDeclaration, visitParenthesizedExpression, visitPatternPlaceholder, visitPrimitiveExpression, visitReturnStatement, visitSimpleType, visitSuperReferenceExpression, visitSwitchExpression, visitSwitchExpressionArm, visitSwitchSection, visitSwitchStatement, visitSynchronizedStatement, visitText, visitThisReferenceExpression, visitThrowStatement, visitTryCatchStatement, visitTypeDeclaration, visitTypeParameterDeclaration, visitTypeReference, visitUnionType, visitVariableDeclaration, visitVariableInitializer, visitWhileStatement, visitWildcardType
-
-
-
-
Field Detail
-
PRIMARY
private static final int PRIMARY
- See Also:
- Constant Field Values
-
CAST
private static final int CAST
- See Also:
- Constant Field Values
-
UNARY
private static final int UNARY
- See Also:
- Constant Field Values
-
MULTIPLICATIVE
private static final int MULTIPLICATIVE
- See Also:
- Constant Field Values
-
ADDITIVE
private static final int ADDITIVE
- See Also:
- Constant Field Values
-
SHIFT
private static final int SHIFT
- See Also:
- Constant Field Values
-
RELATIONAL_AND_TYPE_TESTING
private static final int RELATIONAL_AND_TYPE_TESTING
- See Also:
- Constant Field Values
-
EQUALITY
private static final int EQUALITY
- See Also:
- Constant Field Values
-
BITWISE_AND
private static final int BITWISE_AND
- See Also:
- Constant Field Values
-
EXCLUSIVE_OR
private static final int EXCLUSIVE_OR
- See Also:
- Constant Field Values
-
BITWISE_OR
private static final int BITWISE_OR
- See Also:
- Constant Field Values
-
LOGICAL_AND
private static final int LOGICAL_AND
- See Also:
- Constant Field Values
-
LOGICAL_OR
private static final int LOGICAL_OR
- See Also:
- Constant Field Values
-
CONDITIONAL
private static final int CONDITIONAL
- See Also:
- Constant Field Values
-
ASSIGNMENT
private static final int ASSIGNMENT
- See Also:
- Constant Field Values
-
_insertParenthesesForReadability
private boolean _insertParenthesesForReadability
-
-
Method Detail
-
getInsertParenthesesForReadability
public final boolean getInsertParenthesesForReadability()
-
setInsertParenthesesForReadability
public final void setInsertParenthesesForReadability(boolean insertParenthesesForReadability)
-
getPrecedence
private static int getPrecedence(Expression e)
-
getBinaryOperatorType
private static BinaryOperatorType getBinaryOperatorType(Expression e)
-
parenthesizeIfRequired
private static void parenthesizeIfRequired(Expression expression, int minimumPrecedence)
-
parenthesize
private static void parenthesize(Expression expression)
-
canTypeBeMisinterpretedAsExpression
private static boolean canTypeBeMisinterpretedAsExpression(AstType type)
-
visitMemberReferenceExpression
public java.lang.Void visitMemberReferenceExpression(MemberReferenceExpression node, java.lang.Void data)
- Specified by:
visitMemberReferenceExpressionin interfaceIAstVisitor<java.lang.Void,java.lang.Void>- Overrides:
visitMemberReferenceExpressionin classDepthFirstAstVisitor<java.lang.Void,java.lang.Void>
-
visitInvocationExpression
public java.lang.Void visitInvocationExpression(InvocationExpression node, java.lang.Void data)
- Specified by:
visitInvocationExpressionin interfaceIAstVisitor<java.lang.Void,java.lang.Void>- Overrides:
visitInvocationExpressionin classDepthFirstAstVisitor<java.lang.Void,java.lang.Void>
-
visitIndexerExpression
public java.lang.Void visitIndexerExpression(IndexerExpression node, java.lang.Void data)
- Specified by:
visitIndexerExpressionin interfaceIAstVisitor<java.lang.Void,java.lang.Void>- Overrides:
visitIndexerExpressionin classDepthFirstAstVisitor<java.lang.Void,java.lang.Void>
-
visitUnaryOperatorExpression
public java.lang.Void visitUnaryOperatorExpression(UnaryOperatorExpression node, java.lang.Void data)
- Specified by:
visitUnaryOperatorExpressionin interfaceIAstVisitor<java.lang.Void,java.lang.Void>- Overrides:
visitUnaryOperatorExpressionin classDepthFirstAstVisitor<java.lang.Void,java.lang.Void>
-
visitCastExpression
public java.lang.Void visitCastExpression(CastExpression node, java.lang.Void data)
- Specified by:
visitCastExpressionin interfaceIAstVisitor<java.lang.Void,java.lang.Void>- Overrides:
visitCastExpressionin classDepthFirstAstVisitor<java.lang.Void,java.lang.Void>
-
visitBinaryOperatorExpression
public java.lang.Void visitBinaryOperatorExpression(BinaryOperatorExpression node, java.lang.Void data)
- Specified by:
visitBinaryOperatorExpressionin interfaceIAstVisitor<java.lang.Void,java.lang.Void>- Overrides:
visitBinaryOperatorExpressionin classDepthFirstAstVisitor<java.lang.Void,java.lang.Void>
-
visitInstanceOfExpression
public java.lang.Void visitInstanceOfExpression(InstanceOfExpression node, java.lang.Void data)
- Specified by:
visitInstanceOfExpressionin interfaceIAstVisitor<java.lang.Void,java.lang.Void>- Overrides:
visitInstanceOfExpressionin classDepthFirstAstVisitor<java.lang.Void,java.lang.Void>
-
visitConditionalExpression
public java.lang.Void visitConditionalExpression(ConditionalExpression node, java.lang.Void data)
- Specified by:
visitConditionalExpressionin interfaceIAstVisitor<java.lang.Void,java.lang.Void>- Overrides:
visitConditionalExpressionin classDepthFirstAstVisitor<java.lang.Void,java.lang.Void>
-
visitAssignmentExpression
public java.lang.Void visitAssignmentExpression(AssignmentExpression node, java.lang.Void data)
- Specified by:
visitAssignmentExpressionin interfaceIAstVisitor<java.lang.Void,java.lang.Void>- Overrides:
visitAssignmentExpressionin classDepthFirstAstVisitor<java.lang.Void,java.lang.Void>
-
-