Состоялся релиз re2c 3.0, свободного генератора лексических анализаторов для языков C, C++, Go и добавленного в этом релизе языка Rust. Для поддержки Rust пришлось использовать другую модель кодогенерации, где конечный автомат представлен в виде цикла и переменной-состояния, а не в виде меток и переходов (поскольку в Rust нет goto, в отличие от С, С++ и Go). Re2c специализируется на генерации быстрых и легко встраиваемых лексеров. Он отличается от более известного аналога flex гибким интерфейсом, генерацией оптимизированных нетабличных лексеров и поддержкой захватов (submatch extraction) на основе детерминированных конечных автоматов с тэгами (TDFA). Re2c используется в проектах, где важна скорость работы лексера, например в Ninja и в PHP. На сайте проекта имеется подборка примеров, которые теперь портированы в том числе на Rust. Выпуск генератора лексических анализаторов re2c 3.0
www.opennet.ru
|