// ================================================================
// c2htm : c/c++ 設定ファイル
// ================================================================


// ----------------------------------------------------------------
// オプション

TAB=4                   // 入力のタブサイズ. 出力では空白になる
LNO=5                   // 行番号を付ける指定. 値は桁数. 0で無し
LNOSEP=" : "            // 行番号を付ける場合の、テキストとの間に置く文字列


// ----------------------------------------------------------------
// C/C++ソース以外の用途に使う場合の調整項目.
// ※ C/C++では ` $ @ はだたの文字扱いだが、一応設定しておく

// 記号として扱う 記号文字. 最初の=以降行末まで. 空白や// /*は置かないこと
SYM     =!"#%&'()=~|-^[:]/,.{}*+?><;`$@

// 名前として扱う 記号文字.
NAMESYM =_

// LINECMTを定義すると、C/C++の // /*コメントをやめ、
// 記号1文字から行末までをコメントとする.指定できるのは、記号1文字
// LINECMT=#


// ----------------------------------------------------------------
// 色やフォントスタイルの設定.
//  .C_STR{color:#888833} のようにそのままcssの中身になる

C_LNO   =color:#808080;                         // 行番号の色
C_SY    =color:#661155;                         // 記号
C_STR   =color:#888833;                         // "文字列"
C_CH    =color:#888800;                         // 'C'定数.
C_ESC   =color:#805030;                         // 文字列/文字定数中の エスケープシーケンス文字
C_ESCX  =color:#FF4411;                         // 通常ソース中の  のとき
C_VAL   =color:#888800;                         // 定数. 100や0x100L など
C_OCT   =color:#802000;                         // 0が1文字のみ以外の8進数.
C_CMT   =color:#209000;                         // // コメント. C_CMTK定義時は//の直後に空白がある場合の色
C_CMTJ  =color:#006000;                         // /// /** //! /*! で始まる doxygen(jdoc/qt)コメント
//C_CMTK=color:#808080;                         // "//コメント".   // の直後に空白がない場合
C_SH    =color:#308080; font-weight:normal;     // #単語 や #,##
C_W1    =color:#000080; font-weight:normal;     // 単語グループ1
C_W2    =color:#204080; font-weight:normal;     // 単語グループ2
C_W3    =color:#206080; font-weight:normal;     // 単語グループ3
C_W4    =color:#006080; font-weight:normal;     // 単語グループ4
C_W5    =color:#000080; font-weight:normal;     // 単語グループ5
C_W6    =color:#204080; font-weight:normal;     // 単語グループ6
C_W7    =color:#204080; font-weight:normal;     // 単語グループ7
C_W8    =color:#204080; font-weight:normal;     // 単語グループ8
C_W9    =color:#204080; font-weight:normal;     // 単語グループ9
C_HT    =color:#A0A0A0;                         // マーク行以外に使うハーフトーン行設定

  //※ 補足
  //・SYM= に該当記号文字を登録していない場合、C_指定の動作は不定
  //・以下のものは設定がない場合(コメントアウトした場合)、
  //  別の指定に置き換わる
  // ・C_OCT がない場合、C_VAL で判定
  // ・C_ESCXがない場合、C_ESC で判定
  // ・C_CMTJがない場合、C_CMT で判定
  // ・C_CMTKがない場合、C_CMT で判定
  // その他C_色設定がない場合、ただの文字として判定


// ----------------------------------------------------------------
// 色をつける単語の登録

SHARP   {
        // #行の単語
        #define
        #if
        #elif
        #else
        #endif
        #ifdef
        #ifndef
        #include
        #pragma
        #error
        #undef

        // プリプロセッサ関係
        defined
        __FILE__
        __LINE__
        __DATE__
        __FUNCTION__
}

WORD1   {       // 制御文系
        // c
        break
        case
        continue
        default
        else
        for
        goto
        if
        return
        switch
        while
        do

        // c++
        delete
        new
        throw
        try
        catch
        asm
}

WORD2   {       // 修飾子や型関係
        // c
        auto
        typedef
        static
        struct
        extern
        const
        void
        int
        char
        long
        short
        float
        double
        signed
        unsigned
        volatile
        typeof
        union
        enum
        register

        // c++
        typename
        bool
        inline
        template
        using
        virtual
        using
        mutable
        namespace
        explicit
        friend
        class
        private
        protected
        public
        explicit
        const_cast
        static_cast
        dynamic_cast
        reinterpret_cast

        // 特殊な値や表現なモノ
        // c
        sizeof
        // c++
        operator
        typeid
        this
        false
        true
}

WORD3   {
        // 標準ライブラリ定義の一般的(?)なもの
        NULL
        size_t
        wchar_t
        offsetof
}

WORD4   {
        // コンパイラ固有
        typeof
        __cdecl
        __far
        __near
        __huge
        __int64
        __int128
        __inline
        _inline
        __fastcall
        __stdcall
        __based
        pascal
        cdecl
        __declspec
        __attribute__
}



// ----------------------------------------------------------------
// ヘッダ&フッター
// *fn*  は入力ソース名に置き換わる
// *css* は.C_SY{...}のようなスタイル設定に置き換わる


HEADER  {
<html>
<head>
<title> *fn* </title>
<meta http-equiv="Content-Type" content="text/html; charset=x-sjis">
<style><!--
.C_PRE{background-color: #f0f0f0;}
*css*
--></style>
</head>
<body>
<blockquote>
<pre class=C_PRE>
}


FOOTER  {
</pre>
</blockquote>
</body>
</html>
}



// ----------------------------
// 交代ヘッダ&フッダ 1
HEADER1 {
<pre>
}
FOOTER1 {
</pre>
}


// 交代ヘッダ&フッダ 2
HEADER2 {
}
FOOTER2 {
}


// 交代ヘッダ&フッダ 3
HEADER3 {
}
FOOTER3 {
}