如果我的 flex 文件中有以下内容,它会做什么?
[\\[\\];] { return yytext[0]; }
如果它在 Perl 中,它将匹配任何 '['、']' 或 ';' - 我想这在 flex 中是一样的。外部的“[...]”定义了一个字符范围,即匹配任何一个指定的字符:反斜杠转义了内部的“[]”,因此它们只表示文字括号。
它匹配由字符之一组成的标记[
,]
或;
。@AAT 在他的解释中是正确的,尽管术语明智的“字符类”比“字符范围”更常见。
return yytext[0];
返回匹配标记的第一个字符。由于此处的正则表达式仅匹配单个字符标记,因此它将匹配的标记本身作为字符返回。
如果它找到任何以下 []; 它返回 yytext[0]