6

I am looking for a parser generator tool which gives C# output and fairly fast. My objective is to parse JSON like text and create CLR object out of it. I used GOLD Parser engine for this but it turned out to be slow for my need. Can anyone please suggest me a good and fast parser generator tool which emits C# code? I heard about Irony and ANTLR but don't have experience with them. Do they generate considerably faster parser or is there any better options?

4

5 に答える 5

6

GPLEX Scanner Generatorを検討する必要があると思います。これは、バックトラッキングを必要とせず、固定パターンを持たないレキシカル仕様の場合に使用される最速のものです。

それ以外の場合は、 SLK パーサー ジェネレーターを使用することもできます(C、C++、Java、C# 言語をサポートしています)。

また、この質問に連絡してください。
使用している GOLD パーサーの改善について質問されます: [GOLD パーサーの改善]

于 2011-03-11T12:53:02.593 に答える
2

ANTLR は、言語の受け入れに関して LR パーサーよりも強力ではない LL パーサーです。考えられるすべてのケースで、コンテキストの言語が LL 仕様に適合するかどうかを確認してください。また、あいまいな文法、文脈自由文法、文脈依存文法など、他にも考慮すべき点がいくつかあります。最初に、さまざまなパーサー タイプ (LL(+)、LR(+)、CALR(+)、 LALR(+) ) が利用可能です。+ は、先読みが 1 回以上発生したことを意味します。その後、そのパーサー タイプのパーサー生成ツールを 1 つ選択します。

ANTLR は LL(k) トップダウン パーサーです。左端の派生を再帰的に処理するため、場合によっては適切ですが、そうでない場合もあります。ゴールド パーサー、Visual Parse++ などのパーサーは、基本的にボトムアップ パーサーである LR(k) パーサーです。さまざまなパーサーの評価に関する私の調査では、LR(k) パーサーを選択しました (ビジュアル parse++ が適していました)。

すべての解析方法を正確にするために、さまざまなケースでうまく機能する、またはうまく機能しない仕様があります。私たちの言語に最適なものを評価する必要があります。また、パーサーのパフォーマンスは、開発するすべての言語で 2 倍に機能します

1) 開発中の言語に対する方法論の解析。2) 使用されるパーサー生成ツール (場合によっては、ツールがうまく開発されていない可能性があります)

それが役に立てば幸い。さらに詳しい情報があれば教えてください。

VM Rakesh (rakesh.vm@gmail.com)

于 2011-04-26T18:16:34.510 に答える
1

パフォーマンスについて話すことはできませんが、 GPLEX/GPPGを試すことができます

于 2011-03-11T12:55:51.377 に答える
0

JSON.NET の最新バージョンでは、動的な CLR オブジェクトを JSON から直接作成できます。それは代替手段がないのですか?もちろん、静的型付けの逆シリアル化も可能です。

JSON.NET

于 2011-03-11T12:58:49.473 に答える