public abstract class AbstractStructuredConditionalLoopStatement extends AbstractStructuredBlockStatement
Modifier and Type | Field and Description |
---|---|
protected BlockIdentifier |
block |
protected ConditionalExpression |
condition |
Constructor and Description |
---|
AbstractStructuredConditionalLoopStatement(BytecodeLoc loc,
ConditionalExpression condition,
BlockIdentifier block,
Op04StructuredStatement body) |
Modifier and Type | Method and Description |
---|---|
void |
collectTypeUsages(TypeUsageCollector collector) |
BlockIdentifier |
getBlock() |
BlockIdentifier |
getBreakableBlockOrNull() |
ConditionalExpression |
getCondition() |
boolean |
isInfinite() |
boolean |
isScopeBlock() |
void |
linearizeInto(java.util.List<StructuredStatement> out) |
void |
rewriteExpressions(ExpressionRewriter expressionRewriter) |
boolean |
supportsBreak() |
boolean |
supportsContinueBreak() |
void |
traceLocalVariableScope(LValueScopeDiscoverer scopeDiscoverer) |
getBody, isRecursivelyStructured, transformStructuredChildren
addLoc, alwaysDefines, canDefine, canFall, claimBlock, fallsNopToNext, findCreatedHere, getContainer, getInline, getLoc, informBlockHeirachy, inlineable, isEffectivelyNOP, isProperlyStructured, markCreator, match, setContainer, suggestName, toString, transformStructuredChildrenInReverse
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getCombinedLoc
protected ConditionalExpression condition
protected final BlockIdentifier block
AbstractStructuredConditionalLoopStatement(BytecodeLoc loc, ConditionalExpression condition, BlockIdentifier block, Op04StructuredStatement body)
public BlockIdentifier getBlock()
public ConditionalExpression getCondition()
public BlockIdentifier getBreakableBlockOrNull()
getBreakableBlockOrNull
in interface StructuredStatement
getBreakableBlockOrNull
in class AbstractStructuredStatement
public boolean supportsBreak()
supportsBreak
in interface StructuredStatement
supportsBreak
in class AbstractStructuredStatement
public void collectTypeUsages(TypeUsageCollector collector)
collectTypeUsages
in interface TypeUsageCollectable
collectTypeUsages
in class AbstractStructuredBlockStatement
public boolean isInfinite()
public boolean isScopeBlock()
isScopeBlock
in interface StructuredStatement
isScopeBlock
in class AbstractStructuredStatement
public boolean supportsContinueBreak()
supportsContinueBreak
in interface StructuredStatement
supportsContinueBreak
in class AbstractStructuredStatement
public void traceLocalVariableScope(LValueScopeDiscoverer scopeDiscoverer)
public void linearizeInto(java.util.List<StructuredStatement> out)
public void rewriteExpressions(ExpressionRewriter expressionRewriter)