/* Header : boolexpr.h Author : Richard A. O'Keefe Updated: %G% Declare: enum BE_Op, BE_Ptr types, {read,write}{,ln}_expr() and free_expr() functions. */ #ifndef BOOLEXPR_H_ #define BOOLEXPR_H_ 1 /* version number */ enum BE_Op {LIT,VAR,NOT,AND,IOR,IMP,EQV}; typedef struct BE_Rec *BE_Ptr; struct BE_Rec { BE_Ptr next; /* hash link */ BE_Ptr right; /* right operand */ union {unsigned nombre; BE_Ptr gauche;} x; /* left operand or number */ union {unsigned long hash; void *spare;} y; enum BE_Op op; /* what kind of node? */ }; #define left x.gauche #define number x.nombre extern void write_expr( FILE *, BE_Ptr); extern void writeln_expr(FILE *, BE_Ptr); extern BE_Ptr read_expr( FILE *); extern BE_Ptr readln_expr( FILE *); extern void free_expr(void); #endif/*BOOLEXPR_H_*/