flex代码看不太懂,哪位大哥研究过
小弟最近尝试着看看flex代码,姑且不论前面的,看到由正则表达式转为nfa时,都看不太懂,也就不谈后面长长的nfa转化为dfa。有哪位大哥分析过flex的,能否给点帮助,谢谢。 先想清楚一个regex怎么构造等价的状态机
然后再去想如何把n个状态机拼在一起成为一个大的状态机的问题.
思考了这些理论问题,就明白LEX是怎么干了.
flex对于所有的regex是采用一个整体的大状态机来解决问题
回复 #2 cjaizss 的帖子
多谢,不过手上只有龙书,不知道能不能想通回复 #3 lyl19 的帖子
RE -> Thompson's construction algorithm -> NFA -> subset construction algorithm -> DFA flex的代码不是bison描述的么?lz的自动机那里看见的?bison生成的C代码? 确实是bison来解析的,当看到一个匹配式时,bison的action就会创建相应的状态机
页:
[1]