資源描述:
《談沈從文小說中的悲劇女性形象》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、簡單LR語法分析程序自動生成器的實現(xiàn)學號____________姓名____________指導(dǎo)教師____________2013年11月需求分析設(shè)計目的:設(shè)計、編制和調(diào)試一個典型的LR(1)分析器,進一步掌握LR(0)語法分析方法掌握用預(yù)分析分析LR(0)文法的具體過程。加深對LR(0)文法和預(yù)測分析文法的理解?;疽笠訠NF形式給定某種簡單程序設(shè)計語言組成部分的若干語法規(guī)則及測試用例:1、讀入語法規(guī)則,自動生成對該語言進行語法分析的表驅(qū)動語法分析程序—LR(0)語法分析器;2、對于給定的測試用例(程序)
2、,生成的表驅(qū)動語法分析程序即LR(0)語法分析器能夠?qū)ζ溥M行語法分析,按照自底向上的順序輸出推導(dǎo)過程中用到的語法規(guī)則輸入以BNF形式給定描述某種高級程序設(shè)計語言組成部分的若干語法規(guī)則及測試用例(可讀取文件獲取)輸出程序運行時應(yīng)該能夠根據(jù)不同的輸入(即語法規(guī)則),自動生成對該語言進行語法分析的表驅(qū)動語法分析程序--LR(0)語法分析器,運行該語法分析程序可以對測試用例進行語法分析并按照“自底向上”的順序輸出推導(dǎo)過程中用到的語法規(guī)則;基本功能:根據(jù)LR(0)分析法編寫一個語法分析程序,輸入已給定文法,直接輸入根據(jù)己
3、知文法構(gòu)造的LR(0)分析表。對于輸入的符號串,所編制的語法分析程序應(yīng)能正確判斷此串是否為文法的句子,并要求輸出分程程序開發(fā)運行所需環(huán)境:C++三、詳細設(shè)計3.1判斷是否為終極符號boolJudge(charch){if((ch>='A'&&ch<='Z')
4、
5、ch=='-'
6、
7、ch=='>'
8、
9、ch==''){returntrue;}elsereturnfalse;}讀入輸出給定文法3.2檢查讀入的文法并將文法轉(zhuǎn)換是否為終極符是否重復(fù)YN是否重復(fù)YY刪除重復(fù)刪除重復(fù)NN輸出終極符及輸出非終極符voidbegi
10、n(){FILE*fp;charch;intvnloc[30];intreal_row=0,w=0,i,j,k,l;cout<<"給定文法析出如下:"<11、ch=fgetc(fp);for(i=1;i12、h!=';';j++){//所以最后一個文法必以分號結(jié)尾if(Judge(ch)==0){//如果是終結(jié)符(除了A-Z,-,>,;)之外for(intk=1,COL=col;k<=COL;k++){//判斷是否有重復(fù)的終結(jié)符,終結(jié)符放在table[0]這個二維數(shù)組里,每個都是table[0][x][0]位置if(table[0][k][0]==ch)break;//有重復(fù),彈出if(k==COL)table[0][col++][0]=ch;//檢查完之前所有已確定的終結(jié)符均未發(fā)現(xiàn)重復(fù),//則表格第一行第col列
13、為終結(jié)符ch}}//ifendcout<14、<<"非終結(jié)符個數(shù)為:"<
|