版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
一、實(shí)驗(yàn)?zāi)康?、強(qiáng)化對系統(tǒng)綜合工程實(shí)現(xiàn)能力的訓(xùn)練2、加強(qiáng)對語法分析原理、方法和基本實(shí)現(xiàn)技術(shù)的理解;二、實(shí)驗(yàn)內(nèi)容:用C語言或者其他的高級語言作為宿主語言完成C語言的詞法分析器的設(shè)計(jì)針對if語句的文法編寫一個遞歸下降分析程序,輸出結(jié)果為抽象語法樹。注意,if語句文法中的表達(dá)式E采用四則運(yùn)算表達(dá)式的文法;抽象語法樹的格式自行設(shè)計(jì),如果需要降低難度的話,也可用具體語法樹而不用抽象語法樹作為輸出.三、實(shí)驗(yàn)過#include<iostream>#include<cstring>#include<cstdio>#include<fstream>#include<cmath>charprechar;//dangqianconstcharconstintid=3;intFILE*fp=fopen("C:\\Users\\hasee\\Desktop\\in.txt","r");/*文本方式打開FILE*fout=fopen("C:\\Users\\hasee\\Desktop\\out.txt","w+");/*文本方式寫入class{intkind;intkind2;doublevalue;mword*next;mword*nlast;intwline;mword(intki,charna[20],boolen,double{if(kind==4||kind==5||kind==8)}void{for(int{if(strcmp(key[i],wname)==0)}}void{ elseif(kind==2)fprintf(fout,"<%0.0f,int>",value);elseif(kind==4)fprintf(fout,"<%s,operator>",wname);elseif(kind==5)fprintf(fout,"<%s,bound>",wname);elseif(kind==6)fprintf(fout,"<%s,key>",wname);elseif(kind==7)fprintf(fout,"<%s,speclchar>",wname);elseif(kind==100)fprintf(fout,"<%s,over>",wname);if(enter)fprintf(fout,"\n");}{c=fgetc(fp);returnc;}voidfgword(intki,charna[20],boolen,doubleva)//chuangjian{//if(prechar!='\n')en=0;last-if(p->kind==3)p-}voidcnum()//chang{intvis=0;//houvisweishixiaoshu{{if(vis){error[ernum]=tline;else}{ }}intif(vis)ki=1;//xiaoshudouble ki=2;//zhengshuint}voidcname()//biaoshi{while(prechar>='0'&&prechar<='9'||||prechar>='A'&&prechar<='Z'||{}}void //caozuo{charna[4];if(prechar=='=')elseif(na[0]=='-'&&prechar==na[0]){na[1]=prechar;prechar=mget();}elseif(na[0]=='+'&&prechar==na[0]){na[1]=prechar;prechar=mget();}elseif(na[0]=='|'&&prechar==na[0]){na[1]=prechar;prechar=mget();}elseif(na[0]=='&'&&prechar==na[0]){na[1]=prechar;prechar=mget();}}void //caozuo{charna[4];if(prechar=='=')elseif(na[0]=='-'&&prechar==na[0]){na[1]=prechar;prechar=mget();}elseif(na[0]=='+'&&prechar==na[0]){na[1]=prechar;prechar=mget();}elseif(na[0]=='|'&&prechar==na[0]){na[1]=prechar;prechar=mget();}elseif(na[0]=='&'&&prechar==na[0]){na[1]=prechar;prechar=mget();}}void{prechar=mget();}void //duihuanhangfude{}void{charna[5]="head";}void //shuruzhihouzuihoushanhou{//cout<<endl<<endl<<"Thereare"<<tline<<"http://cout<<endl<<endl<<"Thereare"<<ernum<<"http://for(intfclose(fp);/*關(guān)閉文件流*/}void{{}fprintf(fout,"\n\n所有對象:反響\n");{}}void{if(prechar>='0'&&prechar<='9')if(prechar>='a'&&prechar<='z'||prechar>='A'&&prechar<='Z')if(prechar=='|'||prechar=='&'||prechar=='!'){coprtlogic();continue;}if(prechar=='+'||prechar=='-'){coprt();continue;}if(prechar=='*'||prechar=='/'){coprt();continue;}if(prechar=='('||prechar==')'){cbound();continue;}if(prechar=='['||prechar==']'){cbound();continue;}if(prechar==':'||prechar==';'){cbound();continue;}if(prechar=='\n'){tline++;continue;}if(prechar=='\\'){cchar();continue;}if(feof(fp)){fgword(100,na,1,1);break;}}}{{case10:fprintf(fout,"L->H ||case12:fprintf(fout,"L1->--- case13:fprintf(fout,"H->I case14:fprintf(fout,"H1->&&I case15:fprintf(fout,"H1->--- case16:fprintf(fout,"H->(L case17:fprintf(fout,"I->J case18:{if(use->wname[0]=='!'){fprintf(fout,"J->! else{fprintf(fout,"J->---- case19:fprintf(fout,"K->E case20:fprintf(fout,"K1->--- case22:fprintf(fout,"K->(L case21:fprintf(fout,"K1->%s %s\n",use->wname,use-case30:fprintf(fout,"s0->S case31:fprintf(fout,"S1->S case33:fprintf(fout,"S->{SS1 {case34:fprintf(fout,"S->D case35:fprintf(fout,"D-> %s\n",use->wname,use-case36:fprintf(fout,"P-> %s\n",use-case37:fprintf(fout,"S->ID= %s%s\n",use->wname,use->next-case38:fprintf(fout,"S->if(L)SW if(\n");break;case39:fprintf(fout,"W->---- case40:fprintf(fout,"W->elseS case41:fprintf(fout,"S->while(L)S while(\n");break;case )case }case ;}}voidssinit(){}void //ZHIXIANGXIAYIGEDUI{use=use-}void{}voidvoid{if(sskind<=3)//{ %s\n",use-elseif(sskind==2)fprintf(fout,"A->id fprintf(fout,"A->id }elseif(ssnamefst=={fprintf(fout,"A->(E %s\n",use-{ %s\n",use-}else}}void{{}else{fprintf(fout,"F1->%sAF1 }{fprintf(fout,"F1->--}}void{{}else}void{{fprintf(fout,"E1->%sFE1 }elsefprintf(fout,"E1->- }void{{}}/////////////////////算術(shù)表達(dá)式分析voidlogicL();void{{}elseif{}{}}void{{}else{}}void{{}else{}{}}void{{}elseif(ssnamefst=='<'||ssnamefst=='>'||ssnamefst{}}void{{}elseif(ssnamefst=='<'||ssnamefst=='>'||ssnamefst{}{}}void{{}elseif(ssnamefst=='<'||ssnamefst=='>'||ssnamefst{}}void{{}elseif(sskind<=3||ssnamefst=='('||ssnamefst=='!'||ssnamefst=='&'||ssnamefst=='<'||ssnamefst=='>'||ssnamefst{}{}}void{{}elseif(sskind<=3||ssnamefst=='('||ssnamefst=='!'||ssnamefst=='&'||ssnamefst=='<'||ssnamefst=='>'||ssnamefst{}}voidvoid{{ }}void{{}else{}{}}void{if(sskind==3&&use->next-{{}elsesyerror();cout<<"S->id=L\n";}else{{cout<<"int/double"<<use-{}else}else}else{{{cout<<"if(L)";}else{syerror();}else}else{}else{cout<<"whlie(L)\n{\n";{{}else}else}}void{}void{use=head-}int{inta;return0;}S->S->{SS1{H1->---S->{SS1{L1->---S->if(L)Sif;L->HS->ID=hH->IL->HI->JH->IH->(LI->JE->FH->(LF->AE->FA->F->AF1->-A->4E1->-F1->-K1->---E1->-H1->---K1->---L1->---H1->---S->{SS1{ L1->---;jS->IDL->HLsS1->----}H->IW->elseI->JS->ID=fH->(LL->HE->FH->IF->AI->JA->7H->(LF1->-E->FE1->-K1->---F->AA->8F1->-F->AE1->
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- Unit3Food and Culture(詞匯短語句式)-2025屆高三人教版英語一輪復(fù)習(xí)闖關(guān)攻略(解析版)
- 第16課 冷戰(zhàn)(分層作業(yè))(解析版)
- 2024年度天津市公共營養(yǎng)師之三級營養(yǎng)師綜合練習(xí)試卷B卷附答案
- 2024年度天津市公共營養(yǎng)師之二級營養(yǎng)師能力測試試卷A卷附答案
- 2024年度天津市公共營養(yǎng)師之三級營養(yǎng)師模擬預(yù)測參考題庫及答案
- 2024年度四川省公共營養(yǎng)師之三級營養(yǎng)師題庫檢測試卷B卷附答案
- 2024年度四川省公共營養(yǎng)師之二級營養(yǎng)師每日一練試卷A卷含答案
- 2025協(xié)議書怎么解除協(xié)議合同
- 鋼渣處理項(xiàng)目-鋼渣熱悶加工處理生產(chǎn)線可行性研究報(bào)告
- 2024-2025年中國船用通訊設(shè)備行業(yè)市場運(yùn)營現(xiàn)狀及投資規(guī)劃研究報(bào)告
- 建設(shè)工程工程量清單計(jì)價(jià)規(guī)范有表格
- 2023版學(xué)前教育專業(yè)人才需求調(diào)研報(bào)告及人培方案(普招)
- 酒店客房部獎懲制度
- DB43-T 2927-2024 中醫(yī)護(hù)理門診建設(shè)與管理規(guī)范
- 北師大版九下《直角三角形邊角關(guān)系》
- 2024年浙江杭州西湖文化旅游投資集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 圍手術(shù)期血糖管理指南
- 國際經(jīng)濟(jì)學(xué)中文版(克魯格曼教材)課件
- 管理方案日間照料中心
- 2024福建省能化集團(tuán)下屬古雷熱電有限責(zé)任公司社會招聘筆試參考題庫附帶答案詳解
- 煤礦安全生產(chǎn)管理人員逢查必考題庫(500題)
評論
0/150
提交評論