Ruby имеет дополнение подобным Perl 6 грамматик?

Perl был одним из моих дежурных инструментов языка программирования в течение многих лет и лет. Perl 6 грамматик похож на большую функцию языка. Я хотел бы знать, запустил ли кто-то что-то вроде этого для Ruby.

5
задан Elizabeth Mattijsen 27 November 2019 в 19:20
поделиться

3 ответа

Нет. И поскольку грамматики Perl6 являются функцией языка , а Ruby не позволяет расширять язык, на самом деле невозможно реализовать это в «аддоне».

Однако существует множество библиотек для Ruby, которые реализуют различные виды систем синтаксического анализа или грамматики. Стандартная библиотека уже содержит racc , который является генератором синтаксического анализатора LALR (1) (сопоставимым и в некоторой степени совместимым с почтенным yacc ). Затем есть генератор парсера ANTLR , который имеет бэкэнд Ruby (хотя я не уверен, действительно ли это работает).

Самым близким к грамматикам Perl6 в Ruby будет Ruby- Проект OMeta (не забудьте также взглянуть на вилку Райана Дэвиса ), который, к сожалению, все еще находится в стадии разработки. (Или, скорее, больше не находится в активной разработке.)

Итак, придерживаясь того, что на самом деле существует , я рекомендую вам взглянуть на Grammar project и Treetop .

6
ответ дан 18 December 2019 в 08:29
поделиться

Если вы хотите использовать настоящие грамматики Perl 6 в Ruby, лучше всего будет Cardinal , компилятор Ruby для Parrot. В настоящее время он незавершенный и ОЧЕНЬ МЕДЛЕННЫЙ, но я очень надеюсь, что в конечном итоге он станет жизнеспособной реализацией Ruby. В настоящее время он в основном неактивен, ожидаются некоторые изменения инфраструктуры в Parrot для поддержки улучшенной скорости синтаксического анализа и дополнительных функций.

11
ответ дан 18 December 2019 в 08:29
поделиться

Ничего подобного для Руби не знаю.

Однако есть нечто подобное для Perl5, см. Regexp :: Grammars

2
ответ дан 18 December 2019 в 08:29
поделиться
Другие вопросы по тегам:

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