CREATEBINEXPR(3)

NAME
createBinExpr - creates a binary operator expression with an eventual merging of the operators.

SYNOPSYS
#include "logmmm.h"
chain_list *createBinExpr(oper,expr1,expr2)
short oper;
chain_list *expr1,*expr2;

PARAMETERS

oper
    Operator number (#define OR,AN,XOR,NAND,NOR...).

expr1
    first expression.

expr2
    second expression.

DESCRIPTION
createBinExpr() creates the head of an expression that has got oper as operator and expr1 and expr2 as arguments. If expr1 or expr2 have already oper as operator, oper is merged in the expression that the function returns.

EXAMPLE
#include "mutnnn.h"		/* mbk utilities */
#include "logmmm.h"
chain_list *expr;
chain_list *expr1,*expr2;
expr1 = createExpr(OR);
addQExpr(expr1,createAtom("var1"));
addQExpr(expr1,createAtom("var2"));
expr2 = notExpr(createAtom("var3"));
expr = createBinExpr(OR,expr1,expr2);
displayExpr(expr);
/* it will display
(OR var1 var2 (NOT var 3))
*/
freeExpr(expr);		/* don't free expr1 or expr2 ! */

ERROR
"createBinExpr : error - bad operator"
The operator number must be included between MIN_OPER and MAX_OPER and must be different from NOT.

SEE ALSO
log(1), abl(1), createAtom(3), notExpr(3), createExpr(3), addQExpr(3), addHExpr(3), freeExpr(3).