私は、UTF-8文字を処理するBisonパーサを作成しようとしています。パーサが実際にUnicode文字の値を解釈するのは望ましくありませんが、UTF-8文字列を一連のバイトとして解析する必要があります。BisonはUTF-8文字を解析できますか?
今、バイソンには問題がある次のコード生成:
if (yychar <= YYEOF)
{
yychar = yytoken = YYEOF;
YYDPRINTF ((stderr, "Now at end of input.\n"));
}
問題をUTF-8文字列のバイト数が負の値を持つことになり、及びバイソンはEOFとして負の値を解釈することです、停止します。
方法はありますか?
私のレクサーはUTF-8文字をうまく処理しますが、Bisonパーサーは負の値を見てすぐに解析を停止します。お知らせ下さい。 –
一度に1バイトずつファイルを読んでいますか?または1 utf-8エンコードされた文字を一度に? – eduffy
一度に1バイト。 –