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

正文內(nèi)容

編譯原理課程設(shè)計(存儲版)

2025-02-16 01:33上一頁面

下一頁面
  

【正文】 um2)。 } }}void fuzhi() //賦值語句只有1個操作數(shù){ char res[10],num[10]。 res=(char *)malloc(10)。 strcpy(num2,T())。 op=(char *)malloc(10)。 emit(res,num1,op,num2)。 //整數(shù)轉(zhuǎn)換為字符串 scanner()。 char varTemp[10]。}//將p所鏈接的每個四元式的第四個分量都回填tvoid backpatch(int p,int t) { int w,circle=p。 else { nResult=circle=p2。 strcpy(fourCom[nextq].arg2,num2)。 ch=prog[p++]。)amp。(ch=39。))||((ch=39。)amp。 p。)amp。)amp。.39。(ch=39。 } sum=sum+decimal。39。939。 isSignal=0。 if(ch==39。39。 } else { syn=32。 if(ch==39。+39。939。+39。 break。amp。 goto IsNum。 //預(yù)言會重復(fù) //ch=prog[p++]。+39。 break。: temp2=prog[p]。) { isSignal=1。 break。: syn=29。 case 39。 token[m++]=ch。39。 token[m++]=ch。 case 39。: syn=27。 } else if(temp2==39。 case 39。 repeat=1。 token[m++]=ch。amp。 ch=prog[p++]。039。 //ch=prog[p++]。 goto IsNum。amp。 } break。 token[m++]=ch。) { syn=33。 } break。 token[m++]=ch。 else sum=sum*pow(10,index)。amp。 ch=prog[p++]。 //AddToDec()。)amp。 //ch中數(shù)字本身是當(dāng)做字符存放的 ch=prog[p++]。 } while((ch=39。 } } else if((ch=39。 //讀下一個字符 } token[m++]=39。))||((ch=39。(ch=39。)amp。 if(((ch=39。n8。 strcpy(fourCom[nextq].arg1,num1)。}int merge(int p1,int p2) //合并p1和p2{ char circle,nResult。T39。 return res。 scanner()。 strcpy(num2,F())。 res=(char *)malloc(10)。 else strcpy(op,)。 } else { printf(缺少=號\n)。 backpatch(nna,nextq)。 strcpy(num2,E())。 case 35: strcpy(op,=)。 if((syn=37)amp。 if(syn==8) //do { nnc=nextq。 //if中表達(dá)式為假 emit(0,goto)。 } } scanner()。 break。 strcpy(num1,E())。 //*nChain=0。語句}。}39。 staBlock(amp。i++) //循環(huán)輸出四元式 { printf(\n%d\t,i)。39。 isDecimal=0。 //Expresiion表達(dá)式char* T()。 //掃描void lrparser()。 //臨時變量的標(biāo)號int ntc,nfc,nnc,nnb,nna。 //小數(shù) int isExp。 //存放詞組 char ch。他們的處理方法其實很類似,也是emit+backpatch+merge。只好自己寫,寫,寫。但是后來發(fā)現(xiàn),更難的東西在后邊。但是記得那時的語法分析程序用的是遞歸下降分析法,而且只判斷輸入串是否是文法的句子(輸出只有簡單的success或者error)。 nna=nextq。 default: printf(error)。 case 34: strcpy(op,)。 if(syn==26) //( { scanner()。//循環(huán)語句::=do 語句塊while 條件void xunhuan(){ char res[10],num1[10],num2[10],op[10]。 nfc=nextq。 default: printf(error)。 case 34: strcpy(op,)。 if(syn==26) //( { scanner()。 strcpy(num,E())。 //把t填進(jìn)四元式circle的第四分量 sprintf(fourCom[circle].result,%d,t)。 while(atoi(fourCom[circle].result)) //四元式第四個分量不為0 { circle=atoi(fourCom[circle].result)。 //整數(shù)轉(zhuǎn)換為字符串 strcpy(p+1,varTemp)。 //操作數(shù)1 char opera[10]。 //生成四元式2. void emit(char *res,char *num1,char *op,char *num2)該函數(shù)的功能是生成一個三地址語句送到四元式表中。 //條件語句void xunhuan()。流程框圖圖 I 主函數(shù)示意圖圖 II 遞歸下降分析程序示意圖是否為main?調(diào)用scanner是否為(?調(diào)用scanner是否為)?調(diào)用scanner調(diào)用語句塊分析函數(shù)staBlock出錯處理否否否圖 III 語句塊分析示意圖是否為{ ?調(diào)用scanner調(diào)用語句串分析函數(shù)staString調(diào)用scanner是否為 } ?出錯處理否否調(diào)用語句分析函數(shù)sta回溯,調(diào)用backpatch是否為 。語句::=賦值語句|條件語句|循環(huán)語句賦值語句::=ID=表達(dá)式 //賦值語句用”=”號條件語句::=if條件語句塊 //條件怎么沒有括號,囧(自己加1個)循環(huán)語句::=do 語句塊while 條件條件::=表達(dá)式關(guān)系運(yùn)算符表達(dá)式 //沒有布爾運(yùn)算,還算簡單表達(dá)式 ::= 項{ +項|項}項 ::= 因子{*因子|/因子}因子 ::=ID|num|(表達(dá)式)num::= ( +||ε ) 數(shù)字*(.數(shù)字?jǐn)?shù)字* | ε)( e ( +||ε ) 數(shù)字?jǐn)?shù)字*|ε)ID::=字母(字母|d數(shù)字)*字母::=a|b|c…|z|A|B|C…|Z數(shù)字::=0|1|2…|9關(guān)系運(yùn)算符 ::= |=||=|==|!=總體設(shè)計思想采用遞歸下降(自上而下)的語法制導(dǎo)翻譯法。將不翻譯的注釋等符號先濾掉,只保留要翻譯的符號串,即要求設(shè)計一個供詞法分析調(diào)用的預(yù)處理子程序;b. 能夠拼出語言中的各個單詞;c. 將拼出的標(biāo)識符填入符號表;d. 返回(種別碼, 屬性值)。要考慮能夠存儲有關(guān)名字的信息,并可以高效地完成如下操作::根據(jù)給定的名字,在符號表中查找其信息。樣本語言樣本語言為C語言(見附錄),其中基本的語句要求必須實現(xiàn),其余部分可根據(jù)自己的實際情況選擇實現(xiàn)。 語法分析程序 224。 void staBlock(int *nChain)。 //Term項char* F()。 strcpy(fourCom[q].opera,op)。 //結(jié)構(gòu)體數(shù)組3. char *newTemp()該函數(shù)的功能是會動一個新的臨時變量,臨時變量名產(chǎn)生的順序是T1,T2,T3,….char *newTemp(){ char *p。 //字符串前加T,便于識別 return p。 } //目的是用p1的值覆蓋0 } return nResult。}6. void fuzh
點擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1