📄 util.cpp
字号:
#include"globals.h"
#include"util.h"
void reposition(FILE* source)
{
rewind(source);
lineno=0;
}
void printToken(TokenType token,const char* tokenString)
{
switch(token)
{
case IF:
case ELSE:
case INT:
case RETURN:
case WHILE:
case VOID:
fprintf(listing,"reserved word:%s\n",tokenString);
break;
case ASSIGN:fprintf(listing,"=\n");break;
case LT: fprintf(listing,"<\n");break;
case LTOREQ: fprintf(listing,"<=\n");break;
case BI: fprintf(listing,">\n");break;
case BIOREQ: fprintf(listing,">=\n");break;
case EQ: fprintf(listing,"==\n");break;
case NEQ: fprintf(listing,"!=\n");break;
case PLUS: fprintf(listing,"+\n");break;
case MINUS: fprintf(listing,"-\n");break;
case TIMES: fprintf(listing,"*\n");break;
case OVER: fprintf(listing,"/\n");break;
case SEMI: fprintf(listing,";\n");break;
case COMA: fprintf(listing,",\n");break;
case LROUNDBRA: fprintf(listing,"(\n");break;
case RROUNDBRA: fprintf(listing,")\n");break;
case LSQUARPAREN: fprintf(listing,"[\n");break;
case RSQUARPAREN: fprintf(listing,"]\n");break;
case LBRAC: fprintf(listing,"{\n");break;
case RBRAC: fprintf(listing,"}\n");break;
case LCOM: fprintf(listing,"/*\n");break;
case RCOM: fprintf(listing,"*/\n");break;
case ENDFILE:fprintf(listing,"EOF\n");break;
case NUM:
fprintf(listing,"NUM,val=%s\n",tokenString);
break;
case ID:
fprintf(listing,"ID,name=%s\n",tokenString);
break;
case ERROR:
fprintf(listing,"ERROR:%s\n",tokenString);
break;
default:
fprintf(listing,"Unknown: %d\n",token);
}
return;
}
char* copyString(char* s)
{
char *t;
if (s==NULL) return NULL;
int len=strlen(s)+1;
t=new char[strlen(s)+1];
if (t==NULL)
fprintf(listing,"Out of memory at line %d\n",lineno);
else
strcpy(t,s);
return t;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -