天津理工大学编译原理实验一 联系客服

发布时间 : 星期二 文章天津理工大学编译原理实验一更新完毕开始阅读

if(buf[start]=='\\0') { fputc('\\n',Out); line++; } else { st=start; start++; while(buf[start]!='\\0') { if(buf[st]=='*'&&buf[start]=='/') { str[0]=buf[st]; str[1]=buf[start]; for(i=0;borderTable[i]!=\ if(strcmp(str,borderTable[i])==0) { sign2.sym=i+312; break; } strcpy(sign2.name,str); strcpy(sign2.attr,\ SigArr[SignNum]=sign2; SignNum++; fputs(sign2.name,Out); start++; firchar=buf[start]; last=true; return ; } st=start; start++; } fputc('\\n',Out); line++; } } notation=0; } else { st=start; start++; while(buf[start]!='\\0')

第13页 共23页

{ if(buf[st]=='*'&&buf[start]=='/')// /**/ 类型 { str[0]=buf[st]; str[1]=buf[start]; for(i=0;borderTable[i]!=\ if(strcmp(str,borderTable[i])==0) { sign2.sym=i+312; break; } strcpy(sign2.name,str); strcpy(sign2.attr,\ SigArr[SignNum]=sign2; SignNum++; len=strlen(buf); for(int temp=start;temp

fputc('\\n',Out); // /*XXX\\n 类型 line++;

while(fgets(buf,bufsize,in)!=NULL) { int len=strlen(buf); buf[len-1]='\\0'; start=0; if(buf[start]=='\\0') { fputc('\\n',Out);

第14页 共23页

line++; } else { st=start; start++; while(buf[start]!='\\0') { if(buf[st]=='*'&&buf[start]=='/') { str[0]=buf[st]; str[1]=buf[start]; for(i=0;borderTable[i]!=\ if(strcmp(str,borderTable[i])==0) { sign2.sym=i+312; break; } strcpy(sign2.name,str); strcpy(sign2.attr,\ SigArr[SignNum]=sign2; SignNum++; for(int temp=st;temp

//判断界符

bool Border(char c)

第15页 共23页

{

for(int i=0;borderTable[i]!=\ if(c==borderTable[i][0]&&borderTable[i][1]=='\\0') return true; return false; }

//处理界符

void dealBorder()

{ //这里已经将注释和普通界符分开,所以所有已定义的界符都是单个的 char str[2]; Sign sign; str[0]=firchar; str[1]='\\0'; int i=0;

while(borderTable[i]!=\ { if(strcmp(str,borderTable[i])==0) { strcpy(sign.name,str); strcpy(sign.attr,\ sign.sym=i+312; SigArr[SignNum]=sign; SignNum++; firchar=buf[start]; return; } i++; } }

//判断运算符

int Operate(char ch) {

for(int i=0;operateTable[i]!=\ if(ch==operateTable[i][0]) return 1; return 0; }

//处理运算符 void dealOperate() {

char str[3]; Sign sign; str[0]=firchar; str[1]=buf[start]; str[2]='\\0';

第16页 共23页