词法分析器构造工具Flex基础学习

592 篇文章 8 订阅 ¥99.90 ¥299.90
80 篇文章 0 订阅
Flex是一个用于生成词法分析器的工具,它使用正规表达式定义模式,并生成C语言代码。LEX源文件包含正规表达式和处理模式的C代码,经过Flex处理后输出到lex.yy.c。文件格式严格,由定义、规则和用户C代码三部分组成,通过模式宏定义简化规则。错误书写可能导致错误,生成的C代码可直接集成到项目中。
摘要由CSDN通过智能技术生成

Flex是一个生成词法分析器的工具,它可以利用正则表达式来生成匹配相应字符串的C语言代码,其语法格式基本同Lex相同。

单词的描述称为模式(Lexical Pattern),模式一般用正规表达式进行精确描述。FLEX通过读取一个有规定格式的文本文件,输出一个C语言源程序。

FLEX的输入文件称为LEX源文件,它内含正规表达式和对相应模式处理的C语言代码。LEX源文件的扩展名习惯上用.l表示。FLEX通过对源文件的扫描自动生成相应的词法分析函数int yylex(),并将之输出到名规定为lex.yy.c的文件中。实用时,可将其改名为lexyy.c。该文件即为LEX的输出文件或输出的词法分析器。也可将int yylex()加入自已的工程文件中使用。

LEX对源文件的格式要求非常严格,比如若将要求顶行书写的语句变成非顶行书写就会产生致命错误。而LEX本身的查错能力很弱,书写时一定注意。

LEX的源文件由三个部份组成,每个部分之间用顶行的“%%”分割,其格式如下:

定义部份
%%
规则部份
%%
用户附加C语言部份


模式宏定义实际是对识别规则中出现的正规式的辅助的影。如语言的字母可定义为:
    Letter [a-zA-Z]
数字可以定义为:
    digit[0-9]

除宏定义外,定义部分的其余代码必须用符号%{ 和 %}

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值