📄 emitter.c
字号:
/******************* emitter.c **********************************************/
#include "global.h"
int i;
emit(t,tval)//生成输出
int t,tval;
{
switch(t){
case'+':
printf("%c\n",t);
res[i-2]=res[i-2]+res[i-1];
printf("%d\n",res[i-2]);
i--;
break;
case'-':
printf("%c\n",t);
res[i-2]=res[i-2]-res[i-1];
printf("%d\n",res[i-2]);
i--;
break;
case'*':
printf("%c\n",t);
res[i-2]=res[i-2]*res[i-1];
printf("%d\n",res[i-2]);
i--;
break;
case'/':
printf("%c\n",t);
res[i-2]=res[i-2]/res[i-1];
printf("%d\n",res[i-2]);
i--;
break;
case DIV:
printf("DIV\n");
res[i-2]=res[i-2]/res[i-1];
printf("%d\n",res[i-2]);
i--;
break;
case MOD:
printf("MOD\n");
res[i-2]=res[i-2] % res[i-1];
printf("%d\n",res[i-2]);
i--;
break;
case NUM:
printf("%d\n",tval);
res[i]=tval;
i++;
break;
case ID:
printf("%s\n",symtable[tval].lexptr);
break;
default:
printf("token %d,tokenval %d\n",t,tval);
// printf("%d\n",res[i-1]);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -