Lexer-Parser
用java實現的詞法分析和語法分析的小程序
個人博客網站:https://daqwt.top
代碼:https://github.com/DAQ121/Lexer-Parser
結果圖
- 詞法分析
- 語法分析
- 判斷是否是LL(1)文法
概述
- 詞法分析: 根據輸入的字符序列,將字符序列轉換爲單詞
Token
序列,識別每個字符,並給出相應的類型。 - 語法分析: 根據給定的文法,判斷是否是
LL(1)文法
,自頂向下分析。採用預測分析法:從文法開始符S 出發,從左到右掃描源程序,每次通過向前查看 1 個字符,選擇合適的產生式,生成句子的最左推導。 - 步驟:
- 從文件讀入文法自動區分 終結符號
VT
和 非終結符號VN
- 消除直接左遞歸
- 生成
FIRST
和FOLLOW
集合 - 判斷是否是
LL(1)
文法 - 構建預測分析表
- 輸入要分析的單詞串自動輸出分析過程
代碼結構
使用說明
- 將
grammer
文件夾放入F盤下,我在代碼包中也附帶了一個名爲文法測試.txt
的文件,裏面有對應的四種文法以及需要輸入的字符串示例。 - 運行Main主函數,即可…