編譯原理 遞迴子程式分析器的設計和實現

2021-09-01 05:32:04 字數 861 閱讀 8881

g[e]:

e→ebaa

a→a|bacb

b→ded|ac

c→e|dc

要求輸入乙個語句,判斷這個語句是不是屬於這個文法的。如果是則輸出「right」,如果不是,則輸出「error」。

#include

#define len 100

using namespace std;

int i;

voide(

);voida(

);voidb(

);voidc(

);bool flag=true;

char str[len]

;int

main()

else

continue;}

return0;

}voide(

)}else

}voida(

)}else

}voidb(

)}else

if(str[i]

=='a'

)else

}voidc(

)else

}

測試輸入:eadeaa

edeaebd

edeaeaadabacae

測試輸出:right

編譯原理 詞法分析器

1 從源程式檔案中讀入字元。2 統計行數和列數用於錯誤單詞的定位。3 刪除空格類字元,包括回車 製表符空格。4 按拼寫單詞,並用 內碼,屬性 二元式表示。屬性值 token 的機內表示 5 如果發現錯誤則報告出錯 6 根據需要是否填寫識別符號表供以後各階段使用 int tag 0 設立標誌 一開始本...

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

對文法中的每個非終結符 語法成分 編寫乙個子程式,而子程式的 結構由相應非終結符的產生式右部所決定 文法 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 ...

編譯原理語法分析器

採用至少一種句法分析技術 ll 1 slr 1 lr 1 或lalr 1 對類高階語言中的基本語句進行句法分析。闡述句法分析系統所要完成的功能。1 能識別以下幾類語句 宣告語句 包括變數宣告 陣列宣告 記錄宣告和過程宣告 表示式及賦值語句 包括陣列元素的引用和賦值 分支語句 if then else...