source: dev/BasicCompiler_Common/LexicalAnalysis.h@ 14

Last change on this file since 14 was 14, checked in by dai_9181, 17 years ago

LexicalAnalysisのベース部分を用意。

File size: 927 bytes
Line 
1
2
3enum TOKENTYPE{
4 TOKEN_IDENTIFIER, //識別子
5 TOKEN_NUMBER, //数値
6 TOKEN_STRING, //文字列
7 TOKEN_EXSTRING, //文字列
8 TOKEN_OPERATOR, //演算子
9 TOKEN_ESCAPESEQUENCE, //特殊記号
10 TOKEN_COMMAND, //コマンド
11 TOKEN_DELIMITATION, //ステップ区切り
12};
13
14class CToken{
15 int pos;
16 int length;
17 TOKENTYPE type;
18 int extended;
19
20public:
21 CToken(int pos, int length, TOKENTYPE type, int extended);
22 ~CToken();
23};
24
25class CSource{
26
27 //トークン
28 CToken **ppTokens;
29 int TokenNum;
30
31 CSource();
32 ~CSource();
33
34 void Free();
35 void Init();
36
37public:
38 //ソースコードを格納するバッファ
39 char *SourceCode;
40
41 bool OpenFile(char *FileName);
42 void SetSourceCode(char *source);
43 void AddSourceCode(char *source);
44
45private:
46 void AddToken(int pos, int length, TOKENTYPE type, int extended);
47public:
48 void LexicalAnalysis(int StartPos);
49
50
51
52 //シングルトンオブジェクト
53 static CSource obj;
54};
Note: See TracBrowser for help on using the repository browser.