Prattパーサ
From Wikipedia, the free encyclopedia
Prattパーサーはパーサージェネレータは使わず、演算子の優先度を重視して構文木を構築する。発表当初はあまり有名ではなかったが、初心者にも理解しやすく実用に耐えるため、近年[いつ?]注目されている[要出典]。
仕組み
Prattパーサーは常に現在の読み込み位置とその次の位置を確認しながら解析する。これをLL(1)文法と言う。例えば「3+5*4」であれば、まず「3」と「+」を読んで次に「+」と「5」を読んでというのを繰り返しながら構文木を構築する。 Prattパーサーは現在の優先順位と、次に追加するものの優先順位を比較することで、新しく読み込んだものの、構文木のなかでの位置を決定する。