• 大小: 3.39MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-09-21
  • 语言: C/C++
  • 标签: c++  (LL1)  

资源简介

这次实验是进行初步的语法分析,是基于上次词法分析器的基础上建立起来的分析程序。此次实验比较简单,只须把词法分析器的程序放进来,然后再进行函数调用即可。通过此次实验,我基本上了解了语法分析器的工作原理和功能以及实现方法。进一步学习了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 Documenttle>\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个文件信息

评论

共有 条评论