影音先锋男人资源在线观看,精品国产日韩亚洲一区91,中文字幕日韩国产,2018av男人天堂,青青伊人精品,久久久久久久综合日本亚洲,国产日韩欧美一区二区三区在线

編譯原理詞法分析和語(yǔ)法分析報(bào)告+代碼[C語(yǔ)言版]

上傳人:彩*** 文檔編號(hào):75252104 上傳時(shí)間:2022-04-15 格式:DOCX 頁(yè)數(shù):42 大?。?63.11KB
收藏 版權(quán)申訴 舉報(bào) 下載
編譯原理詞法分析和語(yǔ)法分析報(bào)告+代碼[C語(yǔ)言版]_第1頁(yè)
第1頁(yè) / 共42頁(yè)
編譯原理詞法分析和語(yǔ)法分析報(bào)告+代碼[C語(yǔ)言版]_第2頁(yè)
第2頁(yè) / 共42頁(yè)
編譯原理詞法分析和語(yǔ)法分析報(bào)告+代碼[C語(yǔ)言版]_第3頁(yè)
第3頁(yè) / 共42頁(yè)

下載文檔到電腦,查找使用更方便

46 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《編譯原理詞法分析和語(yǔ)法分析報(bào)告+代碼[C語(yǔ)言版]》由會(huì)員分享,可在線閱讀,更多相關(guān)《編譯原理詞法分析和語(yǔ)法分析報(bào)告+代碼[C語(yǔ)言版](42頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、word 格式文檔 詞法分析 一、實(shí)驗(yàn)?zāi)康? 設(shè)計(jì) 、編制并調(diào)試一個(gè)詞法分析程序 ,加深對(duì)詞法分析原理的理解 。 二、實(shí)驗(yàn)要求 2.1 待分析的簡(jiǎn)單的詞法 ( 1)關(guān)鍵字 : begin if then while do end 所有的關(guān)鍵字都是小寫(xiě) 。 ( 2)運(yùn)算符和界符 := + - * / < <= <> > >= = ;( ) # ( 3)其他單詞是標(biāo)識(shí)符 ( ID )和整型常數(shù) ( SUM ), 通過(guò)以下正規(guī)式定義 : ID

2、= letter (letter | digit)* NUM = digit digit* ( 4)空格有空白 、制表符和換行符組成 ??崭褚话阌脕?lái)分隔 ID 、 SUM 、運(yùn)算符 、界 符和關(guān)鍵字 ,詞法分析階段通常被忽略 。 2.2 各種單詞符號(hào)對(duì)應(yīng)的種別碼 : 表 2.1 各種單詞符號(hào)對(duì)應(yīng)的種別碼 單詞符號(hào) 種別碼 單詞符號(hào) 種別碼 bgin 1 : 17 If 2 : = 18 Then 3 < 20 wile 4 <> 21

3、 專(zhuān)業(yè)整理 word 格式文檔 do 5 <= 22 end 6 > 23 lettet 10 >= 24 ( letter|digit ) * dight dight* 11 = 25 + 13 ; 26 — 14 ( 27 * 15 ) 28 / 16 # 0 2.3 詞法分析程序的功能 : 輸入 :所給文法的源程序字符串 。 輸出 :二元組 (syn,token 或 sum )構(gòu)成的序列 。 其中 :syn 為單詞種別碼 ; toke

4、n 為存放的單詞自身字符串 ; sum 為整型常數(shù) 。 例如 :對(duì)源程序 begin x:=9: if x>9 then x:=2*x+1/3; end # 的源文件 ,經(jīng)過(guò)詞法分析后輸 出如下序列 : (1,begin)(10,x)(18,:=)(11,9)(26,;)(2,if) 三、詞法分析程序的算法思想 : 算法的基本任務(wù)是從字符串表示的源程序中識(shí)別出具有獨(dú)立意義的單詞符號(hào) ,其基本思 想是根據(jù)掃描到單詞符號(hào)的第一個(gè)字符的種類(lèi) ,拼出相應(yīng)的單詞符號(hào) 。 3.1 主程序示意圖 :

