LINUX.ORG.RU

flex 2.6.2

 ,


1

4

Состоялся релиз flex 2.6.2 — генератора быстрых лексических анализаторов.

Основные изменения:

  • Для configure добавлена опция --enable-warnings, включающая предупреждения компилятора при сборке.
  • Добавлен словенский перевод.
  • Исправлено множество ошибок, в том числе ошибка сегментирования при вызове yyrestart(NULL).

>>> Подробности

Я правильно понимаю что это нужно для создания external DSL?

loz ★★★★★ ()

--enable-warnings, отключающая

отключающая?!

praseodim ★★★ ()
Ответ на: комментарий от praseodim

Наверно, к --enable- опциям автоматически добавляются --disable- варианты.
Добавили опцию, чтобы _отключать_, но сама опция — именно «разрешить предупреждения».

В любом случае, стоило перевести получше :)

kaffeine ()

А можно хотя-бы в общих чертах понять что это такое и зачем нужно?
Это хотя-бы про какие языки, естественные или нет?

MrClon ★★★★★ ()
Ответ на: комментарий от MrClon

Это хотя-бы про какие языки, естественные или нет?

Про регулярные.

Begemoth ★★★★★ ()
Ответ на: комментарий от loz

Не только. Для разбора general-purpose languages тоже годится. Это такой очень умный strtok :)

gns ★★★★ ()
Ответ на: комментарий от MrClon

Обычный генератор лексеров, которые потом работают совместно с парсерами, сгенерированными бизоном.

buddhist ★★★★★ ()
Ответ на: комментарий от buddhist

наоборот — это flex передает на вход яку/бизону поток токенов. :) Лексер отрабатывает раньше парсера.

gns ★★★★ ()
Ответ на: комментарий от MrClon

А можно хотя-бы в общих чертах понять что это такое и зачем нужно?

В паре слов тащемта описано:

Состоялся релиз flex 2.6.2 — генератора быстрых лексических анализаторов.

А если хочется чуть больше, то милости прошу погуглить. Хотя в данном случае гугление будет проблематичным, по этому вот входная точка: https://en.wikipedia.org/wiki/Flex_(lexical_analyser_generator)

Еще скажу, что проще всего искать «сладкую парочку»: lex & yacc. Именно с них всё началось.

KennyMinigun ★★★★★ ()
Последнее исправление: KennyMinigun (всего исправлений: 1)

flex неплох, когда не требуется поточная обработка. Для поточной обработки - re2c.

Sorcerer ★★★★★ ()

Кто-то им ещё пользуется?

anonymous ()
Ответ на: комментарий от gns

Да, я это и хотел сказать, но получился сумбур:) Спасибо за исправление.

buddhist ★★★★★ ()

Чем это лучше, чем boost::spirit?

anonymous ()

Добавлен словенский?! Срочно на главную!

В воздухе запахло подкупленными cetjs2'ом модераторами.

anonymous ()
Ответ на: комментарий от anonymous

Чем генератор сканеров лучше генератора парсеров?

Ну, например, работает для чистого си. А так, устаревшая поделка тащем-то.

anonymous ()
Ответ на: комментарий от anonymous

устаревшая поделка

А что вместо нее? Хацкель?)

makoven ★★★★★ ()

Вопрос знатокам

генератора быстрых лексических анализаторов.

Интересует слово «быстрых». Быстрых по сравнению с чем? И если есть альтернатива, у которой анализаторы медленнее, то чем в случае flex приходится платить за быстроту?

// Сам сабж, к сожалению не осилил. Много лет назад пытался сделать на нём анализатор VRML по имеющемуся формальному описанию, но в итоге он мне генерировал зависающий код, а потом мой интерес иссяк...

hobbit ★★★★★ ()
Ответ на: комментарий от anonymous

из НЕ ООП сделать ООП всегда можно: (рагель, флекс легко встраивается в С++ приложения), а вот наоборот - нет

поэтому отсутствие требования ООП в такой вещи как синтаксический анализатор - это безусловный плюс и относится к «лучше»

rsync ★★ ()
Ответ на: комментарий от rsync

Требует написания обёртки вместо удобного апи искаропки = хуже

anonymous ()
Ответ на: Вопрос знатокам от hobbit

Re: Вопрос знатокам

Быстрых по сравнению с чем?

Со старым юниксовым lex. flex -> fast lex. Платить ничем не надо, просто теория с тех пор продвинулась.

anonymous ()
Ответ на: комментарий от anonymous

Есличо, сабж и плюсовый код тоже генерит.

anonymous ()
Ответ на: комментарий от gns

В случае с lex/flex и yacc/bison парсер дергает лексер (а не наоборот), когда ему требуется очередной токен. Из функции main вызывается yyparse, оттуда в свою очередь вызывается yylex.

anonymous ()
Ответ на: комментарий от anonymous

если на С++ не использовать ООП, получится С. соответственно в контексте языка С/С++ можно так и делить: С - обычное программирование, С++ - ООП. для большинства кейзов подобное разделение подойдет

rsync ★★ ()
Ответ на: комментарий от anonymous

Спасибо, кэп! Вы всегда поможете в трудной ситуации. Но к чему Вам личина анонимности? :)

gns ★★★★ ()

Всякий раз как выходит новая версия flex не компилируется с ним текущий doxygen. Может кто уже поправил doxygen 1.8.12 ( пока конкретно файл scanner.l ) чтобы собирался doxygen и с flex 2.6.2 ? Или как всегда все самому ковырять в doxygen ?

https://bugs.gentoo.org/show_bug.cgi?id=598186

perestoronin ★★ ()
Ответ на: комментарий от anonymous

Тем что генерирует фсм и оптимизирует её, а не просто разворачивается по 4 часа из вырвиглазистых шаблонов.

anonymous ()
Ответ на: комментарий от rsync

если на С++ не использовать ООП, получится С

У меня - не получится. В любом случае, встраивать spirit в си мешает не ООП, а C++.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.