資源簡介
編譯原理課程設(shè)計First集和Follow集生成算法模擬
【問題描述】
設(shè)計一個由正規(guī)文法生成First集和Follow集并進(jìn)行簡化的算法動態(tài)模擬
【基本要求】
動態(tài)模擬算法的基本功能是:
(1) 輸入一個文法G;
(2) 輸出由文法G構(gòu)造FIRST集的算法;
(3) 輸出First集;
(4) 輸出由文法G構(gòu)造FOLLOW集的算法;
(5) 輸出FOLLOW集。
【測試數(shù)據(jù)】
輸入文法:
E->TE’
E’->+TE’|ε
T->FT’
T’->*FT’|εF->(E)|i
含有文件的讀取

代碼片段和文件信息
#include
#include?“edge.h“?
using?namespace?std;
edge::edge()
{??
// cin>>left>>right;//非終結(jié)符?產(chǎn)生式右部
}
string?edge::getlf()
{
return?left;
}
string?edge::getrg()
{
return?right;
}
string?edge::getfirst()
{
return?first;
}
string?edge::getfollow()
{
return?follow;
}
string?edge::getselect()
{
return?select;
}
string?edge::getro()
{
string?str;//ab?aS
str+=right[0];//aba
return?str;
}
int?edge::getrlen()//返回產(chǎn)生式右部長度
{
return?right.length();
}
void?edge::newfirst(string?w)//aS
{
int?i;
for(i=0;i if(first.find(w[i])>first.length())
first+=w[i];
}
void?edge::newfollow(string?w)
{
int?i;
for(i=0;i if(follow.find(w[i])>follow.length()&&w[i]!=‘*‘)
follow+=w[i];
}
void?edge::newselect(string?w)
{
int?i;
for(i=0;i if(select.find(w[i])>select.length()&&w[i]!=‘*‘)
select+=w[i];
}
void?edge::delfirst()
{
int?i=first.find(‘*‘);
first.erase(i1);
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2010-05-08?11:01??編譯原理課程設(shè)計\
?????目錄???????????0??2010-05-08?11:01??編譯原理課程設(shè)計\LL1\
?????目錄???????????0??2010-05-08?11:01??編譯原理課程設(shè)計\LL1\Debug\
?????文件??????115154??2009-06-01?10:32??編譯原理課程設(shè)計\LL1\Debug\edge.obj
?????文件???????25600??2009-06-01?10:32??編譯原理課程設(shè)計\LL1\Debug\edge.pdb
?????文件??????304128??2009-07-02?18:46??編譯原理課程設(shè)計\LL1\Debug\LL1.bsc
?????文件??????614480??2009-07-02?18:46??編譯原理課程設(shè)計\LL1\Debug\LL1.exe
?????文件??????836560??2009-07-02?18:46??編譯原理課程設(shè)計\LL1\Debug\LL1.ilk
?????文件??????440144??2009-07-03?14:31??編譯原理課程設(shè)計\LL1\Debug\LL1.obj
?????文件?????2236716??2009-07-02?15:35??編譯原理課程設(shè)計\LL1\Debug\LL1.pch
?????文件?????1164288??2009-07-02?15:35??編譯原理課程設(shè)計\LL1\Debug\LL1.pdb
?????文件??????234184??2009-07-03?14:31??編譯原理課程設(shè)計\LL1\Debug\LL1.sbr
?????文件??????123904??2009-07-03?14:31??編譯原理課程設(shè)計\LL1\Debug\vc60.idb
?????文件??????118784??2009-07-03?14:31??編譯原理課程設(shè)計\LL1\Debug\vc60.pdb
?????文件????????1042??2009-06-03?22:28??編譯原理課程設(shè)計\LL1\edge.cpp
?????文件????????3377??2009-06-01?10:32??編譯原理課程設(shè)計\LL1\edge.dsp
?????文件?????????533??2009-06-01?10:32??編譯原理課程設(shè)計\LL1\edge.dsw
?????文件?????????503??2009-06-06?01:48??編譯原理課程設(shè)計\LL1\edge.h
?????文件???????50176??2009-07-03?15:04??編譯原理課程設(shè)計\LL1\edge.ncb
?????文件???????53760??2009-07-03?15:04??編譯原理課程設(shè)計\LL1\edge.opt
?????文件????????1548??2009-06-01?10:32??編譯原理課程設(shè)計\LL1\edge.plg
?????文件????????9193??2009-07-03?14:31??編譯原理課程設(shè)計\LL1\LL1.cpp
?????文件????????3369??2009-07-01?00:26??編譯原理課程設(shè)計\LL1\LL1.dsp
?????文件?????????531??2009-06-01?11:05??編譯原理課程設(shè)計\LL1\LL1.dsw
?????文件???????58368??2009-07-03?14:54??編譯原理課程設(shè)計\LL1\LL1.ncb
?????文件???????53760??2009-07-03?14:54??編譯原理課程設(shè)計\LL1\LL1.opt
?????文件?????????674??2009-07-03?14:31??編譯原理課程設(shè)計\LL1\LL1.plg
?????文件??????????48??2009-07-03?13:22??編譯原理課程設(shè)計\LL1\wenfa.txt
?????文件??????????53??2009-07-03?13:38??編譯原理課程設(shè)計\LL1\wenfa1.txt
?????文件????????4401??2009-06-02?22:46??編譯原理課程設(shè)計\LL1\測試.txt
?????文件?????????162??2009-07-09?21:12??編譯原理課程設(shè)計\~$原理報告正文.doc
............此處省略2個文件信息
評論
共有 條評論