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

正文內(nèi)容

編譯原理課程設(shè)計(jì)(已改無錯(cuò)字)

2023-02-17 01:33:44 本頁面
  

【正文】 trcpy(op,)。 break。 case 35: strcpy(op,=)。 break。 case 36: strcpy(op,==)。 break。 case 37: strcpy(op,!=)。 break。 default: printf(error)。 } } scanner()。 strcpy(num2,E())。 strcat(num1,op)。 strcat(num1,num2)。 nnb=nextq。 emit(0,if,num1,goto)。 backpatch(nnb,nnc)。 nna=nextq。 emit(0,goto)。 backpatch(nna,nextq)。 } if(syn==27) //) scanner()。 } }}void fuzhi() //賦值語句只有1個(gè)操作數(shù){ char res[10],num[10]。 //num操作數(shù) if(syn==10) //字符串 { strcpy(res,token)。 //結(jié)果 scanner()。 if(syn==21) //= { scanner()。 strcpy(num,E())。 emit(res,num,=,)。 } else { printf(缺少=號\n)。 } }}char* E() //Expression表達(dá)式{ char *res,*num1,*op,*num2。 res=(char *)malloc(10)。 num1=(char *)malloc(10)。 op=(char *)malloc(10)。 num2=(char *)malloc(10)。 strcpy(num1,T())。 while((syn==22)||(syn==23)) //+ { if(syn==22) //+ strcpy(op,+)。 else strcpy(op,)。 scanner()。 strcpy(num2,T())。 strcpy(res,newTemp())。 emit(res,num1,op,num2)。 strcpy(num1,res)。 } return num1。}char* T() //Term項(xiàng){ char *res,*num1,*op,*num2。 res=(char *)malloc(10)。 num1=(char *)malloc(10)。 op=(char *)malloc(10)。 num2=(char *)malloc(10)。 strcpy(num1,F())。 while((syn==24)||(syn==25)) //* / { if(syn==24) strcpy(op,*)。 else strcpy(op,/)。 scanner()。 strcpy(num2,F())。 strcpy(res,newTemp())。 emit(res,num1,op,num2)。 strcpy(num1,res)。 } return num1。}char* F() //Factor因子{ char *res。 res=(char *)malloc(10)。 if(syn==10) //字符串 { strcpy(res,token)。 scanner()。 } else if(syn==20) //二進(jìn)制數(shù) { itoa((int)sum,res,10)。 //整數(shù)轉(zhuǎn)換為字符串 scanner()。 } else if(syn==26) //( { scanner()。 res=E()。 if(syn==27) //) { scanner()。 } else isError=1。 } else isError=1。 return res。}char *newTemp(){ char *p。 char varTemp[10]。 p=(char *)malloc(10)。 kk++。 itoa(kk,varTemp,10)。 strcpy(p+1,varTemp)。 p[0]=39。T39。 return p。}//將p所鏈接的每個(gè)四元式的第四個(gè)分量都回填tvoid backpatch(int p,int t) { int w,circle=p。 while(circle) //circle不為0的時(shí)候 { w=atoi(fourCom[circle].result)。 //四元式circle第四分量內(nèi)容 //strcpy(fourCom[circle].result,t)。 //把t填進(jìn)四元式circle的第四分量 sprintf(fourCom[circle].result,%d,t)。 circle=w。 //w記錄的是鏈條上下一個(gè)四元式,移動(dòng)! } return。}int merge(int p1,int p2) //合并p1和p2{ char circle,nResult。 if(p2==0) nResult=p1。 else { nResult=circle=p2。 while(atoi(fourCom[circle].result)) //四元式第四個(gè)分量不為0 { circle=atoi(fourCom[circle].result)。 //strcpy(fourCom[circle].result,p1)。 sprintf(fourCom[circle].result,%s,p1)。 } //目的是用p1的值覆蓋0 } return nResult。 //p2是頭,p1覆蓋0,接在p2后邊}void emit(char *res,char *num1,char *op,char *num2){ strcpy(fourCom[nextq].result,res)。 strcpy(fourCom[nextq].arg1,num1)。 strcpy(fourCom[nextq].opera,op)。 strcpy(fourCom[nextq].arg2,num2)。 nextq++。}void scanner() { sum=0。 decimal=0。 m=0。 for(n=0。n8。n++) token[n]=NULL。 ch=prog[p++]。 //從prog中讀出一個(gè)字符到ch中 while(ch==39。 39。||ch==39。\n39。) //跳過空字符(無效輸入) ch=prog[p++]。 if(((ch=39。a39。)amp。amp。(ch=39。z39。))||((ch=39。A39。)amp。amp。(ch=39。Z39。))) //ch是字母字符 { while(((ch=39。a39。)amp。amp。(ch=39。z39。))||((ch=39。A39。)amp。amp。(ch=39。Z39。))||((ch=39。039。)amp。amp。(ch=39。939。))) { token[m++]=ch。 //ch=token ch=prog[p++]。 //讀下一個(gè)字符 } token[m++]=39。\039。 p。 //回退一格 syn=10。 //標(biāo)識符 //如果是begin,if,then,while,do,end標(biāo)識符中的一個(gè) for(n=0。n9。n++) if(strcmp(token,rwtab[n])==0) { syn=n+1。 break。 } } else if((ch=39。039。)amp。amp。(ch=39。939。)) { IsNum: if(isSignal==1) { //token[m++]=39。39。 } while((ch=39。039。)amp。amp。(ch=39。939。)) { sum=sum*10+ch39。039。 //ch中數(shù)字本身是當(dāng)做字符存放的 ch=prog[p++]。 } if(ch==39。.39。) { isDecimal=1。 ch=prog
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1