プロパティファイル

  測定対象となるファイルの種別を特定するための設定や、コメント行数を判断するためのコメント指示文字列を指定することもできます。

  - プロパティファイルについて
  - プロパティファイルの書式
  - プロパティファイルの項目
  - プロパティファイルの属性

プロパティファイルについて

▲TOP

  インストール直後の状態のプロパティファイルをそのまま使うこともできますが、ご利用目的に合わせてカスタマイズして使うことをお勧めします。
  また、一部の言語種別は測定対象外の状態で定義されています。
  これらを有効にするためには、行頭の"#"(シャープ)を削除してご利用ください。

プロパティファイルの書式

▲TOP

  プロパティファイルの書式は以下のとおりです。
  [項目]
  属性=値
  各設定情報について、改行区切りで指定してください。
  項目を複数指定した場合、最初に指定されたものが有効となります。
  属性については大文字、小文字は区別されません。

プロパティファイルの項目

▲TOP

  プロパティファイルの項目は以下のとおりです。

  - [INIT]
    ツールの動作状態を指定します。
    属性が複数指定された場合、最初に指定されたものが有効となります。
    値に記載される"TRUE"/"FALSE"などは大文字、小文字は区別されません。
    属性の記述がないか、属性の値が記述されていない場合の動作は、プロパティファイルの属性の「記述がない場合の動作」欄を参照してください。
  - [LANG]
    測定対象ファイルとその言語種別を記載します。
    【値の設定方法】
    本ツールが測定対象とするソースコードのファイルの所属する言語種別と、ソースコードファイル名の条件(ファイル名条件)、
    さらにソースコードファイルの先頭行に部分一致する条件(先頭行条件)が指定できます。
    - 言語種別：
      本項目の属性に指定した値が言語種別です。
      言語種別によって測定できる動作が違います。
      詳細はプロパティファイルの属性の章の「[LANG]」項目を参照して下さい。
    - ファイル名条件：
      ファイル名条件として指定できる条件については以下が指定可能です。
      "*"は0個以上の「任意の文字」を意味する特殊文字です。

      値 | 対象となるソースコードのファイル
      --- | ---
      * | すべてのソースコードのファイルが対象となります。
      XXX* | XXX(任意の文字列)と後方一致するソースコードのファイルが対象となります。
      *XXX | XXX(任意の文字列)と前方一致するソースコードのファイルが対象となります。
      *XXX* | XXX(任意の文字列)に部分一致するソースコードのファイルが対象となります。
      XXX | XXX(任意の文字列)に完全一致するソースコードのファイルが対象となります。

      ファイル名条件 に指定される XXX(任意の文字列) は、大文字、小文字は区別されません。
      なお、"XXX*XXX"のような書式には対応していません。
      この場合、"XXX*XXX"という文字列に完全一致するソースコードのファイルが対象となります。
    - 先頭行条件：
      先頭行条件には、[FIRSTLINE_STR]項目に指定したID($1〜$99)が指定できます。
      ファイル名条件と先頭行条件はセミコロン(；)で区切ります。 (セミコロンは複数個指定できません)
      ファイル名条件、先頭行条件はそれぞれ複数個の指定ができます。その場合はコンマ(,)区切りで値を指定します。
    【ツールの動作】
    ファイル名条件のみを指定した場合、条件に一致したファイルが測定対象となります。
    ファイル名条件と先頭行条件を指定した場合、ファイル名が一致し、かつファイルの先頭行に先頭行条件で指定した文字列が含まれる場合のみ測定対象となります。
    本属性は複数指定が可能です(同じ名前の文字列を複数指定できます)。
    その場合、指定された(上から)順に識別処理が行われ、最初に条件に合致する属性(言語種別)が見つかった時点で、その属性のファイルであると認識して測定を行います。

    ※注： | 検索順序について
    | ファイルの検索順序については、先に指定された条件に一致するものが有効となります。

    例) 以下のプロパティファイルの場合、test.hは CPP となります。
      CPP=*.h
      C=*.h
    対象条件に一致しないソースコードのファイルは、処理がスキップされ、測定結果ファイルには何も出力されません。
    属性の記述がないか、属性の値が記述されていない場合の動作は、プロパティファイルの属性の「記述がない場合の動作」欄を参照してください。

