私はRPythonツールチェーンを使って言語を実装する例を高く評価しましたが、これまで見つかったのはthisです。著者が単純なBFインタプリタを書くものです。文法はとてもシンプルなので、パーサー/レクサージェネレータを使う必要はありません。 RPythonで言語を開発することをサポートするフロントエンドはありますか?RPythonで言語を実装するために使用できるフロントエンドは何ですか?
ありがとうございます!
私はRPythonツールチェーンを使って言語を実装する例を高く評価しましたが、これまで見つかったのはthisです。著者が単純なBFインタプリタを書くものです。文法はとてもシンプルなので、パーサー/レクサージェネレータを使う必要はありません。 RPythonで言語を開発することをサポートするフロントエンドはありますか?RPythonで言語を実装するために使用できるフロントエンドは何ですか?
ありがとうございます!
私はRPythonをターゲットとする一般的なレクサーまたはパーサージェネレータを特に認識していません。 Pythonの出力であるがになるかもしれませんが、私はそれに賭けません。ただし、解析ツールのセットはrlib.parsing
です。それはかなり使えるようです。 OTOH、ドキュメントには警告があります。これはまだ開発中であり、実験的であり、これまでのところPrologインタプリタのみに使用されていると伝えられています。
また、フロントエンドを手書きで書くこともできます。レクサーは厄介で不自然なことがあります(Python実装で使用されるDFAのユーティリティモジュールを取り除くことができるかもしれません)。しかしパーザーは正しいアルゴリズムを知っているならばケーキです。私はかなり単純な(再帰的な降下)しかし、すべての式の解析の問題(ネスティング、優先順位、連想など)を簡単にする "トップダウン演算子優先順位パーサー" a.k.a. "Prattパーサー"のファンです。そこにそれらの情報はほとんど情けないのですが、いくつかのブログの記事は、私のために十分であった:Crockfordによって
アレックスゲイナーがportedデビッドビーズレーの優れたPLYをRPythonに持っています。そのdocumentationはかなりいいですし、彼はPyCon US 2013で通訳を実装するのに、talkをつけてくれました。
最初に使用します:ソースレベルでPlyとRply互換性がありません:Plyテンプレートimport ply.lexとlex ...を比較するlexergeneratorが必要です。また、python parser.pyで起動するとRPython生成を呼び出します –
ありがとう。このような成功したプロジェクトでは、簡単なレキシング/解析プロセスを持たない言語を人々が手助けすることに対する関心が表明されているのは奇妙なようです。私はrlibモジュールに飛び込みます - 私の目的は範囲が狭いので、何も必要ないでしょう。とても感謝しております! – zslayton
http://fdik.org/pyPEG/のようなものは動作しますか?私は言語を構築するのにも面白いです... – mamcx
@mamcxコードを調べることなく、Pythonライブラリ(解析やその他)がRPythonとして実行されることはほとんどありません。 – delnan