资源简介
这次实验是进行初步的语法分析,是基于上次词法分析器的基础上建立起来的分析程序。此次实验比较简单,只须把词法分析器的程序放进来,然后再进行函数调用即可。通过此次实验,我基本上了解了语法分析器的工作原理和功能以及实现方法。进一步学习了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语言课程设计 猜数字游戏
相关资源
-
国际象棋的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)
评论
共有 条评论