📄 util.c
字号:
/* File: util.c
Utility function implementation for the TINY compiler
*/
#include "globals.h"
#include "util.h"
/* Procedure pritToken prints a token and its lexeme to the listing file */
void printToken ( TokenType token, const char* tokenString )
{
switch(token)
{
case IF:
case THEN:
case ELSE:
case END:
case REPEAT:
case UNTIL:
case READ:
case WRITE:
fprintf(listing, "reserved word: %s\n", tokenString);
break;
case ASSIGN: fprintf(listing, ":=\n"); break;
case LT: fprintf(listing, "<\n"); break;
case EQ: fprintf(listing, "=\n"); break;
case LPAREN: fprintf(listing, "(\n"); break;
case RPAREN: fprintf(listing, ")\n"); break;
case SEMI: 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 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: //This should never happen
fprintf(listing, "Unknown token:%s\n", token);
}
}
/* Function copyString allocates and makes a new copy of an existing string */
char* copyString(char* s)
{
int n;
char* t;
if(s==NULL) return NULL;
n = strlen(s)+1;
t = malloc(n);
if(t==NULL)
fprintf(listing, "Out of memory error at line %d\n", lineno);
else strcpy(t,s);
return t;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -