資源簡介
本程序實現了LR(0)語法分析器,內容完整,功能詳細,能夠編譯原理有更深入的了解。包含了每一步分分析過程和分析結果。

代碼片段和文件信息
//?AnalyzeDlg.cpp?:?implementation?file
//
#include?“stdafx.h“
#include?“LR0ForWin.h“
#include?“AnalyzeDlg.h“
#include?
#include?
#include?“Pair.h“
using?namespace?std;
#ifdef?_DEBUG
#define?new?DEBUG_NEW
#undef?THIS_FILE
static?char?THIS_FILE[]?=?__FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
//?CAnalyzeDlg?dialog
CAnalyzeDlg::CAnalyzeDlg(CWnd*?pParent?/*=NULL*/)
:?CResizingDialog(CAnalyzeDlg::IDD?pParent)
{
//{{AFX_DATA_INIT(CAnalyzeDlg)
m_input?=?_T(““);
//}}AFX_DATA_INIT
m_strTempFilename?=?““;
m_pTree?=?new?CTreeDlg;
m_pTree->Create(IDD_DIALOG3?this);
m_pTree->SetControlInfo(IDC_TREE1?RESIZE_BOTH);
m_pTree->SetControlInfo(IDOK?ANCHORE_BOTTOM?|?ANCHORE_RIGHT);
}
CAnalyzeDlg::~CAnalyzeDlg()
{
m_pTree->DestroyWindow();
delete?m_pTree;
}
void?CAnalyzeDlg::DoDataExchange(CDataExchange*?pDX)
{
CResizingDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAnalyzeDlg)
DDX_Control(pDX?IDC_EDIT1?m_edit1);
DDX_Control(pDX?IDC_EXPLORER1?m_web);
DDX_Text(pDX?IDC_EDIT1?m_input);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAnalyzeDlg?CResizingDialog)
//{{AFX_MSG_MAP(CAnalyzeDlg)
ON_BN_CLICKED(IDC_BUTTON1?OnButton1)
ON_BN_CLICKED(IDC_BUTTON2?OnButton2)
ON_WM_ACTIVATE()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//?CAnalyzeDlg?message?handlers
void?CAnalyzeDlg::OnOK()?
{
//?TODO:?Add?extra?validation?here
//CDialog::OnOK();
}
void?CAnalyzeDlg::OnCancel()?
{
//?TODO:?Add?extra?cleanup?here
if?(m_strTempFilename?!=?““)
DeleteFile(m_strTempFilename.c_str());
CResizingDialog::OnCancel();
}
void?CAnalyzeDlg::OnButton1()?
{
//?TODO:?Add?your?control?notification?handler?code?here
UpdateData(TRUE);
m_pTree->m_tree.DeleteAllItems();
for(int?i?=?0;?i? {
if?(!m_g.IsInVt(m_input.GetAt(i)))
{
MessageBox(“輸入的句子不全部由終結符組成“?“錯誤“?MB_OK?|?MB_IConstop);
return;
}
}
assert(TreeStack.empty());
m_input?+=?“#“;
char?szTempPath[MAX_PATH];?
char?szTempName[MAX_PATH];?
if?(m_strTempFilename?!=?““)
::DeleteFile(m_strTempFilename.c_str());
::GetTempPath(100szTempPath);
::GetTempFileName(szTempPath“LR0“0szTempName);
m_strTempFilename?=?szTempName;
CStdioFile?out;
out.Open(szTempName?CFile::modeCreate?|?CFile::modeWrite);
out.WriteString(“\n“);
out.WriteString(“\n“);
out.WriteString(“tle>Untitled?Document tle>\n“);
out.WriteString(“ta?http-equiv=\“Content-Type\“?content=\“text/html;?charset=gb2312\“>\n“);
out.WriteString(“\n“);
out.WriteString(“\n“);
out.WriteString(“yle=\“border-collapse:?collapse\“?bordercolor=\“#111111\“>\n“);
out.WriteString(“\n 步驟 \n 狀態棧<
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????541696??2012-02-27?21:00??LR(0)語法分析器\080410304李菲菲.doc
?????文件????????121??2002-05-24?00:50??LR(0)語法分析器\1.txt
?????文件????????115??2002-05-24?16:12??LR(0)語法分析器\2.txt
?????文件?????????98??2002-05-26?23:24??LR(0)語法分析器\3.txt
?????文件????????123??2002-05-26?22:38??LR(0)語法分析器\4.txt
?????文件????????155??2002-05-26?23:35??LR(0)語法分析器\5.txt
?????文件???????8355??2002-05-25?01:04??LR(0)語法分析器\AnalyzeDlg.cpp
?????文件???????1917??2002-05-25?00:57??LR(0)語法分析器\AnalyzeDlg.h
?????文件??????85612??2005-10-26?11:08??LR(0)語法分析器\AquaOS.ssk
?????文件?????165788??2011-07-10?15:45??LR(0)語法分析器\Debug\AnalyzeDlg.obj
?????文件??????63186??2011-07-10?15:45??LR(0)語法分析器\Debug\explorer.obj
?????文件???????2919??2011-07-10?15:45??LR(0)語法分析器\Debug\GoData.obj
?????文件?????185664??2012-02-27?10:01??LR(0)語法分析器\Debug\Grammar.obj
?????文件?????233547??2012-02-27?10:01??LR(0)語法分析器\Debug\LR0ForWin.exe
?????文件?????699696??2012-02-27?10:01??LR(0)語法分析器\Debug\LR0ForWin.ilk
?????文件??????15166??2011-07-10?15:45??LR(0)語法分析器\Debug\LR0ForWin.obj
?????文件????5662584??2011-07-10?15:45??LR(0)語法分析器\Debug\LR0ForWin.pch
?????文件?????795648??2012-02-27?10:01??LR(0)語法分析器\Debug\LR0ForWin.pdb
?????文件???????4700??2012-02-27?08:53??LR(0)語法分析器\Debug\LR0ForWin.res
?????文件??????69446??2012-02-26?18:18??LR(0)語法分析器\Debug\LR0ForWinDlg.obj
?????文件???????3646??2012-02-27?08:37??LR(0)語法分析器\Debug\Pair.obj
?????文件??????17290??2012-02-27?08:37??LR(0)語法分析器\Debug\Precept.obj
?????文件??????46213??2011-07-10?15:45??LR(0)語法分析器\Debug\ProjectSet.obj
?????文件??????25168??2011-07-10?15:45??LR(0)語法分析器\Debug\ResizingDialog.obj
?????文件??????43597??2012-02-26?22:14??LR(0)語法分析器\Debug\Set.obj
?????文件?????105573??2011-07-10?15:45??LR(0)語法分析器\Debug\StdAfx.obj
?????文件??????41336??2011-07-10?15:45??LR(0)語法分析器\Debug\TableDlg.obj
?????文件??????14107??2011-07-10?15:45??LR(0)語法分析器\Debug\TreeDlg.obj
?????文件?????345088??2012-02-27?12:20??LR(0)語法分析器\Debug\vc60.idb
?????文件?????495616??2012-02-27?10:01??LR(0)語法分析器\Debug\vc60.pdb
............此處省略45個文件信息
評論
共有 條評論
相關資源