Class SimplifyAssignmentsTransform
- java.lang.Object
-
- com.strobel.decompiler.languages.java.ast.DepthFirstAstVisitor<java.lang.Void,TResult>
-
- com.strobel.decompiler.languages.java.ast.ContextTrackingVisitor<AstNode>
-
- com.strobel.decompiler.languages.java.ast.transforms.SimplifyAssignmentsTransform
-
- All Implemented Interfaces:
IAstVisitor<java.lang.Void,AstNode>
,IAstTransform
public class SimplifyAssignmentsTransform extends ContextTrackingVisitor<AstNode> implements IAstTransform
-
-
Field Summary
Fields Modifier and Type Field Description private JavaResolver
_resolver
private static PrimitiveExpression
FALSE_CONSTANT
private static Function<AstNode,AstNode>
NEGATE_FUNCTION
private static PrimitiveExpression
TRUE_CONSTANT
-
Fields inherited from class com.strobel.decompiler.languages.java.ast.ContextTrackingVisitor
context
-
-
Constructor Summary
Constructors Constructor Description SimplifyAssignmentsTransform(DecompilerContext context)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private boolean
tryRewriteBinaryAsAssignment(AssignmentExpression node, Expression left, Expression right)
private boolean
tryRewriteBinaryAsUnary(AssignmentExpression node, Expression left, Expression right)
AstNode
visitAssignmentExpression(AssignmentExpression node, java.lang.Void data)
AstNode
visitBinaryOperatorExpression(BinaryOperatorExpression node, java.lang.Void data)
AstNode
visitConditionalExpression(ConditionalExpression node, java.lang.Void data)
AstNode
visitUnaryOperatorExpression(UnaryOperatorExpression node, java.lang.Void p)
-
Methods inherited from class com.strobel.decompiler.languages.java.ast.ContextTrackingVisitor
inConstructor, inMethod, inStaticInitializer, makeType, makeType, resolver, run, visitConstructorDeclaration, visitMethodDeclaration, visitMethodDeclarationOverride, visitTypeDeclaration, visitTypeDeclarationOverride
-
Methods inherited from class com.strobel.decompiler.languages.java.ast.DepthFirstAstVisitor
shouldContinue, visitAnnotation, visitAnonymousObjectCreationExpression, visitArrayCreationExpression, visitArrayInitializerExpression, visitArraySpecifier, visitAssertStatement, visitBlockStatement, visitBreakStatement, visitBytecodeConstant, visitCaseLabel, visitCastExpression, visitCatchClause, visitChildren, visitClassOfExpression, visitComment, visitCompilationUnit, visitComposedType, visitContinueStatement, visitDoWhileStatement, visitEmptyStatement, visitEnumValueDeclaration, visitExpressionStatement, visitFieldDeclaration, visitForEachStatement, visitForStatement, visitGotoStatement, visitIdentifier, visitIdentifierExpression, visitIfElseStatement, visitImportDeclaration, visitIndexerExpression, visitInitializerBlock, visitInlinedBytecode, visitInstanceOfExpression, visitIntersectionType, visitInvocationExpression, visitJavaTokenNode, visitLabeledStatement, visitLabelStatement, visitLambdaExpression, visitLocalTypeDeclarationStatement, visitMemberReferenceExpression, visitMethodGroupExpression, visitModuleDeclaration, visitNewLine, visitNullReferenceExpression, visitObjectCreationExpression, visitPackageDeclaration, visitParameterDeclaration, visitParenthesizedExpression, visitPatternPlaceholder, visitPrimitiveExpression, visitReturnStatement, visitSimpleType, visitSuperReferenceExpression, visitSwitchExpression, visitSwitchExpressionArm, visitSwitchSection, visitSwitchStatement, visitSynchronizedStatement, visitText, visitThisReferenceExpression, visitThrowStatement, visitTryCatchStatement, visitTypeParameterDeclaration, visitTypeReference, visitUnionType, visitVariableDeclaration, visitVariableInitializer, visitWhileStatement, visitWildcardType
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.strobel.decompiler.languages.java.ast.transforms.IAstTransform
run
-
-
-
-
Field Detail
-
_resolver
private final JavaResolver _resolver
-
TRUE_CONSTANT
private static final PrimitiveExpression TRUE_CONSTANT
-
FALSE_CONSTANT
private static final PrimitiveExpression FALSE_CONSTANT
-
-
Constructor Detail
-
SimplifyAssignmentsTransform
public SimplifyAssignmentsTransform(DecompilerContext context)
-
-
Method Detail
-
visitConditionalExpression
public AstNode visitConditionalExpression(ConditionalExpression node, java.lang.Void data)
- Specified by:
visitConditionalExpression
in interfaceIAstVisitor<java.lang.Void,AstNode>
- Overrides:
visitConditionalExpression
in classDepthFirstAstVisitor<java.lang.Void,AstNode>
-
visitBinaryOperatorExpression
public AstNode visitBinaryOperatorExpression(BinaryOperatorExpression node, java.lang.Void data)
- Specified by:
visitBinaryOperatorExpression
in interfaceIAstVisitor<java.lang.Void,AstNode>
- Overrides:
visitBinaryOperatorExpression
in classDepthFirstAstVisitor<java.lang.Void,AstNode>
-
visitUnaryOperatorExpression
public AstNode visitUnaryOperatorExpression(UnaryOperatorExpression node, java.lang.Void p)
- Specified by:
visitUnaryOperatorExpression
in interfaceIAstVisitor<java.lang.Void,AstNode>
- Overrides:
visitUnaryOperatorExpression
in classDepthFirstAstVisitor<java.lang.Void,AstNode>
-
visitAssignmentExpression
public AstNode visitAssignmentExpression(AssignmentExpression node, java.lang.Void data)
- Specified by:
visitAssignmentExpression
in interfaceIAstVisitor<java.lang.Void,AstNode>
- Overrides:
visitAssignmentExpression
in classDepthFirstAstVisitor<java.lang.Void,AstNode>
-
tryRewriteBinaryAsAssignment
private boolean tryRewriteBinaryAsAssignment(AssignmentExpression node, Expression left, Expression right)
-
tryRewriteBinaryAsUnary
private boolean tryRewriteBinaryAsUnary(AssignmentExpression node, Expression left, Expression right)
-
-