lyl19 发表于 2009-06-26 23:55

flex代码看不太懂,哪位大哥研究过

小弟最近尝试着看看flex代码,姑且不论前面的,看到由正则表达式转为nfa时,都看不太懂,也就不谈后面长长的nfa转化为dfa。
有哪位大哥分析过flex的,能否给点帮助,谢谢。

cjaizss 发表于 2009-06-29 00:12

先想清楚一个regex怎么构造等价的状态机
然后再去想如何把n个状态机拼在一起成为一个大的状态机的问题.
思考了这些理论问题,就明白LEX是怎么干了.
flex对于所有的regex是采用一个整体的大状态机来解决问题

lyl19 发表于 2009-06-30 00:02

回复 #2 cjaizss 的帖子

多谢,不过手上只有龙书,不知道能不能想通

norechang 发表于 2009-06-30 14:40

回复 #3 lyl19 的帖子

RE -> Thompson's construction algorithm -> NFA -> subset construction algorithm -> DFA

prolj 发表于 2009-06-30 21:46

flex的代码不是bison描述的么?lz的自动机那里看见的?bison生成的C代码?

lyl19 发表于 2009-07-02 21:26

确实是bison来解析的,当看到一个匹配式时,bison的action就会创建相应的状态机
页: [1]
查看完整版本: flex代码看不太懂,哪位大哥研究过