home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1992 March / Source_Code_CD-ROM_Walnut_Creek_March_1992.iso / usenet / altsrcs / 3 / 3952 / token.h < prev    next >
Encoding:
C/C++ Source or Header  |  1991-09-02  |  1.2 KB  |  44 lines

  1. /* @(#) token.h 1.1 91/09/01 23:08:40 */
  2.  
  3. typedef struct token {
  4.     int     tokno;            /* token value, see below */
  5.     int     len;            /* string or list length */
  6.     struct vstring *vstr;        /* token contents */
  7.     struct token *next;
  8.     struct token *head;
  9.     struct token *tail;
  10. };
  11.  
  12. /* Special token values */
  13.  
  14. #define    TOK_LIST    256        /* () delimited list */
  15. #define    TOK_WORD    257        /* keyword or identifier */
  16. #define    TOK_NUMBER    258        /* number */
  17. #define    TOK_WSPACE    259        /* white space except newline */
  18. #define    TOK_OTHER    260        /* other multi-char token */
  19.  
  20. /* Input/output functions */
  21.  
  22. extern struct token *tok_get();        /* read next single token */
  23. extern void tok_show();            /* display (composite) token */
  24. extern struct token *tok_class();    /* classify tokens */
  25. extern void put_ch();            /* write character */
  26. extern void put_str();            /* write string */
  27. extern void tok_unget();        /* stuff token back into input */
  28.  
  29. #define    tok_flush(t)    (tok_show(t), tok_free(t))
  30.  
  31. /* tok_get() options */
  32.  
  33. #define    DO_WSPACE    0        /* retain space, tab */
  34. #define    NO_WSPACE    1        /* skip space, tab */
  35.  
  36. /* Memory management */
  37.  
  38. struct token *tok_alloc();        /* allocate token storage */
  39. extern void tok_free();            /* re-cycle storage */
  40.  
  41. /* Other support fuctions */
  42.  
  43. extern void show_line_number();
  44.