關於編譯原理 遞迴下將分析程式

2021-08-25 04:25:13 字數 622 閱讀 2506

編譯原理實驗要求構造乙個地跪下將分析器,目標是能夠對表示式進行自上而下語法分析,主要是識別i+i*i,我編的程式感覺是能實現分析,但不能判斷是否符合語法

識別語法為:

e->t|e+t

t->f|t*f

f->i|(e)

程式的源**為:

#include

#include

using namespace std;

bool f(string &str,char* &ip);

bool t(string &str,char* &ip);

bool e(string &str,char* &ip);

bool advance(string &str,char* &ip);

bool advance(string &str,char* &ip)

bool f(string &str,char* &ip)

else cout<<"輸入表示式不符合已知文法!"

}程式不管怎樣多承認符合語法,因為e函式返回的是true,不能反悔false,我想了好長時間也不知幹怎樣改,才能對給出的表示式進行分析是否符合語法,感覺應該是e函式的迴圈那地方的問題,希望哪位能指點一下,幫我解決這個問題。

編譯原理詞法分析程式

include include char prog 80 token 8 char ch int syn,p,m,n,sum char rwtab 6 void scaner token m 0 p 回退乙個字元 syn 10 for n 0 n 6 n if strcmp token,rwtab ...

編譯原理詞法分析程式

include include char scanin 300 scanout 300 extern int testscan char scanin 300 scanout 300 file fin,fout 指向輸入輸出檔案的指標 int main include include include...

編譯原理 遞迴下降分析法 c程式部分的分析

實驗三 語法分析程式實驗 專業 商軟2班 姓名 黃仲浩 學號 201506110166 一 實驗目的 編制乙個部分文法分析程式。二 實驗內容和要求 輸入 源程式字串 輸出 正確或者錯誤 三 實驗方法 步驟及結果測試 源程式名 遞迴下降分析.c 可執行程式名 遞迴下降分析.c 原理分析及流程圖 inc...