ソースファイルを丸呑みし、それをコンパイラの仕事またはプリプロセッサの仕事のいずれかであるセクションに分割するステートマシンを作成しようとしています。深いトラバーサルではなく、コメントまたはプリプロセッサ ディレクティブのセクションを探しているだけです。(マクロなし、条件付きでコンパイルされたブロックなどなし)
コメントは十分に単純ですが、プリプロセッサ ディレクティブを指定することが合法である場所を 100% 確信しているわけではありません。たとえば、次の行は有効ですか?
int i; #include <derp.h>
一部のディレクティブが許可され、他のディレクティブが許可されない特別なケースはありますか?
私はグーグルとSOを検索しましたが、これに答える質問が見つかりませんでした。
Cと C++の両方について回答してください。故意と意図の両方でタグを付けました。