上级文章
[编译原理随记]正则表达式记号和状态图:https://blog.csdn.net/qq_28033719/article/details/107067798
准备知识
Lex程序的组成部分:
声明部分 - 就是声明变量命名、符号、常量、正则定义这些;
转换规则 - 就是类似于状态图的状态转换一样,每一个输入字符都会进行一个代码块处理,这个处理就叫转换规则。
比如:
p1 {action1}
p2 {action2} .....
每一个 P 代表一个正则表达式(可复杂可简单), action 就代表执行程序代码块。
辅助过程 - 比如需要依赖什么方法,外部包,第三方等等的东西,引进来就行。
有穷自动机:
可以理解为更加一般化的状态转换图,分为确定有穷自动机(DFA),不确定有穷自动机(NFA)。作用就是把正则表达式引导并编译成识别器,可以理解为一种抽象化框架来完成识别器的编码,从而做出识别器功能。