#ifndef __AUTO_H__ #define __AUTO_H__ struct tl_type { unsigned name; char *id; }; struct paramed_type { struct tl_type *type; struct paramed_type **params; }; #define NAME_ARRAY 0x89932ad9 #define TYPE_TO_PARAM(NAME) (&(struct paramed_type) {.type = &tl_type_## NAME, .params=0}) #define TYPE_TO_PARAM_1(NAME,PARAM1) (&(struct paramed_type) {.type = &tl_type_## NAME, .params=(struct paramed_type *[1]){PARAM1}}) #define ODDP(x) (((long)(x)) & 1) #define EVENP(x) (!ODDP(x)) #define INT2PTR(x) (void *)(long)(((long)x) * 2 + 1) #define PTR2INT(x) ((((long)x) - 1) / 2) #define FETCH_COMBINATOR_FUNCTION(NAME) #include "auto/auto-header.h" #endif