Flex неправильно анализирует имена переменных - PullRequest
0 голосов
/ 09 марта 2019

Я новичок в использовании Flex. Вот мой файл lex:

%{
    #include <stdio.h>
%}

%%

\w[\w\d]+    printf("WORD\n");
.            printf("OTHER\n");

%%

int main() {
    yylex();
    return 0;
}

Затем я компилирую это с

flex lexfile.l && gcc lex.yy.c -ll

Однако после запуска

echo "hello" | ./a.out

Я получаю

UNKNOWN
UNKNOWN
UNKNOWN
UNKNOWN
UNKNOWN

Почему бы мне не получить

WORD

1 Ответ

0 голосов
/ 09 марта 2019

Ах. Похоже, версия регулярного выражения Flex не понимает \ w и \ d. Заменено на

[A-Za-z][A-Za-z0-9]+

и все работало нормально.

...