




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
實(shí)驗(yàn)二語法分析-自下而上分析實(shí)驗(yàn)的目的利用vc++6.0生成調(diào)試遞歸下降分析程序,以便對(duì)任意輸入的符號(hào)串進(jìn)行分析。本次實(shí)驗(yàn)的目的主要是加深對(duì)遞歸下降分析法的理解。二、語法分析器按照c++語言的語法規(guī)則檢查詞法分析輸出的記號(hào)流是否符合這些規(guī)則,并根據(jù)這些規(guī)則所體現(xiàn)出的語言中的各種語法結(jié)構(gòu)的層次性。把規(guī)則寫入到vc++6.0的文件中,可以生成樹狀的層次結(jié)構(gòu)。三、實(shí)驗(yàn)環(huán)境vc++6.0四、分析結(jié)果五、源程序?qū)崿F(xiàn)#include<stdio.h>#include<malloc.h>#include<string>structstack{stack*top;charvalue;};charpop(stack*pst){chare;if(pst->top==pst){printf("Thestackisnull.");return0;}else{e=pst->top->value;pst->top--;returne;}}voidpush(stack*pst,chare){pst->top++;pst->top->value=e;}voidprintstack(stack*pst){stack*printtemp=pst;while(printtemp<=(pst->top)){printf("%c",printtemp->value);printtemp++;}}voidprintstring(stack*pst){stack*printtemp=(pst->top);while(printtemp>=pst){printf("%c",printtemp->value);printtemp--;}}voidprintSLR(int&number,stack*status,stack*grammar,stack*string){printf("%d",number);printstack(status);printf("");printstack(grammar);printf("");printstring(string);printf("");number++;}intmain(){stack*string=(stack*)malloc(40);string->top=string;string->top->value='#';stack*status=(stack*)malloc(40);status->top=status;status->top->value='0';stack*grammar=(stack*)malloc(40);grammar->top=grammar;grammar->top->value='#';FILE*fp;fp=fopen("C:\\wj.txt","a+");charfilestring[10][20]={'\0'};charstr[10]={'\0'};intstringnumber=0;intnumber=0;while(!feof(fp)){fgets(filestring[stringnumber],23,fp);if(filestring[stringnumber][0]!='\n')stringnumber++;}for(inti=0;i<=(stringnumber-1);i++){for(intj=strlen(filestring[i])-3;j>=0;j--)if(filestring[i][j]!='\n')push(string,filestring[i][j]);printf("此次分析的字符串為:%s\n",filestring[i]);printf("步驟狀態(tài)棧符號(hào)棧輸入串ACTION\n");printSLR(number,status,grammar,string);printf("移進(jìn)\n");while(string->top->value!='#'){charch=pop(string);if(ch=='i'){push(grammar,ch);if(status->top->value=='0'){push(status,'5');printSLR(number,status,grammar,string);printf("歸約\n");pop(status);pop(grammar);push(status,'3');push(grammar,'F');printSLR(number,status,grammar,string);printf("歸約\n");pop(status);pop(grammar);push(status,'2');push(grammar,'T');printSLR(number,status,grammar,string);printf("歸約\n");if(string->top->value=='+'||string->top->value=='-'){pop(status);pop(grammar);push(status,'1');push(grammar,'E');printSLR(number,status,grammar,string);printf("移進(jìn)\n");}}elseif(status->top->value=='6'){push(status,'5');printSLR(number,status,grammar,string);printf("歸約\n");pop(status);pop(grammar);push(status,'3');push(grammar,'F');printSLR(number,status,grammar,string);printf("歸約\n");pop(status);pop(grammar);push(status,'9');push(grammar,'T');printSLR(number,status,grammar,string);printf("歸約\n");if(string->top->value=='+'||string->top->value=='-'){pop(status);pop(status);pop(grammar);pop(grammar);printSLR(number,status,grammar,string);printf("移進(jìn)\n");}}elseif(status->top->value=='7'){push(status,'5');printSLR(number,status,grammar,string);printf("歸約\n");pop(status);pop(grammar);push(status,'(');push(status,'1');push(status,'0');push(status,')');push(grammar,'F');printSLR(number,status,grammar,string);printf("歸約\n");pop(status);pop(status);pop(status);pop(status);pop(status);pop(grammar);pop(grammar);printSLR(number,status,grammar,string);printf("移進(jìn)\n");if(string->top->value=='+'||string->top->value=='-'){pop(status);pop(grammar);push(status,'1');push(grammar,'E');printSLR(number,status,grammar,string);printf("移進(jìn)\n");}}elseprintf("Thereissomethingwrongneari.");}elseif(ch=='+'||ch=='-'){if(status->top->value=='1'||status->top->value=='8')push(status,'6');elseprintf("Thereissomethingwrongnear+or-\n");push(grammar,ch);printSLR(number,status,grammar,string);printf("移進(jìn)\n");}elseif(ch=='*'|
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- xx片區(qū)城鄉(xiāng)供水一體化項(xiàng)目工程建設(shè)方案(范文參考)
- 2025年肥料級(jí)磷酸氫鈣項(xiàng)目合作計(jì)劃書
- 2025年陶瓷制零件相關(guān)陶瓷制品項(xiàng)目發(fā)展計(jì)劃
- 市政污水管網(wǎng)改造項(xiàng)目建議書(模板范文)
- 電網(wǎng)側(cè)獨(dú)立儲(chǔ)能示范項(xiàng)目規(guī)劃設(shè)計(jì)方案
- 2025年高收縮腈綸項(xiàng)目合作計(jì)劃書
- 鄉(xiāng)村治理的社會(huì)基礎(chǔ)閱讀隨筆
- 小紅書:遛遛生活5.0招商方案-春天花花聯(lián)歡會(huì)
- 2025年抗麻風(fēng)病藥合作協(xié)議書
- 2025年地鐵隧道二維位移自動(dòng)監(jiān)測系統(tǒng)項(xiàng)目合作計(jì)劃書
- 統(tǒng)編版高中政治必修三《政治與法治》期末復(fù)習(xí):選擇題刷題練習(xí)題(含答案解析)
- 2025-2030年中國線纜設(shè)備行業(yè)市場現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 兒童情商課件
- 2025年湖北荊門市交通旅游投資集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 食品產(chǎn)品溯源管理制度
- 2024年遼陽職業(yè)技術(shù)學(xué)院單招職業(yè)傾向性測試題庫附答案
- 護(hù)士思想政治教育
- 陜投集團(tuán)招聘真題2024
- 國家開放大學(xué)漢語言文學(xué)本科《古代詩歌散文專題》期末紙質(zhì)考試第三大題簡答題庫2025春期版
- 社交媒體在職場人際關(guān)系構(gòu)建中的作用與應(yīng)用研究
- 中國常規(guī)肺功能檢查基層指南(2024年)
評(píng)論
0/150
提交評(píng)論