ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:55.82KB ,
资源ID:15675329      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/15675329.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(实验1词法分析实验报告Word文档下载推荐.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

实验1词法分析实验报告Word文档下载推荐.docx

1、 = = = ; ( ) #(3) 其他单词是标识符(ID)和整型常数(NUM),通过以下正规式定义:ID=letter(letter| digit)*NUM=digit digit *(4) 空格由空白、制表符和换行符组成。空格一般用来分隔ID、NUM,运算符、界符和关键字,词法分析阶段通常被忽略。2、 各种单词符号对应的别码单词符号种别码begin117if2=18then320while421do522end623letter(letter| digit)*1024digit digit *1125*13;26/14(27+1528-16#3、 词法分析程序的输入所给文法的源程序字符串。

2、输出:二元组(syn,token或sum)构成的序列。其中:syn为单词种别码;token为存放的单词自身字符串;sum为整型常数。三:代码#includestring.hiostream.hchar prog80,token8;char ch;int syn,p,m=0,n,row,sum=0;char *rwtab6=begin,ifthenwhiledoend; void scaner() for(n=0;n=a&chAZ) m=0; while(ch09 tokenm+=ch; ch=progp+; tokenm+=0 p-; syn=10; for(n=0;6;n+) if(strc

3、mp(token,rwtabn)=0) syn=n+1; break; else if(ch sum=0; while(ch sum=sum*10+ch- ch=progp+; syn=11; if(sum32767) syn=-1; else switch(ch) casem=0;tokenm+=ch; if(ch= syn=21; tokenm+=ch; else if(ch= syn=22; else syn=23; break;case syn=24; syn=20; syn=18; syn=17;*syn=13;token0=ch;break;/syn=14;+syn=15;-syn

4、=16;syn=25;syn=26;(syn=27;)syn=28;#syn=0;nsyn=-2;default: syn=-1; void main() p=0; row=1; coutPlease input string:endl; do cin.get(ch); progp+=ch; while(ch!); scaner(); switch(syn) case 11:(synsum) case -1:Error in row row! case -2: row=row+; default:token0 then x:=2*x+1/3; end#输出结果5、 源程序(包括上式未有的whi

5、le、do以及判断错误语句):beginx=$;whilea0dobch;语句得到ch值的话,给定源程序的结果第一行得到的是(10,beginx),因为得到的字符串中省略了空格,改用cin.get(ch);问题便解决了。另外,我在程序中加入了row变量,以便能够准确得到错误所在。编译原理语法分析器实验报告1、实验目的: 结合课堂上学习的理论知识,通过C+实现语法分析器,更加深入的掌握语法分析;同时也可以更加了解语法分析的原理。2、实验过程:1、设计思路:首先判断输入文法是否为算符文法,若是算符文法则构造它的FIRSTVT和LASTVT集,然后构造它的算符优先表,判断是否为算符优先文法;最后进行

6、归约。 2、实验过程中的问题: 一开始实验很生疏,很难把理论知识融汇到编程上,后来通过多次看PPT和书本内容,渐渐把握到诀窍; 不明确输入输出;这个也是通过PPT解决;和以前编其他东西很不一样,一开始不知道如何下手;通过网上的成熟代码学习了下。实验代码:stdio.htypedef struct char R; char r; int flag;array;typedef struct char E; char e;charLode; charLode *base; int top;charstack;char str8080,arr8080,brr8080;array F20;int m,k

7、k,p,ppp,FF=1;char r10;int crr2020,FLAG=0;char ccrr1120,ccrr2201;void Initstack(charstack &s)/定义栈 s.base=new charLode20; s.top=-1;void push(charstack &s,charLode w) /入栈 s.top+; s.bases.top.E=w.E; s.bases.top.e=w.e;void pop(charstack &s,charLode &w) /出栈 w.E=s.bases.top.E; w.e=s.bases.top.e; s.top-;int IsEmpty(charstack s) /判断是否到栈顶 if(s.top=-1) return 1; else return 0;int IsLetter(char ch) /判断是不是大写字母(非终结符) if(ch/judge1是判断是否是算符文法:若产生式中含有两个相继的非终结符则不是算符文法int judge1(int n) int j=3,flag=0; for(int i=0;in) cout文法G是算符优先文法!/search1是查看存放终结符的数组r中是否含有重复的终结符int s

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1