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