編譯原理實驗3 遞迴下降分析

2021-07-08 16:18:27 字數 979 閱讀 5765

本**實現的文法是這樣的

g[e]:

e→e+t| t

t→t*f|f

f→(e ) | i

因為包含左遞迴,故需要消去之後才能做。

設計理念:通過遞迴下降的方式來對句子進行分析。

若能夠接收乙個完全的初始字元並且所有的串全部被讀入,則算作

accepted。

否則為wrong。

使用說明:

首先輸入需要分析的樣例個數,再依次輸入待分析的句子即可。

**如下:

#include#include#includeusing namespace std;

const int n = 10005;

char buffer[n];

int tail;

bool e();

bool a();

bool t();

bool b();

bool f();

void init()

void solve()

int main()

bool e()/*}}}*/

bool a()

else ok = 1;

return ok;

}/*}}}*/

bool t()/*}}}*/

bool b()

else ok = 1;

return ok;

}/*}}}*/

bool f()

else if(buffer[tail] == 'i')

else ok = 0;

return ok;

}/*}}}*/

/*10

i+(i+i*i)

i+ii+i+i+i

i+i*i*i

i++++

iiii+i+(i+i)

c+ic

i+i+

*/

編譯原理實驗三 語法分析(遞迴下降法)

實驗任務 完成以下描述算術表示式的ll 1 文法的遞迴下降分析程式 g e e te e ate t ft t mft f e i a m 說明 終結符號i為使用者定義的簡單變數,即識別符號的定義。設計要求 1 輸入串應是詞法分析的輸出二元式序列,即某算術表示式 實驗專案一 的輸出結果。輸出為輸入串...

編譯原理 實驗2 遞迴下降語法分析程式設計

實驗要求 1 待分析的簡單語言的詞法同實驗1 2 待分析的簡單語言的語法 用擴充的bnf表示如下 1 程式 begin 語句串 end 2 語句串 語句 3 語句 賦值語句 4 賦值語句 id 表示式 5 表示式 項 6 項 因子 7 因子 id num 表示式 3 語法分析程式的功能 輸入單詞串以...

編譯原理實驗(三) 遞迴下降子程式

對文法中的每個非終結符 語法成分 編寫乙個子程式,而子程式的 結構由相應非終結符的產生式右部所決定 文法 g e e e t t t t f f f e i 消除左遞迴 g e e te e te t ft t ft f e i 可以通過g e 文法構造遞迴下降分析器 文法g e 無左遞迴,e t ...