Class AbstractStructuredStatement
java.lang.Object
org.benf.cfr.reader.bytecode.analysis.structured.statement.AbstractStructuredStatement
- All Implemented Interfaces:
HasByteCodeLoc
,Matcher<StructuredStatement>
,StructuredStatement
,Dumpable
,TypeUsageCollectable
- Direct Known Subclasses:
AbstractStructuredBlockStatement
,AbstractStructuredContinue
,AbstractUnStructuredStatement
,Block
,StructuredAssert
,StructuredAssignment
,StructuredBreak
,StructuredCatch
,StructuredComment
,StructuredDefinition
,StructuredExpressionStatement
,StructuredExpressionYield
,StructuredFinally
,StructuredIf
,StructuredReturn
,StructuredThrow
,StructuredTry
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
addLoc
(HasByteCodeLoc loc) boolean
alwaysDefines
(LValue scopedEntity) boolean
canDefine
(LValue scopedEntity, ScopeDiscoverInfoCache factCache) boolean
canFall()
claimBlock
(Op04StructuredStatement innerBlock, BlockIdentifier blockIdentifier, Vector<BlockIdentifier> blocksCurrentlyIn) boolean
getLoc()
informBlockHeirachy
(Vector<BlockIdentifier> blockIdentifiers) boolean
boolean
boolean
boolean
boolean
void
markCreator
(LValue scopedEntity, StatementContainer<StructuredStatement> hint) boolean
match
(MatchIterator<StructuredStatement> matchIterator, MatchResultCollector matchResultCollector) void
setContainer
(Op04StructuredStatement container) suggestName
(LocalVariable createdHere, Predicate<String> testNameUsedFn) boolean
boolean
final String
toString()
void
transformStructuredChildrenInReverse
(StructuredStatementTransformer transformer, StructuredScope scope) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.benf.cfr.reader.bytecode.analysis.loc.HasByteCodeLoc
getCombinedLoc
Methods inherited from interface org.benf.cfr.reader.bytecode.analysis.structured.StructuredStatement
linearizeInto, rewriteExpressions, traceLocalVariableScope, transformStructuredChildren
Methods inherited from interface org.benf.cfr.reader.util.TypeUsageCollectable
collectTypeUsages
-
Field Details
-
loc
-
container
-
-
Constructor Details
-
AbstractStructuredStatement
-
-
Method Details
-
addLoc
- Specified by:
addLoc
in interfaceHasByteCodeLoc
-
getLoc
- Specified by:
getLoc
in interfaceHasByteCodeLoc
-
getContainer
- Specified by:
getContainer
in interfaceStructuredStatement
-
setContainer
- Specified by:
setContainer
in interfaceStructuredStatement
-
transformStructuredChildrenInReverse
public void transformStructuredChildrenInReverse(StructuredStatementTransformer transformer, StructuredScope scope) - Specified by:
transformStructuredChildrenInReverse
in interfaceStructuredStatement
-
claimBlock
public StructuredStatement claimBlock(Op04StructuredStatement innerBlock, BlockIdentifier blockIdentifier, Vector<BlockIdentifier> blocksCurrentlyIn) - Specified by:
claimBlock
in interfaceStructuredStatement
-
informBlockHeirachy
- Specified by:
informBlockHeirachy
in interfaceStructuredStatement
-
isProperlyStructured
public boolean isProperlyStructured()- Specified by:
isProperlyStructured
in interfaceStructuredStatement
-
isRecursivelyStructured
public boolean isRecursivelyStructured()- Specified by:
isRecursivelyStructured
in interfaceStructuredStatement
-
getBreakableBlockOrNull
- Specified by:
getBreakableBlockOrNull
in interfaceStructuredStatement
-
match
public boolean match(MatchIterator<StructuredStatement> matchIterator, MatchResultCollector matchResultCollector) - Specified by:
match
in interfaceMatcher<StructuredStatement>
-
markCreator
- Specified by:
markCreator
in interfaceStructuredStatement
-
alwaysDefines
- Specified by:
alwaysDefines
in interfaceStructuredStatement
-
canDefine
- Specified by:
canDefine
in interfaceStructuredStatement
-
isScopeBlock
public boolean isScopeBlock()- Specified by:
isScopeBlock
in interfaceStructuredStatement
-
supportsContinueBreak
public boolean supportsContinueBreak()- Specified by:
supportsContinueBreak
in interfaceStructuredStatement
-
supportsBreak
public boolean supportsBreak()- Specified by:
supportsBreak
in interfaceStructuredStatement
-
findCreatedHere
- Specified by:
findCreatedHere
in interfaceStructuredStatement
-
suggestName
- Specified by:
suggestName
in interfaceStructuredStatement
-
toString
-
inlineable
public boolean inlineable()- Specified by:
inlineable
in interfaceStructuredStatement
-
getInline
- Specified by:
getInline
in interfaceStructuredStatement
-
isEffectivelyNOP
public boolean isEffectivelyNOP()- Specified by:
isEffectivelyNOP
in interfaceStructuredStatement
-
canFall
public boolean canFall()- Specified by:
canFall
in interfaceStructuredStatement
-
fallsNopToNext
public boolean fallsNopToNext()- Specified by:
fallsNopToNext
in interfaceStructuredStatement
-