polarablexpr(3)
moves inverters to the atomic level.
SYNOPSYS
#include "abl101.h"
chain_list *polarablexpr( Expr, Polar )
chain_list *Expr;
int Polar;
PARAMETERS
- Expr
-
Expression to modify.
- Polar
-
Expression polarity.
DESCRIPTION
polarablexpr modifies Expr by moving down the inverters to the atomic level.
polarablexpr applies the Morgan's laws. If Polar is equal to ABL_POLAR_NEGATIVE
the function returns the modified expression after having complemented it.
The expression pointer Expr MUSTN'T be used after the call to this function.
RETURN VALUE
polarablexpr 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 = polarablexpr( Expr2, ABL_POLAR_POSITIVE );
/* displays a */
viewablexpr( Expr1, ABL_VIEW_VHDL );