что означает восклицательный знак? - PullRequest
0 голосов
/ 25 июня 2019

Я читаю какой-то flex файл для диалекта данных, оригинальный файл ol_lexer.lex в части действия есть фрагмент кода:

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

Я знаю вторую строку для соответствия директивам предварительной обработки, таким как

#define PI 3.14

но я не знаю, что означает знак "!" здесь, или почему второй шаблон нуждается в восклицательном знаке?

1 Ответ

2 голосов
/ 25 июня 2019

Вторая строка игнорирует строки, начинающиеся с #! (поэтому она не будет соответствовать #define ..., так как у нее нет ! после #).! не имеет здесь никакого особого значения - он просто соответствует восклицательному знаку.

Я предполагаю, что цель этого правила - разрешить линию шебанга (например, #!/usr/bin/env myinterpreter).

...