私はCのためのパーサーに取り組んでいます。私はすべての文脈自由派生のCのリストを見つけようとしています。理想的にはBNFまたはこれに類するでしょう。私はそういうことがあると確信していますが、周りをグーグルで回っても私にはあまり効果がありません。Cのための文脈自由文法
既存のパーサー/コンパイラのソースコードを読むことは、私が見つけたほとんどが私が構築しているものよりもはるかに野心的で複雑なので、はるかに混乱していることが分かっています。
私はCのためのパーサーに取り組んでいます。私はすべての文脈自由派生のCのリストを見つけようとしています。理想的にはBNFまたはこれに類するでしょう。私はそういうことがあると確信していますが、周りをグーグルで回っても私にはあまり効果がありません。Cのための文脈自由文法
既存のパーサー/コンパイラのソースコードを読むことは、私が見つけたほとんどが私が構築しているものよりもはるかに野心的で複雑なので、はるかに混乱していることが分かっています。
いつもC11標準の附属書A自体を使用することができます。自由に利用できるドラフト標準は、http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdfであなたの目的のために働くでしょう。
これはC11標準に更新されたANSI-C文法です。あなたの目的を果たすべきです。関数の定義:
C99のANSI文法は、外部宣言でバグがあります。
また、Kernighan - Cプログラミング言語、ANSI C版の付録A.13を使用することもできます。
Cのyacc文法:http://www.lysator.liu.se/c/ANSI-C-grammar-y.html – congusbongus
これは良いことを確認できます。私はそのページのLEX/YACC文法からフレックス/バイソンパーサーを構築しました。 –
@CongXu、それは唯一の欠点、私はそれが歴史的なCとC99もC11もないことがわかります。 –