compile
2022-04-09 19:50:31 3 举报
compile
作者其他创作
大纲/内容
推出'$'?
扫描所有产生式
Y
为'$'?
loop
添加下一个单词的first集
产生式右边第一个单词
结束
table[curr_left][terminalFollow] = -1,for terminalFollow in first(curr_left)
开始
loop 内
表中写入当前产生式标号
grammar.txt
对于每个单词
出现αBβ?
推出空?
所有first集长度不再增加
输入
当前产生式右边
N
是终结符?
遍历右边所有单词
对于当前单词
添加'$'
所有follow集长度不再改变
添加到当前产生式左边单词的first集
出现αB?
出现αBβ且β推出空?
添加follow(A)(A为产生式左边)
loop 内 break
直到最后一个单词都推出空?
单词是终结符?
follow['root'] = {'#'}
遍历产生式右边所有单词
loop 外
为非终结符?
添加first(β)-{'$'}
0 条评论
下一页