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

📄 errors.cpp

📁 PL/0编译器
💻 CPP
字号:
#include "StdAfx.h"
#include ".\errors.h"
#include <stdio.h>
#include "wording.h"
#include <iostream>

using namespace std;

CErrors::CErrors(CPl0 *p) 
{
	pl = p;
	num = 0;
}

void CErrors::Add(int err)
{
	if(num<MAX_ERROR_NUM)
	{
		errors[num] = err;
		lines[num++] = pl->wording->GetLine();
	}
}

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

CErrors::~CErrors(void)
{
}

⌨️ 快捷键说明

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