收藏 分享(赏)

Introduction_of_Flex.ppt

上传人:hwpkd79526 文档编号:12235515 上传时间:2021-12-04 格式:PPT 页数:13 大小:57KB
下载 相关 举报
Introduction_of_Flex.ppt_第1页
第1页 / 共13页
Introduction_of_Flex.ppt_第2页
第2页 / 共13页
Introduction_of_Flex.ppt_第3页
第3页 / 共13页
Introduction_of_Flex.ppt_第4页
第4页 / 共13页
Introduction_of_Flex.ppt_第5页
第5页 / 共13页
点击查看更多>>
资源描述

1、Introduction of Flex,概要,flex是一个用于生成扫描器的工具,扫描器可识别文本中的词法模式。 flex从给定的输入中读取有关要生成的扫描器的说明。这种说明的格式是一对正规表达式和C代码,称之为规则。 flex的输出是名为lex.yy.c的C源程序,它可编译生成exe程序。执行该程序,它会分析输入,察看是否满足正规表达式,只要它发现一个,就会执行相应的C代码。,flex编译器的实现步骤,对flex源程序识别规则中的每个pi构造一个相应的NFA Ni 引入唯一初态S,从初态S通过弧将所有NFA Ni(i=1,n)连接成新的NFA N 对NFA N确定化,产生DFA N DFA

2、 N 最小化 给出控制程序。控制程序的作用是激活有限自动机,即控制输入字符串在有限自动机上运行,一旦达到终态,即识别出flex源程序模式描述的某个单词,转去调用相应的动作部分就可以了,使用方法,下载并安装flex包( 将flex.exe所在路径加入Path 编写 .l 文件,作为flex的输入文件 运行flex.exe *.l生成lex.yy.c源文件 使用VC6打开lex.yy.c文件,编译成exe 运行exe文件分析输入字符串,词法分析器源文件 .l,格式,% c程序定义 % 声明部分(正则表达式定义) % 规则定义(对应Token的处理方法) % 其他辅助过程,全局变量,File*yyi

3、n File*yyout char*yytext int yyleng,函数,yymore(), yyless(int n), yywrap(), input(), output(char c), unput(char c),示例1,输入文件中,所有标识符的数量 digit = 0-9 letter = a-zA-Z ID = letter(letter|digit)*,注意事项,匹配优先规则: 能匹配的最长的规则优先 匹配长度相等时,按顺序 考虑全面 尽量描述每种可能的输入情况(包括错误或不处理的情况),示例2,计算输入文件的字符数、单词数以及行数 tn+ n .,示例3,Tiny扫描程序的实现,Reserved Words Special Symbols Other if + number then - (1 or more digits) else * end / repeat = until identifier read ( (1 or more letters) write ) ; :=, :Comments,Flex Examples.rar在Course page中提供下载,Thanks,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报