Я пытаюсь сделать парсер 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 и останавливается.
Есть ли способ обойти это?