在之前我们已经展示的自动生成方法图中,我们现在已经通过学习正则表达式掌握了声明式规范的使用,通过像 flex 这类的词法分析器的自动生成器, 就可以生成词法分析器。
为了验证自动的生成的词法分析器,我们需要使用有限状态自动机的方式来实现。
举个例子:
在上图中,
Σ 表示自动机可以识别的所有的不同的字符的集合。 Σ = {a, b}
S 是状态集,在这里只有三种状态,所以 S = {0, 1, 2}
q0 是初始状态,我们一般约定只有一个单向箭头的边指向的节点是起始状态。q0 = 0
F 是终结状态,或者说是接收状态,在图中表示为双圈。 F = {2}
δ 是转移函数,是一个映射的概念,为
{(q0, a) -> q1, (q0, b) -> q0,
(q1, a) -> q2, (q1, b) -> q1,</