资源简介
这次实验是进行初步的语法分析,是基于上次词法分析器的基础上建立起来的分析程序。此次实验比较简单,只须把词法分析器的程序放进来,然后再进行函数调用即可。通过此次实验,我基本上了解了语法分析器的工作原理和功能以及实现方法。进一步学习了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 < m_input.GetLength(); 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语言课程设计 猜数字游戏
相关资源
-
基于VC++与OpenCV的圆心坐标提取
-
Windows编程大作业
-
Visual C++ 6.0数据库系统开发导航 光盘
-
7-ZIP源码(一款压缩软件的C++源码压缩
-
几个c++游戏源代码
-
VC++ 6.0 msdn中文版
-
OpenGL课程设计(c++)设计课程设计-三
-
c++图书馆管理系统(MFC)
-
C# VC++ BHO 源码以及教程大全
-
Gauss消去法、列主元素消去法、Dooli
-
Visual C++ 2005 Express
-
C++总结.xmind
-
用VC++写的小型FTP服务器源代码
-
VC++ 串口通信modbus协议源代码
-
C++ 实现 3DES加解密ba
se64加解密
-
C++STL库查询手册工具书,指导教程
-
VC++6.0 分布式坦克大战游戏 源码
-
基于C++的出租车管理系统
-
c++对战游戏
-
Matlab图像嵌入VC++界面的实现
-
基于MFC的VC++俄罗斯方块程序源代码
-
SMTP邮件发送MFC、VC++
-
C++网络嗅探器代码、论文均有
-
C++基础与提高-王桂林(第二版)
-
C++视频聊天
-
数据结构与程序设计--C++描述影印版
-
C++ 药品管理系统
-
c++和sql的客房管理系统
-
VC++实现WORD事件处理与报表输出功能
-
VC++实现的车牌定位与识别系统
评论
共有 条评论