プラットパーサーといわゆる「操車場」パーサー(はるかに長いウィキペディアの記事が添付されています)の間にほとんど違いはありません。主な違いは、Prattが再帰を使用するためスタックを使用するのに対し、Djikstra(「操車場」)は明示的なスタックを保持することです。それ以外は、まったく同じ一連の操作を実行します。Djikstraのアルゴリズムの表現は、再帰恐怖症のためにより一般的であると思います。
プログラムスタックを使用することにはいくつかの利点があります。そのうちの1つは、スタック全体が1つの型である必要がないため、型の安全性を維持しやすいことです。一方、多くの式パーサーには1つのタイプしかありません。
Dragon Bookには、文法から演算子の優先順位表を生成するアルゴリズムが含まれています。指摘しているように、アルゴリズムが成功するという事実は、必ずしも演算子の優先順位パーサーがまったく同じ言語を解析することを意味するわけではありません。確かに忘れてしまった興味深い情報がそこにあります。あなたがアルゴリズムに興味があるなら、それはあなたが見ることができる場所の1つです。これには、生成の結果を明白な方法で<と>で囲む場合、派生を調べることによって<と>の優先関係演算子を生成できるという興味深い洞察が含まれています。
全体として、私の経験では、ほとんどの場合、「私の神様、私はXに出くわしたばかりですが、それは素晴らしいことです。なぜもっと多くの人がそれを知らないのですか????」というブログ投稿を見つけたときです。答えは「あなたの無知が普遍的であると思い込まないでください」です。しかし、多分私は今日ちょうど冷笑的な気分になっています。
ちなみに、Lua
パーサーは、Prattスタイルの構文解析を使用して式を解析する手作りの再帰下降パーサーです。これはかなり一般的な手法だと思います。パターンを確認するにはコードを調べなければならないかもしれませんが、おそらく他の場所でも見つかるでしょう。