我正在尝试制作一个 Bison 解析器来处理 UTF-8 字符。我不希望解析器实际解释 Unicode 字符值,但我希望它将 UTF-8 字符串解析为字节序列。
现在,Bison 生成了以下有问题的代码:
if (yychar <= YYEOF)
{
yychar = yytoken = YYEOF;
YYDPRINTF ((stderr, "Now at end of input.\n"));
}
问题是 UTF-8 字符串的许多字节都会有负值,而 Bison 将负值解释为 EOF,然后停止。
有没有解决的办法?