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 TypeMethodDescriptionvoidaddLoc(HasByteCodeLoc loc) booleanalwaysDefines(LValue scopedEntity) booleancanDefine(LValue scopedEntity, ScopeDiscoverInfoCache factCache) booleancanFall()claimBlock(Op04StructuredStatement innerBlock, BlockIdentifier blockIdentifier, Vector<BlockIdentifier> blocksCurrentlyIn) booleangetLoc()informBlockHeirachy(Vector<BlockIdentifier> blockIdentifiers) booleanbooleanbooleanbooleanbooleanvoidmarkCreator(LValue scopedEntity, StatementContainer<StructuredStatement> hint) booleanmatch(MatchIterator<StructuredStatement> matchIterator, MatchResultCollector matchResultCollector) voidsetContainer(Op04StructuredStatement container) suggestName(LocalVariable createdHere, Predicate<String> testNameUsedFn) booleanbooleanfinal StringtoString()voidtransformStructuredChildrenInReverse(StructuredStatementTransformer transformer, StructuredScope scope) Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface HasByteCodeLoc
getCombinedLocMethods inherited from interface StructuredStatement
linearizeInto, rewriteExpressions, traceLocalVariableScope, transformStructuredChildrenMethods inherited from interface TypeUsageCollectable
collectTypeUsages
-
Field Details
-
loc
-
container
-
-
Constructor Details
-
AbstractStructuredStatement
-
-
Method Details
-
addLoc
- Specified by:
addLocin interfaceHasByteCodeLoc
-
getLoc
- Specified by:
getLocin interfaceHasByteCodeLoc
-
getContainer
- Specified by:
getContainerin interfaceStructuredStatement
-
setContainer
- Specified by:
setContainerin interfaceStructuredStatement
-
transformStructuredChildrenInReverse
public void transformStructuredChildrenInReverse(StructuredStatementTransformer transformer, StructuredScope scope) - Specified by:
transformStructuredChildrenInReversein interfaceStructuredStatement
-
claimBlock
public StructuredStatement claimBlock(Op04StructuredStatement innerBlock, BlockIdentifier blockIdentifier, Vector<BlockIdentifier> blocksCurrentlyIn) - Specified by:
claimBlockin interfaceStructuredStatement
-
informBlockHeirachy
- Specified by:
informBlockHeirachyin interfaceStructuredStatement
-
isProperlyStructured
public boolean isProperlyStructured()- Specified by:
isProperlyStructuredin interfaceStructuredStatement
-
isRecursivelyStructured
public boolean isRecursivelyStructured()- Specified by:
isRecursivelyStructuredin interfaceStructuredStatement
-
getBreakableBlockOrNull
- Specified by:
getBreakableBlockOrNullin interfaceStructuredStatement
-
match
public boolean match(MatchIterator<StructuredStatement> matchIterator, MatchResultCollector matchResultCollector) - Specified by:
matchin interfaceMatcher<StructuredStatement>
-
markCreator
- Specified by:
markCreatorin interfaceStructuredStatement
-
alwaysDefines
- Specified by:
alwaysDefinesin interfaceStructuredStatement
-
canDefine
- Specified by:
canDefinein interfaceStructuredStatement
-
isScopeBlock
public boolean isScopeBlock()- Specified by:
isScopeBlockin interfaceStructuredStatement
-
supportsContinueBreak
public boolean supportsContinueBreak()- Specified by:
supportsContinueBreakin interfaceStructuredStatement
-
supportsBreak
public boolean supportsBreak()- Specified by:
supportsBreakin interfaceStructuredStatement
-
findCreatedHere
- Specified by:
findCreatedHerein interfaceStructuredStatement
-
suggestName
- Specified by:
suggestNamein interfaceStructuredStatement
-
toString
-
inlineable
public boolean inlineable()- Specified by:
inlineablein interfaceStructuredStatement
-
getInline
- Specified by:
getInlinein interfaceStructuredStatement
-
isEffectivelyNOP
public boolean isEffectivelyNOP()- Specified by:
isEffectivelyNOPin interfaceStructuredStatement
-
canFall
public boolean canFall()- Specified by:
canFallin interfaceStructuredStatement
-
fallsNopToNext
public boolean fallsNopToNext()- Specified by:
fallsNopToNextin interfaceStructuredStatement
-