加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flex&bison

发布时间:2020-12-15 04:13:19 所属栏目:百科 来源:网络整理
导读:1.flex结构规范 flex程序由三部分构成:定义部分、规则部分、和用户子例程(subroutine) 。。。定义部分。。。 %% 。。。规则部分。。。 %% 。。。用户子例程。。。 这三个部分通过由两个百分号组成的行来分割。前两个部分是必需的,但它们的内容可以为空。

1.flex结构规范

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

。。。定义部分。。。

%%

。。。规则部分。。。

%%

。。。用户子例程。。。

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

?

定义部分:

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

?

规则部分:

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

?

用户子例程

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

?

BEGIN

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

BEGIN statename;

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读