All Superinterfaces:
ICElement, ICSourceElement, ICStatement

@Ser public interface ICAssignment extends ICStatement, ICSourceElement
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 Details

    • isSimpleAssignment

      boolean isSimpleAssignment()
      Check if the assignment is simple, i.e. it is not a combined operator assignment and not a unary operator assignment.
    • isCombinedOperatorAssignment

      boolean isCombinedOperatorAssignment()
      Check if the assignment is a combined operator assignment (+=, -=, ...).
    • getCombinedOperator

      ICOperator getCombinedOperator()
      Get the operator used for combined operator assignments
    • isUnaryOperatorAssignment

      boolean isUnaryOperatorAssignment()
      Check if the assignment is a unary operator assignment (++, --).
    • getUnaryOperator

      void getUnaryOperator(boolean[] r)
      Get the operator used for a unary operator assignment.
      Parameters:
      r - will be filled with two values: r[0] is true for ++, false for --; r[1] is true for prefix ++/--, false for postfix ++/--
    • getLeft

      ICLeftExpression getLeft()
      Get the left-hand side of the assignment.
    • getRight

      ICExpression getRight()
      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.

    • setLeft

      void setLeft(ICLeftExpression left)
    • setRight

      void setRight(ICExpression right)
      Throws:
      IllegalStateException - if the assignment is a unary operator assignment
    • setCombinedOperatorAssignment

      void setCombinedOperatorAssignment(ICOperator op, ICExpression right)
      Set an extra operator, to transform the simple assignment (=) into one of the 11 allowed combined assignment operators.

      This operation is irreversible!

      Parameters:
      op - non-null, can be: MUL, DIV, ADD, SUB, REM, SHL, SHR, USHR, AND, XOR, OR
      right - optional, updated right member of the assignment
      Throws:
      IllegalStateException - if the assignment is a unary operator assignment
    • setCombinedOperator

      void setCombinedOperator(ICOperator op)
    • setUnaryOperator

      void setUnaryOperator(boolean increment, boolean prefix)
    • duplicate

      ICAssignment duplicate()
      Description copied from interface: ICElement
      Deep duplication of the element. Sub-elements are duplicated.

      Note: ICClass, ICMethod, ICField, ICIdentifier, ICConstant, ICType and ICLabel are not duplicated.

      Specified by:
      duplicate in interface ICElement
      Specified by:
      duplicate in interface ICSourceElement
      Specified by:
      duplicate in interface ICStatement
    • duplicate

      ICAssignment duplicate(boolean omitDeclaration)