ABL(1) | cao-vlsi reference manual | ABL(1) |

*Functionnal #define*

**ATOM**- - checks the kind of an expression (atomic or operator expression).

**CAR**- - returns the
*DATA*pointer of a doublet.

**CADR**- - returns the
*DATA*pointer of the*NEXT*pointer of a doublet.

**CDR**- - returns the
*NEXT*pointer of a doublet.

**OPER**- - returns the operator number of an operator expression.

**VALUE_ATOM**- - returns the associated
*char **of an atomic expression.

*Functions and procedures*

**addHExpr**- - adds a new arguments at the head of an operator expression.

**addQExpr**- - adds a new arguments at the queue of an operator expression.

**anyExpr**- - returns the value of a logical OR applied on the results of the application of a function on the arguments of an operator expression.

**changeOperExpr**- - changes the operator of the head of an expression.

**charToOper**- - converts an operator string into an operator number.

**copyExpr**- - copies an expression.

**createAtom**- - creates an atomic expression.

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

**createExpr**- - creates the head of an operator expression.

**deleteNumExpr**- - removes the i-th argument in an operator expression.

**devXor2Expr**- - converts XOR 2 to OR-AND.

**devXorExpr**- - removes XOR in an expression.

**displayExpr**- - displays an expression in a prefixed notation.

**displayInfExpr**- - displays an expression in infixed notation.

**equalExpr**- - checks that two expressions are strictly equal.

**equalVarExpr**- - checks that two expressions are syntactically equal.

**everyExpr**- - returns the value of a logical AND applied on the results of the application of a function on the arguments of an operator expression.

**exprToChar**- - converts an expression into a string.

**charToExpr**- - converts a string into an expression.

**flatArityExpr**- - flattens the operators of an expression.

**flatPolarityExpr**- - translates the inverters of an expression to the level of atomic expressions.

**freeExpr**- - frees an expression.

**identExpr**- - gives an identifier from an operator expression.

**lengthExpr**- - returns the number of arguments in an expression.

**mapCarExpr**- - creates a new expression by applying a function to all arguments of an operator expression.

**mapExpr**- - applies a procedure to all the arguments of an operator expression.

**maxExpr**- - returns the highest argument of an operator expression.

**minExpr**- - returns the lowest argument of an operator expression.

**normExpr**- - normalizes an expression.

**notExpr**- - complements an expression and eventually does a simplification.

**numberAtomExpr**- - returns the number of atoms in an expression.

**numberOccExpr**- - returns the number of time an atom appears in an expression.

**numberOperBinExpr**- - returns the number of equivalent binary operators in an expression.

**operToChar**- - converts an operator number into an operator string.

**profExpr**- - returns the depth of an expression.

**profAOExpr**- - returns the depth of an expression without taking the inverters into account.

**searchExpr**- - searches for a specific atom in an expression.

**searchNumExpr**- - fetches the i-th argument in an operator expression.

**searchOperExpr**- - searches for an operator in an expression.

**simplif10Expr**- - makes simplifications on an expression including constant atomic expressions.

**simplifNotExpr**- - makes simplifications on an expression including inverters.

**sortExpr**- - sorts an expression.

**substExpr**- - copies an expression by substituting a given atom by an expression.

**substPhyExpr**- - substitutes an atomic expression by an expression within an expression.

**supportChain_listExpr**- - returns the support of an expression in a
*chain_list*.

**supportPtype_listExpr**- - returns the support of an expression in a
*ptype_list*.

**wPMExpr**- - returns 1 if the pattern matching is possible between two
expressions.

October 1, 1997 | ASIM/LIP6 |