public interface

ICOperator

com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICOperator

Summary

Public Methods
abstract COperatorType.Associativity getAssociativity()
Get the associativity (left, right) of the operator.@return
abstract ICType getCastType()
abstract COperatorType getInternalOperatorType()
abstract int getOperandCount()
abstract int getPrecedence()
Get the precedence of the operator.
abstract int getPrecedenceDelta(ICOperator other)
Check the precedence of this operator against another operator.
abstract boolean isBinary()
abstract boolean isCast()
abstract boolean isCustom()
abstract boolean isTertiary()
abstract boolean isUnary()
abstract boolean isValidForCombinedAssignment()
Determine if this operator is one of the 11 (+1) arithmetic operators that can be used to build a combined-operator assignment.

Public Methods

public abstract COperatorType.Associativity getAssociativity ()

Get the associativity (left, right) of the operator.@return

Throws
RuntimeException if the associativity is not found

public abstract ICType getCastType ()

public abstract COperatorType getInternalOperatorType ()

public abstract int getOperandCount ()

public abstract int getPrecedence ()

Get the precedence of the operator. Currently not implemented for all operators, and the method will throw if it cannot find a precedence value.@return

Throws
RuntimeException if the precedence is not found

public abstract int getPrecedenceDelta (ICOperator other)

Check the precedence of this operator against another operator.

Returns
  • delta: <0 if this operator has higher precedence than other, 0 if their precedence is the same, or >0 if this operator has lower precedence than other.
Throws
Exception

public abstract boolean isBinary ()

public abstract boolean isCast ()

public abstract boolean isCustom ()

public abstract boolean isTertiary ()

public abstract boolean isUnary ()

public abstract boolean isValidForCombinedAssignment ()

Determine if this operator is one of the 11 (+1) arithmetic operators that can be used to build a combined-operator assignment.

Returns
  • true if one of: mul, div, add, sub, rem, shl, shr, ushr, and, xor, or