# Interface: com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICCompound

C AST interface to represent compound statements. 

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

## Method: duplicate
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICCompound`


## Method: generateFlatList
- return type: `java.util.List<com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICStatement>`

Description: 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.
return: a list of statements and pseudo\-statements

## Method: getBlocks
- return type: `java.util.List<com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICBlock>`

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

## Method: insertAt
- parameter: `target_offset`, type: `long`
- parameter: `insert_stm`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICStatement`
- return type: `boolean`

Description: 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.
parameter: target_offset: 
parameter: insert_stm: 
return: 

## Method: reset

Description: Reset the compound. Internal use.

