flex&bison

来源:互联网 发布:2017淘宝图片尺寸要求 编辑:程序博客网 时间:2024/05/17 01:46

1.flex结构规范

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

。。。定义部分。。。

%%

。。。规则部分。。。

%%

。。。用户子例程。。。

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

 

定义部分:

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

 

规则部分:

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

 

用户子例程

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

 

BEGIN

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

BEGIN statename;

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

 

原创粉丝点击