第三次上机作业 1. 编写First和Follow函数,实现其求解过程。 (1)FIRST集合计算方法: ① 若Xa.., 则将终结符a加入FIRST(X)中; ② 若X,则将加入FIRST(X)中; ③ 若XY…,且Y属于非终结符,则将FIRST(Y)\{}加入到FIRST(X)中;(注:“\”表示除去元素,即FIRST(Y)中的非元素加入到FIRST(X)中。以下同理。) ④ 若XY1Y2..YK,且Y1,Y2,..Yi-1都是非终结符,且Y1,Y2,..Yi-1的FIR
以前上传过相同的算法,在计算FIRST集的时候有遗漏,现补充完善。
说明如下:
本程序是使用Visual Studio 20013 编写的Qt控制台程序,计算如下文法产生式的FIRST和FOLLOW集合
E -> T E1
E1 -> + T E1 | # (#代表空串)
T -> F T1
T1 -> * F T1 | #
F -> ( E ) | id
具体内容见代码,注释极为详细