プロパティファイルの属性

▲TOP

  以下に、[INIT]、[LANG]、[ FIRSTLINE_STR]、[COMMENT]それぞれの項目で設定される属性を記載します。

  [INIT]
  インストール直後の状態では、プロパティファイルの記述にしたがって動作します。
  「記述がない場合の動作」と同じでない項目もあります。

  属性 | 詳細 | 記述がない場合の動作※1
  DOC | 仕様コメント行数カウント有無の指定 javadoc行、doxygen行、XMLドキュメントコメントなどを、コメントとは別に仕様コメント行数としてカウントするかどうかを指定します。 TRUE ： 仕様コメント行数としてカウントします。 FALSE ： 仕様コメント行数としてカウントしません。 | TRUE
  SKIP | SKIP/MSKIPの測定方式の指定 OLD ： 有効行としてカウントします。 NEW ： 有効行としてカウントしません。 | NEW
  DIFF_PARSE | 差分行数の測定方式の指定 "-diff"オプションを指定した場合の測定方式を指定します。 FILE ： 差分行数の測定をファイル単位で行います。 FUNC ： 差分行数の測定を関数単位で行います。 | FILE
  DIFF_BLANK | 差分行数の空白の変更の測定有無の指定 差分行数を測定する際に、空白行や空白文字の変更を測定するかどうかを指定します。 TRUE ： 空白や空白行の変更を測定します。 FALSE ： 空白や空白行の変更を測定しません。※2 "-diff_blank"オプションが指定された場合は、コマンドオプションが優先されます。 | FALSE
  DIFF_COUNT_MODE | 差分行数の測定内容の出力方法の指定 差分行数での測定を、diffツールの出力内容に基づき、追加/変更/削除に分けて出力します。 STD ： 差分行数の測定※3は、無変更行数、追加行数、削除行数で分類され、それぞれ次の単位に測定値を出力します。 ELOC(有効行数) CLOC(コメント行数) EXT ： 差分行数の測定※3は、無変更行数、追加行数、削除行数、変更(追加)行数、変更(削除)行数で分類され、それぞれ次の単位に測定値を出力します。 TOTAL(合計行数) ELOC(有効行数) CLOC(コメント行数) BLOC(空白行数) SKIP/MSKIP(スキップ行数/マクロスキップ行数) | STD
  STRUCT_FUNC_OPTION | 測定結果ファイルに出力される関数名へのパラメータの型付加有無の指定 構造メトリクスの測定時に、測定結果ファイルに出力される関数名に渡されるパラメータの型を付加して出力するかを指定します。 PARAM ： パラメータの型を出力します。 NONE ： パラメータの型を出力しません。 | PARAM
  NESTS_COUNT | 構造メトリクスでのNESTSカウント方式の指定 INNERBLOCK： 関数本体ブロックはカウントしません。 ALLBLOCK： 関数本体ブロックをカウントします。 ※Ver. 1.10までのカウント方式です。 | INNERBLOCK
  OUT_FORMAT | 測定結果ファイルのフォーマットの指定 CSV ： 測定結果ファイルをCSV形式で出力します。 XML ： 測定結果ファイルをXML形式で出力します "-F"オプションが指定された場合は、オプション指定が優先されます。 | CSV
  | NKF | 文字コード変換有無の指定 入力ファイルの文字コードを、UTF-8(BOMなし)に変換後に測定を行うかを指定します。 TRUE ： 変換を行います。 FALSE ： 変換を行いません。 文字コード変換によってソースコードファイルの文字コードを統一することで、以下の様な場合(変換を行わないと正常に測定できない)にも、正常に測定が行えるようにします。 ソースコードファイルの文字コードがShift_JISの場合 改行コードがCRの場合 | TRUE
  NKFEXE | 文字コード変換パスの指定 文字コード変換に使用するツールのパス(拡張子も含む)を指定します。 ツールのパスに空白が含まれる場合、ツールのパスを""で囲む必要があります。 ツールに指定するオプションが存在する場合は、パス名の後にスペース区切りでオプションを指定してください。 英語OS(英語ロケール)の環境では、日本語を含むパスは指定できません。 インストール直後の状態のプロパティファイルにはこの属性は設定されていません。 | 同梱されているnkf.dllを利用する
  BEAUTIFIER | ソースコード整形有無の指定 測定を行う前に、入力ファイルのソースコードを整形し、測定するかを指定します。 TRUE ： 整形を行います。 整形を行うためにはuncrustify(オープンソースソフトウェア)の追加が必要です。 詳細は「readme.txt」を参照してください。 FALSE ： 整形を行いません。 "-RESTYLE"オプションが指定された場合は、コマンドオプションが優先されます。 | FALSE
  BEAUTIFIEREXE | ソースコード整形ツールのパスの指定 ソースコード整形に使用するツールのパス(拡張子も含む)を指定します。 ツールのパスに空白が存在する場合、ツールのパスを""で囲む必要があります。 ツールに指定するオプションが存在する場合は、パス名の後にスペース区切りでオプションを指定してください。 英語OS(英語ロケール)の環境では、日本語を含むパスは指定できません。 インストール直後の状態のプロパティファイルにはこの属性は設定されていません。 | 本ソフトウェアが指定する場所にuncrustify.exeがない場合エラー発生
  JAVAEXE | Javaの構造メトリクスの測定時に利用するJava実行環境のパスの指定 複数のJava実行環境がインストールされている場合などに、本ソフトウェアで使用するJava実行環境をパス名(Javaコマンドファイル名を含む)で指定します。 ツールのパスに空白が含まれる場合、パスを""で囲む必要があります。 コマンドが見つからない場合は、エラーメッセージを表示し、解析は行われません。 英語OS(英語ロケール)の環境では、日本語を含むパスは指定できません。 特定のJREを使用して測定する場合は、パス名を指定してください。 例) JAVAEXE="C:¥Program Files¥Java¥jre7_0_25¥bin¥java.exe" | 測定を実行するOSのJava実行環境の設定に従う
  COMMENT_CASE_SENSITIVE | コメント指示文字列の大文字・小文字の区別有無の指定 プロパティファイルの[COMMENT]項目に指定された文字列をソースコード中で検索する処理において、大文字・小文字の違いを区別するかどうかを設定します。 TRUE ： コメント指示文字列の大文字と小文字の違いを区別します。 FALSE ： コメント指示文字列の大文字と小文字の違いを無視します。 例) [COMMENT] PERL==POD =CUT ("=POD"と"=CUT"で囲まれた範囲をコメントと見なす) 上記の指定があり、本属性に"FALSE"が指定された場合、 ソースコード中に、"=pod""=cut"と記述された場合も、 コメント行数として認識されます。 | TRUE
  EXCEPT_BINARY | バイナリファイル除外有無の指定 「そのほかの言語」にマッチするファイルが、バイナリファイルか否かをチェックして測定対象から除外するかを設定します。 TRUE ： バイナリチェックを行い、バイナリファイルは測定対象から除外します。 バイナリチェックを行うために対象のファイルをオープンするため、"FALSE"の場合よりも性能が劣化する可能性があります。 FALSE ： バイナリチェックは行いません。 テキスト形式のファイルしか存在しないフォルダー配下を測定する場合や、「そのほかの言語」を測定対象としない場合は"FALSE"を指定します。 バイナリファイルの識別条件は次のとおりです。 ファイルの先頭から最大1024バイトの内容を読み込む。 (1024バイト未満のファイルはすべて読み込む) 読みこんだ文字列中にヌル文字(0x00)がひとつでも存在した場合はバイナリとみなす。 1.の条件に該当しなかった場合は、次に読みこんだ文字列中にコントロール文字(0x01〜0x1f, 0x7f)が10%以上含まれるとバイナリとみなす。 ただし、次のコードはテキストを構成する文字になりうるためコントロール文字とは扱わない。 改行コード(0x0a, 0x0d) 水平・垂直タブ(0x09,0x0b) エスケープ文字(0x1b) | FALSE
  STMT | ステートメント数(STMT)測定有無の指定 基本行数の測定時間を短くする目的で、 ステートメント数の測定が不要の場合に、本オプションを指定します。 TRUE ： 対象言語に対して、STMTを測定します。 FALSE ： すべての言語に対して、STMTを測定しません。 STMTを測定しない場合、STMTの列に "-" (ハイフン)が出力されます。 | TRUE
  CHARSET_OUT_CSV | CSV形式の測定結果ファイルの文字コードの指定 CSV形式の測定結果ファイルで使用する文字コードを指定します。 文字コードには、次の指定が可能です。 SYSTEM ： OSのシステムコードページ(CP_ACP)に従った文字コードで出力します。 UTF-8 ： UTF-8(BOM付き)で出力します。 Shift_JIS ： Shift_JISで出力します。 EUC-JP ： EUC-JPで出力します "-Qrc"オプションが指定された場合は、コマンドオプションが優先されます。 | SYSTEM
  CHARSET_OUT_LOG | 測定ログファイルの文字コードの指定 測定ログファイルで使用する文字コードを指定します。 文字コードには、次の指定が可能です。 SYSTEM ： OSのシステムコードページ(CP_ACP)に従った文字コードで出力します。 UTF-8 ： UTF-8(BOMなし)で出力します。 Shift_JIS ： Shift_JISで出力します。 EUC-JP ： EUC-JPで出力します "-Qlg"オプションが指定された場合は、コマンドオプションが優先されます。 | SYSTEM

  ※1 | 記述がない場合の動作とは、以下の場合を指します。

  - プロパティファイルがない場合
    ("-Tfp"オプション指定がなく、カレントフォルダーまたはインストールフォルダー\etc\ncmeter配下に"ncmeter.properties"がない場合)
  - プロパティファイルに[INIT]項目自体がない場合
  - プロパティファイルに属性定義がない場合

  ※2 | 空白文字や空白行を変更なしとする条件について
  | 言語種別がTXT以外の言語種別のファイルに関して、以下の場合は変更なしとして扱います。

  1. 空白行が追加/削除された場合
  2. 1行の前・後方の空白文字(半角空白、タブ文字)が追加/削除された場合
  3. 連続した空白文字に対して空白が追加/削除された場合
     ただし、空白をすべて削除した場合は変更ありと認識します
     例1) 変更なしと認識される例 (Δは空白文字)
       ifΔ Δ(Δ ΔtrueΔ Δ) → ifΔ(ΔtrueΔ Δ Δ)
       ※空白文字を2つから1つに変更(3.の内容)し後方空白を追加(2.の内容)
     例2) 変更ありと認識される例
       ifΔ(Δ ΔtrueΔ) → if(true)
       ※連続した空白文字をすべて削除する

  ※3 | 差分行数の測定について
  | 出力する差分行数(追加/変更/削除/無変更)の測定は、本ツールで利用するdiffツールの比較測定結果に従いカウントしています。

  [LANG]
  インストール直後の状態では、プロパティファイルの記述にしたがって動作します。
  「記述がない場合の動作」と同じでない項目もあります。

  属性 | 詳細 | 記述がない場合の動作※1
  CPP | C++言語ファイル C++言語ファイルのファイル名条件が指定できます。 | *.cpp
  CPPH | C++言語(ヘッダー)ファイル C++言語(ヘッダー)ファイルのファイル名条件が指定できます。 | *.h
  C | C言語ファイル C言語ファイルのファイル名条件が指定できます。 | *.c
  CH | C言語(ヘッダー)ファイル C言語(ヘッダー)ファイルのファイル名条件が指定できます。 | *.h (CPPHで表示)
  JAVA | Java言語ファイル Java言語ファイルのファイル名条件が指定できます。 | *.java
  CS | C#言語ファイル C#言語ファイルのファイル名条件が指定できます。 | *.cs
  VB | Visual Basic言語ファイル Visual Basic言語ファイルのファイル名条件が指定できます。 | *.vb
  JS | JavaScript言語ファイル JavaScript言語ファイルのファイル名条件,先頭行条件が指定できます。 | *.js
  TXT | テキストファイル 改行の行数がカウントされます。テキストファイルのファイル名条件が指定できます。 | - (測定されません)
  (任意の文字列) | そのほかの言語のファイル (任意の文字列) には、半角英字で始まる6文字以内の半角英数字が指定できます。 '(任意の文字列)=' に続けて、ファイル名条件と先頭行条件が指定できます。 また、本属性に指定されたファイルについては、下記の[COMMENT]項目にて、言語ごとのコメント指示文字列が指定可能です。 コメント指示文字列を指定することでコメント行数のカウントを行います。 例) SCRIPT=*.sh ; $1 HTML=*.html | - (測定されません)

  ※1 | 記述がない場合の動作とは、以下の場合を指します。

  - プロパティファイルがない場合
    ("-Tfp"オプション指定がなく、カレントフォルダーまたはインストールフォルダー\etc\ncmeter配下に"ncmeter.properties"がない場合)
  - プロパティファイルに[LANG]項目自体がない場合
    また、下記の場合は対象の属性の言語のファイルは測定されません。
    - プロパティファイルに[LANG]項目内の、属性の設定(CPPやCなどの設定)が存在しない場合
      属性の行頭に"#"を付けてコメントアウトしている場合も同様です。
    - プロパティファイルに[LANG]項目内の、属性の値が設定されていない場合

  [FIRSTLINE_STR]

  属性(先頭行条件) | 詳細
  $1〜$99 | 先頭行条件文字列 [LANG]項目のファイル名条件だけでは言語種別が定義できない場合、ファイルの1行目に含まれる文字列を[FIRSTLINE_STR]項目で指定できます。 (主としてmakefileやスクリプトのように拡張子がないファイルを識別する場合などに利用します) 【指定方法】 属性には、ドル記号($)で始まるIDを指定します。 IDは$1〜$99 まで指定可能です。 このIDは、[LANG]項目の「そのほかの言語のファイル」で指定したIDと同じものを指定することで、ひも付けされます。 先頭行条件の文字列に関しては以下の規則があります。 文字列の両端に空白文字、あるいはタブ文字が存在した場合、空白を削除する。 半角英数字(ASCII文字の範囲)のみ指定可能。 空白、タブ文字を含めてもよい。 最大文字列長は127バイトとする。 これを超えた場合は127バイトまでが指定されたものと見なす。 指定した文字列の大文字・小文字は区別されない。 正規表現、ワイルドカードの指定は不可。 【ツール動作】 指定した文字列が、ファイルの１行目に部分一致すれば条件を満たしていると見なして測定します。 例) [LANG] SHELL=* ; $1 MAKE=make* ; $2 [FIRSTLINE_STR] $1=#!/usr/bin/sh $2=# This is makefile

  [COMMENT]

  上記 [LANG]項目内で、「そのほかの言語のファイル」として指定された属性に対応する コメント指示文字列を指定します。
  各属性につき、コメント指示文字列を単一行コメント、複数行コメントの合計で32個まで指定できます。
  33個以上指定された場合は、33個目からは無視されます。

  - (任意の文字列) 単一行コメント指示文字列
    改行までをコメントとする文字列を設定します。
    (任意の文字列) は、上記 [LANG]項目内でユーザーが任意に指定した、「そのほかの言語のファイル」に対応する属性名です。
    コメント開始文字に指定できる文字数は、半角文字で 31文字まで有効です。
    32文字以上指定した場合、 32文字目からは切り捨てられます。
    例)
      SCRIPT=//
  - (任意の文字列) 複数行コメント指示文字列
    コメントの開始と終了を示す文字列を設定します。
    コメントの開始を示す文字列と終了を示す文字列の間には空白を置くことで区切られます。
    (任意の文字列) は、上記 [LANG]項目内でユーザーが任意に指定した、 「そのほかの言語のファイル」に対応する属性名です。
    コメント開始文字/コメント終了文字に指定できる文字数は、 それぞれ、半角文字で31文字まで有効です。
    32文字以上指定した場合、32文字目からは切り捨てられます。
    例)
      SCRIPT=/* */
      HTML=<!-- -->