語法分析程序?
實驗目的
通過設計、編制、調試一個典型的語法分析程序,實現對詞法分析程序所提供的單詞序列進行語法檢查和結構分析,進一步掌握常用的語法分析中預測分析方法。
實驗內容
設計一個文法的預測分析程序,判斷特定表達式的正確性。
實驗要求
1、給出文法如下:
G[E]:
E->T|E+T;
T->F|T*F;
F->i|(E);
2、根據該文法構造相應的LL(1)文法及LL(1)分析表,并為該文法設計預測分析程序,利用C語言或C++語言或Java語言實現;
3、利用預測分析程序完成下列功能:
1)手工將測試的表達式寫入文本文件,每個表達式寫一行,用“;”表示結束;
2)讀入文本文件中的表達式;
3)調用實驗一中的詞法分析程序搜索單詞;
4)把單詞送入預測分析程序,判斷表達式是否正確(是否是給出文法的語言),若錯誤,應給出錯誤信息;
5)完成上述功能,有余力的同學可以進一步完成通過程序實現對非LL(1)文法到LL(1)文法的自動轉換(見實驗二附加資料1)。
實驗環境
PC微機
DOS操作系統或 Windows 操作系統
Turbo C 程序集成環境或 Visual C++ 程序集成環境或Eclipse集成環境
五、實驗步驟
1、分析文法,將給出的文法轉化為LL(1)文法;
2、學習預測分析程序的結構,設計合理的預測分析程序;
3、編寫測試程序,包括表達式的讀入和結果的輸出;
4、測試程序運行效果,測試數據可以參考下列給出的數據。