?? 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 + -