📄 errors.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 + -