home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ctb_291.zip / include / tstream.h < prev   
C/C++ Source or Header  |  1996-08-14  |  928b  |  51 lines

  1. /*
  2. ** Module   :TSTREAM.H
  3. ** Abstract :Token stream
  4. **
  5. ** Copyright (C) Sergey I. Yevtushenko
  6. ** Log:
  7. ** Update : Sat  11-05-96
  8. */
  9.  
  10.  
  11. #ifndef  __TSTREAM_H
  12. #define  __TSTREAM_H
  13.  
  14. typedef char * CPtr;
  15.  
  16. struct token_rec
  17. {
  18.     char *str;
  19.     int  type;
  20.     operator CPtr() { return str;}
  21. };
  22. enum token_type
  23. {
  24.     _eof = -1,
  25.     _ident=1,
  26.     _digit,
  27.     _float,
  28.     _const,
  29.     _other,
  30.     _badconst
  31. };
  32.  
  33. class TokenStream:public File
  34. {
  35.         char *token;
  36.         int get_char_token();
  37.         int lastchar;
  38.         int line_num;
  39.         token_rec rec;
  40.     public:
  41.         TokenStream();
  42.         TokenStream(char *name,char *def="");
  43.         ~TokenStream(){if(token) delete token;}
  44.         token_rec& next(){rec.type = get_char_token();return rec;}
  45.         token_rec& current(){ return rec;}
  46.         int line(){return line_num;}
  47.         int open(char *name,char *def="");
  48. };
  49.  
  50. #endif
  51.