3

私は午前中、ANTLRの基本を理解して、それがLLだけであることを確認しました。構文木が左から右への結合性を持つように、文法で左再帰を維持する必要があります。

編集2: 最近、私は別のパーサジェネレータを必要としていました。MPLexとMPPGは機能していましたが、構成に多少時間がかかったので、もう一度見てみようと思いました。今回、Hime Parser Generatorに出くわしました。1、2時間で、基本的な式をコンパイルして呼び出すことができるLINQ式に変換するパーサーができました。それはばかげたシンプルで、MPLexやMPPGよりもお勧めします。

編集1: GOLDパーサーは必要なことを実行しますが、そのソースが利用できないため、使用できません。

MPLexとMPPGは、それぞれLex/FlexとBison/YaccであるMicrosoftの公式製品です。それらに関するドキュメントはあまりなく、それらは前述のオープンソースプロジェクトの完全なクローンではありませんが、私がそれらを使って必要なことを行うことは可能でした。現実の政治に対処する必要がない場合は、GOLDをお勧めします。GOLDには優れたデバッグGUIとすべてが備わっていますが、オープンソースまたはMicrosoftの公式プロジェクト、MPLexおよびMPPGのいずれかを強制される場合は行く方法かもしれません。上記の2つのアプリケーションは、実際にはGPLEXとGPPGの派生物にすぎないことに注意してください。後者の2つは、Microsoftがプロジェクトを放棄したと思うので、Microsoftの派生物よりも最新のものである可能性があります。Microsoftの派生物について私が見つけた唯一のドキュメントは、VS2008SDKの2つのPDFに含まれています。マイクロソフトはPDFを取りました」VS 2010 SDKでexeを出荷しているにもかかわらず、それらの使用法を説明します。ただし、PDFもexeも2012年に出荷される予定はないようです。

4

1 に答える 1

2

C#コードを生成する最も一般的なものの1つは、GOLD Parsing System(LALR)です。

多くのパーサジェネレータの比較については、http://en.wikipedia.org/wiki/Comparison_of_parser_generatorsを参照してください。

于 2012-07-19T18:52:40.577 に答える