smtp.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. typedef struct Node Node;
  2. typedef struct Field Field;
  3. typedef Node *Nodeptr;
  4. #define YYSTYPE Nodeptr
  5. struct Node {
  6. Node *next;
  7. int c; /* token type */
  8. char addr; /* true if this is an address */
  9. String *s; /* string representing token */
  10. String *white; /* white space following token */
  11. char *start; /* first byte for this token */
  12. char *end; /* next byte in input */
  13. };
  14. struct Field {
  15. Field *next;
  16. Node *node;
  17. int source;
  18. };
  19. extern Field *firstfield;
  20. extern Field *lastfield;
  21. extern Node *usender;
  22. extern Node *usys;
  23. extern Node *udate;
  24. extern int originator;
  25. extern int destination;
  26. extern int date;
  27. extern int messageid;
  28. Node* anonymous(Node*);
  29. Node* address(Node*);
  30. int badfieldname(Node*);
  31. Node* bang(Node*, Node*);
  32. Node* colon(Node*, Node*);
  33. int cistrcmp(char*, char*);
  34. Node* link2(Node*, Node*);
  35. Node* link3(Node*, Node*, Node*);
  36. void freenode(Node*);
  37. void newfield(Node*, int);
  38. void freefield(Field*);
  39. void yyinit(char*, int);
  40. int yyparse(void);
  41. int yylex(void);
  42. String* yywhite(void);
  43. Node* whiten(Node*);
  44. void yycleanup(void);
  45. int mxdial(char*, char*, char*);
  46. char* expand_meta(char *);