LR语法分析器北邮编译原理实验.doc

LR语法分析器北邮编译原理实验.doc

ID:61826204

大小:22.06 KB

页数:21页

时间:2020-02-06

LR语法分析器北邮编译原理实验.doc_第1页
LR语法分析器北邮编译原理实验.doc_第2页
LR语法分析器北邮编译原理实验.doc_第3页
LR语法分析器北邮编译原理实验.doc_第4页
LR语法分析器北邮编译原理实验.doc_第5页
资源描述:

《LR语法分析器北邮编译原理实验.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、....../*******************************************************************************Title(c++):LR语法分析器.cppAuthor:volantfishnum:10211xxxClass:2010211309Date:2012.11(volantfish)Introduction:Version:*****************************************************************

2、**************/#include#include#include#include#include#include#include#includeusingnamespacestd;.专业专注.......//#defineDEBUG_//枚举常量:用来表示LR分析表中表项的状态enumformStyle{SHIFT,REDUCE,ACCEPT,GOTO,ERROR};//theel

3、ementofresultoflexicalanalysisclassWordEle{public:WordEle():style(-1),real("init"){}WordEle(intst,stringre):style(st),real(re){}intstyle;//thestringreal;//};//theelementoftheformclassformEle{public:formStylestyle;//enum.专业专注.......intnum;//thenumberofproduction.}

4、;//theelementofstackclassstackEle{public:stackEle():state(-1),ch(-1){}stackEle(intst,intc):state(st),ch(c){}intstate;//thenumberofstate.intch;//thenumberofcharacter.};/*Globalvariable*/mapcharNum;//char->numbervectornumChar;//number->charvecto

5、rproListL;//theleftsideofproductionsvector>proListR;//therightsideofproductionsvectorwordList;//thelistofresultoflexicalanalysismap,formEle>form;//theactionandgotoform.专业专注......./***Description:打印此刻的分析动作*Arguments:输入此刻分析表的

6、一个元素*Returns:用string表示的分析动作*/stringPrintOption(constformEle&formTemp){stringoutput;charcharTemp[100];//装门用于atoi()函数的参数,没有其他作用if(formTemp.style==SHIFT){output+="Shift";output+=itoa(formTemp.num,charTemp,10);}else{if(formTemp.style==REDUCE){output+="Reducedby";outp

7、ut+=numChar.at(proListL.at(formTemp.num));output+="->";.专业专注.......vectorvecTemp=proListR.at(formTemp.num);for(vector::iteratori=vecTemp.begin();i!=vecTemp.end();++i){output+=numChar.at(*i);}}else{if(formTemp.style==ACCEPT){output="acc";}}}returnoutput;

8、}/***Description:打印未处理的输入串.专业专注.......*Arguments:输入字符串的迭代器,指向正在处理的字符*Returns:未处理的输入串*/stringPrintInput(vector::const_iteratoriterWord){stringoutput;fo

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。