マクロの用途の類型

http://panathenaia.halfmoon.jp/alang/headmaster/h.html

最近またCから他言語へのトランスレータ作りに熱が入ってたりするのですが、ほんとに何年たっても一向に完成の兆しは見えず。
パーサはある程度動くようになったので、普段使っているライブラリのヘッダーなんかをちまちま意味解析できるようにしようとはしてますが……。
Cから他言語へのトランスレータといっても、プリプロセス後のコードを変換できても意味が無いんですよ。Cのライブラリの場合は、マクロも含めてAPIになってますから。マクロも解釈しないといけない。
とりあえず現状の処理として、次のようにマクロを解釈しようとしています。

  • 引数なしマクロ
    • 演算子予約語の別名かどうか見る
    • declaration-specifiersとしてパースしてみる
    • initializerとしてパースしてみる
  • 引数有りマクロ
    • expressionとしてパースしてみる
    • statementとしてパースしてみる(ただしセミコロン抜き)
    • 引数を値ではなく型と考えた組み合わせも試してみる

で、これは解釈できないなあ……というのを見つけるたびに、無視するようにちまちまマーキングしたりしてるわけです。*1
中には型推論が必要だろこれみたいなのもあって、まあなんというか一向に進まないので、気晴らしに愚痴を書き散らしてみました。我ながらアホだと思います。
ツッコミや、こうすればマクロも意味解析できるんじゃね?みたいなのがあれば、指摘いただければ嬉しいです。具体的なヘッダ名教えろ等ももしありましたら。

*1:マクロはコンパイラのチェックが入らないため、広く使われているヘッダーでもスペルミスとかどこにも定義されてないものを参照してるぞとか結構あったりします……