我們討論的自下而上分析法是一種「移進-規約」法。大意是:用乙個寄存符號的先進後出的棧,把輸入符號乙個乙個地移進到棧裡,當棧頂形成某個產生式的乙個候選式時,即把棧頂的這一部分替換成(規約成)該產生式的左部符號。例:有文法g
s→a | ^ | (t)
t→t,s | s
給出輸入串(a,(a,a))的算符優先分析過程。
1、擴充套件文法
s』 →#s#
2、求firstvt()和lastvt()集合
firstvt(s)=
firstvt(t)= ∪ firstvt(s) =
lastvt(s)=
lastvt(t) = ∪ lastvt(s) =
3、求優先關係
3.1 首先找 等於關係(兩個vt之間只隔乙個vn)
3.2 低於關係(vt在右,vn在左)
3.3 高於關係(vn在左,vt在右)
4、構造優先關係表
5、算符優先分析過程
符號太難打,多諒解,手稿如下:
其他章節:
簡單算符優先文法分析程式(編譯原理)
實現算符優先文法分析程式 完成對以下表示式文法的分析程式。includeint find int a,int b 優先關係表 return table a 1 b 1 int in vt char c 可以根據返回的數值去優先關係表裡面查詢優先關係 return n int judge char p...
編譯原理 八 算符優先分析法 分析過程
算符優先分析法 構造演算法優先關係表 算符優先關係主要用於界定右句型的控制代碼 標記控制代碼的左端 出現在控制代碼的內部 標記控制代碼的右端。發現控制代碼的過程 非終結符的處理 因為非終結符不能影響語法分析,所以不需要區分它們,於是只用乙個佔位符來代替它們 演算法的主體思想 用棧儲存已經看到的輸入符...
算符優先分析
算符優先分析 time limit 1000 ms memory limit 65536 kib problem description 演算法優先分析法是一種不太規範的自下而上分析方法,分析速度快,特別適用於表示式的分析。為了便於大家理解和實踐算符優先分析法,本題目先給出乙個算符優先文法,請大家構...