LINUX.ORG.RU

Вышел Bison 2.7

 ,


0

2

Представлен новый релиз генератора грамматического разбора Bison 2.7. Bison поддерживает следующие языки программирования: C, C++ и Java. В релиз вошли следующие изменения:

  • Исправления ошибок:
    • исправлено предупреждение о неинициализированной переменной yylloc;
    • восстановлена совместимость с C90.
  • В генераторе представления парсера в виде графа улучшено отображение состояний — они теперь имеют прямоугольную форму, четко виден номер состояния, пункты списка пронумерованы и выровнены. Редукции изображены как переходы к ромбовидным узлам графа.
  • Улучшены возможности форматирования сообщений об ошибках, в частности поддерживается указание на место ошибки в строке с помощью символов «^^^^».
  • Улучшена поддержка «чистых» (реентерабельных) парсеров.
  • Добавлена возможность использования пользовательских типов местоположения (с помощью переменной api.location.type).
  • В парсере larl1.cc добавлен код, обрабатывающий исключения.
  • Поддержка %language больше не является экспериментальной.
  • Улучшена документация.

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

★★★★★

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

Штука классная! Но литературы на русском очень мало по Bison'у, а английский мануал я еще не осилил :(

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

Улачшена - это значит, что раньше она была хуже, а не то, что она была плохой.

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

Вы действительно так думаете?

Зачем ты задаешь вопрос, ответ на который можно найти без использования разного рода ненадежных источников, вроде устного опроса?

Человек же собственной рукой набрал на клавиатуре, что мануал он не осилил => ничего он «думать» не может.

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

Господа,

Вы прежде чем задавать вопрос, подумали бы, зачем эти «костыли» (CL-Yacc / Happy) реализованы в обоих означенных ЯП? Из здорового любопытства?

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

PS говят, хаскель тоже неплох для этих вещей.

Для этих вещей пригоден любой язык, умеющий в комбинаторы. На такие языки задача парсинга ложится натурально. А в недоязычках типа крестов или жабки приходится городить мегатонны костылей.

anonymous
()
Ответ на: Господа, от d_Artagnan

Вы прежде чем задавать вопрос, подумали бы, зачем эти «костыли» (CL-Yacc / Happy) реализованы в обоих означенных ЯП? Из здорового любопытства?

Для поддержки более плавной миграции Yacc-based проектов на нормальные языки, разумеется. А ты что подумал? Для проектов, которые изначально пишутся на нормальных языках, есть и более естественные, элегантные средства.

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

Для этих вещей пригоден любой язык, умеющий в комбинаторы.

Может все таки в нормальные системы типов? Потому что комбинатар - это всего лишь функция с нулевым контекстом, их тащемта можно и в яваскрипте и в С++ писать, например.

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

Может все таки в нормальные системы типов? Потому что комбинатар - это всего лишь функция с нулевым контекстом

Ну это кагбэ подразумевается, ибо без кошерной type system комбинатор превращается в кирпич.

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

«Это был цирк! Попросил его написать метод, разворачивающий строку, классическая такая проверка на вшивость. Мелкое тощее горбатое существо с рожей и голосом профессионального алкаша бубнило и булькало чтото с полчаса, ничего родить не смогло, потом начало втирать, что вот зато в мегаязыке Хаскель строки сделаны односвязными списками и что это типа тру, а все остальное ламеризм. Еще чтото втирал что кулькакеры на Вакс использовали мегаформат для строк ASCIID, а ламеры не поняли и теперь везде позорный ASCIIZ (внимание: собеседование вообще про Java было). Угадайте - мы его взяли?» (с) [ЖЖ] Луговский

Потолок кульхацкера, гнущего понты про функциональщину на ЛОРе - это работа эникейщиком в Усть-Мухобалалайске.

Bioreactor ★★★★★
()

Мне вполне JavaCC хватает. Был реальный небольшой проектик. Собственно, и все.

Такова реальная жизнь.

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

Для этих вещей пригоден любой язык, умеющий в комбинаторы.

Пример можно в коде? Что-нибудь простое и доходчивое.

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

«Это был цирк! Попросил его написать метод, разворачивающий строку, классическая такая проверка на вшивость. Мелкое тощее горбатое существо с рожей и голосом профессионального алкаша бубнило и булькало чтото с полчаса, ничего родить не смогло, потом начало втирать, что вот зато в мегаязыке Хаскель строки сделаны односвязными списками и что это типа тру, а все остальное ламеризм. Еще чтото втирал что кулькакеры на Вакс использовали мегаформат для строк ASCIID, а ламеры не поняли и теперь везде позорный ASCIIZ (внимание: собеседование вообще про Java было). Угадайте - мы его взяли?» (с) [ЖЖ] Луговский

Потолок кульхацкера, гнущего понты про функциональщину на ЛОРе - это работа эникейщиком в Усть-Мухобалалайске.

Мне вполне JavaCC хватает. Был реальный небольшой проектик. Собственно, и все.

Такова реальная жизнь.

Много на себя берете. Скромнее надо быть. А то ... недалекость, вброс, быдло и все такое ...

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

ля проектов, которые изначально пишутся на нормальных языках, есть и более естественные, элегантные средства.

Как-то анонимус полуправду все больше кажет.
Не забывай приговаривать: "...элегантные, но тормозные".

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

Есть Antlr, он труъ

// !!WARNING!! This grammar requires 64bit Java 1.6 and heap size for AntlrWorks [1GB] and Antlr [8GB] or greater. // // !!WARNING!! Your PC or Mac will require 10GB RAM or greater! // // You need to specify the heap size separately for both AntlrWorks and for Antlr [when it is run by AntlrWorks] // specify -Xmx8G in AntlrWorks::Preferences::General::ANTLR_options // specify -Xmx1G on the Java command line for invoking AntlrWorks // // java16 -d64 -jar antlr_33_complete.jar -Xmx8G -Xwatchconversion sql2003Parser.g

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

Борисыч, ты чо такой тупой-то, а?

AntlrWorks - это IDE. С преферансом и библиотекаршами. Ему и положено быть требовательным. В релизе же грамматики быстрые и компактные у Antlr получаются.

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

Для этих вещей пригоден любой язык, умеющий в комбинаторы.

Да хер с ними комбинаторами. Monad comprehension куда важнее. Даже linq в c# позволяет строить нормальные парсеры, а не говновыблевы для слабоумных в стиле Bison.

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

Тупой ты. А то и невменяемый. Там написано, сколько требуется для AntlrWorks. Только.

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

LL(n) «нормальным» парсером назвать нельзя. Лохуй дальше, лошара.

anonymous
()

Отличная новость!

В парсере larl1.cc добавлен код, обрабатывающий исключения.

Наконец-то запилили. Джва года ждал!

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