语法分析源代码

语法分析源代码

ID:44668398

大小:235.45 KB

页数:16页

时间:2019-10-24

语法分析源代码_第1页
语法分析源代码_第2页
语法分析源代码_第3页
语法分析源代码_第4页
语法分析源代码_第5页
资源描述:

《语法分析源代码》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、#include#ineludeusingnamespacestd;//**************************************************************************************************classGrammar{public:Grammar();Grammar(constGrammar&);//复制构造函数Grammar&operator=(constGrammar&);//赋值函数friendostream&operatorvv

2、(ostream&output,constGrammar&rs)〃输出文法{output«"结终符:"«rs.zhong«endl;output«"非结终符:"«rs.fei«endl;output«"文法内容(共"«rs.number«"条):"vvendl;inti=0;while(i

3、l;outputvv啡终结符ttFIRST集合ttFOLLOW集合"«endl;for(unsignedintj=O;j

4、=O;j

5、input,Grammar&rs)//输入文法{unsignedintj=0;cout«"请输入文法:"«endl;cout«,'(请按文法次序输入,使用推导符“・>蔦每一句一行撮后一行请以#开头,£'使用s'表示!每一行一条文法句。)"«endl;while(l){unsignedinti=0;input»rs.end;rs.content[j++]=rs.end;if(rs.end[O]=='#')break;rs.fei.append(l,rs.end[0]);while(i

6、

7、'

8、

9、rs.end[i]==,A,);elseif(i==l11i==2)i++;elseif(rs.end[i]!=rs.end[0])rs.zhong.append(l,rs.end[i]);i++;}}rs.number=j-l;//记录文法长度rs.Checkstr(rs.fei);rs.Checkstr(rs.zhong);for(intm=O;m

10、rs.FirstAndFollow();rs.CreateTable();returninput;}intFindid(char);//在文法中查找某个非终结符intCheck();//检查文法的正确性stringCheckstr(string&);//去除字符串中重复字符stringDelchar(char,string&);//去除字符中某个字符intFindchar(char,string&);//查找字符中是否存在某个字符:可用string::find(...)intStrNum(conststring&);//计算字符串有多少个产生式c

11、harRandChar();〃随机产生一个大写字母,为非终结符stringGetSubfint,conststring&,char);/

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

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

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