UTF-8 文字を処理する Bison パーサーを作成しようとしています。パーサーに Unicode 文字の値を実際に解釈させたくはありませんが、UTF-8 文字列を一連のバイトとして解析させたいと考えています。
現在、Bison は問題のある次のコードを生成します。
if (yychar <= YYEOF)
{
yychar = yytoken = YYEOF;
YYDPRINTF ((stderr, "Now at end of input.\n"));
}
問題は、UTF-8 文字列の多くのバイトが負の値を持つことであり、Bison は負の値を EOF として解釈し、停止します。
これを回避する方法はありますか?