5、 專(zhuān)業(yè)整理 word 格式文檔 主程序示意圖如圖 3-1 所示 。 其中初始包括以下兩個(gè)方面 : ⑴ 關(guān)鍵字表的初值 。 關(guān)鍵字作為特殊標(biāo)識(shí)符處理 ,把它們預(yù)先安排在一張表格中 (稱(chēng)為關(guān)鍵字表 ), 當(dāng)掃描 程序識(shí)別出標(biāo)識(shí)符時(shí) ,查關(guān)鍵字表 。 如能查到匹配的單詞 ,則該單詞為關(guān)鍵字 ,否則為一 般標(biāo)識(shí)符 。關(guān)鍵字表為一個(gè)字符串?dāng)?shù)組 ,其描述如下 : Char *rwtab[6] = { “begin ”,“if”,“then ”,“while ”,“do ”,“end ”,}

6、; 置初值 調(diào)用掃描子程序 輸出單詞二元組 否 輸入串結(jié)束 是 專(zhuān)業(yè)整理 word 格式文檔 結(jié)束 圖 3-1 (2 )程序中需要用到的主要變量為 syn,token 和 sum 3

7、.2 掃描子程序的算法思想 : 首先設(shè)置 3 個(gè)變量 :① token 用來(lái)存放構(gòu)成單詞符號(hào)的字符串 ;② sum 用來(lái)整型單詞 ;③ syn 用來(lái)存放單詞符號(hào)的種別碼 。掃描子程序主要部分流程如圖 3-2 所示 。 變量初始化 忽略空格 是否文件結(jié)束? 是 是 返回 專(zhuān)業(yè)整理 w

8、ord 格式文檔 否 字母 拼字符串 數(shù)字 其他 運(yùn)算符 、 符號(hào) 界符等符號(hào) 拼數(shù) 是否關(guān)鍵字? 否 對(duì)不同符號(hào)給 報(bào)錯(cuò) 出相應(yīng)的 syn 值 是 syn=10 syn 為對(duì)應(yīng)關(guān)鍵字的 單詞種別碼 syn=11 返回

9、 圖 3-2 四 、詞法分析程序的 C 語(yǔ)言程序源代碼 : 專(zhuān)業(yè)整理 word 格式文檔 #include #include #include #include char prog[80],token[8],ch; int syn,p,m,n,sum; char *rwtab[6]={"begin","if","then","while","do","end"};

10、 scaner(); main() {p=0; printf("\n please input a string(end with '#'):\n"); do{ scanf("%c",&ch); prog[p++]=ch; }while(ch!='#'); p=0; do{ scaner(); switch(syn) {case 11:printf("( %-10d%5d )\n",sum,syn);

11、break; case -1:printf("you have input a wrong string\n"); 專(zhuān)業(yè)整理 word 格式文檔 getch(); exit(0); default: printf("( %-10s%5d )\n",token,syn); break; } }while(syn!=0); getch(); } scaner() { sum=0;

12、 for(m=0;m<8;m++)token[m++]=NULL; ch=prog[p++]; m=0; while((ch==' ')||(ch=='\n'))ch=prog[p++]; if(((ch<='z')&&(ch>='a'))||((ch<='Z')&&(ch>='A'))) { while(((ch<='z')&&(ch>='a'))||((ch<='Z')&&(ch>='A'))||((ch>='0')&&(ch<='9'))) {token[m++]=ch; ch=prog[p++];

13、 } p--; syn=10; 專(zhuān)業(yè)整理 word 格式文檔 for(n=0;n<6;n++) if(strcmp(token,rwtab[n])==0) { syn=n+1; break; } } else if((ch>='0')&&(ch<='9')) { while((ch>='0')&&(ch<='9')) { sum=sum*10+ch-'0'; ch=prog[p++]; }

14、 p--; syn=11; } else switch(ch) { case '<':token[m++]=ch; ch=prog[p++]; if(ch=='=') { syn=22; token[m++]=ch; } else 專(zhuān)業(yè)整理 word 格式文檔 { syn=20; p--; } break; case '>':token[m++]=ch; ch=prog[

15、p++]; if(ch=='=') { syn=24; token[m++]=ch; } else { syn=23; p--; } break; case '+': token[m++]=ch; ch=prog[p++]; if(ch=='+') { syn=17; token[m++]=ch; } else 專(zhuān)業(yè)整理 word 格式文檔 { syn=13;

16、 p--; } break; case '-':token[m++]=ch; ch=prog[p++]; if(ch=='-') { syn=29; token[m++]=ch; } else { syn=14; p--; } break; case '!':ch=prog[p++]; if(ch=='=') { syn=21; token[m++]

17、=ch; } 專(zhuān)業(yè)整理 word 格式文檔 else { syn=31; p--; } break; case '=':token[m++]=ch; ch=prog[p++]; if(ch=='=') { syn=25; token[m++]=ch; } else { syn=18; p--; } break; case '*': syn=15; t

18、oken[m++]=ch; break; case '/': syn=16; token[m++]=ch; 專(zhuān)業(yè)整理 word 格式文檔 break; case '(': syn=27; token[m++]=ch; break; case ')': syn=28; token[m++]=ch; break; case '{': syn=5; token[m++]=ch; bre

19、ak; case '}': syn=6; token[m++]=ch; break; case ';': syn=26; token[m++]=ch; break; case '\"': syn=30; token[m++]=ch; break; case '#': syn=0; token[m++]=ch; break; 專(zhuān)業(yè)整理 word 格式文檔 case ':':syn=

20、17; token[m++]=ch; break; default: syn=-1; break; } token[m++]='\0'; } 五、結(jié)果分析 : 輸入 begin x:=9: if x>9 then x:=2*x+1/3; end # 后經(jīng)詞法分析輸出如下序列 : (begin 1)(x 10)( : 17)(= 18)(9 11)( ; 26)(if 2) 如圖 5-1 所示:

