ImageVerifierCode 换一换
格式:PPTX , 页数:16 ,大小:160.52KB ,
文档编号:3483180      下载积分:18 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-3483180.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

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

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(三亚风情)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(试验一词法分析和语法分析课件.pptx)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

试验一词法分析和语法分析课件.pptx

1、编译器模块分解图词法分析词法分析语法分析语法分析字符字符单元单元语义分析中间代码生成机器代码生成汇编代码汇编代码概要概要v提交说明v实验任务(必做+选做)v编译环境及过程词法分析与flex语法分析与bisonv实验讲解FlexBison提交提交说明说明v地址:地址:ftp:/114.212.190.181:v用户名和密码:用户名和密码:upload uploadv格式:学号格式:学号+实验编号命名的压缩包实验编号命名的压缩包(zip/rar)如:如:121220000_lab1.rarv截止日期:截止日期:4月月12日日 晚上晚上12:00之前之前v内容:内容:源程序(ex1.,ex1.额外的

2、.c文件)可执行程序(命名为 parser)报告PDF(完成的功能点,编译步骤,实现方法,结点的数据结构表示;不超过3页)备注:可重新备注:可重新提交提交v加后缀:加后缀:121220000_lab1_1.rar 121220000_lab1_2.rar实验任务实验任务v必做:必做:(./parser test.cmm)无错误:打印语法树无错误:打印语法树识别错误类型识别错误类型1:词法错误词法错误识别识别错误错误类型类型2:语法错误语法错误v选做:选做1:两种风格的注释:/,/*/选做2:八进制数:012选做3:十六进制:0 xa,0Xa,0 xA,0XA选做4:指数形式的浮点数:1E1,0

3、1e1int main()int I=1;int j=I;Error type 1 at line 4:Mysterious character int main()float a102;int i;a5,3=1.5;if(a12=0)i=1 else i=0;Error type 2 at line 4:syntax error Error type 2 at line 5:syntax errorint inc()int i;i=i+1;编译环境及过程编译环境及过程 vGNU Flex,GNU Bison,GCC,Linux Ubuntusudo apt-get install flex

4、sudo apt-get install bisonv源文件ex1.l,ex1.y 可执行程序parserFlex:ex1.l lex.yy.cBison:ex1.y ex1.tab.cGCC:*.c parser./parser test.c/测试命令编译方法编译方法Flexex1.lex.yy.Bisonex1.ex1.tab.GCC编译命令:flex ex1.lbison -d ex1.ygcc -o parser ex1.tab.c parser-ll:lib of lex -lfl:lib of flexx -ly:lib of yaccFlex&Bison%ex1.lDeclara

5、tions#include“ex1.tab.h”%Definitions(RegEx)%Rules%subroutines(e.g)main%ex1.yDeclarations#include lex.yy.c%Definitions(%Token)%Productions%subroutinesFlex:.l文件格式文件格式%Declarations%Definitions%Rules%subroutinesFlex:一个简单的一个简单的flex程序程序test.lflex test.lgcc lex.yy.c lfl o parser./parser test.cmm commentcom

6、ment2wsIntFloatstructreturnwhileifelseintfloatid;“,“=“lineno=yylineno;yylval-type=1;yylval-tokentype=26;yylval-name=malloc(strlen(yytext)+1);strcpy(yylval-name,yytext);return ID;Bison:.y文件格式文件格式%Declarations%Definitions /优先级优先级与结合与结合性性%Productions%subroutines%right ASSIGNOP%left AND%left RELOP%left

7、PLUS MINUS%left STAR DIV%right NOT UMINUS%left DOT LB RB LP RPExp|MINUS EXP%prec UMINUSBison语法树创建与打印语法树创建与打印v多叉树的构建:多叉树的构建:Exp:ID$=createNode(1,$1);Exp:MINUS EXP$=createNode(2,$1,$2);#include struct Node*createNode(int arity,);v递归层次的前序遍历递归层次的前序遍历Bison文法符号结点的数据结构文法符号结点的数据结构v保存的信息:struct Node ;结点类型:非终

8、结符,终结符(数,标识符)结点名字:Exp,TYPE,ID所在行号:%option yylineno字符串属性值:TYPE.int,ID.lexeme数值属性值:INT,FLOAT多叉树孩子:int arity,struct Node*childrenN;/vector-(可扩展)语法解析的错误恢复产生式语法解析的错误恢复产生式vBison在当前状态对yylex()返回的token没有定义 时即发生了语法错误,调用yyerror:yyerror(char*str)printf(“syntax errorn”);vBison不断丢弃词法单元直至遇到同步 单元(例如:分号,右括号)v机制:错误恢复产生式Stmt:error SEMIWarning!任何形式的代码抄袭都是不能容忍的一旦发现,抄袭者和被抄袭者均为0分

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|