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