polardupablexpr(3)
duplicates an expression and moves down the inverters.
SYNOPSYS
#include "abl101.h"
chain_list *polardupablexpr( Expr, Polar )
chain_list *Expr;
int Polar;
PARAMETERS
- Expr
-
Expression to modify.
- Polar
-
Expression polarity.
DESCRIPTION
polardupablexpr modifies Expr by moving down the inverters to the atomic level.
polardupablexpr applies the Morgan's laws. If Polar is equal to ABL_POLAR_NEGATIVE
the function returns the modified expression after having complemented it.
RETURN VALUE
polardupablexpr returns the modified expression.
EXAMPLE
#include "abl101.h"
chain_list *Expr1;
chain_list *Expr2;
Expr1 = createabloper( ABL_NOT );
Expr2 = createabloper( ABL_NOT );
addablhexpr( Expr1, createablatom( "a" ) );
addablhexpr( Expr2, Expr1 );
Expr1 = polardupablexpr( Expr2, ABL_POLAR_POSITIVE );
/* displays a */
viewablexpr( Expr1, ABL_VIEW_VHDL );