新-編譯原理語法分析實驗報告_第1頁
新-編譯原理語法分析實驗報告_第2頁
新-編譯原理語法分析實驗報告_第3頁
新-編譯原理語法分析實驗報告_第4頁
新-編譯原理語法分析實驗報告_第5頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1(0)S’→#S#(1)S→V(2)V→T|ViT(3)T→F|T+F(4)F→)V*|(有產(chǎn)生式(0)S’→#S#可得’#’’#’IRSTVT#i+,),(VTS’SVTF表1-2G[S]的算符優(yōu)先關(guān)系矩陣表#i+*()#ii++2**()讀入文法規(guī)讀入文法規(guī)則創(chuàng)建文法關(guān)系表模塊求FIRSTVT模塊求LASTVT模塊識別終結(jié)符模塊求下標(biāo)模塊讀取語法分析串輸入串分析模塊創(chuàng)建文法關(guān)系表模塊識別終結(jié)符模塊FT求下標(biāo)模塊程序設(shè)計創(chuàng)建文法關(guān)系模塊圖3程序中的結(jié)構(gòu)說明ntzhongjiecharc標(biāo)voidout(intj,intk,char*s);voidfirstvt(charc);voidlastvt(charc);voidtable();voidprtfun(charbiao[10][10]);代碼#include"stdio.h"#include"stdlib.h"chardata0][20];charscharlable];utstringststrc標(biāo)voidout(intj,intk,char*s);voidfirstvt(charc);voidlastvt(charc);voidtable;voidprtfun(charbiao[10][10]);先關(guān)系表4{scanfd&r);for(i=0;i<r;i++){first[i][0]=0;//first[i][0]和last[i][0]分別表示st[i][0]非}i{forjstij0';j++){非終結(jié)符nit}ifstijAstijZ符相連{tijAstijZ{}}}}printfn;iti{forjstij0';j++){}}k5集prtfun(first);prtfun(last);printf("算符優(yōu)先分析表如下:\n");for(i=0;lable[i]!='\0';i++)printf("\t%c",lable[i]);printf("\n");for(i=0;i<k+1;i++){printf("%c\t",lable[i]);for(j=0;j<k+1;j++){printf("%c\t",data[i][j]);}printf("\n");}//打印優(yōu)先關(guān)系矩陣第一行//打印優(yōu)先關(guān)系矩陣第一列元素//打印每一列的優(yōu)先關(guān)系printf入文法輸入符號串以#結(jié)束:");scanf("%s",input);//接受輸入分析串}voidprtfun(charbiao[10][10]){for(i=0;i<r;i++){printf("%c:",st[i][0]);for(j=0;j<biao[i][0];j++){printf("%c",biao[i][j+1]);}printf("\n");}}voidtable(){chartext[20][10];inti,j,k,t,l,x=0,y=0;//輸入對應(yīng)非終結(jié)符//創(chuàng)建文法優(yōu)先關(guān)系表6for(i=0;i<r;i++)ilastvtsti;}for(i=0;i<r;i++)//過濾文法規(guī)則中的“|”for(j=1;st[i][j]!='\0';j++){{text[x][y]='\0';text[x][y]=st[i][0];text[x][y++]='-';text[x][y++]='>';}{text[x][y]=st[i][j];}}text[x][y]='\0';}xprintf("轉(zhuǎn)化后的文法為:\n");riixi{printf("%s\n",text[i]);}//將“|”前部分作為一條規(guī)則//將“|”后部分作為另一條規(guī)則出轉(zhuǎn)化后的文法for(i=0;i<x;i++)/*求每個終結(jié)符的推導(dǎo)結(jié)果(去掉"->"后的轉(zhuǎn)化文法,用于xtifor(j=3,l=1;text[i][j]!='\0';j++,l++)string[i][l]=text[i][j];string[i][l]='\0';7}for(i=0;i<x;i++){for(j=1;text[i][j+1]!='\0';j++){ij{m=xiabiao(text[i][j]);n=xiabiao(text[i][j+1]);//求終結(jié)符在優(yōu)先關(guān)系表中的下標(biāo)data[m][n]='=';}if(text[i][j+2]!='\0'&&zhongjie(text[i][j])&&zhongjie(text[i][j+2])&{m=xiabiao(text[i][j]);n=xiabiao(text[i][j+2]);data[m][n]='=';}if(zhongjie(text[i][j])&&!zhongjie(text[i][j+1])){for(k=0;k<r;k++){if(st[k][0]==text[i][j+1])break;}m=xiabiao(text[i][j]);for(t=0;t<first[k][0];t++){n=xiabiao(first[k][t+1]);data[m][n]='<';}}ongjietextijzhongjietextij{{}{8m=xiabiao(last[k][t+1]);data[m][n]='>';}}}}m=xiabiao('#');for(t=0;t<first[0][0];t++){n=xiabiao(first[0][t+1]);data[m][n]='<';}n=xiabiao('#');for(t=0;t<last[0][0];t++){m=xiabiao(last[0][t+1]);data[m][n]='>';}data[n][n]='=';}voidfirstvt(charc){nfor(i=0;i<r;i++){ticbreak;}agi{n=first[i][0]+1;m=0;}}9ifstimc)mfor(j=0;j<r;j++)break;}for(k=0;k<first[j][0];k++){for(t=0;t<n;t++){if(first[i][t]==first[j][k+1])break;}{first[i][n]=first[j][k+1];}}}}}m++;}while(st[i][m]!='\0');first[i][n]='\0';first[i][0]=--n;fflagi=1;}}voidlastvt(charc){nfor(i=0;i<r;i++){ticbreak;}agi{n=last[i][0]+1;m=0;{{{}{{}{{}{{}{}}}}}}}{z=i--;{{{{{{stringNnsm]==string[N][n+1]){}}{}}}{carintfnreturn

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論