Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. #ifndef __PARSER_H
  2. #define __PARSER_H
  3.  
  4. class CFileStreamParser;
  5. class CTextStreamParser;
  6.  
  7. class CParser
  8. {
  9. friend class CFileStreamParser;
  10. friend class CTextStreamParser;
  11. public:
  12.  CParser();
  13.  ~CParser();
  14.  virtual char GetChar();
  15.  void Init();
  16.  void SkipWhite();
  17.  int Match(char c);
  18.  unsigned long GetNum();
  19.  int GetToken(char * tokbuf,int maxlen);
  20.  inline bool isEOF() { return IsEOF; }
  21.  char Look;
  22. private:
  23.  bool IsEOF;
  24.  unsigned long __GetNum();
  25.  unsigned long __GetHexNum();
  26.  unsigned long __GetOctNum();
  27. };
  28.  
  29. class CFileStreamParser: public CParser
  30. {
  31. public:
  32.  CFileStreamParser(FILE *);
  33.  ~CFileStreamParser();
  34.  virtual char GetChar();
  35. private:
  36.  FILE * f;
  37. };
  38.  
  39. class CTextStreamParser: public CParser
  40. {
  41. public:
  42.  CTextStreamParser(char * Stm,int stm_size);
  43.  ~CTextStreamParser();
  44.  virtual char GetChar();
  45. private:
  46.  char * __Stm;
  47.  int __Size;
  48.  int __Pos;
  49. };
  50.  
  51. #endif
  52.