public interface

ICCompound

implements ICStatement
com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICCompound
Known Indirect Subclasses

Class Overview

C AST interface to represent compound statements.

Compound statements contain more statements, laid out in blocks. A block is the simplest type of compound. Compounds include if-conditionals, loops, switches, etc.

Summary

Public Methods
abstract ICCompound duplicate()
Deep duplication of the element.
abstract List<ICStatement> generateFlatList()
Generate a flat list of AST and pseudo-AST elements that make up this block.
abstract List<ICBlock> getBlocks()
Retrieve the list of blocks (not elements) that are used to define that compound element.
abstract boolean insertAt(long target_offset, ICStatement insert_stm)
Insert a statement at a particular offset within the AST.
abstract void reset()
Reset the compound.
[Expand]
Inherited Methods
From interface com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICElement
From interface com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICStatement

Public Methods

public abstract ICCompound duplicate ()

Deep duplication of the element. Sub-elements are duplicated.

Note: ICClass, ICMethod, ICField, ICIdentifier, ICConstant, ICType and ICLabel are not duplicated.

public abstract List<ICStatement> generateFlatList ()

Generate a flat list of AST and pseudo-AST elements that make up this block. This function allows the caller to get a flat representation of the AST, much like a programmer would view a source code. Note that the statements returned can be pseudo statements, ie, they're not real statements. For example, a flat view of a conditional block would return pseudo-statements to represent the "if" line, the "else if" lines, and the "else" line.

Returns
  • a list of statements and pseudo-statements

public abstract List<ICBlock> getBlocks ()

Retrieve the list of blocks (not elements) that are used to define that compound element.

public abstract boolean insertAt (long target_offset, ICStatement insert_stm)

Insert a statement at a particular offset within the AST. This function recurses down the AST tree, inside the blocks, to find the exact location where the statement should be inserted.

public abstract void reset ()

Reset the compound. Internal use.