本程序要求用戶在控制臺(tái)里輸入非終極符,終結(jié)符與產(chǎn)生式,然后對(duì)用戶輸入的文法進(jìn)行分析,得出first集 與follow 集,并打印出預(yù)測(cè)分析表用戶決定是否繼續(xù)進(jìn)行句型分析,如繼續(xù)則給出符號(hào)分析棧的實(shí)現(xiàn),從而判斷剛輸入的句子是否為符合該文法的句子。
該程序遵循LL(1) 文法FIRST(A)的構(gòu)造:是A的所有可能推導(dǎo)的開(kāi)頭終結(jié)符或可能的ε FOLLOW(A)是所有句型中出現(xiàn)在緊接A之后的非終結(jié)符或“#” 預(yù)測(cè)分析程序 構(gòu)造LL(1)分析表
ⅰ,構(gòu)造文法中所有元素的FIRST和FOLLOW集合
ⅱ,對(duì)文法G的每個(gè)產(chǎn)生式A->α執(zhí)行第三步和第四步
ⅲ,對(duì)每個(gè)終結(jié)符a∈FIRST(α),把A->α加至M[A,a]
ⅳ,若ε∈FIRST(α),則對(duì)任何b∈FOLLOW(A)把A->α加至M[A,b]中
ⅴ,把所有無(wú)定義的M[A,a]標(biāo)上“出錯(cuò)標(biāo)志”
標(biāo)簽:
程序
用戶
控制臺(tái)
輸入
上傳時(shí)間:
2013-12-27
上傳用戶:jackgao