2011-11-14 6 views
3

私はRPythonツールチェーンを使って言語を実装する例を高く評価しましたが、これまで見つかったのはthisです。著者が単純なBFインタプリタを書くものです。文法はとてもシンプルなので、パーサー/レクサージェネレータを使う必要はありません。 RPythonで言語を開発することをサポートするフロントエンドはありますか?RPythonで言語を実装するために使用できるフロントエンドは何ですか?

ありがとうございます!

答えて

2

私はRPythonをターゲットとする一般的なレクサーまたはパーサージェネレータを特に認識していません。 Pythonの出力であるになるかもしれませんが、私はそれに賭けません。ただし、解析ツールのセットはrlib.parsingです。それはかなり使えるようです。 OTOH、ドキュメントには警告があります。これはまだ開発中であり、実験的であり、これまでのところPrologインタプリタのみに使用されていると伝えられています。

また、フロントエンドを手書きで書くこともできます。レクサーは厄介で不自然なことがあります(Python実装で使用されるDFAのユーティリティモジュールを取り除くことができるかもしれません)。しかしパーザーは正しいアルゴリズムを知っているならばケーキです。私はかなり単純な(再帰的な降下)しかし、すべての式の解析の問題(ネスティング、優先順位、連想など)を簡単にする "トップダウン演算子優先順位パーサー" a.k.a. "Prattパーサー"のファンです。そこにそれらの情報はほとんど情けないのですが、いくつかのブログの記事は、私のために十分であった:Crockfordによって

  • 一つ(それはパーサに無関係なものの全体の多くをスローし、したがって、それを覆い隠し、しかしそれをお勧めしません) 、
  • effbot.orgで別の1(パイソンを使用しています)、
  • や言語に自分自身を開発しています悲しいことさえレスに有名な男、Robert Nystromによって第三。
+0

ありがとう。このような成功したプロジェクトでは、簡単なレキシング/解析プロセスを持たない言語を人々が手助けすることに対する関心が表明されているのは奇妙なようです。私はrlibモジュールに飛び込みます - 私の目的は範囲が狭いので、何も必要ないでしょう。とても感謝しております! – zslayton

+0

http://fdik.org/pyPEG/のようなものは動作しますか?私は言語を構築するのにも面白いです... – mamcx

+0

@mamcxコードを調べることなく、Pythonライブラリ(解析やその他)がRPythonとして実行されることはほとんどありません。 – delnan

1

アレックスゲイナーがportedデビッドビーズレーの優れたPLYをRPythonに持っています。そのdocumentationはかなりいいですし、彼はPyCon US 2013で通訳を実装するのに、talkをつけてくれました。

+0

最初に使用します:ソースレベルでPlyとRply互換性がありません:Plyテンプレートimport ply.lexとlex ...を比較するle​​xergeneratorが必要です。また、python parser.pyで起動するとRPython生成を呼び出します –

関連する問題