资源简介
LR(0)文法分析器(LR (0) grammar parser)对于实现整个编译器而言,语法分析器是整个过程的核心部分,同时对构造整个编译器起到了关键作用,对程序的进一步扩展,以后有机会涉及对编译器的编写而言,将会是很容易便上手,当然,对于复杂的文法,复杂的语言而言,需要对文法的识别进一步扩展
代码片段和文件信息
// 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 < m_input.GetLength(); 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 步骤&
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 121 2002-05-24 00:50 Copy of LR0ForWin\1.txt
文件 115 2002-05-24 16:12 Copy of LR0ForWin\2.txt
文件 98 2002-05-26 23:24 Copy of LR0ForWin\3.txt
文件 123 2002-05-26 22:38 Copy of LR0ForWin\4.txt
文件 155 2002-05-26 23:35 Copy of LR0ForWin\5.txt
文件 8490 2010-01-01 21:12 Copy of LR0ForWin\AnalyzeDlg.cpp
文件 1917 2002-05-25 00:57 Copy of LR0ForWin\AnalyzeDlg.h
文件 166772 2010-01-01 23:53 Copy of LR0ForWin\Debug\AnalyzeDlg.obj
文件 0 2010-01-01 23:53 Copy of LR0ForWin\Debug\AnalyzeDlg.sbr
文件 64038 2009-12-23 12:11 Copy of LR0ForWin\Debug\explorer.obj
文件 0 2009-12-23 12:11 Copy of LR0ForWin\Debug\explorer.sbr
文件 3609 2009-12-23 12:11 Copy of LR0ForWin\Debug\GoData.obj
文件 0 2009-12-23 12:11 Copy of LR0ForWin\Debug\GoData.sbr
文件 186803 2010-01-05 21:17 Copy of LR0ForWin\Debug\Grammar.obj
文件 0 2010-01-05 21:17 Copy of LR0ForWin\Debug\Grammar.sbr
文件 3859456 2010-01-05 21:18 Copy of LR0ForWin\Debug\LR0ForWin.bsc
文件 233605 2010-01-05 21:18 Copy of LR0ForWin\Debug\LR0ForWin.exe
文件 757932 2010-01-05 21:18 Copy of LR0ForWin\Debug\LR0ForWin.ilk
文件 15940 2010-01-04 23:32 Copy of LR0ForWin\Debug\LR0ForWin.obj
文件 6870840 2009-12-23 12:11 Copy of LR0ForWin\Debug\LR0ForWin.pch
文件 852992 2010-01-01 23:53 Copy of LR0ForWin\Debug\LR0ForWin.pdb
文件 4720 2010-01-01 10:54 Copy of LR0ForWin\Debug\LR0ForWin.res
文件 0 2010-01-04 23:32 Copy of LR0ForWin\Debug\LR0ForWin.sbr
文件 69902 2010-01-01 23:53 Copy of LR0ForWin\Debug\LR0ForWinDlg.obj
文件 0 2010-01-01 23:53 Copy of LR0ForWin\Debug\LR0ForWinDlg.sbr
文件 4222 2010-01-01 23:53 Copy of LR0ForWin\Debug\Pair.obj
文件 0 2010-01-01 23:53 Copy of LR0ForWin\Debug\Pair.sbr
文件 17884 2010-01-01 23:17 Copy of LR0ForWin\Debug\Precept.obj
文件 0 2010-01-01 23:17 Copy of LR0ForWin\Debug\Precept.sbr
文件 46921 2010-01-01 23:53 Copy of LR0ForWin\Debug\ProjectSet.obj
............此处省略58个文件信息
- 上一篇:毕业论文必备大量精美PPT模板
- 下一篇:RDLC报表使用手册
相关资源
-
编译原理课程实验常州工学院,比较
-
编译原理教材清华大学版答案
-
编译原理_Tiny+语法分析
-
编译原理综合课程设计
-
编译原理课后习题答案 清华大学 第二
-
编译原理课件_本科版
-
川大编译原理PPT-2017
-
编译原理课程设计
-
编译原理-Oberon-0逆向工程工具ROSE.ra
-
上海大学计算机编译原理PPT
-
编译原理期末考试题
-
编译原理四元式生成
-
布尔表达式的递归下降翻译程序设计
-
编译原理_第二版_李文生.pdf
-
清华大学编译原理decaf实验pa1
-
广东工业大学编译原理课程设计
-
编译原理课程设计源代码和超强报告
-
编译原理习题答案
-
编译原理赋值语句的翻译
-
编译原理课件 北邮
-
北邮编译原理实验二:语法分析程序
-
西电 编译原理上级报告
-
词法分析器+语法分析器+中间代码生成
-
编译原理 王生原老师答案和资料
-
编译原理-学习指导与典型题解析高清
-
编译原理---简易C编译器 生成汇编语言
-
词法分析程序和语法分析程序 编译原
-
编译原理_清华_吕映芝
-
西电编译原理上机
-
编译原理张晶版答案
评论
共有 条评论