进行词法分析的程序被称为词法分析器 / 扫描器(lexer / scaner)
接下来我们将讨论简单的实现它,并讲解一些概念
一 词法分析器的作用
1.必要概念--词法单元(token),模式(pattern),词素(lexeme)
词法单元是由词法单元名和一个可选的属性值组成
模式描述了一个词法单元的词素可能具有的形式
词素是源程序中一个字符序列,它和某个词法单元的模式匹配,是该词法单元的一个实例
它们的关系如下:
综上词法单元是表示程序中单词种类的,模式是描述这些单词种类的,词素是这些单词种类的一个具体实例,它一定可以用模式去匹配
2.词法单元的表示
一般是一个二元组(词法单元名,属性),词法单元属性是一个可选项
例:a = a + 1
(标识符,指向符号表中a条目的指针)
(赋值运算符) //运算符一般不需要属性值