Комментарии 2
Отличный разбор, спасибо !
немного побуду занудой:
Закомментировать panic
вероятно удачнее бы написать "Закомментировать panic без изменения семантики функции" ... дело вкуса
Рад, что нашли мою статью занимательной.
С занудой не согласен, поправка по делу. Если просто убрать панику, не изменяя контракт вызывающего кода, значит сотавить reload с обязанностью выставить eof, которую она теперь молча не выполняет. Дальше мы ловим не определенное состояние буфера, и readByte отдает '\n' до конца времен.
Забавно, что после статьи я дошёл до этого места в коде ещё раз, уже с другой стороны: после errorf там повсюду стоят return nil / continue, которые никогда не выполняются, но выглядят как обработка ошибки :)
Репо заброшено, так что я сделал форк и дорабатываю его. Цель: надёжный разбор и извлечение текста на любых реальных PDF, включая кривые и враждебные, чтобы на Go был качественный инструмент для этого. Ваше замечание один в один совпало с пунктом 2 в задаче на рефакторинг лексера: https://github.com/chappihappymeal/pdf/issues/7

Пачка PDF положила прод. Расследование багов в Go библиотеках