Обновить

Комментарии 2

Отличный разбор, спасибо !

немного побуду занудой:

Закомментировать panic

вероятно удачнее бы написать "Закомментировать panic без изменения семантики функции" ... дело вкуса

Рад, что нашли мою статью занимательной.

С занудой не согласен, поправка по делу. Если просто убрать панику, не изменяя контракт вызывающего кода, значит сотавить reload с обязанностью выставить eof, которую она теперь молча не выполняет. Дальше мы ловим не определенное состояние буфера, и readByte отдает '\n' до конца времен.

Забавно, что после статьи я дошёл до этого места в коде ещё раз, уже с другой стороны: после errorf там повсюду стоят return nil / continue, которые никогда не выполняются, но выглядят как обработка ошибки :)

Репо заброшено, так что я сделал форк и дорабатываю его. Цель: надёжный разбор и извлечение текста на любых реальных PDF, включая кривые и враждебные, чтобы на Go был качественный инструмент для этого. Ваше замечание один в один совпало с пунктом 2 в задаче на рефакторинг лексера: https://github.com/chappihappymeal/pdf/issues/7

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации