编译原理c语法分析器

编译原理c语法分析器

ID:21037800

大小:259.58 KB

页数:17页

时间:2018-10-19

编译原理c语法分析器_第1页
编译原理c语法分析器_第2页
编译原理c语法分析器_第3页
编译原理c语法分析器_第4页
编译原理c语法分析器_第5页
资源描述:

《编译原理c语法分析器》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、课程设计报告课程名称:课程设计题目:姓名:系:专业:年级:学号:指导教师:职称:编译原理语法分析器计算机计算机科学与技术2009级2010〜2011学年第一学期评语:成缋:指导教师签字:任务下达円期:评定日期:1正则表达式11.1正则表达式11.2确定化(化简)后的状态转挽图11.3分析程序代码11.4程序运行截图41.5/J、@42LL(1)分析52.1I丄(1)文法52.2LL(1)预测分析表52.3分析程序代码52.4程序运行截图72.5吉73算符优先分析83.1算符优先文法83.2算符优先关系表83.3分

2、析程序代码83.4程序运行截图103.5/J、@114LR射斤124.1LR文法124.2LR分析表124.3分析程序代码124.4程序运行截图112小结114参考文献:114//返回c状态的在邻接表中的序号//向字母表集合巾添加表中没有的新元素//初始化Visited集合//求单一状态c的e-闭包//重载的状态集合的e-闭包//单一状态I的a弧转换//重载的状态集合的a弧转换//Visited转换为集合//向状态集合屮添加新元素//状态矩阵T中加入新状态集合1正则表达式1.1正则表达式(a

3、b”(aa

4、bb)(

5、a

6、b)*(注:该正规式为示例,可更改)1.2确定化(化简)后的状态转换图^include〈iostream〉^include〈string〉usingnamespacestd;constintMax=20;typedefstructArcNode{intadjvex;//该弧所指向的顶点的位置charinfo;//权structArcNode*nextare;//指向下一条弧的指针}ArcNode;typedefstructVNode{chardata;//顶点信息ArcNode*firstarc;//指向第一

7、条依附该顶点的弧的指针}VNode;classNfa(1public:Nfa();//构造函数,初始化nfaintFindAdj(charc);voidAlpAdd(charc);voidInitVisit();voideclosure(intindex);voide_closure(inta[]);voidmove(intI,chara);voidmove(intT[],chara);voidNfa::Visit_I(int本Temp);voidInsert(int1[],inta);intTAdd(intI口

8、);voidResault(inti);voidNfaDfa();//状态数//状态子集矩阵//nfa,邻接表的数据结构存储//dfa//存闭包结果//字母表,0号单元用于存放个数private:intK;intT[Max][Max];VNodeAdjList[Max];VNodeDfa[Max];boolVisited[Max];charAlp[Max];};Nfa::Nfa(){K=Alp[0]=0;charc;stringline;ArcNode*p;while(cin〉〉c&&c!=’#’){AdjLis

9、t[K].data=c;AdjList[K].firstarc=ncwArcNode;AdjList[K].firstarc->nextarc=NULL;K++;}getline(cin,line);while(getline(cin,1ino)&&line!=〃#〃){intindex=FindAdj(line[0]);if(index!=-l){p=AdjList[index].firstare;while(p-〉nextarc)p二p-〉nextarc;p->nextarc=newArcNode;p-〉ne

10、xtarc-〉nextarc=NULL;p->nextarc->adjvex=EindAdj(line[4]);p->nextarc~>info=line[2];AlpAdd(p-〉nextarc-〉info);}}cout<〈〃〃<〈endl;cout<

11、out〈<〃L={";for(inti=l;i<(int)Alp[0];i++)cout〈〈Alp[i]<<〃,’';cout〈〈Alp[Alp[0]]〈<"}.〃〈

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

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

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