资源简介
LL1文法分析器 模拟LL1文法分析过程
实现功能:1.文法的输入、表示及转化模块。2.求每个非终结符FIRST 集FOLLOW集和SELECT集模块。3.预测分析表的构建模块。4.文法的检验及消除左公因子和左递归模块。5.对输入终结符串的判断,是否为LL1文法,并进一步分析。
代码片段和文件信息
// Dialog1.cpp : implementation file
//
#include “stdafx.h“
#include “LL1_Grammar.h“
#include “Dialog1.h“
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDialog1 dialog
CDialog1::CDialog1(CWnd* pParent /*=NULL*/)
: CDialog(CDialog1::IDD pParent)
{
//{{AFX_DATA_INIT(CDialog1)
//}}AFX_DATA_INIT
}
void CDialog1::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDialog1)
DDX_Control(pDX IDC_PEDIT m_pedit);
DDX_Control(pDX IDC_VTLIST m_vtlist);
DDX_Control(pDX IDC_VTEDIT m_vtedit);
DDX_Control(pDX IDC_VNLIST m_vnlist);
DDX_Control(pDX IDC_VNEDIT m_vnedit);
DDX_Control(pDX IDC_STARTEDIT m_startedit);
DDX_Control(pDX IDC_PLIST m_plist);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDialog1 CDialog)
//{{AFX_MSG_MAP(CDialog1)
ON_BN_CLICKED(IDC_EXIT OnExit)
ON_BN_CLICKED(IDC_VNADD OnVnadd)
ON_BN_CLICKED(IDC_VNDEL OnVndel)
ON_BN_CLICKED(IDC_VNCLR OnVnclr)
ON_BN_CLICKED(IDC_VTADD OnVtadd)
ON_BN_CLICKED(IDC_VTDEL OnVtdel)
ON_BN_CLICKED(IDC_VTCLR OnVtclr)
ON_BN_CLICKED(IDC_PADD OnPadd)
ON_BN_CLICKED(IDC_PDEL OnPdel)
ON_BN_CLICKED(IDC_PCLR OnPclr)
ON_BN_CLICKED(IDC_SAVE OnSave)
ON_BN_CLICKED(IDC_IMPORT OnImport)
ON_BN_CLICKED(IDC_EXIT OnExit)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDialog1 message handlers
void CDialog1::OnExit()
{
// TODO: Add your control notification handler code here
//CDialog1::OnCancel();
AfxGetMainWnd()->SendMessage(WM_CLOSE);
}
void CDialog1::OnVnadd() //添加非终结符
{
// TODO: Add your control notification handler code here
CString string;
m_vnedit.GetWindowText(string);
if(string.GetLength()!=1)
MessageBox(“您输入的非终结符有误,请检查!““错误“ MB_OK | MB_IConstop);
else
{
if((m_vnlist.FindStringExact(-1 string) == LB_ERR) && (string!=““))
m_vnlist.AddString(string);
}
m_vnedit.SetFocus();
m_vnedit.SetSel(0 -1);
}
void CDialog1::OnVndel() //删除非终结符
{
// TODO: Add your control notification handler code here
int iPos;
if ((iPos = m_vnlist.GetCurSel()) != LB_ERR)
m_vnlist.DeleteString(iPos);
m_vnedit.SetFocus();
m_vnedit.SetSel(0 -1);
}
void CDialog1::OnVnclr() //清空非终结符集合
{
// TODO: Add your control notification handler code here
m_vnlist.ResetContent();
m_vnedit.SetWindowText(““);
m_startedit.SetWindowText(““);
}
void CDialog1::OnVtadd() //添加终结符
{
// TODO: Add your control notification handler code here
CString string;
m_vtedit.GetWindowText(string);
if(string.GetLength()!=1)
MessageBox(“您输入的终结符有误,请检查!““错误“ MB_OK | MB_IConstop);
else
{
if((m_vtlist.FindStringExact(-1 string) == LB_ERR) && (string!=““))
m_vtlist.AddString(string);
}
m_vtedit.SetFocus();
m_vtedit.SetSel(0 -1);
}
void CDia
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 474598 2012-08-31 00:10 LL1_Grammar\0.bmp
文件 2359350 2012-08-30 22:08 LL1_Grammar\1.bmp
文件 2359350 2012-08-30 22:08 LL1_Grammar\2.bmp
文件 2359350 2012-08-30 22:08 LL1_Grammar\3.bmp
文件 2359350 2012-08-30 22:08 LL1_Grammar\4.bmp
文件 2359350 2012-08-30 22:08 LL1_Grammar\5.bmp
文件 2359350 2012-08-30 22:08 LL1_Grammar\6.bmp
文件 39664 2012-08-31 13:16 LL1_Grammar\Debug\Dialog1.obj
文件 0 2012-08-24 17:30 LL1_Grammar\Debug\Dialog1.sbr
文件 36013 2012-08-31 05:05 LL1_Grammar\Debug\Dialog2.obj
文件 39736 2012-08-31 05:07 LL1_Grammar\Debug\Dialog3.obj
文件 143356 2012-08-31 05:12 LL1_Grammar\Debug\Dialog4.obj
文件 62754 2012-08-30 16:55 LL1_Grammar\Debug\explorer1.obj
文件 179969 2012-09-02 09:32 LL1_Grammar\Debug\Grammar.obj
文件 0 2012-08-24 17:30 LL1_Grammar\Debug\Grammar.sbr
文件 34042 2012-08-31 05:12 LL1_Grammar\Debug\GrammarDlg.obj
文件 15266 2012-08-31 00:55 LL1_Grammar\Debug\InstructionDlg.obj
文件 3458048 2012-08-24 17:30 LL1_Grammar\Debug\LL1_Grammar.bsc
文件 245823 2012-09-02 09:32 LL1_Grammar\Debug\LL1_Grammar.exe
文件 497972 2012-09-02 09:32 LL1_Grammar\Debug\LL1_Grammar.ilk
文件 14186 2012-08-24 17:30 LL1_Grammar\Debug\LL1_Grammar.obj
文件 7065680 2012-08-24 17:30 LL1_Grammar\Debug\LL1_Grammar.pch
文件 836608 2012-09-01 09:43 LL1_Grammar\Debug\LL1_Grammar.pdb
文件 6108 2012-08-31 05:12 LL1_Grammar\Debug\LL1_Grammar.res
文件 0 2012-08-24 17:30 LL1_Grammar\Debug\LL1_Grammar.sbr
文件 71192 2012-08-31 05:12 LL1_Grammar\Debug\LL1_GrammarDlg.obj
文件 0 2012-08-24 17:30 LL1_Grammar\Debug\LL1_GrammarDlg.sbr
文件 17120 2012-08-27 22:28 LL1_Grammar\Debug\Precept.obj
文件 0 2012-08-24 17:30 LL1_Grammar\Debug\Precept.sbr
文件 28311 2012-08-31 00:58 LL1_Grammar\Debug\RelationDlg.obj
............此处省略64个文件信息
- 上一篇:vc++6.0中文版支持win7
- 下一篇:MFC获取主机名,IP地址,MAC地址
相关资源
- 词法分析代码内有报告
- 编译原理LL1文法的mfc实现含消除左递
- 编译原理词法分析实验
- pl/0语言的编译器
- C++实现编译原理自动机、LL1文法、及
- 编译原理语义分析程序 c++实现
- 编译原理 课程设计 DAG 报告+源码C++版
- 编译原理课程设计----语法分析器(
- 编译原理简单的编译器源码
- C语言实现一个编译器-编译原理南开大
- 编译原理课程实验报告词法分析器及
- 编译原理与技术李文生:LR分析法C+
- C语言简化编译器前端 编译原理 LR1
- C-Minus编译器 编译原理实验
- LL1文法
- 现代编译原理C语言描述-高清-完整目
- TINY扩充语言的语法分析(实现 while、
- 编译原理课程设计词法语法分析器
- 编译原理课程设计整个项目和报告
- 编译原理LL1语法分析器C++版源代码
- 编译原理之算符优先算法-迭代法
- 编译原理词法分析器实验报告含源代
- 编译原理词法分析器C++版源代码
- 现代编译原理-c语言描述虎书
- 合工大编译原理实验报告
- LL1文法消除左递归编译原理mfc实现完
- 南邮编译原理实验
- 编译原理及实践
- 编译原理LL(0)C语言小子集源代码
- 第四次上机作业 语法分析2
评论
共有 条评论