感叹号是什么意思?

时间:2019-06-24 21:03:01

标签: flex-lexer lexer

我正在读取一些flex文件来记录数据日志的方言,原始文件是ol_lexer.lex,操作部分有一个代码段:

<INITIAL>%%.*           ; // Ignore %% comments
<INITIAL>^#!.*          ; // Ignore '#' directives

我知道第二行用于匹配预处理指令,例如

#define PI 3.14

但是我不知道“!”标记的含义。在这里,还是为什么第二个图案需要带有感叹号?

1 个答案:

答案 0 :(得分:2)

第二行忽略以#!开头的行(因此它与#define ...不匹配,因为在!之后没有#)。 !在这里没有任何特殊含义-只是与感叹号匹配。

我假设此规则的目的是允许使用爆炸行(例如#!/usr/bin/env myinterpreter)。