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

# substdupablexpr(3)

substitutes a given atom by an expression.

## NAME

substdupablexpr - substitutes a given atom by an expression.

## SYNOPSYS

```
#include "abl101.h"
chain_list ∗substdupablexpr( Expr1, Name, Expr2 )
  chain_list ∗Expr1;
  char       ∗Name;
  chain_list ∗Expr2;
```

## PARAMETERS

- *Expr1*

  First expression.

- *Name*

  Atom name.

- *Expr*

  Second expression.

## DESCRIPTION

**substdupablexpr** duplicates and substitutes *Atom* in *Expr1* by *Expr2*.\

## RETURN VALUE

**substdupablexpr** returns the duplicated and modified expression.

## EXAMPLE

```
#include "abl101.h"
  chain_list ∗Expr1;
  chain_list ∗Expr2;
  chain_list ∗Expr3;
  Expr1 = createablbinexpr( ABL_OR,
                            createablatom( "a" ),
                            createablatom( "b" ) );
  Expr2 = createablbinexpr( ABL_AND,
                            createablatom( "c" ),
                            createablatom( "d" ) );
  Expr3 = substdupablexpr( Expr1, "a", Expr2 );
  /* displays ((c and d) or b) */
  viewablexpr( Expr1, ABL_VIEW_VHDL );
```

## SEE ALSO

[**abl**(1)](/abl/1.md), **[substablexpr(3)](/substablexpr/3.md).**
