Использование регулярного выражения [\ [\];] в flex - PullRequest
0 голосов
/ 17 ноября 2009

Если у меня есть следующее в моем гибком файле, что он делает?

[\\[\\];]     { return yytext[0]; }

Ответы [ 3 ]

2 голосов
/ 17 ноября 2009

Если бы он был в Perl, он соответствовал бы любому из '[', ']' или ';' - Я думаю, что это то же самое в гибкой. Внешний «[...]» определяет диапазон символов, то есть соответствует любому из указанных символов: обратные слэши экранируют внутренний «[]», так что они просто означают буквальные скобки.

1 голос
/ 17 ноября 2009

Соответствует токену, состоящему из одного из символов [, ] или ;. @AAT прав в своем объяснении, хотя терминология «класс символов» встречается чаще, чем «диапазон символов».

return yytext[0]; возвращает первый символ совпавшего токена. Поскольку регулярное выражение здесь соответствует только односимвольным токенам, оно возвращает сам сопоставленный токен как символ.

0 голосов
/ 17 ноября 2009

, если найдет кого-либо из следующих []; возвращает yytext [0]

...