2

私はPEG(Parsing Expression Grammar)パーサーを調査中です。私が調査しているトピックの1つは、他の解析手法との同等性です。

From Regular Expressions to Parsing Expression Grammarsで、正規表現を同等のPEGに変換することについての良い論文を見つけました。

私はLL(*)パーサーのための同様の治療法を見つけたいと思っていますが、まだ手ぶらで出てきています。1で説明した手法の多くは、変換の問題にも適用できるように思われますLL(*)が、私自身の分析に自信を持てるように、形式主義に十分に没頭していません。

あなたの集合的な助けをいただければ幸いです!

4

1 に答える 1

1

PEGに関するウィキペディアの記事はそれをすべて述べていると思います。PEGは、曖昧性解消のために句の順序を使用することにより、再帰下降を行います。理論的には、再帰下降で解析できる言語のファミリーはLLファミリーですが、PEGには無制限の先読みがあり、あいまいさがないため、ファミリーはより大きなもの、おそらく完全なCFGである必要があります。

すべてのLL(k)文法は、先読みがkの再帰下降パーサーで実装できるため、ルールを並べ替えることで、すべてのLL(k)文法をPEG文法に変換でき、最長の先読みが必要なものが最初にリストされます。

これはLL(k)文法です。

params = expr
params = expr ',' params

同じ言語のPEG文法にするには、ルールを並べ替える必要があります。

params = expr ',' params
params = expr
于 2012-11-17T14:43:27.347 に答える