com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICOperation |
C AST interface to represent arithmetic and logical expressions.
An expression consists of one or two members (the left and right members) and an operator. The left member is optional, and should be null for unary operators.
A third member may be specified for ternary expressions
.
Examples:
a + 1 a * ((int)b - foo()) !x x ^ y | z c ? a: b
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
abstract boolean | checkOperatorType(COperatorType optype) | ||||||||||
abstract ICOperation |
duplicate()
Deep duplication of the element.
| ||||||||||
abstract int | getCountOfOperands() | ||||||||||
abstract ICExpression |
getFirstOperand()
Get the first operand, never null.
| ||||||||||
abstract ICOperator | getOperator() | ||||||||||
abstract COperatorType | getOperatorType() | ||||||||||
abstract ICExpression |
getSecondOperand()
Get the second operand, might be null.
| ||||||||||
abstract ICExpression |
getThirdOperand()
Get the third operand, might be null.
| ||||||||||
abstract boolean |
mirror(ICOperatorFactory of)
Mirror the operation order, whenever possible.
| ||||||||||
abstract boolean |
reverse(ICOperatorFactory of)
Logical negation of the operation, whenever possible.
| ||||||||||
abstract void | setFirstOperand(ICExpression e) | ||||||||||
abstract void |
setOperator(ICOperator operator)
Set the operator for the expression.
| ||||||||||
abstract void | setSecondOperand(ICExpression e) | ||||||||||
abstract void | setThirdOperand(ICExpression e) |
[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.ICExpression
| |||||||||||
From interface
com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICLeftExpression
|
Deep duplication of the element. Sub-elements are duplicated.
Note: ICClass
, ICMethod
, ICField
, ICIdentifier
,
ICConstant
, ICType
and ICLabel
are not duplicated.
Mirror the operation order, whenever possible. The object is modified.
Logical negation of the operation, whenever possible. The object is modified.
Set the operator for the expression. Dangerous method! the operator type is not checked, it is the caller's responsibility to do so.
operator | operator, cannot be null |
---|