Last change
on this file since 14 was 14, checked in by dai_9181, 17 years ago |
LexicalAnalysisのベース部分を用意。
|
File size:
927 bytes
|
Rev | Line | |
---|
[14] | 1 |
|
---|
| 2 |
|
---|
| 3 | enum 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 |
|
---|
| 14 | class CToken{
|
---|
| 15 | int pos;
|
---|
| 16 | int length;
|
---|
| 17 | TOKENTYPE type;
|
---|
| 18 | int extended;
|
---|
| 19 |
|
---|
| 20 | public:
|
---|
| 21 | CToken(int pos, int length, TOKENTYPE type, int extended);
|
---|
| 22 | ~CToken();
|
---|
| 23 | };
|
---|
| 24 |
|
---|
| 25 | class CSource{
|
---|
| 26 |
|
---|
| 27 | //トークン
|
---|
| 28 | CToken **ppTokens;
|
---|
| 29 | int TokenNum;
|
---|
| 30 |
|
---|
| 31 | CSource();
|
---|
| 32 | ~CSource();
|
---|
| 33 |
|
---|
| 34 | void Free();
|
---|
| 35 | void Init();
|
---|
| 36 |
|
---|
| 37 | public:
|
---|
| 38 | //ソースコードを格納するバッファ
|
---|
| 39 | char *SourceCode;
|
---|
| 40 |
|
---|
| 41 | bool OpenFile(char *FileName);
|
---|
| 42 | void SetSourceCode(char *source);
|
---|
| 43 | void AddSourceCode(char *source);
|
---|
| 44 |
|
---|
| 45 | private:
|
---|
| 46 | void AddToken(int pos, int length, TOKENTYPE type, int extended);
|
---|
| 47 | public:
|
---|
| 48 | void LexicalAnalysis(int StartPos);
|
---|
| 49 |
|
---|
| 50 |
|
---|
| 51 |
|
---|
| 52 | //シングルトンオブジェクト
|
---|
| 53 | static CSource obj;
|
---|
| 54 | };
|
---|
Note:
See
TracBrowser
for help on using the repository browser.