freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

編譯原理報告(8)(編輯修改稿)

2025-04-19 12:06 本頁面
 

【文章內容簡介】 ent()syn ==26(。) Nscanner()出錯處理 Y6) statement語句分析算法流程圖調用syn ==26(。)scanner()syn ==18(:=) 否 scanner() 是出錯處理expression()7) expression表達式分析算法流程圖調用term()是否+ 或 N Yscanner()出錯處理term8) term分析函數算法流程圖調用factor()是否* 或 / N 出錯處理Scanner() Y9) factor分析函數算法流程圖調用是否標識符 Y N是否整常數 Y N 是否( Y scanner() 。 expression() 出錯處理是否 )scanner() 。返回 N Y1. 輸入begin a:=9。 x:= 2*3 end 結果如下2. 輸入begin a=9 end 結果如下本次實驗和第一實驗一樣,框架已經給出,我們需要做的是將第一個實驗和第二個實驗很好的結合起來。 由于第一次實驗中不是按照書中的框架寫出的代碼,因此在第二次實驗時傳遞參數時出現(xiàn)了問題,最后不得不利用全局變量syn解決。通過兩次編譯原理的實驗,更加理解了詞法語法分析的過程,促進了對課程的進一步學習。include includeincludeincludechar GetChar(char *input,int *index,int length)。int ClearBlank(char *input,int (*index),int length)。int reserve(char *s)。void lrparser(char *input,int inputLength,int *index)。void yucu(char *input,int inputLength,int *index)。void factor(char *input,int inputLength,int *index)。void statement(char *input,int inputLength,int *index)。void expression(char *input,int inputLength,int *index)。void term(char *input,int inputLength,int *index)。char *retab[6]={begin,if,then,while,do,end}。//關鍵字int syn=0。int myIsAlpha(char ch){ if(islower(ch)==2 || isupper(ch)==1) { return 1。 } else { return 0。 }}void scaner(char *input,int inputLength,int *index){ char s[256]=。 //保存當前的字符 char ch=GetChar(input,index,inputLength)。 int nowPosition=0。 int j=0。 if(myIsAlpha(ch)==1) //如果是字母 { while(((ch=39。039。 amp。amp。 ch=39。939。) || (myIsAlpha(ch)==1 ) )amp。amp。 *index =inputLength) { s[nowPosition]=ch。 //添加到當前字符串中 nowPosition++。 ch=GetChar(input,index,inputLength)。 } if((ch 39。039。 || ch39。939。) amp。amp。(myIsAlpha(ch)==0 ) )//進行回退操作,并輸出結果 { s[nowPosition]=39。\039。//添加結束標志 j=reserve(s)。 if(j==0) { syn=10。 } else { syn=j。 } (*index)。 return。 } else //超過范圍 { s[nowPosition++]=ch。 s[nowPosition]=39。\039。//添加結束標志 j=reserve(s)。 if(j==0) { syn=10。 } else { syn=j。 } getchar()。 exit(0)。 return。 } } else if(ch=39。039。 amp。amp。 ch=39。939。) //如果是數字 { while(ch=39。039。 amp。amp。 ch=39。939。amp。amp。 *index =inputLength) { s[nowPosition]=ch。 //添加到當前字符串中 nowPosition++。 ch=GetChar(input,index,inputLength)。 } if(ch39。039。 || ch39。939。)//進行回退操作 { (*index)。 syn=11。 return。 } else //超過范圍時 { s[nowPosition]=ch。 syn=11。 return。 } } else { switch(ch) { case 39。+39。: { syn=13。 return。 } case 39。39。: { syn=14。
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1