org.eclipse.cdt.core.dom.ast

## Interface IASTBinaryExpression

All Superinterfaces:
  IASTExpression, IASTInitializerClause, IASTNode

All Known Subinterfaces:
  ICPPASTBinaryExpression, IGPPASTBinaryExpression

    public interface IASTBinaryExpression
    extends IASTExpression

This interface represents a binary expression.

### Nested Class Summary

### Nested classes/interfaces inherited from interface org.eclipse.cdt.core.dom.ast.IASTExpression

`IASTExpression.ValueCategory`

### Nested classes/interfaces inherited from interface org.eclipse.cdt.core.dom.ast.IASTNode

`IASTNode.CopyStyle`

### Field Summary

Fields
`static int` `op_assign` assignment =
`static int` `op_binaryAnd` binary and &
`static int` `op_binaryAndAssign` binary and assign &=
`static int` `op_binaryOr` binary Or |
`static int` `op_binaryOrAssign` binary Or assign |=
`static int` `op_binaryXor` binary Xor ^
`static int` `op_binaryXorAssign` binary Xor assign ^=
`static int` `op_divide` divide /
`static int` `op_divideAssign` divide assignemnt /=
`static int` `op_ellipses` For gcc compilers, only.
`static int` `op_equals` equals ==
`static int` `op_greaterEqual` greater than or equals >=
`static int` `op_greaterThan` greater than >
`static int` `op_lessEqual` less than or equals <=
`static int` `op_lessThan` less than <
`static int` `op_logicalAnd` logical and &&
`static int` `op_logicalOr` logical or ||
`static int` `op_max` For g++, only.
`static int` `op_min` For g++, only.
`static int` `op_minus` minus -
`static int` `op_minusAssign` minus assignment -=
`static int` `op_modulo` modulo %
`static int` `op_moduloAssign` modulo assignment %=
`static int` `op_multiply` multiply *
`static int` `op_multiplyAssign` multiply assignment *=
`static int` `op_notequals` not equals !
`static int` `op_plus` plus +
`static int` `op_plusAssign` plus assignment +=
`static int` `op_pmarrow` For c++, only.
`static int` `op_pmdot` For c==, only.
`static int` `op_shiftLeft` shift left <<
`static int` `op_shiftLeftAssign` shift left assignment <<=
`static int` `op_shiftRight` shift right >>
`static int` `op_shiftRightAssign` shift right assign >>=
`static ASTNodeProperty` `OPERAND_ONE` Node property that describes the relationship between an `IASTBinaryExpression` and an `IASTExpression` representing the lhs.
`static ASTNodeProperty` `OPERAND_TWO` Node property that describes the relationship between an `IASTBinaryExpression` and an `IASTExpression` representing the rhs.

### Fields inherited from interface org.eclipse.cdt.core.dom.ast.IASTExpression

`EMPTY_EXPRESSION_ARRAY`

### Fields inherited from interface org.eclipse.cdt.core.dom.ast.IASTNode

`EMPTY_NODE_ARRAY`

### Method Summary

All Methods Instance Methods Abstract Methods
`IASTBinaryExpression` `copy()` Returns a mutable copy of the tree rooted at this node.
`IASTBinaryExpression` `copy(IASTNode.CopyStyle style)` Returns a mutable copy of the tree rooted at this node.
`IASTInitializerClause` `getInitOperand2()` Returns the second operand of the expression.
`IASTExpression` `getOperand1()` Get the first operand.
`IASTExpression` `getOperand2()` Get the second operand.
`int` `getOperator()` Returns the operator.
`void` `setOperand1(IASTExpression expression)` Set the first operand.
`void` `setOperand2(IASTExpression expression)`
`void` `setOperator(int op)` Sets the operator.

### Methods inherited from interface org.eclipse.cdt.core.dom.ast.IASTExpression

`getExpressionType, getValueCategory, isLValue`

### Methods inherited from interface org.eclipse.cdt.core.dom.ast.IASTNode

