|
Last change
on this file since 14 was 14, checked in by dai_9181, 19 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.