进一步学习Flex语法 - 自带函数和规则的基本action

688 篇文章 10 订阅 ¥99.90 ¥299.90
80 篇文章 0 订阅
本文介绍了Flex词法分析器中的关键函数yylex()和yywrap(),以及它们在词法分析过程中的作用。yywrap()函数决定了文件结尾后的处理方式。此外,文章还讨论了Flex生成的C文件中的一些自定义函数和全局变量,如yytext。通过一个简单的计算器例子,解释了如何使用yylval存储匹配的数值,并通过atoi()函数将其转换为整型。最后,提到了Flex规则的action部分,可以包含任意C表达式,并举例说明了不同类型的action行为。
摘要由CSDN通过智能技术生成

以前的Flex博文都有用到这两个函数,来学习一下,

    yylex():词法分析器驱动程序,用Lex翻译器生成的lex.yy.c内必然含有这个函数;

    yywrap():词法分析器遇到文件结尾时会调用yywrap()来决定下一步怎么做:
        若yywrap()返回0,则继续扫描;

        yywarp函数,这是一个约束函数,当它返回1时,代表扫描结束,此时结束程序;

    这是Flex内建函数;

看一张图,

转于, 

    https://blog.csdn.net/weixin_44007632/article/details/108666375

    flex在翻译为C文件时会产生一些自定义的函数和全局变量,就是上图;

    变量yytext,显然它就是被匹配的文本;初学来说这个比较重要;
 

然后我们看一下实现基本计算器的Flex代码,它有这句

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值