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 );