LALR (1) или GLR в Windows - Альтернативы Бизону ++ / Flex ++, которые являются текущими?

ОБНОВЛЕНИЕ: Этот вопрос устарел, но уехал в информационные цели.

Исходный вопрос

Я использовал ту же версию бизона ++ (1.21-8) и гибкий провод ++ (2.3.8-7) с 2002.

Я не ищу альтернативу LALR (1) или GLR в это время, просто ища актуальнейшие опции. Кто-либо знает о каких-либо более поздних портах их, чем оригинал, которые не являются зависимым Cygwin?

Что другие люди используют в средах Windows для разработки компилятора C++ (помимо ANTLR или Boost.spirit)? Коммерческие опции в порядке, если у Вас есть собственный опыт. Я действительно должен скомпилировать на Linux также.

ОБНОВЛЕНИЕ: Этот старый вопрос задали, когда я не знал о политиках о рекомендациях инструмента (не уверенный, если политика существовала в 2010, но независимо...

Я, так как обновлено Бизону 3.0, который имеет возможности GLR и начал экспериментировать с этим.

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

8
задан codenheim 24 October 2014 в 06:31
поделиться

2 ответа

Вы можете попробовать Эльзу (сейчас это часть проекта Oink). Но сейчас он почти мертв. Единственная привлекательная особенность этого состоит в том, что поверх него написан полный и надежный синтаксический анализатор C и C ++.

LLVM содержит достаточно современную структуру синтаксического анализа. Также есть синтаксический анализатор C ++ (см. Проект clang).

Доступны некоторые реализации Packrat для C ++, что-то вроде самой модной вещи в синтаксическом анализе.

2
ответ дан 6 December 2019 в 00:55
поделиться

Мне очень нравится ANTLR. Boost Spirit немного "не в себе" для серьезных производственных приложений.

1
ответ дан 6 December 2019 в 00:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: