資源描述:
《自下而上分析》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、自下而上分析實(shí)驗(yàn)二語法分析(自下而上分析)一、實(shí)驗(yàn)?zāi)康耐ㄟ^自C動(dòng)手編寫語法分析器,掌握上下文無關(guān)文法、推導(dǎo)的基木概念、口下而上分析方法,理解如何理論聯(lián)系實(shí)際以及明白理論與實(shí)際的差別。二、實(shí)驗(yàn)任務(wù)1.使作C/C++程序設(shè)計(jì)語言和遞歸下降子程序的方法編寫該函數(shù)的詞法分析器。要求設(shè)計(jì)一個(gè)語法分析器的測(cè)試小程序來調(diào)用R己編寫的語法分析器測(cè)試各種不同的輸入。2.語法分析的任務(wù)是在詞法分析基礎(chǔ)上,根據(jù)語言的語法規(guī)則,把語法符號(hào)分解成各類語法單位。語法分析所依據(jù)的是語言的語法規(guī)則,語法規(guī)則通常用上下文無關(guān)文法描
2、述。三、實(shí)驗(yàn)環(huán)境VC++6.0四、運(yùn)行結(jié)果五、程序?qū)崿F(xiàn)#include#inelude#ineludestructstack{stack*top;charvalue;};charpop(stack*pst){chare;if(pst->top~pst){printf(/zThestackisnull.,z);return0;else!e=pst->top->valuo;pst->top--;returne;}}voidpush(stack*ps
3、t,chare){pst->top++;pst-〉top->vedue二e;}voidprintstack(stack*pst){stack*printtemp=pst;while(printtcmp<=(pst->top)){printf(〃%c",printtemp->value);printtemp++;}}voidprintstring(stack*pst)!stack*prinltemp=(psl->t()p);while(printtemp>=pst)!printfprinttemp-
4、>value);printtemp-一;voidprintSLR(int&numbelstack*status,stack*grammar,stack*string)!printf(z/%d“,number);printstack(status);printf(““);printstack(grammar);printfC'“);printstring(strin£);printfC“);number++;intmain()Istack*string二(stack*)malloc(40);stri
5、ng->top二string;string-〉top->value=‘;stack*status二(stack*)malloc(40);status-〉top二status;status->top->value=,0,;stack*grammar^(stack*)malloc(40);grammar->top=grammar;grammar-〉top-〉value二';FILE*fp;fp二fopen("C:\fj.txt","a+");charfilestring[10][20]={,