文法识别,转换成BNF输出,求源程序,课设用
要求:
文法的输入形式分为以下三种:
1.输入的文法的符号(终结符和非终结符)为单个字符
2.输入的文法的终结符为单个字符,非终结符为带尖括号的字符串
3.输入文法形式为非终结符是一个大写字母,终结符是字符串
当用户输入第一种形式时,例如:文法1:
S->ADB
则不用转换,直接输出即可,因此该文法的输出形式为:
S->ADB
当用户输入第二种形式时,例如:文法2:
<as>->fg<er>sf
我们要先将文法进行转换,即把字符串转换成大写字母,因为我们规定大写字母表示非终结符。因此经过转换,该文法将变为:
A->fgBsf
当用户输入第三种形式时,例如:文法3:
S->IF E THEN F
我们要先将文法进行转换,把IF、THEN转换为相应的小写字母,即当扫描到IF、THEN时,就自动地用小写字母代替。因此经过转换,该文法将变为:
S->aEbF
如文法G:
<rw>->fge|dfsa <et>->gfa|etv|agf <etx>->gvx|et
经过转换,文法G4的输出结果为:
A->fge A->dfsa
B->gfa B->etv B->agf
C->gvx C->et
各位GGJJ多帮忙啊,小弟感激不尽。
qq 154602114