10
広く使用されている構文解析アルゴリズムの中で最も弱いファミリーがCコードを解析できることを知っている人はいますか?つまり、Cの文法LL(1)、LR(0)、LALR(1)などがありますか?私は興味があります。なぜなら、サイドプロジェクトとして、これらのファミリのパーサジェネレータを書くことに興味があり、最終的に別のサイドプロジェクトのためにCコードを解析できるようにするためです。Cコードを解析できる最も単純な構文解析アルゴリズムは何ですか?
ほとんどのパーサーは、「あまりにも多く」認識するように構築されており、パーサー以外の追加のチェックによってそのオーバーヘッドが拒否されます。その場合、正規表現 "[*] *"は、多くの追加の意味チェックがあるにもかかわらず、Cを解析する最も弱いパーサーです。一度これが明らかになったら、任意のパーサジェネレータをCで処理し、余分なハッキングをモジュロできることは明らかです。 (開始場所としてあまりにも小さすぎるものを受け入れるパーサーを書くのは完全に夢中です)。 –
私はこの質問をもう一度やり直しました。明らかな実用的な答えは、「手書きのトップダウン再帰的」です。私は、最初のCパーサーがどのように構築されたのか(YACCの前に、私のボトムドルを賭けるだろう:)これの上にある面白い質問は、それが基本を超えてどのくらいハッキリしますか? –