题目:
在这部分中,你将使用图转移算法手工实现一个小型的词法分析器。
* 分析器的输入:存储在文本文件中的字符序列,字符取自ASCII字符集。文件中可能包括四种记号:关键字if、符合C语言标准的标识符、空格符、回车符\n。
* 分析器的输出:打印出所识别的标识符的种类、及行号、列号信息。
根据题目的要求,定义如下的Token类:
enum TokenType{
TT_ID,
TT_IF
};
class Token {
public:
Token(){}
Token(TokenType _t, string _n, int _l, int _c) { mType = _t; mName = _n; mLine = _l; mColumn = _c; }
~Token(){}
string toString();
TokenType mType;
string mName;
int mLine;
int mColumn;
};
重点实现获取Token的方法:
Token* nextToken(string& input)代码比较挫,不多说了,感兴趣的自己看吧。
原文地址:http://blog.csdn.net/booirror/article/details/41972211