資源簡介
這次實驗是進行初步的語法分析,是基于上次詞法分析器的基礎上建立起來的分析程序。此次實驗比較簡單,只須把詞法分析器的程序放進來,然后再進行函數調用即可。通過此次實驗,我基本上了解了語法分析器的工作原理和功能以及實現方法。進一步學習了C語言的知識。此次實驗,要解決的問題便是分析語法程序,如果正確則輸出正確,如果錯誤,分析它的錯誤并給出結果,實現了實驗的要求內容。因而,本程序算是一個比較成功的程序。

代碼片段和文件信息
//?AnalyzeDlg.cpp?:?implementation?file
//
#include?“stdafx.h“
#include?“ll1forwin.h“
#include?“AnalyzeDlg.h“
#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_Text(pDX?IDC_EDIT1?m_input);
DDX_Control(pDX?IDC_EXPLORER1?m_web);
//}}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::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;
}
}
char?szTempPath[MAX_PATH];?
char?szTempName[MAX_PATH];?
if?(m_strTempFilename?!=?““)
::DeleteFile(m_strTempFilename.c_str());
::GetTempPath(100szTempPath);
::GetTempFileName(szTempPath“LL1“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(“ 步驟 符號棧 輸入串 所用生成式 “);
stack??input;
input.push(‘#‘);
for(i?=?m_input.GetLength()?-1;?i?>=?0;?i?--)
input.push(m_input.GetAt(i));
stack??s;
s.push(‘#‘);
s.push(m_g.GetStart());
Precept?p;
bool?error?=?false;
int?iStep?=?0;
stack??st;
HTREEITEM?hRoot?=?m_pTree->m_tree.InsertItem(CString(m_g.Get
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????148??2002-05-14?19:43??LL1語法分析器3(WINDOW)\LL1ForWin\1.TXT
?????文件????????151??2002-05-14?19:43??LL1語法分析器3(WINDOW)\LL1ForWin\2.TXT
?????文件????????158??2002-05-14?19:43??LL1語法分析器3(WINDOW)\LL1ForWin\3.TXT
?????文件????????189??2002-05-14?23:21??LL1語法分析器3(WINDOW)\LL1ForWin\4.TXT
?????文件????????186??2003-12-01?11:52??LL1語法分析器3(WINDOW)\LL1ForWin\5.TXT
?????文件???????7555??2002-05-19?00:49??LL1語法分析器3(WINDOW)\LL1ForWin\AnalyzeDlg.cpp
?????文件???????1850??2002-05-19?00:47??LL1語法分析器3(WINDOW)\LL1ForWin\AnalyzeDlg.h
?????文件?????144385??2003-11-18?10:44??LL1語法分析器3(WINDOW)\LL1ForWin\Debug\AnalyzeDlg.obj
?????文件?????305538??2003-11-18?10:43??LL1語法分析器3(WINDOW)\LL1ForWin\Debug\AnalyzeDlg.sbr
?????文件??????64423??2003-11-18?10:44??LL1語法分析器3(WINDOW)\LL1ForWin\Debug\explorer1.obj
?????文件??????13361??2003-11-18?10:44??LL1語法分析器3(WINDOW)\LL1ForWin\Debug\explorer1.sbr
?????文件?????156686??2003-11-18?10:44??LL1語法分析器3(WINDOW)\LL1ForWin\Debug\Grammar.obj
?????文件?????276480??2003-11-18?10:44??LL1語法分析器3(WINDOW)\LL1ForWin\Debug\Grammar.sbr
?????文件?????217190??2003-12-01?11:38??LL1語法分析器3(WINDOW)\LL1ForWin\Debug\LL1ForWin.exe
?????文件?????443692??2003-12-01?11:38??LL1語法分析器3(WINDOW)\LL1ForWin\Debug\LL1ForWin.ilk
?????文件??????15530??2003-11-18?10:44??LL1語法分析器3(WINDOW)\LL1ForWin\Debug\LL1ForWin.obj
?????文件????7038796??2003-11-18?10:43??LL1語法分析器3(WINDOW)\LL1ForWin\Debug\LL1ForWin.pch
?????文件?????656384??2003-12-01?11:38??LL1語法分析器3(WINDOW)\LL1ForWin\Debug\LL1ForWin.pdb
?????文件???????4764??2003-12-01?11:38??LL1語法分析器3(WINDOW)\LL1ForWin\Debug\LL1ForWin.res
?????文件???????3748??2003-11-18?10:44??LL1語法分析器3(WINDOW)\LL1ForWin\Debug\LL1ForWin.sbr
?????文件??????69074??2003-11-18?10:44??LL1語法分析器3(WINDOW)\LL1ForWin\Debug\LL1ForWinDlg.obj
?????文件?????269989??2003-11-18?10:44??LL1語法分析器3(WINDOW)\LL1ForWin\Debug\LL1ForWinDlg.sbr
?????文件??????17505??2003-11-18?10:44??LL1語法分析器3(WINDOW)\LL1ForWin\Debug\Precept.obj
?????文件?????203091??2003-11-18?10:44??LL1語法分析器3(WINDOW)\LL1ForWin\Debug\Precept.sbr
?????文件??????25532??2003-11-18?10:44??LL1語法分析器3(WINDOW)\LL1ForWin\Debug\ResizingDialog.obj
?????文件???????4679??2003-11-18?10:44??LL1語法分析器3(WINDOW)\LL1ForWin\Debug\ResizingDialog.sbr
?????文件??????43976??2003-11-18?10:44??LL1語法分析器3(WINDOW)\LL1ForWin\Debug\Set.obj
?????文件??????93346??2003-11-18?10:44??LL1語法分析器3(WINDOW)\LL1ForWin\Debug\Set.sbr
?????文件?????105902??2003-11-18?10:43??LL1語法分析器3(WINDOW)\LL1ForWin\Debug\StdAfx.obj
?????文件????1371868??2003-11-18?10:43??LL1語法分析器3(WINDOW)\LL1ForWin\Debug\StdAfx.sbr
............此處省略43個文件信息
- 上一篇:OpenTSTOOL-1.2
- 下一篇:C語言課程設計 猜數字游戲
評論
共有 條評論
相關資源
-
國際象棋的qt源代碼
-
C++中頭文件與源文件的作用詳解
-
C++多線程網絡編程Socket
-
VC++ 多線程文件讀寫操作
-
利用C++哈希表的方法實現電話號碼查
-
移木塊游戲,可以自編自玩,vc6.0編寫
-
C++純文字DOS超小RPG游戲
-
算符優先語法分析器(C語言編寫)
-
VC++MFC小游戲實例教程(實例)+MFC類庫
-
連鑄溫度場計算程序(C++)
-
6自由度機器人運動學正反解C++程序
-
Em算法(使用C++編寫)
-
libstdc++-4.4.7-4.el6.i686.rpm
-
VC++實現CMD命令執行與獲得返回信息
-
白話C++(全)
-
C++標準庫第1、2
-
大數類c++大數類
-
C++語言編寫串口調試助手
-
c++素數篩選法
-
C++ mqtt 用法
-
商品庫存管理系統 C++ MFC
-
c++ 多功能計算器
-
C++17 In Detail
-
嵌入式QtC++編程課件
-
顏色識別形狀識別STM103嵌入式代碼
-
c++ 郵件多附件群發
-
c++ 透明代理(hookproxy)
-
mfc 調用redis
-
FTP客戶端源碼(c++)
-
c++ 畫圖(14Qt-XPS)