Bison 3.2

good-penguin.png

Bison — это генератор синтаксических анализаторов общего назначения, преобразующий аннотированную контексто-свободную граматику в детерминированный LR- или обобщённый LR (GLR)-анализатор, задействующий таблицы анализатора LALR (1). Bison также умеет генерировать таблицы IELR (1) и канонические LR (1). Овладев Bison, можно использовать его для разработки разнообразных языковых анализаторов — от применяющихся в простых настольных калькуляторах до сложных языков программирования. Bison обратно совместим с Yacc: все корректно составленные Yacc-грамматики должны работать с Bison без изменений.

В детерминистический C++-каркас, lalr1.cc, привнесены масштабные изменения. Если включена поддержка вариантов и компилятор поддерживает C++11 и выше — типы только для перемещения теперь можно использовать для семантических значений. Поддержка C++98 не объявлена устаревшей. Огромное спасибо Френку Хекенбаху за проторенный его реализацией каркаса на C++17 путь к этому выпуску.

Значимые изменения в этом выпуске:

  • Поддержка DJGPP, годами лишённого поддержки и тестирования, объявлена устаревшей. Если никто не гальванизирует этот труп — от него избавятся.
  • Также:
    • %printers должна использовать yyo вместо yyoutput для обозначения выходного потока.
    • Основаные на вариантах символы в C++ должны использовать emplace () вместо build ().
    • В анализаторах на C++ parser: operator () теперь является синонимом для parser: parse.
  • Документация:
    • Добавлен новый раздел «Простой пример на С++» — руководство по написанию анализаторов на С++.
    • В генерируемый код теперь добавляется комментарий, что пользователям не следует завязываться на недокументированные детали реализации, например, начинающиеся на YY_ макросы.
  • Новые возможности:
    • C++: поддержка семантики перемещения (lalr1.cc)
    • C++: неявное перемещение правых значений (lalr1.cc)
    • C++: неявное семантическое действие по умолчанию теперь всегда вызов.
    • C++: переименование location.hh.
    • C++: stack.hh и position.hh объявлены устаревшими.
  • Исправлены:
    • Проблемы с переносимостью на MinGW и VS2015.
    • Проблемы с переносимостью в тестовом наборе.
    • Проблемы с переносимостью и предупреждения с Flex.

>>> Домашняя страница

>>> Сжатые исходники: .tar.gz (подпись), .tar.xz (подпись)

>>> Зеркало

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

©  Linux.org.ru