Этот пост написан для тех, кто глубоко погружён в разработку компиляторов или DSL, часто сталкивается с задачами парсинга, строит сложные конфигурации или движки с нуля. Этот инструмент предназначен для разбора большинства контекстно-свободных языков с минимальными усилиями. Он не претендует на то, чтобы генерировать код, который невозможно превзойти по производительности, — добиться более высокой производительности в написанном вручную парсере всё же сложнее. Читать далее
Генератор - это особый вид итератора - объекта, который отдает значения по одному за раз. Любая функция содержащая yield является генераторной функцией. При вызове генераторная функция возвращает генератор-итератор или просто генератор. Генераторная функция и генератор - это разные объекты, хотя и связанные друг с другом. Читать далее
Привет, Хабр! Представляю вашему вниманию перевод статьи "Learning Parser Combinators With Rust". Эта статья учит основам комбинаторных парсеров людей, которые уже знакомы с Rust. Предполагается, что никаких других знаний не требуется, а всё, что не имеет прямого отношения к Rust, а также…
Десктопные/облачные, платные/бесплатные, для SEO, для совместных покупок, для наполнения сайтов, для сбора цен… В обилии парсеров можно утонуть. Мы разложили все по полочкам и собрали самые толковые инструменты парсинга — чтобы вы могли быстро и просто собрать открытую информацию с любого сайта. Читать дальше