`accept, contains, getChildren, getContainingFilename, getFileLocation, getLeadingSyntax, getNodeLocations, getOriginalNode, getParent, getPropertyInParent, getRawSignature, getSyntax, getTrailingSyntax, getTranslationUnit, isActive, isFrozen, isPartOfTranslationUnitFile, setParent, setPropertyInParent`

### Field Detail

#### 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:
  Constant Field Values

#### op_divide

    static final int op_divide

divide /

See Also:
  Constant Field Values

#### op_modulo

    static final int op_modulo

modulo %

See Also:
  Constant Field Values

#### op_plus

    static final int op_plus

plus +

See Also:
  Constant Field Values

#### op_minus

    static final int op_minus

minus -

See Also:
  Constant Field Values

#### op_shiftLeft

    static final int op_shiftLeft

shift left <<

See Also:
  Constant Field Values

#### op_shiftRight

    static final int op_shiftRight

shift right >>

See Also:
  Constant Field Values

#### op_lessThan

    static final int op_lessThan

less than <

See Also:
  Constant Field Values

#### op_greaterThan

    static final int op_greaterThan

greater than >

See Also:
  Constant Field Values

#### op_lessEqual

    static final int op_lessEqual

less than or equals <=

See Also:
  Constant Field Values

#### op_greaterEqual

    static final int op_greaterEqual

greater than or equals >=

See Also:
  Constant Field Values

#### op_binaryAnd

    static final int op_binaryAnd

binary and &

See Also:
  Constant Field Values

#### op_binaryXor

    static final int op_binaryXor

binary Xor ^

See Also:
  Constant Field Values

#### op_binaryOr

    static final int op_binaryOr

binary Or |

See Also:
  Constant Field Values

#### op_logicalAnd

    static final int op_logicalAnd

logical and &&

See Also:
  Constant Field Values

#### op_logicalOr

    static final int op_logicalOr

logical or ||

See Also:
  Constant Field Values

#### op_assign

    static final int op_assign

assignment =

See Also:
  Constant Field Values

#### op_multiplyAssign

    static final int op_multiplyAssign

multiply assignment *=

See Also:
  Constant Field Values

#### op_divideAssign

    static final int op_divideAssign

divide assignemnt /=

See Also:
  Constant Field Values

#### op_moduloAssign

    static final int op_moduloAssign

modulo assignment %=

See Also:
  Constant Field Values

#### op_plusAssign

    static final int op_plusAssign

plus assignment +=

See Also:
  Constant Field Values

#### op_minusAssign

    static final int op_minusAssign

minus assignment -=

See Also:
  Constant Field Values

#### op_shiftLeftAssign

    static final int op_shiftLeftAssign

shift left assignment <<=

See Also:
  Constant Field Values

#### op_shiftRightAssign

    static final int op_shiftRightAssign

shift right assign >>=

See Also:
  Constant Field Values

#### op_binaryAndAssign

    static final int op_binaryAndAssign

binary and assign &=

See Also:
  Constant Field Values

#### op_binaryXorAssign

    static final int op_binaryXorAssign

binary Xor assign ^=

See Also:
  Constant Field Values

#### op_binaryOrAssign

    static final int op_binaryOrAssign

binary Or assign |=

See Also:
  Constant Field Values

#### op_equals

    static final int op_equals

equals ==

See Also:
  Constant Field Values

#### op_notequals

    static final int op_notequals

not equals !=

See Also:
  Constant Field Values

#### op_pmdot

    static final int op_pmdot

For c==, only. `op_pmdot` pointer-to-member field dereference.

See Also:
  Constant Field Values

#### op_pmarrow

    static final int op_pmarrow

For c++, only. `op_pmarrow` pointer-to-member pointer dereference.

See Also:
  Constant Field Values

#### op_max

    static final int op_max

For g++, only. `op_max` represents >?

See Also:
  Constant Field Values

#### op_min

    static final int op_min

For g++, only. `op_min` represents

See Also:
  Constant Field Values

#### op_ellipses

    static final int op_ellipses

For gcc compilers, only. `op_ellipses` represents ... as used for case ranges.

See Also:
  Constant Field Values

### Method Detail

#### 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

    IASTBinaryExpression 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

    IASTBinaryExpression copy(IASTNode.CopyStyle style)

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