编译原理C++语法分析器.doc

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

课程设计报告

课程名称:

编译原理

课程设计题目:

语法分析器

姓名:

系:

计算机

专业:

计算机科学与技术

年级:

2009级

学号:

指导教师:

职称:

2010~2011学年第一学期

评语:

成绩:

指导教师签字:

任务下达日期:

评定日期:

目录

TOC\o1-3\h\z\u1正那么表达式 1

1.1正那么表达式 1

1.2确定化(化简)后的状态转换图 1

1.3分析程序代码 1

1.4程序运行截图 4

1.5小结 4

2LL(1)分析 5

2.1LL(1)文法 5

2.2LL(1)预测分析表 5

2.3分析程序代码 5

2.4程序运行截图 7

2.5小结 7

3算符优先分析 8

3.1算符优先文法 8

3.2算符优先关系表 8

3.3分析程序代码 8

3.4程序运行截图 10

3.5小结 11

4LR分析 12

4.1LR文法 12

4.2LR分析表 12

4.3分析程序代码 12

4.4程序运行截图 14

4.5小结 14

参考文献: 14

1正那么表达式

1.1正那么表达式

(a|b)*(aa|bb)(a|b)*(注:该正规式为例如,可更改〕

1.2确定化(化简)后的状态转换图

1.3分析程序代码

#include?iostream??

#include?string??

using?namespace?std;??

??

const?int?Max=20;?????????????????

typedef?struct?ArcNode{??

????int?adjvex;//该弧所指向的顶点的位置??

????char?info;??//权??

????struct?ArcNode?*nextarc;//指向下一条弧的指针??

}ArcNode;??

typedef?struct?VNode{??

????char?data;??????????????????//顶点信息??

????ArcNode?*firstarc;??????????//指向第一条依附该顶点的弧的指针??

}VNode;??

??

class?Nfa??

{??

public:??

????Nfa();??????//构造函数,初始化nfa??

????int?FindAdj(char?c);???????//返回c状态的在邻接表中的序号??

????void?AlpAdd(char?c);???????//向字母表集合中添加表中没有的新元素c??

????void?InitVisit();???????????//初始化Visited集合??

????void?e_closure(int?index);??//求单一状态c的e-闭包??

????void?e_closure(int?a[]);????//重载的状态集合的e-闭包??

????void?move(int?I,char?a);????//单一状态I的a弧转换??

????void?move(int?I[],char?a);??//重载的状态集合的a弧转换??

????void?Nfa::Visit_I(int?*Temp);?//Visited转换为集合??

????void?Insert(int?I[],int?a);?//向状态集合中添加新元素??

????int?TAdd(int?I[]);??????????//状态矩阵T中参加新状态集合??

????void?Resault(int?i);??

????void?Nfa_Dfa();??

private:??

????int?K;??????????????//状态数??

????int?T[Max][Max];????????//状态子集矩阵??

????VNode?AdjList[Max];?????????//nfa,邻接表的数据结构存储??

????VNode?Dfa[Max];?????????????//dfa??

????bool?Visited[Max];??????//存e-闭包结果??

????char?Alp[Max];??????//字母表,0号单元用于存放个数??

??

};??

Nfa::Nfa()??

{??

????K=Alp[0]=0;??

????char?c;??

????string?line;??

????ArcNode?*p;??

????while(cin

文档评论(0)

展翅高飞2020 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档