21、 圖 5-1 六、總結(jié): 詞法分析的基本任務(wù)是從字符串表示的源程序中識(shí)別出具有獨(dú)立意義的單詞符號(hào) ,其基 專(zhuān)業(yè)整理 word 格式文檔 本思想是根據(jù)掃描到單詞符號(hào)的第一個(gè)字符的種類(lèi) ,拼出相應(yīng)的單詞符號(hào) 。通過(guò)本試驗(yàn)的 完成 ,更加加深了對(duì)詞法分析原理的理解 。

22、 語(yǔ)法分析 一、實(shí)驗(yàn)?zāi)康? 編制一個(gè)遞歸下降分析程序 ,實(shí)現(xiàn)對(duì)詞法分析程序所提供的單詞序列的語(yǔ)法檢查和結(jié)構(gòu) 分析 。 二、實(shí)驗(yàn)要求 利用 C 語(yǔ)言編制遞歸下降分析程序 ,并對(duì)簡(jiǎn)單語(yǔ)言進(jìn)行語(yǔ)法分析 。 專(zhuān)業(yè)整理 word 格式文檔 2.1 待分析的簡(jiǎn)單語(yǔ)言的語(yǔ)法 用擴(kuò)充的 BNF 表示如下 : ⑴ < 程序

23、> :: =begin< 語(yǔ)句串 >end ⑵< 語(yǔ)句串 > :: =< 語(yǔ)句 >{ ;< 語(yǔ)句 >} ⑶< 語(yǔ)句 > :: =< 賦值語(yǔ)句 > ⑷< 賦值語(yǔ)句 > :: =ID :=< 表達(dá)式 > ⑸ < 表達(dá)式 > :: =< 項(xiàng) >{+< 項(xiàng)> | -< 項(xiàng)>} ⑹<項(xiàng)>::=< 因子 >{*< 因子 >|/< 因子> ⑺<因子> ::=ID|NUM| (<表達(dá)式 >) 2.2 實(shí)驗(yàn)要求說(shuō)明 輸入單詞串 ,以 “# ”結(jié)束 ,如果是文法正確的句子 ,則輸出成功信息 ,打印

24、“success ”,否 則輸出 “error ”。 例如 : 輸入 begin a:=9; x:=2*3; b:=a+x end # 輸出 success ! 輸入 x:=a+b*c end # 輸出 error 2.3 語(yǔ)法分析程序的酸法思想 (1 )主程序示意圖如圖 2-1 所示 。 專(zhuān)業(yè)整理 word 格式文檔 置初值

25、 調(diào)用 scaner 讀下一個(gè)單詞符號(hào) 調(diào)用 lrparser 結(jié)束 圖 2-1 語(yǔ)法分析主程序示意圖 (2 )遞歸下降分析程序示意圖如圖 2-2 所示 。 (3 )語(yǔ)句串分析過(guò)程示意圖如圖 2-3 所示 。 是 否 begin? 否 調(diào)用 statement 函數(shù) 是

26、專(zhuān)業(yè)整理 調(diào)用 scaner 調(diào)用語(yǔ)句串分析程序 是否 end? 是 調(diào)用 scaner syn=0&&kk=0? 是 打印分析成功  word 格式文檔 是否 ;? 否 是

27、 調(diào)用 scaner 否 調(diào)用 statement 函數(shù) 出錯(cuò)處理 否 圖 2-3 語(yǔ)句串分析示意圖 出錯(cuò)處理 圖 2-2 遞歸下降分析程序示意圖 (4 ) statement 語(yǔ)句分析程序流程如圖 2-4 、 2-5 、2-6 、 2-7 所示 。 專(zhuān)業(yè)整理 word 格式文檔

28、 是否標(biāo)識(shí)符 ? 否  調(diào)用 term 函數(shù) 調(diào)用 scaner 是否: =? 調(diào)用 scaner  是否+,-?  否 否 調(diào)用 expression 函數(shù) 出錯(cuò)處理 圖 2-4 statement 語(yǔ)句分析函數(shù)示意圖

29、 意圖 調(diào)用 factor 函數(shù) 是否*,/? 調(diào)用 scaner 專(zhuān)業(yè)整理  是 調(diào)用 scaner 調(diào)用 term 函數(shù) 出錯(cuò)處理 圖 2-5 expression 表達(dá)式分析函數(shù)示 是否標(biāo)識(shí)符 ? 是 調(diào)用 factor 函數(shù) 出

30、錯(cuò)處理 word 格式文檔 否 是 否 圖 2-6 term 分析函數(shù)示意圖 否 出錯(cuò)處理  否 是 是否整常數(shù) ? 否 是否( ? 是

31、 調(diào)用 scaner 調(diào)用 expression 函數(shù) 是否) ? 是 調(diào)用 scaner 調(diào)用 scaner 圖 2-7 factor 分析過(guò)程示意圖 三、 語(yǔ)法分析程序的 C 語(yǔ)言程序源代碼 : #include "stdio.h" 專(zhuān)業(yè)整理 word 格式文檔 #include "string.h"

32、char prog[100],token[8],ch; char *rwtab[6]={"begin","if","then","while","do","end"}; int syn,p,m,n,sum; int kk; factor(); expression(); yucu(); term(); statement(); lrparser(); scaner(); main() { p=kk=0;

33、 printf("\nplease input a string (end with '#'): \n"); do { scanf("%c",&ch); prog[p++]=ch; }while(ch!='#'); p=0; scaner(); 專(zhuān)業(yè)整理 word 格式文檔 lrparser(); getch(); } lrparser() { if(syn==1) {

34、 scaner(); /* 讀下一個(gè)單詞符號(hào) */ yucu(); /* 調(diào)用 yucu() 函數(shù) ; */ if (syn==6) { scaner(); if ((syn==0)&&(kk==0)) printf("success!\n"); } else { if(kk!=1) printf("the string haven't got a 'end'!\n"); kk=1; } } else { printf("haven't

35、 got a 'begin'!\n"); kk=1; } return; 專(zhuān)業(yè)整理 word 格式文檔 } yucu() { statement(); /* 調(diào)用函數(shù) statement();*/ while(syn==26) { scaner(); /* 讀下一個(gè)單詞符號(hào) */ if(syn!=6) statement(); /* 調(diào)用函數(shù) statement();*/ }

36、 return; } statement() { if(syn==10) { scaner(); /* 讀下一個(gè)單詞符號(hào) */ if(syn==18) { scaner(); /* 讀下一個(gè)單詞符號(hào) */ expression(); /* 調(diào)用函數(shù) statement();*/ } else { printf("the sing ':=' is wrong!\n"); kk=1; 專(zhuān)業(yè)整理 wor

37、d 格式文檔 } } else { printf("wrong sentence!\n"); kk=1; } return; } expression() { term(); while((syn==13)||(syn==14)) { scaner(); /* 讀下一個(gè)單詞符號(hào) */ term(); /* 調(diào)用函數(shù) term();*/ } return; } term() {

38、 factor(); while((syn==15)||(syn==16)) { scaner(); /* 讀下一個(gè)單詞符號(hào) */ factor(); /* 調(diào)用函數(shù) factor(); */ } return; 專(zhuān)業(yè)整理 word 格式文檔 } factor() { if((syn==10)||(syn==11)) scaner(); else if(syn==27) { scaner(); /* 讀下一個(gè)單詞符號(hào) */ ex

39、pression(); /* 調(diào)用函數(shù) statement();*/ if(syn==28) scaner(); /* 讀下一個(gè)單詞符號(hào) */ else { printf("the error on '('\n"); kk=1; } } else { printf("the expression error!\n"); kk=1; } return; } scaner() { sum=0; for(m=0;m<8;

40、m++)token[m++]=NULL; m=0; ch=prog[p++]; 專(zhuān)業(yè)整理 word 格式文檔 while(ch==' ')ch=prog[p++]; if(((ch<='z')&&(ch>='a'))||((ch<='Z')&&(ch>='A'))) { while(((ch<='z')&&(ch>='a'))||((ch<='Z')&&(ch>='A'))||((ch>='0')&&(ch<='9'))) {token[m++]=ch; ch=prog[p++];

41、 } p--; syn=10; token[m++]='\0'; for(n=0;n<6;n++) if(strcmp(token,rwtab[n])==0) { syn=n+1; break; } } else if((ch>='0')&&(ch<='9')) { while((ch>='0')&&(ch<='9')) { sum=sum*10+ch-'0'; ch=prog[p++]; } p--;

42、syn=11; 專(zhuān)業(yè)整理 word 格式文檔 } else switch(ch) { case '<':m=0; ch=prog[p++]; if(ch=='>') { syn=21; } else if(ch=='=') { syn=22; } else { syn=20; p--; } break; case '>':m=0; ch=pr

43、og[p++]; if(ch=='=') { syn=24; } else { syn=23; 專(zhuān)業(yè)整理 word 格式文檔 p--; } break; case ':':m=0; ch=prog[p++]; if(ch=='=') { syn=18; } else { syn=17; p--; } break; ca

44、se '+': syn=13; break; case '-': syn=14; break; case '*': syn=15;break; case '/': syn=16;break; case '(': syn=27;break; case ')': syn=28;break; case '=': syn=25;break; case ';': syn=26;break; case '#': syn=0;break; 專(zhuān)業(yè)整理 word 格式文

45、檔 default: syn=-1;break; } } 四、結(jié)果分析 : 輸入 begin a:=9; x:=2*3; b:=a+x end # 后輸出 success ! 如圖 4-1 所示: 圖 4-1 輸入 x:=a+b*c end # 后輸出 error 如圖 4-2 所示 :

46、 圖 4-2 五、總結(jié): 通過(guò)本次試驗(yàn) ,了解了語(yǔ)法分析的運(yùn)行過(guò)程 ,主程序大致流程為 :“置初值 ” 調(diào)用 專(zhuān)業(yè)整理 word 格式文檔 scaner 函數(shù)讀下一個(gè)單詞符號(hào) 調(diào)用 IrParse 結(jié)束 。 遞歸下降分析的大致流程為 :“先判斷 是否為 begin ” 不是則 “出錯(cuò)處理 ”,若是則 “調(diào)用 scaner 函數(shù) ” 調(diào)用語(yǔ)句串分析函數(shù) “判 斷是否為 end ” 不是則 “出錯(cuò)處理 ”,若是則調(diào)用 scaner 函數(shù) “判斷

47、syn=0&&kk=0 是否成 立”成立則說(shuō)明分析成功打印出來(lái) 。不成立則 “出錯(cuò)處理 ”。 專(zhuān)業(yè)整理 word 格式文檔

48、 語(yǔ)義分析程序 #include "stdio.h" #include "string.h" char prog[100],token[8],ch; char *rwtab[6]={"begin","if","then","while","do","end"}; int syn,p,m,n,sum,q; int kk; struct { char result1[8]; char ag11[8]; char op1[8]; char

49、ag21[8]; } quad[20]; char *factor(); char *expression(); int yucu(); char *term(); int statement(); 專(zhuān)業(yè)整理 word 格式文檔 int lrparser(); char *newtemp(); scaner(); emit(char *result,char *ag1,char *op,char *ag2); main() { int j; q=p=kk=0; pr

50、intf("\nplease input a string (end with '#'): "); do { scanf("%c",&ch); prog[p++]=ch; }while(ch!='#'); p=0; scaner(); lrparser(); if(q>19)printf(" to long sentense!\n"); else for (j=0;j

51、uad[j].op1,quad[j].ag21); getch(); } int lrparser() 專(zhuān)業(yè)整理 word 格式文檔 { int schain=0; kk=0; if (syn==1) { scaner(); schain=yucu(); if(syn==6) { scaner(); if((syn==0)&&(kk==0)) printf("Success!\n"); } else { if(

52、kk!=1)printf("short of 'end' !\n"); kk=1; getch(); exit(0); } } else { printf("short of 'begin' !\n"); kk=1; getch(); exit(0); } return (schain); 專(zhuān)業(yè)整理 word 格式文檔 } int yucu() { int schain=0

53、; schain=statement(); while(syn==26) { scaner(); schain=statement(); } return (schain); } int statement() { char tt[8],eplace[8]; int schain=0; if (syn==10) { strcpy(tt,token); scaner(); if(syn==18) { scaner(); strcpy(eplace,expression()); emit(tt,epla

54、ce,"",""); schain=0; 專(zhuān)業(yè)整理 word 格式文檔 } else { printf("short of sign ':=' !\n"); kk=1; getch(); exit(0); } return (schain); } } char *expression() { char *tp,*ep2,*eplace,*tt; tp=(char *)malloc(12); ep2=(char *)mall

55、oc(12); eplace=(char *)malloc(12); tt=(char *)malloc(12); strcpy(eplace,term()); while((syn==13)||(syn==14)) { if (syn==13)strcpy(tt,"+"); else strcpy(tt,"-"); scaner(); strcpy(ep2,term()); 專(zhuān)業(yè)整理 word 格式文檔 strcpy(tp,newtemp()); emit(tp,eplace,tt,ep2); strcpy(

56、eplace,tp); } return (eplace); } char *term() { char *tp,*ep2,*eplace,*tt; tp=(char *)malloc(12); ep2=(char *)malloc(12); eplace=(char *)malloc(12); tt=(char *)malloc(12); strcpy(eplace,factor()); while((syn==15)||(syn==16)) { if (syn==15)strcpy(tt,"*"); else strcpy(t

57、t,"/"); scaner(); strcpy(ep2,factor()); strcpy(tp,newtemp()); emit(tp,eplace,tt,ep2); strcpy(eplace,tp); 專(zhuān)業(yè)整理 word 格式文檔 } return (eplace); } char *factor() { char *fplace; fplace=(char *)malloc(12); strcpy(fplace,""); if(syn==10)

58、 { strcpy(fplace,token); scaner(); } else if(syn==11) { itoa(sum,fplace,10); scaner(); } else if(syn==27) { scaner(); fplace=expression(); if(syn==28) scaner(); else { printf("error on ')' !\n"); kk=1; 專(zhuān)業(yè)整理 word 格式文檔 getch();

59、 exit(0); } } else { printf("error on '(' !\n"); kk=1; getch(); exit(0); } return (fplace); } char *newtemp() { char *p; char m[8]; p=(char *)malloc(8); kk++; itoa(kk,m,10); strcpy(p+1,m); p[0]='t'; return(p);

60、 } 專(zhuān)業(yè)整理 word 格式文檔 scaner() { sum=0; for(m=0;m<8;m++)token[m++]=NULL; m=0; ch=prog[p++]; while(ch==' ')ch=prog[p++]; if(((ch<='z')&&(ch>='a'))||((ch<='Z')&&(ch>='A'))) { while(((ch<='z')&&(ch>='a'))||((ch<='Z')&&(ch>='A'))||((ch>='0')&&(ch<='9'

61、))) {token[m++]=ch; ch=prog[p++]; } p--; syn=10; token[m++]='\0'; for(n=0;n<6;n++) if(strcmp(token,rwtab[n])==0) { syn=n+1; break; } } else if((ch>='0')&&(ch<='9')) 專(zhuān)業(yè)整理 word 格式文檔 { while((ch>='0')&&(ch<='9')) { sum=s

62、um*10+ch-'0'; ch=prog[p++]; } p--; syn=11; } else switch(ch) { case '<':m=0; ch=prog[p++]; if(ch=='>') { syn=21; } else if(ch=='=') { syn=22; } else { syn=20; p--; } break; 專(zhuān)業(yè)整理 wor

63、d 格式文檔 case '>':m=0; ch=prog[p++]; if(ch=='=') { syn=24; } else { syn=23; p--; } break; case ':':m=0; ch=prog[p++]; if(ch=='=') { syn=18; } else { syn=17; p--; } break; case '+': syn=13;

64、break; 專(zhuān)業(yè)整理 word 格式文檔 case '-': syn=14; break; case '*': syn=15;break; case '/': syn=16;break; case '(': syn=27;break; case ')': syn=28;break; case '=': syn=25;break; case ';': syn=26;break; case '#': syn=0;break; def

65、ault: syn=-1;break; } } emit(char *result,char *ag1,char *op,char *ag2) { strcpy(quad[q].result1,result); strcpy(quad[q].ag11,ag1); strcpy(quad[q].op1,op); strcpy(quad[q].ag21,ag2); q++; } 專(zhuān)業(yè)整理 word 格式文檔 專(zhuān)業(yè)整理

展開(kāi)閱讀全文
溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!