91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 6.69MB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2023-03-18
  • 語言: C/C++
  • 標簽:

資源簡介

這是我用VC6.0(用了MFC類庫)編寫的一個集詞法分析、語法分析為一體的程序,是我編譯原理課程設計的拙作!壓縮包里包括源代碼、測試數據,可執行文件打包,安裝文件打包,課程設計文檔,程序使用說明和數據規范說明一應俱全。要花的分是多點,但是對需要的人超值,看你有沒有眼光了!

資源截圖

代碼片段和文件信息

//?AnalyzeTable.cpp:?implementation?of?the?AnalyzeTable?class.
//
//////////////////////////////////////////////////////////////////////

#include?“stdafx.h“
#include?“LRCompiler.h“
#include?“AnalyzeTable.h“
#include?
using?namespace?std;

#ifdef?_DEBUG
#undef?THIS_FILE
static?char?THIS_FILE[]=__FILE__;
#define?new?DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
//?Construction/Destruction
//////////////////////////////////////////////////////////////////////
//單詞編碼定義
const?char*?CAnalyzeTable::m_pErrorDescribe[]={
/*0*/ ????“沒有文法數據“
/*1*/ “終結符的開始標識錯誤“
/*2*/ “非終結符的開始標識錯誤“
/*3*/ “開始符號的開始標識錯誤“
/*4*/ “產生式的開始標識錯誤“
/*5*/ “產生式的書寫格式錯誤“
/*6*/ “集合的開始標識錯誤“
/*7*/ “開始符號不能不在非終結符集中“
/*8*/ “產生式的集合不能為空“
/*9*/???????“不能有既是終結符又是非終結符的符號“
/*10*/??????“產生式的左部有不合法的字符“
/*11*/??????“產生式的右部有不合法的字符“
/*12*/??????“文法中不允許包含空產生式“
};
CAnalyzeTable::CAnalyzeTable()
{
//指針變量初始化
m_pStrErrorList?=?new?StrTokenNode;
m_pStrErrorList->str.Empty();
m_pStrErrorList->next?=?NULL;
m_pStrTokenHead?=?NULL;
m_pTable?=?NULL;
}

CAnalyzeTable::~CAnalyzeTable()
{
}
void?CAnalyzeTable::Init()
{
????//一般變量初始化
strcpy(m_str““);
m_boolLegal?=?true;??//文法的輸入格式是否合法有錯誤就置false
m_isLR0Legal?=?true;?//文法是否合法的LR(0)文法有沖突就置false
m_nFinal=0;??//終結符個數?
m_nNotFinal=0;??//非終結符個數
m_nPrecept=0;???//產生式個數
m_nProjectSet=0;???//LR(0)項目個數
}
/**分析過程主調函數
*
*?@pram?buf?源代碼緩存區
*?@return???結果所存儲的文件名
*/
void?CAnalyzeTable::RunAnalyze(char?*buf)
{
Init();
????if(m_pStrTokenHead?&&?m_pStrErrorList->next?&&?m_pTable)
????Dispose();//釋放上次調用時申請的資源

::strcpy(m_strbuf);

this->m_wordCompiler.RunMorpheme(m_str);
????m_pStrTokenHead?=?this->m_wordCompiler.GetStrToken();

/*/for?test

????PStrTokenNode?node?=?m_pStrTokenHead;
????while(node)
{
str?+=?node->str;
str?+=?“\n\t“;
node?=?node->next;
}*/

//組織數據并查錯
????if(!FormData())//?組織數據文法輸入格式是否是合法的
{
m_boolLegal?=?false;
}
else
{
if(!GrammerCheck())//對文法進行簡單的集合間沖突的檢查
{
m_boolLegal?=?false;
}
}
//進行LR(0)分析
if(IsLegal())//格式合法
GenerateLR0Table();?
}

void?CAnalyzeTable::SetStart(CString?strStart)
{
m_strStart?=?strStart;
}

bool?CAnalyzeTable::AddFinal(CString?strFinal)
{
//bool?Set::Insert(CString?istr)//如果沒有就插入,有了就不插入
????return?m_setFinal.Insert(strFinal);
}

bool?CAnalyzeTable::AddNotFinal(CString?strNotFinal)
{
return?m_setNotFinal.Insert(strNotFinal);
}

