All pastes #770231 Raw Edit

Type mismatch in RETURN_VALUE(ob

public c v1 · immutable
·published 2007-11-12 00:36 UTC
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_ */