编译原理课程第4讲.ppt_第1页
编译原理课程第4讲.ppt_第2页
编译原理课程第4讲.ppt_第3页
编译原理课程第4讲.ppt_第4页
编译原理课程第4讲.ppt_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

温故知新,2.5 词法分析器的生成器,用Lex建立词法分析器的步骤,2.5 词法分析器的生成器,Lex程序包括三个部分 声明 翻译规则 辅助过程 Lex程序的翻译规则 p1 动作1 p2 动作2 pn 动作n,2.5 词法分析器的生成器,例-声明部分 % /* 常量LT, LE, EQ, NE, GT, GE, WHILE, DO, ID, NUMBER, RELOP的定义*/ % /* 正规定义 */ delim t n ws delim+ letter A Za z digit 09 id letter(letter|digit)* number digit+( .digit+)?(E+?digit+)?,2.5 词法分析器的生成器,例-翻译规则部分 ws /* 没有动作,也不返回 */ while return (WHILE); do return (DO); id yylval = install_id ( ); return (ID); number yylval=install_num( );return (NUMBER); “ ” yylval = NE; return (RELOP); “ ” yylval = GT; return (RELOP); “ = ” yylval = GE; return (RELOP);,2.5 词法分析器的生成器,例-辅助过程部分 install_ id ( ) /* 把词法单元装入符号表并返回指针。 yytext指向该词法单元的第一个字符, yyleng给出的它的长度 */ install_num ( ) /* 类似上面的过程,但词法单元不是标识符而是数 */ ,2.5 词法分析器的生成器,int num_lines = 0, num_chars = 0; % n +num_lines; +num_chars; . +num_chars; % main() yylex(); printf(“# of lines = %d, # of chars = %dn “,num_lines,num_chars); ,上机实验例子example.l,2.5 词法分析器的生成器,hello world wo ai tian an men hello world i love,上机实验例子example.l,lex.yy. exe,# of lines = 3, # of chars = 49,本 章 要 点,非形式化描述,形式化描述,正规式,名字,连接 指数,和 LUM 连接 LM 闭包 L* 正闭包 L+,计算机实现,状态转换图,不确定有限自动机,确定有限自动机,等价,子集构造法,最简确定有限自动机,状态列举法,合并不可区别状态,手工实现,正规式语法结构,Lex,作业,1、从ftp下载“软件学院编译原理实践.zip”,阅读教程中有关PL/0词法分析器的源代码。 2、从ftp下载“lex_实验.zip”,按照 “flex 说明.txt”要求完成如下上机题(选作):,1、编写一个词法分析器,它针对输入文件,实现以下功能: 1)每遇到你的学号,就输出你的名字,对于其他的串原样输出。 2)统计输入文件中字母的数目。,例如:(以肖永跃的上机题为例): 输入文件如下所示: 200213001 hello world wo ai tian an men hello world i love 200213001,输出应该如下所示: 肖永钦 hello w

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论