| com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICBlock |
C AST interface to represent a sequence of statements.
Example:
{
stm0;
stm1;
stm2;
}
Statements cannot be null. An exception will be raised if an attempt to insert a null statement is made.
| Public Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| abstract ICBlock | add(ICStatement stm) | ||||||||||
| abstract ICBlock | addAll(ICBlock b) | ||||||||||
| abstract ICBlock | addAll(ICStatement... stms) | ||||||||||
| abstract void |
clear()
Remove all statements of the block, making the block effectively empty: {}.
| ||||||||||
| abstract ICBlock |
duplicate()
Deep duplication of the element.
| ||||||||||
| abstract void |
generateBody(COutputSink out, boolean methodBody)
Raw body generation, the caller is responsible for calling generateEnter/generateExit
| ||||||||||
| abstract void | generateFooter(COutputSink out) | ||||||||||
| abstract void | generateHeader(COutputSink out) | ||||||||||
| abstract ICStatement | get(int index) | ||||||||||
| abstract List<ICStatement> | getAll() | ||||||||||
| abstract ICStatement | getLast() | ||||||||||
| abstract void | insert(int index, ICStatement stm) | ||||||||||
| abstract void |
insertAll(int index, ICBlock srcblk)
Insert all statements of a source block into this block.
| ||||||||||
| abstract boolean | isEmpty() | ||||||||||
| abstract ICStatement | remove(int index) | ||||||||||
| abstract boolean |
remove(ICStatement stm)
Remove a statement from the block.
| ||||||||||
| abstract ICStatement | removeLast() | ||||||||||
| abstract void | set(int index, ICStatement stm) | ||||||||||
| abstract int | size() | ||||||||||
|
[Expand]
Inherited Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
From interface
com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICCompound
| |||||||||||
From interface
com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICElement
| |||||||||||
From interface
com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICStatement
| |||||||||||
From interface
java.lang.Iterable
| |||||||||||
Remove all statements of the block, making the block effectively empty: {}. Do not confuse this method with reset().
Deep duplication of the element. Sub-elements are duplicated.
Note: ICClass, ICMethod, ICField, ICIdentifier,
ICConstant, ICType and ICLabel are not duplicated.
Raw body generation, the caller is responsible for calling generateEnter/generateExit
Insert all statements of a source block into this block. The source block is left untouched.
| index | 0-based insertion index into this block |
|---|---|
| srcblk | source block |
Remove a statement from the block. Does not throw if the statement is not found.
| stm | mandatory statement |
|---|