温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Flex常用规范有哪些

发布时间:2021-11-16 16:47:40 来源:亿速云 阅读:128 作者:iii 栏目:大数据

本篇内容主要讲解“Flex常用规范有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Flex常用规范有哪些”吧!

flex定义段 常用option选项    

    noyywrap          yylex等分析函数结束后不再调用yywrap()函数。

    nodefault         关闭一些默认行为,比如不能匹配的输入则回射到标准输出

    warn              开启所有警告

    case-insensitive  整个过程中匹配输入大小写不敏感,但是yytext还是原本输入匹配的内容

    yylineno          自动的在yylineno变量中维护当前解析的行数总值,如果是解析的多个文件,可以在开打文件后重置它

flex规则段 常用正则表达    

. 匹配任意字符,除了 \n。

- 用来指定范围。例如:A-Z 指从A 到 Z 之间的所有字符。

[ ] 一个字符集合。匹配括号内的 任意字符。如果第一个字符是 ^ 那么它表示否定模式。例如: [abC] 匹配 a, b, 和 C中的任何一个。 

* 匹配 0个或者多个上述的模式。 

+ 匹配 1个或者多个上述模式。 

? 匹配 0个或1个上述模式。 

$ 作为模式的最后一个字符匹配一行的结尾。

{ } 指出一个模式可能出现的次数。 例如: A{1,3} 表示 A 可能出现1次或3次。

\ 用来转义元字符。同样用来覆盖字符在此表中定义的特殊意义,只取字符的本意。

^ 否定。

| 表达式间的逻辑或。

"<一些符号>" 字符的字面含义。元字符具有。

/ 向前匹配。如果在匹配的模版中的“/”后跟有后续表达式,只匹配模版中“/”前面的部分。如:如果输入A01,那么在模版A0/1 中的 A0 是匹配的。

( ) 将一系列常规表达式分组。

常用的全局变量   

    FILE *yyin/*yyout    Lex中本身已定义的输入和输出文件指针。

                         这两变量指明了flex生成的词法分析器从哪里获得输入和输出到哪里。默认指向标准输入和标准输出。

    char *yytext         指向当前是别的词法单元的指针。

    int   yyleng         当前词法单元的长度。

    yylineno             提供当前的行数信息

    ECHO                 lex中预定义的宏,相当于fprintf(yyout, "%s", yytext) , 即输出当前匹配的词法单元。

常用的全局函数   

    yylex()          这一函数开始分析,它由lex自动生成。

    yywrap()         这一函数在输入或文件的末尾调用。返回0继续扫描,-1结束扫描。

    yymore()         这一函数告诉lexer将下一个标记附加到当前标记后。

    yyless(int n)    返回当前匹配项除了开始的n个字符内的所有的内容到输入缓冲区,

                     解析器处理下一匹配时,他们将会被重新解析。

到此,相信大家对“Flex常用规范有哪些”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI