標準Cプリプロセッサの優れたC++実装を知っている人はいますか?私はC++ Cコードを解析する必要のプロジェクトに取り組んでいる、と私は、マクロなどをサポートしたいけどCプリプロセッサ自分の実装に興味がないと思いますCプリプロセッサのC++実装
。
理想的には、プリプロセッサは主Cファイルのファイル名に取る、及び前処理Cコードのストリームを返します。
これが失敗すると、Cの前処理をカバーする簡潔で包括的なリファレンスを誰にでもおすすめできますか?
標準Cプリプロセッサの優れたC++実装を知っている人はいますか?私はC++ Cコードを解析する必要のプロジェクトに取り組んでいる、と私は、マクロなどをサポートしたいけどCプリプロセッサ自分の実装に興味がないと思いますCプリプロセッサのC++実装
。
理想的には、プリプロセッサは主Cファイルのファイル名に取る、及び前処理Cコードのストリームを返します。
これが失敗すると、Cの前処理をカバーする簡潔で包括的なリファレンスを誰にでもおすすめできますか?
Boost.Waveをご覧ください。
Lex and Yacc(それぞれFlexとBisonとも呼ばれます)を使用する必要があります。これらは、言語の解析に使用されるツールです。 This excellent bookは、尊敬できる大学図書館でご利用いただけます。
これはどのようにして質問に答えますか? –
これらのツールは単なるツールです:解析トークン/文法の結果を操作するためにc/C++コードを書く必要があります。これがプリプロセッサの過度の可能性があることが認められています。 – rtpg
彼らはまた、プリプロセッサのハード部分(つまり、非常に畳み込まれた規則を持つマクロ置換え)ではあまり役に立ちません。 –
あなたはlex/yaccファイルを探しましたか? – arbithero
GNU cppで何が問題なのですか? –
ほとんどのCまたはC++コンパイラには、前処理されたファイルだけを出力できるコマンドラインスイッチが含まれています。過去に、私が書いたいくつかの社内ツールを含む多くのコード解析ツールでは、前処理機能を使用して独自の実装を行う必要がなくなりました。私はMicrosoftのC++コンパイラが15年前にこの機能を持っていたことを知っています。そして、私はGNU cppがやっていることを確信しています。 –