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

📄 fcerrordlg.cpp

📁 我开发了一个基于MFC的语言翻译软件
💻 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 + -