我正在读取一些flex文件来记录数据日志的方言,原始文件是ol_lexer.lex,操作部分有一个代码段:
<INITIAL>%%.* ; // Ignore %% comments
<INITIAL>^#!.* ; // Ignore '#' directives
我知道第二行用于匹配预处理指令,例如
#define PI 3.14
但是我不知道“!”标记的含义。在这里,还是为什么第二个图案需要带有感叹号?
答案 0 :(得分:2)
第二行忽略以#!
开头的行(因此它与#define ...
不匹配,因为在!
之后没有#
)。 !
在这里没有任何特殊含义-只是与感叹号匹配。
我假设此规则的目的是允许使用爆炸行(例如#!/usr/bin/env myinterpreter
)。