void?CAnalyzeTable::AddPrecept(PStrTokenNode?strTokenHead)
{
PStrTokenNode?strToken?=?strTokenHead;
//while(strToken->str?!=?“.“?&&?strToken->next)

}
//對開始符號,終結符集非終結符集和產生式集進行組織
bool?CAnalyzeTable::FormData()
{
if(!m_pStrTokenHead->next)
{
AddError(0);
????????m_boolLegal?=?false;
????????return?false;//沒有數據
}

????//將token形式的數據進行有效的組織
PStrTokenNode?token?=?m_pStrTokenHead->next;
int?intSetType;
while(token)
{
//for?test
//MessageBox(NUL

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????目錄??????????0??2007-03-17?11:34??040410606-李文凱(LRCompiler?1.0版)

?????文件?????395264??2007-03-17?11:32??040410606-李文凱(LRCompiler?1.0版)\LRCompiler?1.0版文檔報告.doc

?????目錄??????????0??2007-03-17?10:51??040410606-李文凱(LRCompiler?1.0版)\LRCompiler安裝程序

?????文件????????108??2007-03-16?20:57??040410606-李文凱(LRCompiler?1.0版)\LRCompiler安裝程序\DATA.TAG

?????文件????3357853??2007-03-16?20:57??040410606-李文凱(LRCompiler?1.0版)\LRCompiler安裝程序\data1.cab

?????文件???????4557??1997-05-30?11:31??040410606-李文凱(LRCompiler?1.0版)\LRCompiler安裝程序\lang.dat

?????文件????????353??2007-03-16?20:57??040410606-李文凱(LRCompiler?1.0版)\LRCompiler安裝程序\layout.bin

?????文件????????417??1997-05-06?14:15??040410606-李文凱(LRCompiler?1.0版)\LRCompiler安裝程序\os.dat

?????文件??????82278??1997-04-16?01:46??040410606-李文凱(LRCompiler?1.0版)\LRCompiler安裝程序\setup.bmp

?????文件??????59904??1997-11-19?16:09??040410606-李文凱(LRCompiler?1.0版)\LRCompiler安裝程序\SETUP.EXE

?????文件?????????73??2007-03-16?20:57??040410606-李文凱(LRCompiler?1.0版)\LRCompiler安裝程序\SETUP.INI

?????文件??????57756??2007-03-16?20:51??040410606-李文凱(LRCompiler?1.0版)\LRCompiler安裝程序\setup.ins

?????文件?????????49??2007-03-16?20:57??040410606-李文凱(LRCompiler?1.0版)\LRCompiler安裝程序\setup.lid

?????文件?????????30??2007-03-16?21:01??040410606-李文凱(LRCompiler?1.0版)\LRCompiler安裝程序\sn.txt

?????文件?????300178??1997-11-19?16:05??040410606-李文凱(LRCompiler?1.0版)\LRCompiler安裝程序\_INST32I.EX_

?????文件???????8192??1997-11-19?16:05??040410606-李文凱(LRCompiler?1.0版)\LRCompiler安裝程序\_ISDEL.EXE

?????文件??????11264??1997-11-19?16:08??040410606-李文凱(LRCompiler?1.0版)\LRCompiler安裝程序\_setup.dll

?????文件?????186563??2007-03-16?20:57??040410606-李文凱(LRCompiler?1.0版)\LRCompiler安裝程序\_sys1.cab

?????文件??????45196??2007-03-16?20:57??040410606-李文凱(LRCompiler?1.0版)\LRCompiler安裝程序\_user1.cab

?????目錄??????????0??2007-03-17?10:51??040410606-李文凱(LRCompiler?1.0版)\可執行文件

?????文件?????674304??2004-08-04?08:52??040410606-李文凱(LRCompiler?1.0版)\可執行文件\advapi32.dll

?????文件?????611328??2004-08-04?08:52??040410606-李文凱(LRCompiler?1.0版)\可執行文件\comctl32.dll

?????文件?????280064??2005-12-29?10:56??040410606-李文凱(LRCompiler?1.0版)\可執行文件\gdi32.dll

?????文件????1144832??2006-07-05?18:56??040410606-李文凱(LRCompiler?1.0版)\可執行文件\kernel32.dll

?????文件?????327680??2007-03-16?21:03??040410606-李文凱(LRCompiler?1.0版)\可執行文件\LRCompiler.exe

?????文件????1028096??2004-08-04?08:52??040410606-李文凱(LRCompiler?1.0版)\可執行文件\mfc42.dll

?????文件?????413696??2004-08-04?08:52??040410606-李文凱(LRCompiler?1.0版)\可執行文件\msvcp60.dll

?????文件?????343040??2004-08-04?08:52??040410606-李文凱(LRCompiler?1.0版)\可執行文件\msvcrt.dll

?????文件?????591360??2004-08-04?08:52??040410606-李文凱(LRCompiler?1.0版)\可執行文件\ntdll.dll

?????文件?????581120??2004-08-04?08:52??040410606-李文凱(LRCompiler?1.0版)\可執行文件\rpcrt4.dll

............此處省略111個文件信息

評論

共有 條評論

相關資源