Class ConvertLoopsTransform
java.lang.Object
com.strobel.decompiler.languages.java.ast.DepthFirstAstVisitor<Void,AstNode>
com.strobel.decompiler.languages.java.ast.ContextTrackingVisitor<AstNode>
com.strobel.decompiler.languages.java.ast.transforms.ConvertLoopsTransform
- All Implemented Interfaces:
IAstVisitor<Void,
,AstNode> IAstTransform
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final ExpressionStatement
private static final WhileStatement
private static final WhileStatement
private static final WhileStatement
private static final Statement[]
private static final ForStatement
private static final ForStatement
private static final ForStatement
private static final WhileStatement
private static final ExpressionStatement
Fields inherited from class com.strobel.decompiler.languages.java.ast.ContextTrackingVisitor
context
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate boolean
canConvertWhileToDoWhile
(WhileStatement loop, ContinueStatement continueStatement) private Statement
(package private) static Statement
canMoveVariableDeclarationIntoStatement
(DecompilerContext context, VariableDeclarationStatement declaration, Statement targetStatement) (package private) static VariableDeclarationStatement
findVariableDeclaration
(AstNode node, String identifier) private static boolean
hasNestedBlocks
(AstNode node) private static boolean
isSimpleIterator
(Statement statement) final WhileStatement
final DoWhileStatement
final ForStatement
transformFor
(WhileStatement node) final ForEachStatement
final ForEachStatement
protected AstNode
visitChildren
(AstNode node, Void data) visitExpressionStatement
(ExpressionStatement node, Void data) visitWhileStatement
(WhileStatement node, Void data) 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, visitAssignmentExpression, visitBinaryOperatorExpression, visitBlockStatement, visitBreakStatement, visitBytecodeConstant, visitCaseLabel, visitCastExpression, visitCatchClause, visitClassOfExpression, visitComment, visitCompilationUnit, visitComposedType, visitConditionalExpression, visitContinueStatement, visitDoWhileStatement, visitEmptyStatement, visitEnumValueDeclaration, 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, visitUnaryOperatorExpression, visitUnionType, visitVariableDeclaration, visitVariableInitializer, visitWildcardType
-
Field Details
-
EMPTY_STATEMENTS
-
ARRAY_INIT_PATTERN
-
FOR_ARRAY_PATTERN_1
-
FOR_ARRAY_PATTERN_2
-
FOR_ARRAY_PATTERN_3
-
GET_ITERATOR_PATTERN
-
FOR_EACH_PATTERN
-
EMPTY_FOR_EACH_PATTERN
-
DO_WHILE_PATTERN
-
CONTINUE_OUTER_PATTERN
-
-
Constructor Details
-
ConvertLoopsTransform
-
-
Method Details
-
visitChildren
- Overrides:
visitChildren
in classDepthFirstAstVisitor<Void,
AstNode>
-
visitExpressionStatement
- Specified by:
visitExpressionStatement
in interfaceIAstVisitor<Void,
AstNode> - Overrides:
visitExpressionStatement
in classDepthFirstAstVisitor<Void,
AstNode>
-
visitWhileStatement
- Specified by:
visitWhileStatement
in interfaceIAstVisitor<Void,
AstNode> - Overrides:
visitWhileStatement
in classDepthFirstAstVisitor<Void,
AstNode>
-
transformFor
-
hasNestedBlocks
-
isSimpleIterator
-
canInlineInitializerDeclarations
-
transformForEachInArray
-
transformForEach
-
transformDoWhile
-
canConvertWhileToDoWhile
-
transformContinueOuter
-
findVariableDeclaration
-
canMoveVariableDeclarationIntoStatement
static Statement canMoveVariableDeclarationIntoStatement(DecompilerContext context, VariableDeclarationStatement declaration, Statement targetStatement)
-