typedef struct Node Node; typedef struct Field Field; typedef Node *Nodeptr; #define YYSTYPE Nodeptr struct Node { Node *next; int c; /* token type */ char addr; /* true if this is an address */ String *s; /* string representing token */ String *white; /* white space following token */ char *end; /* next byte in input */ }; struct Field { Field *next; Node *node; int source; }; extern Field *firstfield; extern Field *lastfield; extern char *yystart; extern Node *usender; extern Node *usys; extern Node *udate; extern int originator; extern int date; Node* anonymous(Node*); Node* address(Node*); Node* bang(Node*, Node*); int cistrcmp(char*, char*); Node* link2(Node*, Node*); Node* link3(Node*, Node*, Node*); void freenode(Node*); void newfield(Node*, int); void freefield(Field*); void yyinit(char*); int yyparse(void); int yylex(void); String* yywhite(void); Node* whiten(Node*);