要求使用递归下降分析技术完成对文法输入文件的分析,
并输出其项集规范族。具体的要求如下:
程序可以读入一个描述了一个文法的文件,并且输出这个文法的项集规范族,并且给出各项集之间的后继关系。
输入文件的语法是这样的:
<文法输入>,:= <语法规则><回车符号><文法输入>
<语法规则>,:= <非终结符号> '::=' <规则右部>
<符号> ,:= <终结符号>|<非终结符号>
<终结符号>,:= a|b|c|d|......|y|z
<非终结符号>::= A|B|C|......|Y|Z
<规则右部>,:= <符号> | <符号><规则右部>
输出的格式如下:
项集0的编号(数字)
U-->XY.Z
V-->Y.AB
'SUCCESSORS'
Z后继编号。
A后继编号。
项集1的编号
...
...
注:
1:<回车符号>就是普通的回车换行符号.应为在文本文件里面难以表示,所以没有给出规则.
2:用小写字母表示终结符号,大写符号表示非终结符号。
3:输入文件中的空格,制表符号被忽略。但是输出中的规则的符号之间不要有空格。