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

📄 errors.cpp

📁 数据结构中编译器的算法
💻 CPP
字号:
#include <stdio.h>
#include "errors.h"
#include "cifa.h"

void CErrors::Add(int err)
{
	if(num<MAX_ERROR_NUM)
	{
		errors[num]=err;
		lines[num++]=pl->cifa->GetLine();
	}
}
void CErrors::Display()
{
	for (int i=0;i<num;i++)
	{
		printf("**** line(%d) : error %d: ",lines[i],errors[i]);
		switch (errors[i])
		{
		case 1:printf("常数说明中的\"=\"写成\":=\"!\n");break;
		case 2:printf("常数说明中的\"=\"后应是数字!\n");break;
		case 3:printf("常数说明中标识符后应是\"=\"!\n");break;
		case 4:printf("const, var, procedure 后应是数字!\n");break;
		case 5:printf("漏掉了\',\' 或\';\'!\n");break;
		case 6:printf("过程说明后的符号不正确(应是语句开始符,或过程定义符!\n");break;
		case 7:printf("应是语句开始符!\n");break;
		case 8:printf("程序体内的语句部分的后跟符不正确!\n");break;
		case 9:printf("程序结尾丢了句号\'.\'!\n");break;
		case 10:printf("语句之间漏了\';\'!\n");break;
		case 11:printf("标识符未说明!\n");break;
		case 12:printf("赋值语句中, 赋值号左部标识符属性应是变量!\n");break;
		case 13:printf("赋值语句左部标识符后应是赋值号\':=\'!\n");break;
		case 14:printf("call 后应为标识符!\n");break;
		case 15:printf("call 后标识符属性应为过程!\n");break;
		case 16:printf("条件语句中丢了\'then\'!\n");break;
		case 17:printf("丢了\'end\' 或\';\'!\n");break;
		case 18:printf("while 型循环语句中丢了\'do\'!\n");break;
		case 19:printf("语句后的符号不正确!\n");break;
		case 20:printf("应为关系运算符!\n");break;
		case 21:printf("表达式内标识符属性不能是过程!\n");break;
		case 22:printf("表达式中漏掉右括号\'(\'!\n");break;
		case 23:printf("因子后的非法符号!\n");break;
		case 24:printf("表达式的开始符不能是此符号!\n");break;
		case 25:printf("repeat 型循环语句中没有until!\n");break;
		case 30:printf("数位太长!\n");break;
		case 31:printf("数越界!\n");break;
		case 32:printf("read语句括号中的标识符不是变量!\n");break;
		}
	}
	printf("\ntotal - %d error(s).\n\n",i);
}

⌨️ 快捷键说明

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