---
name: "createablbinexpr"
section: "3"
platform: "linux"
package: "alliance"
version: "5.1.1-3"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/createablbinexpr"
---

# createablbinexpr(3)

creates a binary operator expression.

## NAME

createablbinexpr - creates a binary operator expression.

## SYNOPSYS

```
#include "abl101.h"
chain_list ∗createablbinexpr( Oper, Expr1, Expr2 )
  long        Oper;
  chain_list ∗Expr1;
  chain_list ∗Expr2;
```

## PARAMETERS

- *Oper*

  The operator number.

- *Expr1*

  The first expression.

- *Expr2*

  The second expression.

## DESCRIPTION

**createablbinexpr** creates the binary operator expression  *Expr1* *Operator* *Expr2*.  If the operator of *Expr1*  and/or *Expr2*, and *Operator* are identicals **createablbinexpr** merges eventually the sub-expressions.  The expression pointers *Expr1* and *Expr2* MUSTN'T be used after the call to this function.\

## RETURN VALUE

**createablbinexpr** returns a pointer to the new operator expression.

## ERRORS

**"ablcreate: bad operator xx !",**

*Operator* must be defined and must be a binary operator.

## EXAMPLE

```
#include "abl101.h"
   chain_list ∗ExprA;
   chain_list ∗ExprB;
   chain_list ∗ExprAorB;
   ExprA = createablatom( "a" );
   ExprB = createablatom( "b" );
   ExprAorB  = createablbinexpr( ABL_OR, ExprA, ExprB );
```

## SEE ALSO

[**abl**(1)](/abl/1.md) **[createablatom(3)](/createablatom/3.md),** **[createabloper(3)](/createabloper/3.md),** **[createablxorbinexpr(3)](/createablxorbinexpr/3.md),** **[createablunaryexpr(3)](/createablunaryexpr/3.md),** **[createablnotexpr(3)](/createablnotexpr/3.md),** **[addablhexpr(3)](/addablhexpr/3.md),** **[addablqexpr(3)](/addablqexpr/3.md).**
