语法分析程序(c)

语法分析程序(c)

ID:44668500

大小:51.50 KB

页数:4页

时间:2019-10-24

语法分析程序(c)_第1页
语法分析程序(c)_第2页
语法分析程序(c)_第3页
语法分析程序(c)_第4页
资源描述:

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

1、跟大家分享一下:这个必须从文件读入语法#include<cstdio>#include<iostream>#include<cstdlib>#include<fstream>#include<string>#include<cmath>usingnamespacestd;structtoken//token结构体{intcode;intnum;token*next;};token*token_head5*token_tail;

2、//token队歹Ustructnumbei7/number结构体{intnum;intvalue;number*next;};number*number_head,*number_tail;//number队列structstr//string结构体{intnum;stringword;str*next;};str*string_head,*string_tail;//string队歹!Jstructivan//表达式结构体{charleft;stringright;intlen;};ivanc

3、ss[20];//20个表达式structpank//action表结构体{charsr;intstate;};pankaction[46][181;//action表intgo_to[46][11];//go_to表structike//分析栈结构体,双链ike*pre;intnum;intword;ike*next;};ike*stack_head,*stack_tail;//分析栈首尾指针voidscan();//按字符读取源文件intjudge(charch);〃判断输入字符的类型void

4、out1(charch);//,hjAtoken.txtvoidout2(charch,stringword);//^Anumber,txtvoidout3(charch,stringword);//写入string.txtvoidinput1(token气emp);〃插入结点到队列tokenvoidinput2(number*temp);//插入结点到队列numbervoidinput3(str*temp);〃插入结点到队列stringvoidoutput();//输出三个队列的内容voidou

5、tfileO;〃输出三个队列的内容到相应文件屮voidyufa_initialize();//初始化语法分析数据结构intyufa_main(inta);〃语法分析主体部分intIDl(inta);〃给输入字符编号,转化成action表列编号stringID10(inti);〃给输入字符反编号intID2(charch);〃给菲终结状态编号,转化成go_to表列编号intID20(charch);〃给非终结状态编号charID21(intj);//给非终结状态反编号voidadd(ike*temp

6、);〃给ike分析栈链表增加一个结点voiddel();〃给ike分析栈链表删除一个结点FILE*fp;〃文件intwordcount;//标志符计数intnumcount;//整型常数计数interr;//标止词法分析结果止确或错误intnl;//读取行数voidmain(){token_head=newtoken;token_head->next=NULL;token_tail=newtoken;token_tail->next=NULL;number_head=newnumber

7、;number_head->next二NULL;number_tail=newnumber;number_tail->next=NULL;string_head=newstr;string_head->next=NULL;string_tail=newstr;string_tail->next=NULL;//初始化三个队列的首尾指针wordcount=0;〃初始化字符计数器numcount=0;//初始化常数计数器err=O;〃初始化词法分析错误标志nl=l;//初始化读取

8、行数scan();if(err==O){charm;cout<<"词法分析正确完成!"<<endl<<endl<<"下边将输出结果,如果将结果保存到文件中请输入y,否则请输入其它键:";cin>>m;output();if(m=='y'){cout<<"结果同时保存在token.txtxnumber.txt和sting.txt三个文件屮,请打开查

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

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

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