  typedef enum {CHAR,INT,ARRAY,POINTER,CARTESIAN,MAPPING,UNKNOWN} type_info;
  typedef struct tnode {
     type_info info;
     struct tnode *p1, *p2;
     int array_size;
  } typenode, *typeptr;

typeptr new_node(type_info info);
typeptr map(),cartesian();
typeptr lookup();
int typematch();

typedef struct s {
  char *name;
  typeptr t;
  struct s *next;
} typetable;

