?? 四元式.cpp
字號(hào):
#include"頭文件.h"
extern int nowaddress;//表示下一個(gè)地址
extern bianYi parse; //詞法分析
extern item sign; //
void fouryuan::load(int address1,item t1,item t2,item t3,item t4){
payyuan[yuantop][0]=t1;
payyuan[yuantop][1]=t2;
payyuan[yuantop][2]=t3;
payyuan[yuantop][3]=t4;
address[yuantop]=address1;
yuantop++;
}
void fouryuan::load(int address1,int t4){
jumplist[yuantop][0]=-1;
jumplist[yuantop][1]=t4;
address[yuantop]=address1;
yuantop++;
}
void fouryuan::load(int address1,item t1,item t2,item t3,int t4){
payyuan[yuantop][0]=t1;
payyuan[yuantop][1]=t2;
payyuan[yuantop][2]=t3;
jumplist[yuantop][0]=1;
jumplist[yuantop][1]=t4;
address[yuantop]=address1;
yuantop++;
}
fouryuan::fouryuan(){
yuantop=0;
}
void fouryuan::writeback(int l[],int address){
for(int i=1;i<l[0]+1;i++){
jumplist[l[i]-baseaddress][1]=address;
}
}
void fouryuan::printfouryuan(){
for(int i=0;i<yuantop;i++){
if(payyuan[i][0].x==23)
cout<<"("<<address[i]<<")"<<" ("
<<parse.list1.list[payyuan[i][0].x]<<","
<<parse.list2.list[payyuan[i][1].y]<<",-,-)"
<<endl;
else if(payyuan[i][0].x==12)
cout<<"("<<address[i]<<")"<<" ("
<<"sys,-,-,-)"
<<endl;
else if(jumplist[i][0]==1){
cout<<"("<<address[i]<<")"<<" ("<<"j"
<<parse.list1.list[payyuan[i][0].x]<<",";
helpprint(i,1);
helpprint(i,2);
cout<<jumplist[i][1]<<")"
<<endl;
}
else if(jumplist[i][0]==-1){
cout<<"("<<address[i]<<")"<<" ("<<"j"<<",-,-,"
<<jumplist[i][1]<<")"
<<endl;
}
else if(payyuan[i][0].x!=51){
cout<<"("<<address[i]<<")"<<" ("
<<parse.list1.list[payyuan[i][0].x]<<",";
helpprint(i,1);
helpprint(i,2);
cout<<parse.list2.list[payyuan[i][3].y]<<")"
<<endl;
}
else {
cout<<"("<<address[i]<<")"<<" ("
<<parse.list1.list[payyuan[i][0].x]<<",";
helpprint(i,1);
cout<<"-,"
<<parse.list2.list[payyuan[i][3].y]<<")"
<<endl;
}
}
}
void fouryuan::helpprint(int i,int j){
if(payyuan[i][j].x==36)
cout<<parse.list2.list[payyuan[i][j].y]<<",";
else cout<<payyuan[i][j].y<<",";
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -