Class DeclareVariablesTransform.IsSingleAssignmentVisitor
- java.lang.Object
-
- com.strobel.decompiler.languages.java.ast.DepthFirstAstVisitor<java.lang.Void,java.lang.Boolean>
-
- com.strobel.decompiler.languages.java.ast.transforms.DeclareVariablesTransform.IsSingleAssignmentVisitor
-
- All Implemented Interfaces:
IAstVisitor<java.lang.Void,java.lang.Boolean>
- Enclosing class:
- DeclareVariablesTransform
private static final class DeclareVariablesTransform.IsSingleAssignmentVisitor extends DepthFirstAstVisitor<java.lang.Void,java.lang.Boolean>
-
-
Field Summary
Fields Modifier and Type Field Description private boolean
_abort
private int
_assignmentCount
private int
_loopOrTryDepth
private AssignmentExpression
_replacedAssignment
private java.lang.String
_variableName
-
Constructor Summary
Constructors Constructor Description IsSingleAssignmentVisitor(java.lang.String variableName, AssignmentExpression replacedAssignment)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) boolean
isAssigned()
(package private) boolean
isSingleAssignment()
java.lang.Boolean
visitAssignmentExpression(AssignmentExpression node, java.lang.Void p)
protected java.lang.Boolean
visitChildren(AstNode node, java.lang.Void data)
private java.lang.Boolean
visitCondition(AstNode condition, AstNode ifTrue, AstNode ifFalse)
java.lang.Boolean
visitConditionalExpression(ConditionalExpression node, java.lang.Void data)
java.lang.Boolean
visitDoWhileStatement(DoWhileStatement node, java.lang.Void p)
java.lang.Boolean
visitForEachStatement(ForEachStatement node, java.lang.Void p)
java.lang.Boolean
visitForStatement(ForStatement node, java.lang.Void p)
java.lang.Boolean
visitIfElseStatement(IfElseStatement node, java.lang.Void data)
java.lang.Boolean
visitTryCatchStatement(TryCatchStatement node, java.lang.Void data)
java.lang.Boolean
visitTypeDeclaration(TypeDeclaration node, java.lang.Void data)
java.lang.Boolean
visitUnaryOperatorExpression(UnaryOperatorExpression node, java.lang.Void p)
java.lang.Boolean
visitWhileStatement(WhileStatement node, java.lang.Void p)
-
Methods inherited from class com.strobel.decompiler.languages.java.ast.DepthFirstAstVisitor
shouldContinue, visitAnnotation, visitAnonymousObjectCreationExpression, visitArrayCreationExpression, visitArrayInitializerExpression, visitArraySpecifier, visitAssertStatement, visitBinaryOperatorExpression, visitBlockStatement, visitBreakStatement, visitBytecodeConstant, visitCaseLabel, visitCastExpression, visitCatchClause, visitClassOfExpression, visitComment, visitCompilationUnit, visitComposedType, visitConstructorDeclaration, visitContinueStatement, visitEmptyStatement, visitEnumValueDeclaration, visitExpressionStatement, visitFieldDeclaration, visitGotoStatement, visitIdentifier, visitIdentifierExpression, visitImportDeclaration, visitIndexerExpression, visitInitializerBlock, visitInlinedBytecode, visitInstanceOfExpression, visitIntersectionType, visitInvocationExpression, visitJavaTokenNode, visitLabeledStatement, visitLabelStatement, visitLambdaExpression, visitLocalTypeDeclarationStatement, visitMemberReferenceExpression, visitMethodDeclaration, visitMethodGroupExpression, visitModuleDeclaration, visitNewLine, visitNullReferenceExpression, visitObjectCreationExpression, visitPackageDeclaration, visitParameterDeclaration, visitParenthesizedExpression, visitPatternPlaceholder, visitPrimitiveExpression, visitReturnStatement, visitSimpleType, visitSuperReferenceExpression, visitSwitchExpression, visitSwitchExpressionArm, visitSwitchSection, visitSwitchStatement, visitSynchronizedStatement, visitText, visitThisReferenceExpression, visitThrowStatement, visitTypeParameterDeclaration, visitTypeReference, visitUnionType, visitVariableDeclaration, visitVariableInitializer, visitWildcardType
-
-
-
-
Field Detail
-
_variableName
private final java.lang.String _variableName
-
_replacedAssignment
private final AssignmentExpression _replacedAssignment
-
_abort
private boolean _abort
-
_loopOrTryDepth
private int _loopOrTryDepth
-
_assignmentCount
private int _assignmentCount
-
-
Constructor Detail
-
IsSingleAssignmentVisitor
IsSingleAssignmentVisitor(java.lang.String variableName, AssignmentExpression replacedAssignment)
-
-
Method Detail
-
isAssigned
final boolean isAssigned()
-
isSingleAssignment
final boolean isSingleAssignment()
-
visitChildren
protected java.lang.Boolean visitChildren(AstNode node, java.lang.Void data)
- Overrides:
visitChildren
in classDepthFirstAstVisitor<java.lang.Void,java.lang.Boolean>
-
visitForStatement
public java.lang.Boolean visitForStatement(ForStatement node, java.lang.Void p)
- Specified by:
visitForStatement
in interfaceIAstVisitor<java.lang.Void,java.lang.Boolean>
- Overrides:
visitForStatement
in classDepthFirstAstVisitor<java.lang.Void,java.lang.Boolean>
-
visitIfElseStatement
public java.lang.Boolean visitIfElseStatement(IfElseStatement node, java.lang.Void data)
- Specified by:
visitIfElseStatement
in interfaceIAstVisitor<java.lang.Void,java.lang.Boolean>
- Overrides:
visitIfElseStatement
in classDepthFirstAstVisitor<java.lang.Void,java.lang.Boolean>
-
visitConditionalExpression
public java.lang.Boolean visitConditionalExpression(ConditionalExpression node, java.lang.Void data)
- Specified by:
visitConditionalExpression
in interfaceIAstVisitor<java.lang.Void,java.lang.Boolean>
- Overrides:
visitConditionalExpression
in classDepthFirstAstVisitor<java.lang.Void,java.lang.Boolean>
-
visitCondition
private java.lang.Boolean visitCondition(AstNode condition, AstNode ifTrue, AstNode ifFalse)
-
visitForEachStatement
public java.lang.Boolean visitForEachStatement(ForEachStatement node, java.lang.Void p)
- Specified by:
visitForEachStatement
in interfaceIAstVisitor<java.lang.Void,java.lang.Boolean>
- Overrides:
visitForEachStatement
in classDepthFirstAstVisitor<java.lang.Void,java.lang.Boolean>
-
visitDoWhileStatement
public java.lang.Boolean visitDoWhileStatement(DoWhileStatement node, java.lang.Void p)
- Specified by:
visitDoWhileStatement
in interfaceIAstVisitor<java.lang.Void,java.lang.Boolean>
- Overrides:
visitDoWhileStatement
in classDepthFirstAstVisitor<java.lang.Void,java.lang.Boolean>
-
visitWhileStatement
public java.lang.Boolean visitWhileStatement(WhileStatement node, java.lang.Void p)
- Specified by:
visitWhileStatement
in interfaceIAstVisitor<java.lang.Void,java.lang.Boolean>
- Overrides:
visitWhileStatement
in classDepthFirstAstVisitor<java.lang.Void,java.lang.Boolean>
-
visitTryCatchStatement
public java.lang.Boolean visitTryCatchStatement(TryCatchStatement node, java.lang.Void data)
- Specified by:
visitTryCatchStatement
in interfaceIAstVisitor<java.lang.Void,java.lang.Boolean>
- Overrides:
visitTryCatchStatement
in classDepthFirstAstVisitor<java.lang.Void,java.lang.Boolean>
-
visitAssignmentExpression
public java.lang.Boolean visitAssignmentExpression(AssignmentExpression node, java.lang.Void p)
- Specified by:
visitAssignmentExpression
in interfaceIAstVisitor<java.lang.Void,java.lang.Boolean>
- Overrides:
visitAssignmentExpression
in classDepthFirstAstVisitor<java.lang.Void,java.lang.Boolean>
-
visitTypeDeclaration
public java.lang.Boolean visitTypeDeclaration(TypeDeclaration node, java.lang.Void data)
- Specified by:
visitTypeDeclaration
in interfaceIAstVisitor<java.lang.Void,java.lang.Boolean>
- Overrides:
visitTypeDeclaration
in classDepthFirstAstVisitor<java.lang.Void,java.lang.Boolean>
-
visitUnaryOperatorExpression
public java.lang.Boolean visitUnaryOperatorExpression(UnaryOperatorExpression node, java.lang.Void p)
- Specified by:
visitUnaryOperatorExpression
in interfaceIAstVisitor<java.lang.Void,java.lang.Boolean>
- Overrides:
visitUnaryOperatorExpression
in classDepthFirstAstVisitor<java.lang.Void,java.lang.Boolean>
-
-