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

資源簡介

一:實(shí)驗(yàn)內(nèi)容: 編寫語法分析程序,實(shí)現(xiàn)對(duì)算術(shù)表達(dá)式的語法分析,要求所分析的算術(shù)表達(dá)式由如下的文法產(chǎn)生。 ◆E->E+T|E-T|T ◆T->T*F|T/F|F ◆F->id|(E)|num 二:實(shí)驗(yàn)要求: 在對(duì)表達(dá)式進(jìn)行分析的同時(shí),輸出所采用的產(chǎn)生式。 可以采用多種方法 ◆編寫遞歸調(diào)用程序,實(shí)現(xiàn)自頂向下的分析。 ◆編寫LL(1)語法分析程序,要求: ◇編程實(shí)現(xiàn)算法4.2,為給定的文法自動(dòng)構(gòu)造預(yù)測分析表 ◇編程實(shí)現(xiàn)算法4.1,構(gòu)造LL(1)預(yù)測分析程序, ◆編寫語法分析程序,實(shí)現(xiàn)自底向上的分析,要求: ◇構(gòu)造識(shí)別所有活前綴的DFA ◇構(gòu)造LR分析表 ◇編程實(shí)現(xiàn)算法4.3,構(gòu)造LR分析程序 ◆利用yacc自動(dòng)生成語法分析程序,調(diào)用LEX自動(dòng)生成的詞法分析器程序

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#define?PRO_NUM?11??//產(chǎn)生式個(gè)數(shù)?
#define?PRO_MAXLEN?8??//產(chǎn)生式最大長度?
#define?TER_NUM?9??//終結(jié)符個(gè)數(shù)?
#define?UNTER_NUM?5??//非終結(jié)符個(gè)數(shù)
#define?F_MAXLEN?8??//FIRST集和FOLLOW集的大小?
#define?STR_MAXLEN?50??//待分析的輸入表達(dá)式的最大長度?
#define?IDNUM_MAXLEN?10??//待分析的輸入表達(dá)式中id和num的的最大長度?
#define?ERROR?-1??//分析表項(xiàng)為空白,錯(cuò)誤入口?
#define?SYNCH?-2??//分析表項(xiàng)為同步信息synch,同步錯(cuò)誤入口?
#define?ID?1??//字母標(biāo)記?
#define?NUM?2??//數(shù)字標(biāo)記
#define?OTHER?0??//其他字符標(biāo)記?
#define?TRUE?1
#define?FALSE?0
#define?NOTFOUND?-1

typedef?int?Status;??//返回狀態(tài)類型?

using?namespace?std;

char?grammar[PRO_NUM][PRO_MAXLEN];??//文法表?
char?ter_symbol[TER_NUM];??//終結(jié)符表?
char?unter_symbol[UNTER_NUM];??//非終結(jié)符表?
char?FIRST[UNTER_NUM][F_MAXLEN];??//FIRST集
char?FOLLOW[UNTER_NUM][F_MAXLEN];??//FOLLOW集
int?M[UNTER_NUM][TER_NUM];??//LL(1)語法預(yù)測分析表
char?str[STR_MAXLEN+1];??//輸入緩沖區(qū)

deque?s;

//構(gòu)成LL(1)分析器基本函數(shù)?
void?Initial?(void);??//初始化
void?Create_Analysis?(void);??//構(gòu)造LL(1)語法預(yù)測分析表?
void?GetString?(void);??//獲取待分析輸入表達(dá)式????????????????
void?Analyse_Output?(void);??//使用LL(1)語法預(yù)測分析表分析輸入的表達(dá)式并輸出分析結(jié)果

