Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
4973 right-hear 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