可以利用这些概念的等价性,实现词法分析程序自动生成
step1 针对程序语言的词汇表(也就是正规集)写出各类单词的正规式
step2 利用正规式到NFA的转换算法,构造一个识别所有单词的NFA
step3 利用从NFA到DFA的转换算法,得到识别所有单词的DFA
step4 将DFA的状态转移函数,实现为二维数组,与DFA的识别程序组合起来,就得到了词法分析程序
lex.l通过LEX编译器,可以得到lex.yy.c,这个lex.yy.c程序通过C编译器翻译得到可以执行.exe的词法分析程序
这个.exe程序就是由图三的词法分析程序得来的
需要有针对不同语言的词法分析程序,只要编写不同的LEX源程序,运行这一套工具,就可以得到相应的词法分析程序了