//LL(1)分析器輔助函數(shù)?
int?GetStrLen?(void);??//獲取輸入表達(dá)式的長度?
Status?Judge_Ter?(char?ch);??//判斷字符ch是否為終結(jié)符?
Status?Judge_Unter?(char?ch);??//判斷字符ch是否為非終結(jié)符
int?Get_Ter_Num?(char?ch);??//返回終結(jié)符ch在終結(jié)符表中的下標(biāo)?
int?Get_Unter_Num?(char?ch);??//返回非終結(jié)符ch在終結(jié)符表中的下標(biāo)?
Status?In_FIRST?(char?A?char?ch);??//判斷終結(jié)符ch是否在非終結(jié)符A的FIRST集中
Status?In_FOLLOW?(char?A?char?ch);??//判斷終結(jié)符ch是否在一個(gè)非終結(jié)符A的FOLLOW集中
void?Output_Pro?(int?i);??//打印分析過程中輸出的產(chǎn)生式
void?Output_Stack?(void);??//打印當(dāng)前棧中的符號(hào)
void?Output_Buffer?(int?ip);??//打印當(dāng)前輸入緩沖區(qū)中的符號(hào)串
Status?Judge_Id?(char?ch);??//判斷字符ch是否為構(gòu)成id的字母
Status?Judge_Num?(char?ch);??//判斷字符ch是否為構(gòu)成num的數(shù)字
Status?Judge_Exceed?(void);??//判斷輸入表達(dá)式中代表id和num的子串是否超過最大長度

int?main?()
{?
????Initial();??//初始化?
????Create_Analysis();??//構(gòu)造LL(1)語法預(yù)測分析表?
????GetString();??//獲取待分析輸入表達(dá)式?
????Analyse_Output?();??//使用LL(1)語法預(yù)測分析表分析輸入的表達(dá)式并輸出分析結(jié)果
system(“pause“);
????return?0;
}

void?Initial?(void)??//初始化
{
????int?i?j;???
????s.push_back(‘$‘);
????s.push_back(‘E‘);??//初始化棧:構(gòu)造空棧,并壓入‘$‘與‘E‘?

????//設(shè)置文法表,存儲(chǔ)P代表E‘,Q代表T‘,e代表εi代表id,n代表num?
????strcpy?(grammar[0]?“E#TP#“);??//E?→TE‘
????strcpy?(grammar[1]?“P#+TP#“);??//E‘?→+TE‘
????strcpy?(grammar[2]?“P#-TP#“);??//E‘?→-TE‘
????strcpy?(grammar[3]?“P#e#“);??//E‘?→ε
????strcpy?(grammar[4]?“T#FQ#“);??//T?→FT‘
????strcpy?(grammar[5]?“Q#*FQ#“);??//T‘?→*FT‘
????strcpy?(grammar[6]?“Q#/FQ#“);??//T‘?→/FT‘?
????strcpy?(grammar[7]?“Q#e#“);??//T‘?→ε
????strcpy?(grammar[8]?“F#i#“);??//F?→id
????strcpy?(grammar[9]?“F#(E)#“);??//F?→(E)
????strcpy?(grammar[10]?“F#n#“);??//F?→num
????
????for?(i?=?0;?i?????????for?(j?=?0;?j?????????????M[i][j]?=?ERROR;???
????strcpy?(ter_symbol?“+-*/()in$“);??//初始化終結(jié)符表??
????strcpy?(unter_symbol?“EPTQF“);??//初始化非終結(jié)符表???
????
????//初始化FIRST集
????strcpy?(FIRST[0]?“(in#“);
????strcpy?(FIRST[1]?“+-e#“)

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----

?????文件??????15166??2012-12-28?19:16??語法分析程序的設(shè)計(jì)與實(shí)現(xiàn)\語法分析器方法2.cpp

?????文件??????11588??2012-12-28?21:11??語法分析程序的設(shè)計(jì)與實(shí)現(xiàn)\語法分析器方法3.cpp

?????文件??????26908??2013-01-15?13:03??語法分析程序的設(shè)計(jì)與實(shí)現(xiàn)\語法分析實(shí)驗(yàn)報(bào)告.docx

?????文件?????680042??2012-12-26?22:33??語法分析程序的設(shè)計(jì)與實(shí)現(xiàn)\語法分析程序的設(shè)計(jì)與實(shí)現(xiàn).pdf

?????目錄??????????0??2013-01-15?13:06??語法分析程序的設(shè)計(jì)與實(shí)現(xiàn)

-----------?---------??----------?-----??----

???????????????733704????????????????????5


評(píng)論

共有 條評(píng)論

相關(guān)資源