LINUX.ORG.RU

История изменений

Исправление Siborgium, (текущая версия) :

парсер может запрашивать очередной блок входных данных

Ввод-вывод в одном месте, парсер в другом. Это никак не связанные вещи.

while (read_block (&block, &io_err) && !io_err) {
    if (!parse_block (&block, &state, &parse_err) || parse_err) {
        break;
    }
}
if (io_err) {
    handle_io_err (&io_err);
}
if (parse_err) {
    handle_parse_err (&parse_err);
}

Исходная версия Siborgium, :

парсер может запрашивать очередной блок входных данных

Ввод-вывод в одном месте, парсер в другом. Это никак не связанные вещи.

while (read_block (&block, &io_err) && !io_err) {
    if (!parse_block (&block, &state, &parse_err) || parse_error) {
        break;
    }
}
if (io_err) {
    handle_io_err (&io_err);
}
if (parse_err) {
    handle_parse_err (&parse_err);
}