Какой лучший аналог ANTLR для создания парсеров в ruby? - PullRequest
6 голосов
/ 15 июня 2010

Я некоторое время использовал antlr и javacc / freecc. Теперь мне нужно написать несколько парсеров, используя грамматики antlr, но такие парсеры должны быть написаны на ruby ​​lang.

Я гуглил, но ничего не нашел. Есть ли какой-нибудь генератор парсера ruby, который принимает грамматики antlr и создает парсер? Если их много, то какой, по вашему мнению, является лучшим?

ТИА Paolo

Ответы [ 3 ]

7 голосов
/ 15 июня 2010
  1. Вы можете легко уйти, используя JRuby и сохраняя парсеры ANTLR в java.
  2. Если PEGs достаточно для вашей работы, верхушку дерева и более новый цитрусовый являются распространенными инструментами, которые используют рубинисты.
  3. Другие анализаторы, которые я выкопал во время исследования проекта: Пегги , Kanocc , Racc .

Для своего проекта я выбрал верхушку дерева (цитрусовые еще не родились).

3 голосов
/ 15 июня 2010

Почему не использовать ANTLR Ruby: http://www.antlr.org/wiki/display/ANTLR3/Antlr3RubyTarget (http://split -s.blogspot.com / 2005/12 / antlr-for-ruby.html )

Здесь также есть бета-версия: http://rubyforge.org/projects/antlr3/

1 голос
/ 15 июня 2010

Вы также можете сгенерировать анализатор с помощью ANTLR для Java или C и вызвать его из вашей программы на Ruby с помощью JRuby или FFI .

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

...