




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
PL/O*********************IntIntIntintmain(void){inta,b,i;{return0;}}intmain(void){chara[10];inti;{}return}實驗二否否否否否否否#include<stdio.h>{inti;{{return}}return}{fprintf(fout,"1:基本字(保留字)2:運算符3:標識符4:常數 charintsym;//存放每個單詞的類別,1:基本字(保留字)2:運算符3:標識符4: chara[16];//臨時存數while((ch=fgetc(fin))!=-1讀入的字符是否存在{if(ch==||ch=='\t'||ch=='\n')//CH=空{}elseif(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z')//CH是字母{intj;for(j=0;j<16;j++){//ID:=A}if(key(id))//ID{}{}}elseif(ch>='0'&&ch<='9')//CH是數字{int fsee(fprintf(fout,"%s\t\t%d\n",num,sym);/按指定格式寫入生成文件中去}elseif(ch=='+'||ch=='-'||ch=='*'||ch=='/'||ch=='=')//把該字符轉換成對應單詞,或拼復合單詞,將其類別送SYM中{fsee(}{{fprintf(fout,"%c%c\t\t%d\n",ch,ch1,sym);/}{}}{fsee(}{fsee(}}}intmain(void)主方法charfilein[10];charfileout[10];return0;} 詞法分析程序的構造—N濾空 是 將其類別送SYM中 N #include"stdio.h"#include"stdlib.h"#includeFILE*fp;charch; intstart=0;//起始狀態intflag=1;intsearch(char*{intp;for{if{}}
}intisletter(char{intif((ch>=97&&ch<=122||ch>=65&&ch<=90||ch=='_')//是字母return}intisdigit(char{intflag=0;if(ch>=48&&ch<=57)returnflag;}voidrecover(){}intfail(){inti;{casecasecasecasecasecasecase}return}voidnexttoken(){intj;{{case{}if(ch==''||ch=='\n'||ch=='\t'||{}else{}
case1:if(isletter(ch)||{}
case2:printf("(1,case{}{}case4:{}else{}{}
case5:{}{}
case6:{}else{}{}
case7:if(ch=='+'||ch=='-{}{}
case8:{}{}
case9:{}
case10:printf("(2,case{}
case12:{}else{}{
}case13:{}
case14:{}
case15:printf("(2,case{}case{}
case18:printf("(2,case19:{}
case20:{}{}case21:{}elseif(ch=='0'||ch=='t'||ch=='n'||ch=='r'||{}
casecase{}{}
case{}{}
case25:{}{}
casecase{}else{}elseif(ch=='-{}else{}else{}else{}else{}else{}else{}else{}else{}
case28:{}
case29:printf("(4,casecase{}case34:{}
case37:case{}else{{if(temp==EOF||ch==EOF)}while(temp!='*'||if(temp=='*'&&ch=='/')}
case42:caseif(ch=='='||{}
case47:{}
case{}
case54:{}
case57:{}
caseif(ch==':'||ch==','||ch==';'||ch=='('||ch==')'||ch=='{'||ch=='}'||ch=='['||ch==']'||ch=='#'){}{}
printf("sysnaxerror:case61:}}}int{{{}}return}實驗四給定某一文法,試構造其算符優先矩陣(或LL(1)矩陣或SLR(1)矩陣),并編制語法分例如:給定文法G:E→T給出句子i+i*i(i+i)*i上托棧頂符號放入若產生式為X→x1x2...xn按逆序即X∈VTX#include"stdio.h"#include"stdlib.h"#include"string.h"typedefstruct{char*de;//存儲產生式char*re;//要替換的表達式typedefstruct{char*elem;inttop;intsize;ET[7][6StackasEget(chara,charr){inti;intreturn}voidinitStack(Stack{}voidpush(Stack*S,char{{printf("StackOverflow!\n");}}charpop(Stack{char{return0;}returnx;}chartop(Stack*S){char{return0;}returnx;}voidprint(Stack*S){inti;unsignedintj;printf("}void{int{}}charch;intint{{}{chara;Eelem;if(elem.de!="WA&&{{}}}return}表示Q進α棧;POP(σ,B)表示從σ棧出棧;NEXT表示讀下一符號。名字()#PUSH(α,△輸入棧或結果棧是否有NY棧是否都是YN判斷輸入棧頂是否是字YN確定輸入串運算確定運算符棧中計算棧中的優先棧還是結果棧以#include<stdio.h>#include<string.h>typedefstructstack{charch[40];inttop;stack*push(stack*s,char{s->ch[s-returns;}charpop(stack{charch;s->top--returnch;}chartop(stack{}intpriority(char{{case'#':return-case'+':case'-':return1;case'*':case'/':returncase'@':returncase'(':returncase')':return}return}voidbegin(char{stackp
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年注會考試模擬卷準備試題及答案
- 2024年微生物檢驗技師考試的復習建議試題及答案
- 油槽施工方案怎么寫
- 項目任務分配最佳實踐試題及答案
- 微生物生成物的檢驗技術與試題及答案
- 糧食儲備的緊急調配機制考核試卷
- 2024年項目管理應對突發事件試題及答案
- 項目質量控制過程中的挑戰試題及答案
- 煤炭批發商品牌建設與推廣考核試卷
- 2024年項目管理全時期試題及答案
- 束管監測管理制度管理辦法及崗位責任制
- 裸子植物課件
- 安徽中醫藥大學專升本(語文)科目考試題庫(含歷年重點題)
- 后勤管理安全生產培訓內容122頁PPT課件
- 直銷人必備—目標與計劃
- 等離子體光譜診斷實驗報告
- COMMERCIAL INVOICE 商業發票
- 永磁吸盤使用方法及安全事項
- 哈薩克斯坦2050戰略總統國情咨文(中文版)
- 接待手冊(范本)
- 還款證明(四種格式)
評論
0/150
提交評論