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

2021-09-27 11:07:48 字數 558 閱讀 7213

一、目標

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

二、內容概述

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

三、實驗環境

作業系統:win8.1

編譯器:eclipse

使用的工具:github

編碼格式:utf-8

四、思路和核心思想

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

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

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

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

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

LL 1 文法判斷

ll 1 文法判斷 題型 1.判斷該文法是否是ll 1 文法?2.若是,給出它的ll 1 分析表,否則說明理由。概念 對於產生式 a 1.如果 均不能推導出 空語句 則 first first 2.和 至多有乙個能推導出 3.如果 經過0步或多步可以推導出 則 first follow a 關鍵 求...