我在使用 flex 做词法分析器时玩得很开心。问题是,我的代码编辑器没有为文件的语法着色,而且我的规则似乎有错误。由于我不太确定如何在区间内使用单引号和双引号,我想我会与您分享该片段:
[^\\\'\n]+
{
wchar_t* string;
utf8_decode(yytext, &string);
yyextra->append(string);
free(string);
}
Flex 告诉我在线上有一条“无法识别的规则” utf8_decode
。如果我删除整个规则,事情看起来又好了。
谁能告诉我在这里做错了什么?