Cでの定数ラベルをスクリプトからも使いたい…けど、いい方法が思いつかない

今日も今日とて8時に寝てしまいました。これはこれでサイクル化できているのですが、真夜中が一番調子よくて、昼間は眠いという仕事にはあまり良くないサイクルなのでやっぱり直さなくちゃ。今日は8時に寝て11時に起きたので、明日は8時に寝て10時に起きる予定。そして明後日は9時に起きて、来週からは帰ってきてからすぐに寝ない生活に!
閑話休題
データ作成をする際、メインのプログラムで定義している定数を、他のツールでも使用したいということがよくあります。例えば、enum定義してある定数をRubyで書いているツールでも使用したいとか。
開発もメンテナンスもすっかり終了していて今後変更がないことがわかっていれば、メインのプログラムのコードから定義をコピペしてくるだけでよいのですが、たいていの場合はメインのコードも日々更新されます。enumでの定数定義なんて、新しいものが追加されたり挿入されたりしちゃいます。
「メインで該当箇所を更新したら、ツールでの該当箇所も更新する」という自分ルールを守れればいいのですが、なかなかそううまくはいきません。ついつい忘れていて、バグが出てから気づくものです…
これを自動化する楽な方法がないか考えてみたところ、オブジェクトファイルの情報を使えばうまくいくんじゃないかという案が浮かびました。コンパイル時に出来るオブジェクトファイルから、定数の情報のみを抜き出せるのではないかということです。
そんなわけで、gccにいろいろなオプションを渡し、それをobjdump, nm, stringsで見てみたのですが…ありません。逆アセンブルしたら、ラベルなんて使わずに必要な場所にそのまま定数値を置いてました。そりゃそうですよね。コンパイル時のチェックとしては必要かもしれませんが、実行時にまでその情報を保持しておく必要はありませんもんね。gdbでは定数ラベルが表示されていたのでもしかしたらと思っていたのですが、gdbはソースレベルデバッガ。その名の通り、ソースレベルで自力で解釈しているということなのでしょう。
となると、ソースを自力で解析するしか道はないようです。さすがに真っ当にパースする気力はないので、定数の定義箇所に特別なコメントを記述して、それを使って処理していくとかかなぁ。定数定義のファイルは独立したテキストファイルにして、メインのコードからもツールのコードからもそれをincludeして使うってのが理想的だけど、それはそれで管理が面倒そうだし…どうしよ。