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
_insertParenthesesForReadability
private static int
ADDITIVE
private static int
ASSIGNMENT
private static int
BITWISE_AND
private static int
BITWISE_OR
private static int
CAST
private static int
CONDITIONAL
private static int
EQUALITY
private static int
EXCLUSIVE_OR
private static int
LOGICAL_AND
private static int
LOGICAL_OR
private static int
MULTIPLICATIVE
private static Function<AstNode,AstNode>
PARENTHESIZE_FUNCTION
private static int
PRIMARY
private static int
RELATIONAL_AND_TYPE_TESTING
private static int
SHIFT
private static int
UNARY
-
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:
visitMemberReferenceExpression
in interfaceIAstVisitor<java.lang.Void,java.lang.Void>
- Overrides:
visitMemberReferenceExpression
in classDepthFirstAstVisitor<java.lang.Void,java.lang.Void>
-
visitInvocationExpression
public java.lang.Void visitInvocationExpression(InvocationExpression node, java.lang.Void data)
- Specified by:
visitInvocationExpression
in interfaceIAstVisitor<java.lang.Void,java.lang.Void>
- Overrides:
visitInvocationExpression
in classDepthFirstAstVisitor<java.lang.Void,java.lang.Void>
-
visitIndexerExpression
public java.lang.Void visitIndexerExpression(IndexerExpression node, java.lang.Void data)
- Specified by:
visitIndexerExpression
in interfaceIAstVisitor<java.lang.Void,java.lang.Void>
- Overrides:
visitIndexerExpression
in classDepthFirstAstVisitor<java.lang.Void,java.lang.Void>
-
visitUnaryOperatorExpression
public java.lang.Void visitUnaryOperatorExpression(UnaryOperatorExpression node, java.lang.Void data)
- Specified by:
visitUnaryOperatorExpression
in interfaceIAstVisitor<java.lang.Void,java.lang.Void>
- Overrides:
visitUnaryOperatorExpression
in classDepthFirstAstVisitor<java.lang.Void,java.lang.Void>
-
visitCastExpression
public java.lang.Void visitCastExpression(CastExpression node, java.lang.Void data)
- Specified by:
visitCastExpression
in interfaceIAstVisitor<java.lang.Void,java.lang.Void>
- Overrides:
visitCastExpression
in classDepthFirstAstVisitor<java.lang.Void,java.lang.Void>
-
visitBinaryOperatorExpression
public java.lang.Void visitBinaryOperatorExpression(BinaryOperatorExpression node, java.lang.Void data)
- Specified by:
visitBinaryOperatorExpression
in interfaceIAstVisitor<java.lang.Void,java.lang.Void>
- Overrides:
visitBinaryOperatorExpression
in classDepthFirstAstVisitor<java.lang.Void,java.lang.Void>
-
visitInstanceOfExpression
public java.lang.Void visitInstanceOfExpression(InstanceOfExpression node, java.lang.Void data)
- Specified by:
visitInstanceOfExpression
in interfaceIAstVisitor<java.lang.Void,java.lang.Void>
- Overrides:
visitInstanceOfExpression
in classDepthFirstAstVisitor<java.lang.Void,java.lang.Void>
-
visitConditionalExpression
public java.lang.Void visitConditionalExpression(ConditionalExpression node, java.lang.Void data)
- Specified by:
visitConditionalExpression
in interfaceIAstVisitor<java.lang.Void,java.lang.Void>
- Overrides:
visitConditionalExpression
in classDepthFirstAstVisitor<java.lang.Void,java.lang.Void>
-
visitAssignmentExpression
public java.lang.Void visitAssignmentExpression(AssignmentExpression node, java.lang.Void data)
- Specified by:
visitAssignmentExpression
in interfaceIAstVisitor<java.lang.Void,java.lang.Void>
- Overrides:
visitAssignmentExpression
in classDepthFirstAstVisitor<java.lang.Void,java.lang.Void>
-
-