编译原理-语法分析实验.doc

编译原理-语法分析实验.doc

ID:55719602

大小:496.00 KB

页数:30页

时间:2020-05-26

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

《编译原理-语法分析实验.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、编译原理程序设计实验报告——表达式语法分析器的设计实现班级:计算机1306班姓名:李佳泽学号:实验目标:实现表达式语法分析器的设计实现,使用递归下降子程序、LL1分析法、LR分析法,判断一个表达式是否符合某个语法。实验内容:流程图:数据结构:structNode{charcontent[30];inttype;Node*next;};建立链表用于标识符IT,常数Ct,字符存ct,字符串st,TOKEN源程序代码:1.递归调用子程序#include#include#include

2、stream>#include#includeusingnamespacestd;#defineNOTKEY50#defineiT00#definecT01#definesT02#defineCT03char*kt[5]={"int","main","void","if","char"};char*pt[18]={">=","<=","==","=",">","<","+","-","*","/","{","}",",",";","(",")","[","]"};intTy=3;intd

3、d=0;charvn[]={'E','e','T','t','F'};charvt[]={'i','W','w','(',')','#'};char*right[]={"Te","WTe","","Ft","wFt","","i","(E)"};intseekkt(char*TOKEN){for(inti=0;i<5;i++){if(strcmp(TOKEN,kt[i])==0){returni+4;}}returnNOTKEY;}intseekpt(char*TOKEN){for(inti=0;i<18;i++){if

4、(strcmp(TOKEN,pt[i])==0){returni+10;}}return-1;}intmain(){intTOHN();intintN();intscan();intRight();intprint();TOHN();intN();scan();if(dd==0){cout<s;structNode{charcontent[30];inttype;Node*n

5、ext;};Node*itHead;Node*CtHead;Node*ctHead;Node*stHead;Node*TOHead;Node*pp;voidE();voidT();voidF();voidTOHN(){TOHead=newNode();strcpy(TOHead->content,"");TOHead->type=0;TOHead->next=NULL;}voidsetTON(char*content,inttype){Node*p=TOHead;Node*temp=newNode();while(p->

6、next!=NULL){p=p->next;}strcpy(temp->content,content);temp->type=type;temp->next=NULL;p->next=temp;}//初始化所有表头结点voidintN(){itHead=newNode();strcpy(itHead->content,"");itHead->type=iT;itHead->next=NULL;stHead=newNode();strcpy(stHead->content,"");stHead->type=sT;stHe

7、ad->next=NULL;CtHead=newNode();strcpy(CtHead->content,"");CtHead->type=CT;CtHead->next=NULL;ctHead=newNode();strcpy(ctHead->content,"");ctHead->type=cT;ctHead->next=NULL;}//创建新节点voidsetN(char*content,inttype,Node*head){Node*p=head;Node*temp=newNode();intflag=0;wh

8、ile(p->next!=NULL){if(strcmp(content,p->next->content)==0){flag=1;}p=p->next;}if(flag==0){strcpy(temp->content,content);temp->type=type;temp->next=NULL;p->next

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

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

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