版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
實驗二語法分析-自下而上分析實驗的目的利用vc++6.0生成調試遞歸下降分析程序,以便對任意輸入的符號串進行分析。本次實驗的目的主要是加深對遞歸下降分析法的理解。二、語法分析器按照c++語言的語法規(guī)則檢查詞法分析輸出的記號流是否符合這些規(guī)則,并根據這些規(guī)則所體現出的語言中的各種語法結構的層次性。把規(guī)則寫入到vc++6.0的文件中,可以生成樹狀的層次結構。三、實驗環(huán)境vc++6.0四、分析結果五、源程序實現#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)棧符號棧輸入串ACTION\n");printSLR(number,status,grammar,string);printf("移進\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("移進\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("移進\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("移進\n");if(string->top->value=='+'||string->top->value=='-'){pop(status);pop(grammar);push(status,'1');push(grammar,'E');printSLR(number,status,grammar,string);printf("移進\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("移進\n");}elseif(ch=='*'|
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年道路旅客運輸從業(yè)資格證模擬考試題
- 2024年呼和浩特客運資格證都考些什么
- 專題05天氣與氣候-2024年中考地理專練(原卷版)
- 吉首大學《流體力學與液壓傳動》2021-2022學年第一學期期末試卷
- 吉首大學《電子商務概論》2021-2022學年第一學期期末試卷
- 《機加工藝方案設計與實施》考試卷A卷及答案
- 吉林藝術學院《影視聲音基礎》2021-2022學年第一學期期末試卷
- 吉林藝術學院《視覺特效制作與合成》2021-2022學年第一學期期末試卷
- 轉讓個人板車協(xié)議書范本模板
- 村民占地調節(jié)協(xié)議書范文范本
- 樣品藥品采購供應儲備制度的執(zhí)行情況分析總結
- 優(yōu)質護理服務PPT
- 第三章 閘板防噴器
- 鄉(xiāng)鎮(zhèn)精神文明建設工作專題調研報告
- 市值管理十大經典案例
- 智能材料課件完整版
- 江蘇500kV變電站軟母線安裝施工方案(附圖表)
- 《高等代數(一)》期中考試試題
- 鍋爐英語對照
- 中海煉化惠州煉油分公司“7-11”火災事故
- 初三數學 動點問題探究—幾何圖形中的動點問題教案
評論
0/150
提交評論