flex&bison

1.flex结构规范

flex程序由三部分构成:定义部分、规则部分、和用户子例程(subroutine)

。。。定义部分。。。

%%

。。。规则部分。。。

%%

。。。用户子例程。。。

这三个部分通过由两个百分号组成的行来分割。前两个部分是必需的,但它们的内容可以为空。第三部分和前面的%%行可以省略。

 

定义部分:

定义部分包含选项、文字块、定义、开始条件、和转换。空白字符开始的行将被原样拷贝到C文件中。

 

规则部分:

规则部分包括模式行和C代码。以空白字符开始或者处于%{和%}之间的内容被认为是C代码,它们会原封不动地拷贝到yylex()中。

 

用户子例程

用户子例程的内容将被flex原样拷贝到C文件。这个部分通常包括规则中需要调用的例程。如果你重定义了yywrap(),该例程的新版本或者相关的支撑例程会在这儿出现。

 

BEGIN

宏BEGIN切换起始状态。你通常在特定模式的动作代码里调用它,如下所示:

BEGIN statename;

词法分析器从状态0开始,该状态也被成为INITIAL。其他所有状态必须在定义部分通过%s或者%x行来命名

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值