rendered paste body#ifndef _OBJECT_H_#define _OBJECT_H_#define TRUE 1#define FALSE 0/* NIL - as 0, empty list, undefined value */enum ctype { INT, CHAR, LIST, T, NIL };typedef enum ctype ctype;typedef void* ptovalue;struct _object { ctype type; ptovalue value;// char* (*return_type);};typedef struct _object object;struct _list { object car; struct _list *cdr;};typedef struct _list list;#define RETURN_TYPE(obj) ( (obj.type == LIST) ? "list" : \ (obj.type == INT) ? "int" : \ (obj.type == CHAR) ? "char" : \ (obj.type == T) ? "T" : "NIL" )#define RETURN_VALUE(obj) ( (obj.type == LIST) ? *(list*) obj.value : \ (obj.type == INT) ? *(int*) obj.value : \ (obj.type == CHAR) ? *(char*) obj.value : \ (obj.type == T) ? TRUE : FALSE )#endif /* _OBJECT_H_ */