Package soot.dotnet.instructions
Class CilBlockContainer
- java.lang.Object
-
- soot.dotnet.instructions.CilBlockContainer
-
- All Implemented Interfaces:
CilInstruction
- Direct Known Subclasses:
CILBlockContainerInstr
public class CilBlockContainer extends Object implements CilInstruction
ILSpy opcode BlockContainer
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classCilBlockContainer.BlockContainerKindDefine the type of a blockcontainer, if blockcontainer is try block, etc.
-
Field Summary
Fields Modifier and Type Field Description protected ProtoIlInstructions.IlBlockContainerMsgblockContainerprotected CilBlockContainer.BlockContainerKindblockContainerKindBlockEntryPointsManagerblockEntryPointsManagerprotected DotnetBodydotnetBodyprotected StmtskipBlockContainerStmt
-
Constructor Summary
Constructors Constructor Description CilBlockContainer(ProtoIlInstructions.IlBlockContainerMsg blockContainer, DotnetBody dotnetBody)CilBlockContainer(ProtoIlInstructions.IlBlockContainerMsg blockContainer, DotnetBody dotnetBody, CilBlockContainer.BlockContainerKind blockContainerKind)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidafterJimplification()CilBlockContainer.BlockContainerKindgetBlockContainerKind()DotnetBodygetDeclaringDotnetBody()StmtgetSkipBlockContainerStmt()Get the stmt with which this container is skipped (goto)booleanisChildBlockContainer()Bodyjimplify()voidjimplify(Body jb)Jimplify a starting statement of ILSpy ASTprotected voidjimplifyBlock(Body jb, ProtoIlInstructions.IlBlock block)ValuejimplifyExpr(Body jb)Jimplify an expression of ILSpy AST statement childrenstatic booleanLastStmtIsNotReturn(Body jb)
-
-
-
Field Detail
-
blockContainer
protected final ProtoIlInstructions.IlBlockContainerMsg blockContainer
-
dotnetBody
protected final DotnetBody dotnetBody
-
blockEntryPointsManager
public final BlockEntryPointsManager blockEntryPointsManager
-
skipBlockContainerStmt
protected final Stmt skipBlockContainerStmt
-
blockContainerKind
protected final CilBlockContainer.BlockContainerKind blockContainerKind
-
-
Constructor Detail
-
CilBlockContainer
public CilBlockContainer(ProtoIlInstructions.IlBlockContainerMsg blockContainer, DotnetBody dotnetBody)
-
CilBlockContainer
public CilBlockContainer(ProtoIlInstructions.IlBlockContainerMsg blockContainer, DotnetBody dotnetBody, CilBlockContainer.BlockContainerKind blockContainerKind)
-
-
Method Detail
-
jimplify
public void jimplify(Body jb)
Description copied from interface:CilInstructionJimplify a starting statement of ILSpy AST- Specified by:
jimplifyin interfaceCilInstruction
-
jimplifyBlock
protected void jimplifyBlock(Body jb, ProtoIlInstructions.IlBlock block)
-
afterJimplification
protected void afterJimplification()
-
jimplify
public Body jimplify()
-
jimplifyExpr
public Value jimplifyExpr(Body jb)
Description copied from interface:CilInstructionJimplify an expression of ILSpy AST statement children- Specified by:
jimplifyExprin interfaceCilInstruction- Returns:
-
LastStmtIsNotReturn
public static boolean LastStmtIsNotReturn(Body jb)
-
getDeclaringDotnetBody
public DotnetBody getDeclaringDotnetBody()
-
isChildBlockContainer
public boolean isChildBlockContainer()
-
getBlockContainerKind
public CilBlockContainer.BlockContainerKind getBlockContainerKind()
-
getSkipBlockContainerStmt
public Stmt getSkipBlockContainerStmt()
Get the stmt with which this container is skipped (goto)- Returns:
- skip stmt
-
-