home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / mail / mmdf / mmdf-IIb.43 / h / ap.h < prev    next >
Encoding:
C/C++ Source or Header  |  1990-02-28  |  3.2 KB  |  78 lines

  1. /*  environment for address parser */
  2.  
  3. #define AP_SAME   0000          /* do not transorm the address */
  4. #define AP_733    0001          /* follow RFC #733 rules */
  5. #define AP_822    0002          /* follow RFC #822 rules */
  6. #define AP_NODOTS 0004          /* strip down to hostname on next hop */
  7. #define AP_BIG    0010          /* Use Big-endian domains, FLAG */
  8. #define AP_TRY    0020          /* Try header rewrite--don't die upon NS timeo*/
  9.  
  10. struct ap_node
  11. {
  12.     char    ap_obtype,            /* parsing type of this object        */
  13. #define APV_NIL  0
  14. #define APV_NAME 1                /* personal name                      */
  15. #define APV_MBOX 2                /* mailbox-part of address            */
  16. #define APV_DOMN 3                /* host-part of address               */
  17. #define APV_DTYP 4                /* "data-type" (e.g., :include:...,)  */
  18. #define APV_CMNT 5                /* comment (...)                      */
  19. #define APV_WORD 6                /* generic word                       */
  20. #define APV_PRSN 7                /* start of personal addr list <...>  */
  21. #define APV_NPER 8                /* name of person                     */
  22. #define APV_EPER 9                /* end of personal address list       */
  23. #define APV_GRUP 10               /* start of group address list x:..;  */
  24. #define APV_NGRP 11               /* name of group                      */
  25. #define APV_EGRP 12               /* end of group list                  */
  26. #define APV_DLIT 13               /* domain literal                     */
  27.         ap_ptrtype;           /* next node is continuation of this  */
  28.                   /*   address, start of new, or null   */
  29. #define APP_NIL  0                /* there is no next node              */
  30. #define APP_ETC  1                /* next is part of this address       */
  31. #define APP_NXT  2                /* next is start of new address       */
  32.  
  33.     char   *ap_obvalue;           /* pointer to string value of object  */
  34.     struct ap_node  *ap_chain;    /* pointer to next node               */
  35. };
  36.  
  37. typedef struct ap_node *AP_ptr;
  38.  
  39. struct ap_prevstruct
  40. {                                 /* for use when getting indirect input*/
  41.     FILE *ap_curfp;               /* handle on current file input       */
  42.     struct ap_prevstruct   *ap_prvptr;
  43.                   /* next input down the stack, using...*/
  44.     int     (*ap_prvgfunc) ();    /* getchar function for that input    */
  45.     int     ap_opeek,             /* with this as peek-ahead char for it*/
  46.         ap_ogroup,            /* nesting level of group list        */
  47.         ap_opersn;            /* nesting level of personal list     */
  48. };
  49.  
  50.  
  51. extern  char    ap_llex;
  52. extern  AP_ptr  ap_pstrt;
  53. extern  AP_ptr  ap_pcur;
  54. extern    int    ap_1adr();
  55. extern    AP_ptr    ap_1delete();
  56. extern    AP_ptr    ap_add();
  57. extern    AP_ptr    ap_alloc();
  58. extern    AP_ptr    ap_append();
  59. extern    int    ap_char();
  60. extern    char *    ap_dmflip();
  61. extern    int    ap_dmnormalize();
  62. extern    int    ap_flget();
  63. extern    int    ap_fpush();
  64. extern    int    ap_lex();
  65. extern    AP_ptr    ap_move();
  66. extern    AP_ptr    ap_new();
  67. extern    AP_ptr    ap_normalize();
  68. extern    char *    ap_p2s();
  69. extern    AP_ptr    ap_pinit();
  70. extern    int    ap_ppush();
  71. extern    char *    ap_s2p();
  72. extern    AP_ptr    ap_s2tree();
  73. extern    AP_ptr    ap_sqdelete();
  74. extern    AP_ptr    ap_sqinsert();
  75. extern    AP_ptr    ap_sqmove();
  76. extern    AP_ptr    ap_t2parts();
  77. extern    AP_ptr    ap_t2s();
  78.