词法分析器的任务:
- 读入每个单词或者字符
- 判断每个字符或者单词是否合法
- 如果所有字符或者单词合法,则为每个单词或字符附加上相关信息输出(token)。
补充:
单词或字符合法:这需要预先定义什么是合法字符,我定义的t语言(暂且这么称呼)中对合法单词的定义是:变量名必须以[a-z|A-Z|_]开头单词中可以包含数字.
每识别一个单词,不是直接输出该单词,而是将它和它相关信息打包成一个token,以供后面部分的分析过程使用。而我的将token定义成<属性,单词,行,列>,输出给语法分析器。
关于词法分析器的实现方法:
手工编码实现:
转移图算法,结合自身定义词法规则。
我的词法分析python实现---github使用词法分析器的生成器:
只需要输入合法单词的正则表达式,即可生成一个词法分析器