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

C AST interface to represent assignments. 

 Example of a simple assignment:  

```

 left = right
 
```
 

 A simple assignment can be modified to represent non\-standard assignments: 
 
- A combined\-operator assignment
-  
- A unary\-operator assignment
-

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


## Method: duplicate
- parameter: `omitDeclaration`, type: `boolean`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICAssignment`


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

Description: Get the operator used for combined operator assignments

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

Description: Get the left\-hand side of the assignment.

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

Description: Get the right\-hand side of the assignment. 

 Warning: null for unary operator assignments, and does not represent the final right value for combined operator assignments.

## Method: getUnaryOperator
- parameter: `r`, type: `boolean[]`

Description: Get the operator used for a unary operator assignment.
parameter: r: will be filled with two values: r\[0\] is true for \+\+, false for \-\-; r\[1\] is true for            prefix \+\+/\-\-, false for postfix \+\+/\-\-

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

Description: Check if the assignment is a combined operator assignment \(\+=, \-=, ...\).

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

Description: Check if the assignment is simple, i.e. it is not a combined operator assignment and not a unary operator assignment.

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

Description: Check if the assignment is a unary operator assignment \(\+\+, \-\-\).

## Method: setCombinedOperator
- parameter: `op`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICOperator`


## Method: setCombinedOperatorAssignment
- parameter: `op`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICOperator`
- parameter: `right`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICExpression`

Description: Set an extra operator, to transform the simple assignment \(=\) into one of the 11 allowed combined assignment operators. 

 This operation is **irreversible**\!
parameter: op: non\-null, can be: MUL, DIV, ADD, SUB, REM, SHL, SHR, USHR, AND, XOR, OR
parameter: right: optional, updated right member of the assignment
throws: if the assignment is a unary operator assignment

## Method: setLeft
- parameter: `left`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICLeftExpression`


## Method: setRight
- parameter: `right`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICExpression`

Description: 
throws: if the assignment is a unary operator assignment

## Method: setUnaryOperator
- parameter: `increment`, type: `boolean`
- parameter: `prefix`, type: `boolean`


