1. 程式人生 > >[原始碼和文件分享]基於LL1文法的語法分析

[原始碼和文件分享]基於LL1文法的語法分析

一、目標

本次實驗的目的是對編譯器進行詞法分析的過程進行模擬,我選擇了在實際中更為通用的自底向上的詞法分析器的分析過程,最終產生規約序列。對於LR(0)和LR(1)問題,我的程式對於LR(0)和LR(1)是通用的,因為只要給出合法的parsing table和上下文無關文法, 程式就能進行相應的詞法分析,而parsing table和文法都是使用者輸入檔案給出。

二、內容概述

本文件描述了編譯原理課程實驗中,語法分析器部分的實驗內容,實驗方案以及結果。

三、實驗環境

  • 作業系統:win8.1
  • 編譯器:eclipse
  • 使用的工具:github
  • 編碼格式:utf-8

四、思路和核心思想

根據給出的文法,文法要求是非二義性的、非左遞迴的上下文無關文法,輸入到product的檔案中。從檔案中讀出輸入的文法,先通過對輸入的文法求每一個產生式中的非終結符的first和follow集合。來構建LL(1)的預測分析表。然後使用預測分析表來進行表格驅動,對於輸入的串進行預測分析,使用書上的演算法,現在在此處附上這演算法,因為比較難打字,我附圖:


參考文件和完整的文件和原始碼下載地址:

https://www.write-bug.com/article/1358.html