NOTEXPR(3)

NAME
notExpr - complements an expressio and eventually does a simplification

SYNOPSYS
#include "logmmm.h"
chain_list *notExpr(expr)
chain_list *expr;

PARAMETER

expr
    expression to complement

DESCRIPTION
notExpr() complements expr as follows : if expr has a NOT as head operator, notExpr removes it by simplification, if it doesn't, notExpr adds an inverter before expr. You mustn't free expr because notExpr() makes a physical modification on expr so that it becomes undefined after this function call.

EXAMPLE
#include "mutnnn.h"		/* mbk utilities */
#include "logmmm.h"
chain_list *expr1,*expr2;
expr1 = createExpr(NOT);
addQExpr(expr1,createAtom("var1"));
expr2 = notExpr(expr1);   	/* expr1 becomes undefined */
displayExpr(expr2);
/* it will display
var1
*/
freeExpr(expr2);		/* don't free expr1 ! */

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