typedef enum { ..., sel_Neg = 4, sel_Minus = 5, sel_Plus = 6, sel_Zero = 7, sel_Nilexprlist = 8, sel_Consexprlist = 9, ... } kc_enum_operators;
typedef struct kc_tag_expr *expr; /* note that a `expr' is a pointer to a `struct kc_tag_expr'*/ typedef struct kc_tag_exprlist *exprlist;
struct kc_tag_expr { kc_enum_operators prod_sel; union { struct { expr expr_1; } Neg; struct { expr expr_1; expr expr_2; } Minus; struct { expr expr_1; expr expr_2; } Plus; } u; float value; /* an attribute */ };
struct kc_tag_exprlist { kc_enum_operators prod_sel; union { struct { expr expr_1; exprlist exprlist_1; } Consexprlist; } u; };
The term processor generates a C type definition boolean with constants True and False that have the usual C interpretation (namely int, 1, and 0).
The names of all the rewrite and unparse views are collected in enumeration types rview respectively uview . Whether or not the user has used it, these types contains a value base_riew respectively base_uview .