实验内容:
【问题描述】基于DFA的词法分析程序的实现问题的一种描述是:
编写一个程序,输入一个确定的有穷自动机(DFA),输出词法分析程序代码,该代码功能与DFA识别功能等价。
【基本要求】设置DFA初始状态X,终态Y,过程态用数字表示:0 1 2 3………
【测试用例】
测试数据:
(1)DFA:
X X-a->0 X-b->X
Y Y-a->0 Y-b->X
0 0-a->0 0-b->2
2 2-a->0 2-b->Y
(2) abb;ba
输出结果应为:(1)scanner.cpp
(2)pass;error
实验基本算法设计:
通过先输入一个确定的有穷自动机,将自动机经过处理之后保存到字符串数组中,数组中的每一项存储一条产生式的初态、过程态、转移后的状态三个状态,随后在DFAFC函数中对输入字符串进行判断,判断初态是否能由输入字符串的第一个字符转移到下一个状态,若可以则将得到的下一个状态作为下一次循环的初态,若不行,则退出循环,判断输入字符串的下一个字符。若可以达到终态,则返回pass不行则返回error.