# Class: com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.opt.AbstractCStatementOptimizer
- Super class: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.opt.AbstractCBlockOptimizer`

Specialized base optimizer for C statements. Every statement contained in the AST method is  provided to [#optimizeStatement(ICStatement)](#optimizeStatement(ICStatement)).

## Constructor: AbstractCStatementOptimizer (no-arg)

Description: Create a statement optimizer.

## Protected Method: optimizeBlock
- parameter: `b`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICBlock`
- return type: `int`

Description: The default implementation iterates over each statement of the block and calls  [#optimizeStatement(ICStatement)](#optimizeStatement(ICStatement)). Most sub\-classes should not override this method.

## Protected Abstract Method: optimizeStatement
- parameter: `stm`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICStatement`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICStatement`

Description: Optimize a statement.
parameter: stm: the statement to optimize
return: a non\-statement if it was optimized; null means the statement was not optimized

