实验一 设计词法分析程序
一、实验目的
1、 会用正则表达式描述词法规则;
2、 会将正则表达式转化为 NFA;
3、 会将 NFA 确定化并化简为最小的 DFA;
4、 会确定词法分析结果的输出形式;
5、 掌握词法分析程序设计的基本流程。
二、实验设计
1、写出 TEST 语言每条词法规则对应的正则表达式。
2、对每个文法或者正则表达式分别构造 NFA。
3、将 NFA 合并,确定化,化简得到最终的 DFA。
4、给出单词输出方案。
三、实验过程
1、给出每条词法规则对应的正则表达式、由正则表达式构造的 NFA、合并后的 NFA、确
定化后的 DFA、最小化后的 DFA。
(1)每条词法规则对应的正则表达式如下:
标识符:(a|b|...|z|A|B|...|Z)(0|1|...|9|a|b|...|z|A|B|...|Z)*
保留字:if|else|for|while|do|int|write|read
无符号整数:((1|...|9)(0|1|...|9)*)|0
分界符:(|)|;|{|}
运算符:+|-|*|/|=|<|>|>=|<=|!=|==
注释符:/|/
(2)由正则表达式构造的 NFA 如下:
标识符:
无符号整数: