Interface StructuredStatement
-
- All Superinterfaces:
Dumpable
,HasByteCodeLoc
,Matcher<StructuredStatement>
,TypeUsageCollectable
- All Known Implementing Classes:
AbstractPlaceholder
,AbstractStructuredBlockStatement
,AbstractStructuredConditionalLoopStatement
,AbstractStructuredContinue
,AbstractStructuredStatement
,AbstractUnStructuredStatement
,BeginBlock
,Block
,ElseBlock
,EndBlock
,StructuredAssert
,StructuredAssignment
,StructuredBreak
,StructuredCase
,StructuredCatch
,StructuredComment
,StructuredContinue
,StructuredDefinition
,StructuredDo
,StructuredExpressionStatement
,StructuredExpressionYield
,StructuredFakeDecompFailure
,StructuredFinally
,StructuredFor
,StructuredIf
,StructuredIter
,StructuredReturn
,StructuredSwitch
,StructuredSynchronized
,StructuredThrow
,StructuredTry
,StructuredWhile
,UnstructuredAnonBreakTarget
,UnstructuredAnonymousBreak
,UnstructuredBreak
,UnstructuredCase
,UnstructuredCatch
,UnstructuredContinue
,UnstructuredDo
,UnstructuredFinally
,UnstructuredFor
,UnstructuredGoto
,UnstructuredIf
,UnstructuredIter
,UnstructuredSwitch
,UnstructuredSynchronized
,UnstructuredTry
,UnstructuredWhile
,WildcardMatch.BlockWildcard
public interface StructuredStatement extends Dumpable, TypeUsageCollectable, HasByteCodeLoc, Matcher<StructuredStatement>
-
-
Method Summary
-
Methods inherited from interface org.benf.cfr.reader.bytecode.analysis.loc.HasByteCodeLoc
addLoc, getCombinedLoc, getLoc
-
Methods inherited from interface org.benf.cfr.reader.bytecode.analysis.opgraph.op4rewriters.matchutil.Matcher
match
-
Methods inherited from interface org.benf.cfr.reader.util.TypeUsageCollectable
collectTypeUsages
-
-
-
-
Method Detail
-
getContainer
Op04StructuredStatement getContainer()
-
setContainer
void setContainer(Op04StructuredStatement container)
-
claimBlock
StructuredStatement claimBlock(Op04StructuredStatement innerBlock, BlockIdentifier blockIdentifier, java.util.Vector<BlockIdentifier> blocksCurrentlyIn)
-
informBlockHeirachy
StructuredStatement informBlockHeirachy(java.util.Vector<BlockIdentifier> blockIdentifiers)
-
transformStructuredChildren
void transformStructuredChildren(StructuredStatementTransformer transformer, StructuredScope scope)
-
transformStructuredChildrenInReverse
void transformStructuredChildrenInReverse(StructuredStatementTransformer transformer, StructuredScope scope)
-
rewriteExpressions
void rewriteExpressions(ExpressionRewriter expressionRewriter)
-
isProperlyStructured
boolean isProperlyStructured()
-
isRecursivelyStructured
boolean isRecursivelyStructured()
-
getBreakableBlockOrNull
BlockIdentifier getBreakableBlockOrNull()
-
linearizeInto
void linearizeInto(java.util.List<StructuredStatement> out)
-
traceLocalVariableScope
void traceLocalVariableScope(LValueScopeDiscoverer scopeDiscoverer)
-
markCreator
void markCreator(LValue scopedEntity, StatementContainer<StructuredStatement> hint)
-
alwaysDefines
boolean alwaysDefines(LValue scopedEntity)
-
canDefine
boolean canDefine(LValue scopedEntity, ScopeDiscoverInfoCache factCache)
-
supportsContinueBreak
boolean supportsContinueBreak()
-
supportsBreak
boolean supportsBreak()
-
isScopeBlock
boolean isScopeBlock()
-
inlineable
boolean inlineable()
-
getInline
Op04StructuredStatement getInline()
-
isEffectivelyNOP
boolean isEffectivelyNOP()
-
fallsNopToNext
boolean fallsNopToNext()
-
canFall
boolean canFall()
-
findCreatedHere
java.util.List<LValue> findCreatedHere()
-
suggestName
java.lang.String suggestName(LocalVariable createdHere, Predicate<java.lang.String> testNameUsedFn)
-
-