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

C AST interface to represent a sequence of [statements](ICStatement). 

 Example:  

```

 {
     stm0;
     stm1;
     stm2;
 }
 
```
 

 Statements cannot be null. An exception will be raised if an attempt to insert a null statement is made.

## Method: add
- parameter: `stm`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICStatement`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICBlock`


## Method: addAll
- parameter: `stms`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICStatement[]`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICBlock`


## Method: addAll
- parameter: `b`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICBlock`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICBlock`


## Method: clear

Description: Remove all statements of the block, making the block effectively empty: {}. Do not confuse this method with [#reset()](#reset()).

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


## Method: generateBody
- parameter: `out`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.COutputSink`
- parameter: `methodBody`, type: `boolean`

Description: Raw body generation, the caller is responsible for calling generateEnter/generateExit
parameter: out: 

## Method: generateFooter
- parameter: `out`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.COutputSink`


## Method: generateHeader
- parameter: `out`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.COutputSink`


## Method: get
- parameter: `index`, type: `int`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICStatement`


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


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


## Method: insert
- parameter: `index`, type: `int`
- parameter: `stm`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICStatement`


## Method: insertAll
- parameter: `index`, type: `int`
- parameter: `srcblk`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICBlock`

Description: Insert all statements of a source block into this block. The source block is left untouched.
parameter: index: 0\-based insertion index into this block
parameter: srcblk: source block

## Method: isEmpty
- return type: `boolean`


## Method: remove
- parameter: `index`, type: `int`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICStatement`


## Method: remove
- parameter: `stm`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICStatement`
- return type: `boolean`

Description: Remove a statement from the block. Does not throw if the statement is not found.
parameter: stm: mandatory statement
return: indicates success

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


## Method: set
- parameter: `index`, type: `int`
- parameter: `stm`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICStatement`


## Method: size
- return type: `int`


