mapabloperexpr(3) applies a function to all operands.

SYNOPSYS

#include "abl101.h"
chain_list *mapabloperexpr( Function, Oper, Expr )
  chain_list * (*Function)();
  long       Oper;
  chain_list *Expr;

PARAMETERS

Function
Function name to apply to all operands.
Oper
Operator number.
Expr
Expression to scan.

DESCRIPTION

mapabloperexpr applies Function to all operands of Expr. mapabloperexpr creates a head of an operator expression having Oper as operator and adds the arguments calculated by applying Function to each arguments of Expr. Function must return an expression and must have a unique expression as argument.

RETURN VALUE

mapabloperexpr returns a new expression by applying Function to all the arguments of the operator expression Expr.

EXAMPLE

#include "abl101.h"
   chain_list *MapFunction( MapExpr )
      chain_list *MapExpr;
   {
     return( createablnotexpr( dupablexpr( MapExpr ) ) );
   }
   chain_list *Expr;
   chain_list *Expr1;
   Expr = createablbinexpr( ABL_NOR,
                            createablatom( "a" ),
                            createablatom( "b" ) );
   Expr1 = mapabloperexpr( MapFunction, ABL_AND, Expr );
   /* displays ((not a) and (not b))  */
   viewablexpr( Expr1, ABL_VIEW_VHDL );