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

# createablxorbinexpr(3)

creates an 'xor' or 'xnor' operator expression.

## NAME

createablxorbinexpr - creates an 'xor' or 'xnor' operator expression.

## SYNOPSYS

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

## PARAMETERS

- *Oper*

  Operator ABL\_XOR or ABL\_NXOR.

- *Expr1*

  First expression.

- *Expr2*

  Second expression.

## DESCRIPTION

**createablxorbinexpr** creates a binary 'xor' or 'xnor' operator expression with the 'and', 'or' form.  **createablbinexpr** simplifies eventually the sub-expressions. The expression pointers *Expr1* and *Expr2* MUSTN'T  be used after the call to this function.\

## RETURN VALUE

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

## ERRORS

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

*Operator* must be ABL\_XOR or ABL\_NXOR.

## EXAMPLE

```
#include "abl101.h"
   chain_list ∗ExprA;
   chain_list ∗ExprB;
   chain_list ∗ExprAxorB;
   ExprA = createablatom( "a" );
   ExprB = createablatom( "b" );
   ExprAxorB  = createablxorbinexpr( ABL_XOR, ExprA, ExprB );
   /* displays (a and (not b) or (b and (not a)) */
   viewablexpr( ExprAxorB, ABL_VIEW_VHDL );
```

## SEE ALSO

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