📄 fcerrordlg.cpp
字号:
// FCErrorDlg.cpp : implementation file
//
#include "stdafx.h"
#include "FC.h"
#include "FCErrorDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CFCErrorDlg dialog
CFCErrorDlg::CFCErrorDlg(CWnd* pParent /*=NULL*/)
: CDialog(CFCErrorDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CFCErrorDlg)
m_strLine = _T("");
m_strLineNum = _T("");
m_strMessage = _T("");
//}}AFX_DATA_INIT
}
void CFCErrorDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CFCErrorDlg)
DDX_Text(pDX, IDC_ERROR_LINE, m_strLine);
DDX_Text(pDX, IDC_ERROR_LINE_NUM, m_strLineNum);
DDX_Text(pDX, IDC_ERROR_MESSAGE, m_strMessage);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CFCErrorDlg, CDialog)
//{{AFX_MSG_MAP(CFCErrorDlg)
// NOTE: the ClassWizard will add message map macros here
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CFCErrorDlg message handlers
int CFCErrorDlg::DoModal()
{
return (int)CDialog::DoModal();
}
int CFCErrorDlg::ErrorReport(int iLine, CString strLine, ZErrorType et)
{
m_strLineNum.Format("源代码中第 %d 行:",iLine);
m_strLine=strLine;
switch(et)
{
case ET_DEFINEDIDENT:
m_strMessage="标识符已经定义!";
break;
case ET_DONOWHILE:
m_strMessage="do重复语句缺少while!";
break;
case ET_DOUBLE2INT:
m_strMessage="实数赋予整数!";
break;
case ET_DOUBLEMOD:
m_strMessage="浮点数参加求模运算!";
break;
case ET_DOUBLESUB:
m_strMessage="实数作为数组下标!";
break;
case ET_DOUBLESWITCH:
m_strMessage="浮点数用于选择语句!";
break;
case ET_LESSCOLON:
m_strMessage="缺少冒号“:”!";
break;
case ET_LESSBECOMES:
m_strMessage="缺少赋值号!";
break;
case ET_LESSBEGIN:
m_strMessage="缺少括号“{”!";
break;
case ET_LESSCOMMA:
m_strMessage="缺少逗号“,”";
break;
case ET_LESSEND:
m_strMessage="缺少括号“}”!";
break;
case ET_LESSIDENT:
m_strMessage="缺少标识符!";
break;
case ET_LESSLPAREN:
m_strMessage="缺少括号“(”!";
break;
case ET_LESSLSUB:
m_strMessage="缺少左括号“[”!";
break;
case ET_LESSROP:
m_strMessage="缺少比较运算符!";
break;
case ET_LESSRPAREN:
m_strMessage="缺少括号“)”!";
break;
case ET_LESSRSUB:
m_strMessage="缺少右括号“]”!";
break;
case ET_LESSSEMICOLON:
m_strMessage="缺少分号“;”!";
break;
case ET_LONGPROGRAM:
m_strMessage="程序太长!(此错误无法跳过,将结束编译!)";
break;
case ET_LONGIDENT:
m_strMessage="标识符太长!";
break;
case ET_MANYFUNCTION:
m_strMessage="函数太多!(此错误无法跳过,将结束编译!)";
break;
case ET_MANYIDENT:
m_strMessage="标识符太多!(此错误无法跳过,将结束编译!)";
break;
case ET_MANYPARAM:
m_strMessage="函数参数太多!(此错误无法跳过,将结束编译!)";
break;
case ET_NOMAIN:
m_strMessage="找不到main函数!";
break;
case ET_NOVOIDMAIN:
m_strMessage="main函数不是void的!";
break;
case ET_PARAMMAIN:
m_strMessage="main函数带有参数!";
break;
case ET_SOURCENOEND:
m_strMessage="源代码异常结束!";
break;
case ET_STRINGNOEND:
m_strMessage="字符串异常结束!";
break;
case ET_UNKNOWNERROR:
m_strMessage="未知的语法或语义错误!";
break;
case ET_UNKNOWNTOKEN:
m_strMessage="无法识别的符号!(此错误无法跳过,将结束编译!)";
break;
case ET_UNKNOWNIDENT:
m_strMessage="未定义的标识符!";
break;
case ET_UNKNOWNTYPE:
m_strMessage="错误的参数或函数返回类型!(此错误无法跳过,将结束编译!)";
break;
case ET_WRONGBREAK:
m_strMessage="错误的break语句!";
break;
case ET_WRONGCONTINUE:
m_strMessage="错误的continue语句!";
break;
case ET_WRONGINPUTOB:
m_strMessage="错误的输入对象!";
break;
case ET_WRONGPARAMNUM:
m_strMessage="错误的参数数目!";
break;
case ET_WRONGPARAMTYPE:
m_strMessage="错误的参数类型!";
break;
case ET_WRONGSTATEMENT:
m_strMessage="未知的语句类型!";
break;
default:
m_strMessage="未知的语法或语义错误!";
break;
}
return DoModal();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -