パーサーを手動で作成する必要があります。LL(*) と LR のどちらかを選択できません (Earley を試してみてはいかがでしょうか?)。LL の文法はかなり難しいので、ボトムアップ解析を使用する必要がありますか?
1312 次
4 に答える
2
私は、再帰的降下パーサーか、おそらく末尾再帰的降下パーサー (つまり LL) またはトップダウン演算子優先度パーサーのいずれかを使用します。
パーサーの LR ファミリは、LR、LALR(k)、LALR(1)、GLR など、「奇妙」すぎて頭に入れておくことができません。それらのいずれかを作成しようとすると、通常、とにかくパーサー ジェネレーターを実装することになります。
于 2010-11-23T21:49:20.033 に答える
0
手で書く最も簡単なタイプのパーサーは、LLパーサーのファミリーに含まれる再帰下降パーサーです。他のほとんどのタイプのパーサーは、手動で作成するのが難しいか(大きな状態遷移表を使用するLALRパーサー)、複雑な言語を解析するためのものです(自然言語を解析するためのEarleyパーサーなど)。
ウィキペディアには、再帰下降構文解析に関するいくつかの優れた情報があります。
于 2010-11-23T21:42:26.897 に答える
0
これは、使用しようとしている文法によって異なります。LL には、文法の不確実性に関する問題があります (すべてを左再帰から解放する必要があります)。
判断できない場合は、LR(1) または LALR を使用してください。ひょっとしたらGLRも。
于 2010-11-23T21:03:39.847 に答える
0
XTextを試してください。それはあなたのためです。言語、パーサー、エディターをすばやく簡単に作成
于 2010-11-23T21:39:33.823 に答える