c2htm v1.70

file:c2htm170.lzh

■概要 

 c/c++/d ソースを html 化するコマンドライン・ツールです。

 まあ、よくある類の簡単ツールなんで、ネットで検索したら、 いろいろあるけれど、微妙に己の欲求をみたす色分けが可能な ものは無かったので、作ってみた、と。
(単に見つけられなかっただけのような気もする。見に行くWeb頁で 己好みの色分けがあったりすし...間抜けてそうオレ^^;)

とりあえず、可能なことは、以下の通り。

ああと、生成するhtml は v4.0系ってことになるのかな。 <pre></pre>で囲み <span> <strong>に class=を付けたものに なります。
(記号に色つけちゃうと、どうしてもhtmlは太っちゃいますね)



■サンプル 

まあ、こんな、感じにです。
(ああ適当にサンプルとして書いたものなんで、実際の不具合は突っ込まないでね^^;)

    1 : // サンプル・プログラム. ごてごてhello world
    2 : #include <stdio.h>
    3 : #include <stdlib.h>
    4 : 
    5 : #if defined(NDEBUG)
    6 : #   define  ASSERT(x)
    7 : #else
    8 :     #define ASSERT(x)   ((x) || (printf("%s %d : %s は偽\n", \
    9 :         __FILE__, __LINE__, #x), ((int(*)(int))exit)(1))    )
   10 : #endif
   11 : 
   12 : /// メイン
   13 : int main(int argc, char *argv[])
   14 : {
   15 :     ASSERT(argc < 2);
   16 :   #ifdef __cplusplus    // c++のとき
   17 :     cout << "hello world!" << endl;
   18 :   #else                 // c のとき
   19 :     printf("hello world!\n");
   20 :   #endif
   21 :     return 0;
   22 : }



■使い方 

usage> c2htm [-opts] 入力ファイル(s)

入力ファイルに拡張子 .htm をたしたファイルに変換結果を書出す。



■コマンドライン・オプション 

-c[CFGFILE] デフォルト以外の定義ファイルを読込む。
:NAME -cの特化系。
exeと同じフォルダにある c2htm-NAME.cfg を読込む。 :win :java とかしてライブラリキーワードや言語 キーワードを切り替えたい場合を想定。
-o[FILE] 出力ファイル名をFILEにする。
-n[N[:S]] 行番号を付加.
N=桁数(省略:5) -n-, -n0 だと行番号を着けない
S=行番号と本文の敷居文字列. (省略 " : ")
定義ファイルに書かれたものを、これで置き換え可能。
-t[N] 入力ソースのタブサイズの設定(省略:4)
定義ファイルに書かれたものを、これで置き換え可能。
-m[N] ヘッダ&フッダ組の番号
定義ファイルにヘッダ&フッタは 4組までもてるので いずれを使うかを変更。デフォルト 0
-ql<STR> 行末に STR のある行のみ色付き変換し、以外の行はハーフトーンにする。
ex) c2htm -ql★ foo.c
    1 : void foo(void) {
    2 :     bar();
    3 :     baz();      // この行だけ色つけ ★
    4 : }
-qr<STR> -ql にほぼ同じだが、行末のSTRを出力しない。
-s[N] 標準入出力を可能にする。
-gencfg デフォルトcfg定義を標準出力
内臓の状態の確認 & exeしかなかったときに .cfg を再作成する用に。



■定義ファイル 

 デフォルトの定義ファイル c2htm.cfg が c2htm.exe と同じフォルダ に必要。

※exe名に連動するので、c2htm.exe を java2htm.exe に変えたら 定義ファイルも java2htm.cfg にする。
 定義ファイルに定義できることについては、付属の c2htm.cfg の コメントを見たってください。

定義ファイルの文法は、

  1. コメントは、行頭、または直前が空白の // から行末まで。 (文字列中に詰まって // がある場合、それはコメントにならない)
  2. 定義は
      名前=文字列
    
     または
      名前 {
       文字列1
       文字列2
        :
        :
      }
    
     の形になる。
ってだけです。



■補足:// /* 直後の空白タブの有無での色わけについて 

C_CMTK を設定すると、

//コメント ※コメント開始記号の直後に空白がない場合
// コメント ※コメント開始記号の直後に空白がある場合
を別物として扱います。これは
	// テスト
	//test2();
	test();
	
のように、説明としてのコメントは 空白つき//で行い、 プログラムをコメントアウトした部分は空白無し//コメント にする習慣があるならば、それを反映したいなあ、てことで あります。







[back]