Interface IASTBinaryExpression

All Superinterfaces:
IASTExpression, IASTInitializerClause, IASTNode
All Known Subinterfaces:
ICPPASTBinaryExpression, IGPPASTBinaryExpression

public interface IASTBinaryExpression extends IASTExpression
This interface represents a binary expression.
Restriction:
This interface is not intended to be implemented by clients.
Restriction:
This interface is not intended to be extended by clients.
  • Field Details

    • OPERAND_ONE

      static final ASTNodeProperty OPERAND_ONE
      Node property that describes the relationship between an IASTBinaryExpression and an IASTExpression representing the lhs.
    • OPERAND_TWO

      static final ASTNodeProperty OPERAND_TWO
      Node property that describes the relationship between an IASTBinaryExpression and an IASTExpression representing the rhs.
    • op_multiply

      static final int op_multiply
      multiply *
      See Also:
    • op_divide

      static final int op_divide
      divide /
      See Also:
    • op_modulo

      static final int op_modulo
      modulo %
      See Also:
    • op_plus

      static final int op_plus
      plus +
      See Also:
    • op_minus

      static final int op_minus
      minus -
      See Also:
    • op_shiftLeft

      static final int op_shiftLeft
      shift left <<
      See Also:
    • op_shiftRight

      static final int op_shiftRight
      shift right >>
      See Also:
    • op_lessThan

      static final int op_lessThan
      less than <
      See Also:
    • op_greaterThan

      static final int op_greaterThan
      greater than >
      See Also:
    • op_lessEqual

      static final int op_lessEqual
      less than or equals <=
      See Also:
    • op_greaterEqual

      static final int op_greaterEqual
      greater than or equals >=
      See Also:
    • op_binaryAnd

      static final int op_binaryAnd
      binary and &
      See Also:
    • op_binaryXor

      static final int op_binaryXor
      binary Xor ^
      See Also:
    • op_binaryOr

      static final int op_binaryOr
      binary Or |
      See Also:
    • op_logicalAnd

      static final int op_logicalAnd
      logical and &&
      See Also:
    • op_logicalOr

      static final int op_logicalOr
      logical or ||
      See Also:
    • op_assign

      static final int op_assign
      assignment =
      See Also:
    • op_multiplyAssign

      static final int op_multiplyAssign
      multiply assignment *=
      See Also:
    • op_divideAssign

      static final int op_divideAssign
      divide assignemnt /=
      See Also:
    • op_moduloAssign

      static final int op_moduloAssign
      modulo assignment %=
      See Also:
    • op_plusAssign

      static final int op_plusAssign
      plus assignment +=
      See Also:
    • op_minusAssign

      static final int op_minusAssign
      minus assignment -=
      See Also:
    • op_shiftLeftAssign

      static final int op_shiftLeftAssign
      shift left assignment <<=
      See Also:
    • op_shiftRightAssign

      static final int op_shiftRightAssign
      shift right assign >>=
      See Also:
    • op_binaryAndAssign

      static final int op_binaryAndAssign
      binary and assign &=
      See Also:
    • op_binaryXorAssign

      static final int op_binaryXorAssign
      binary Xor assign ^=
      See Also:
    • op_binaryOrAssign

      static final int op_binaryOrAssign
      binary Or assign |=
      See Also:
    • op_equals

      static final int op_equals
      equals ==
      See Also:
    • op_notequals

      static final int op_notequals
      not equals !=
      See Also:
    • op_pmdot

      static final int op_pmdot
      For c==, only. op_pmdot pointer-to-member field dereference.
      See Also:
    • op_pmarrow

      static final int op_pmarrow
      For c++, only. op_pmarrow pointer-to-member pointer dereference.
      See Also:
    • op_max

      static final int op_max
      For g++, only. op_max represents >?
      See Also:
    • op_min

      static final int op_min
      For g++, only. op_min represents <?
      See Also:
    • op_ellipses

      static final int op_ellipses
      For gcc compilers, only. op_ellipses represents ... as used for case ranges.
      See Also:
    • op_threewaycomparison

      static final int op_threewaycomparison
      For c++, only. op_threewaycompare represents <=> three-way comparison operator.
      Since:
      8.1
      See Also:
  • Method Details

    • setOperator

      void setOperator(int op)
      Sets the operator.
      Parameters:
      op - value to set.
    • getOperator

      int getOperator()
      Returns the operator.
      Returns:
      int value as operator
    • getOperand1

      IASTExpression getOperand1()
      Get the first operand.
      Returns:
      IASTExpression representing operand 1.
    • setOperand1

      void setOperand1(IASTExpression expression)
      Set the first operand.
      Parameters:
      expression - IASTExpression value.
    • getOperand2

      IASTExpression getOperand2()
      Get the second operand.
      Returns:
      IASTExpression representing operand 2.
    • getInitOperand2

      IASTInitializerClause getInitOperand2()
      Returns the second operand of the expression. For c++ assignment expressions this can be a braced list initializer.
      Since:
      5.2
    • setOperand2

      void setOperand2(IASTExpression expression)
      Parameters:
      expression - IASTExpression value
    • copy

      Description copied from interface: IASTNode
      Returns a mutable copy of the tree rooted at this node. The following postconditions hold:
       copy.getParent() == null
       copy.getPropertyInParent() == null
       copy.isFrozen() == false
       
      Preprocessor nodes do not currently support being copied. Implicit name nodes are not copied, instead they can be regenerated if required.

      Calling this method is equivalent to copy(CopyStyle.withoutLocations).

      Specified by:
      copy in interface IASTExpression
      Specified by:
      copy in interface IASTInitializerClause
      Specified by:
      copy in interface IASTNode
      Since:
      5.1
    • copy

      Description copied from interface: IASTNode
      Returns a mutable copy of the tree rooted at this node. The following postconditions hold:
       copy.getParent() == null
       copy.getPropertyInParent() == null
       copy.isFrozen() == false
       
      Preprocessor nodes do not currently support being copied. Implicit name nodes are not copied, instead they can be regenerated if required.
      Specified by:
      copy in interface IASTExpression
      Specified by:
      copy in interface IASTInitializerClause
      Specified by:
      copy in interface IASTNode
      Parameters:
      style - IASTNode.CopyStyle create a copy with or without locations. Please see IASTNode.CopyStyle for restrictions on copies with Locations.
      Since:
      5.3