0

如果我的 flex 文件中有以下内容,它会做什么?

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

3 回答 3

2

如果它在 Perl 中,它将匹配任何 '['、']' 或 ';' - 我想这在 flex 中是一样的。外部的“[...]”定义了一个字符范围,即匹配任何一个指定的字符:反斜杠转义了内部的“[]”,因此它们只表示文字括号。

于 2009-11-17T13:12:01.373 回答
1

它匹配由字符之一组成的标记[];。@AAT 在他的解释中是正确的,尽管术语明智的“字符类”比“字符范围”更常见。

return yytext[0];返回匹配标记的第一个字符。由于此处的正则表达式仅匹配单个字符标记,因此它将匹配的标记本身作为字符返回。

于 2009-11-17T13:38:29.370 回答
0

如果它找到任何以下 []; 它返回 yytext[0]

于 2009-11-17T13:11:19.967 回答