実行時に AST/parse ツリーを生成するパーサーはありますか? EBNF文法の文字列または類似のものを受け入れてデータ構造を吐き出すライブラリのようなものですか?
- 私はantlr、jlex、およびそれらの同類を認識しています。彼らはこれを行うことができるソース コードを生成します。(コンパイルステップをスキップしたい)
- 私はBoost::Spiritを知っています.C++構文でいくつかの黒魔術を使用して、実行時にそのようなものを生成します(間違いなく私が望むものにはるかに近いですが、C++に関しては私は困っています.そして、それはまだいくらかです.文法がハードコードされているため、制限されます)
- PythonやRubyについては何も知りませんが、コンパイラコンパイラはそのような言語で非常に効果的かもしれません...
今、私はパーサーコンビネーターを認識しています。(ありがとう、ジョナス) そしていくつかのライブラリ (ありがとう、エリベン)
ついでに、 Parsing Expression Grammarsにも最近気付きました。誰かがそれを実装するとクールに聞こえます (彼らは Perl 6 にはそれがあると言っていますが、Perl は私の理解を回避しています)。