この記事は2年以上前に書いたものです。
そのため情報が古い可能性があります。ご了承ください。m(_ _)m
そのため情報が古い可能性があります。ご了承ください。m(_ _)m
ソースコード整形ツールが欲しくて探してみたところ、いくつか発見。
名称 | 対象 | 備考 |
indent | C | 説明サイト |
astyle | C, c++, C#, Java | |
GreatCode | C, C++, Java | バイナリが見つからなかったので、vc6でコンパイルしてみました。 GC.lzh(対象ソースコード) |
C++のソースが整形できるからastyleかGreatCodeのどっちかを使おうかなと。
shとかcshとかperlとかpythonとかも整形してくれるツールがあれば良いんだけどな。。。
GreatCodeを試してみたところ相当良さそう。
だけど、デストラクタの宣言が上手く認識してくれない。
(設定が不足しているだけかもしれないけど。)
class Base{ public: Base(); ~Base(); private: int m; };
↑このソースをGC.exeに食わせると・・・
class Base{ ←classとBaseの間が広い { public: Base(void); ~ Base(void); ← チルダ(~)とBaseの間にスペースが・・・ private: int m; };
このままじゃC++のソースに使えないので、いろいろ試してみたところ、
どうも”-code_align_max_blanks-30″が影響しているらしい。
このオプションを無効にすることは出来なかったため、
-code_align_max_blanksをオフにすることが無理な(気がする)ので、
-code_align_max_blanks-1で試してみると
class Base{ { public: Base(void); ~ Base(void); ← チルダ(~)とBaseの間に1文字スペースが・・・ private: int m; };
結局チルダ(~)とBaseの間にはスペースが入ってしまう結果に。。。
ちゃんとGC.txtには書いてあるかもしれないけど、英語だし面倒なので、
ソース見て、それっぽいところを弄ってみました。
これでちゃんと行くようになったけど、他に影響がないかどうかは、ちゃんと試験(ry
class Base{ { public: Base(void); ~Base(void); private: int m; };
一応、弄ったソースとバイナリを置いておきます。
grammar_decl.c
GC_20060902.lzh