Perl は、何年もの間、私の頼りになるプログラミング言語ツールの 1 つです。Perl 6 の文法は優れた言語機能のようです。誰かが Ruby でこのようなことを始めたかどうか知りたいです。
3 に答える
実際の Perl 6 文法を Ruby で使用したい場合は、Parrot の Ruby コンパイラであるCardinalを使用するのが最善の策です。現在は未完成で非常に遅いですが、最終的に実行可能な Ruby 実装になることを期待しています。現在はほとんど非アクティブであり、解析速度の向上と追加機能をサポートするために、Parrot の一部のインフラストラクチャが変更されるまで保留されています。
いいえ。また、Perl6の文法は言語機能であり、Rubyでは言語の拡張が許可されていないため、これを「アドオン」に実装することは実際には不可能です。
ただし、さまざまな種類の解析または文法システムを実装するRuby用のライブラリは多数あります。標準ライブラリracc
には、LALR(1)パーサジェネレータであるがすでに含まれています(由緒あるものと同等であり、ある程度互換性がありyacc
ます)。次に、Rubyバックエンドを備えたANTLRパーサジェネレータがあります(実際に機能するかどうかはわかりませんが)。
RubyのPerl6文法に最も近いのは、Ruby-OMetaプロジェクト( Ryan Davisのフォークも確認してください)ですが、残念ながらまだ開発中です。(というより、もはや活発な開発は行われていません。)
したがって、実際に存在するものを維持しながら、 GrammarプロジェクトとTreetopを確認することをお勧めします。
Rubyに似たものは知りません。
ただし、Perl5 にも似たようなものがあります。Regexp::Grammars