3

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

ありがとう!

4

2 に答える 2

2

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

または、フロントエンドを手動で作成することもできます。レクサーは煩わしく不自然である可能性があります(Python実装で使用されるDFAのユーティリティモジュールを削除できる場合があります)。しかし、適切なアルゴリズムを知っていれば、パーサーは簡単です。私は「トップダウン演算子の優先順位パーサー」、別名「プラットパーサー」の大ファンです。これは、適度に単純(再帰下降)ですが、すべての式の構文解析の問題(ネスト、優先順位、結合性など)を簡単にします。気のめいるようにそれらに関する情報はほとんどありませんが、いくつかのブログ投稿は私にとって十分でした:

  • Crockfordによるもの(ただし、お勧めしませんが、無関係なものをパーサーに大量にスローし、それを覆い隠します)、
  • もう1つはeffbot.org(Pythonを使用)にあり、
  • 3つ目は、自分で言語を開発している、悲しいことにあまり有名ではない男、RobertNystromによるものです。
于 2011-11-14T23:17:33.053 に答える
1

Alex Gaynorは、 DavidBeazleyの優れたPLYをRPythonに移植しました。そのドキュメントは非常に優れており、PyConUS2013で通訳を実装するためにそれを使用することについても話しました。

于 2015-04-07T21:43:21.497 に答える