⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 util.c

📁 小型编译器之C-词法分析器 可以作为一般小型编译器的模板
💻 C
字号:
/****************************************************/
/* File: util.c                                     */
/* Utility function implementation                  */
/* for the TINY compiler                            */
/* Compiler Construction: Principles and Practice   */
/* Kenneth C. Louden                                */
/****************************************************/

#include "globals.h"
#include "util.h"


void printToken( TokenType token, const char* tokenString )
{ switch (token)
  { case IF:
    case RETURN:
    case ELSE:
    case VOID:
    case INT:
    case WHILE:

      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 EQQ: fprintf(listing,"==\n"); break;
	case LTT: fprintf(listing,"<=\n"); break;
    case RT: fprintf(listing,">\n"); break;
	case RTT: fprintf(listing,">=\n"); break;
    case LPAREN: fprintf(listing,"(\n"); break;
    case RPAREN: fprintf(listing,")\n"); break;
	case LPARENZ: fprintf(listing,"[\n"); break;
    case RPARENZ: fprintf(listing,"]\n"); break;
	case LPAREND: fprintf(listing,"{\n"); break;
    case RPAREND: 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 COMMA: fprintf(listing,",\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: /* should never happen */
      fprintf(listing,"Unknown token: %d\n",token);
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -