名前付きコメント

名前付きコメントは内容をプログラムから参照するための特別な書式を持つコメントです。


目次:


書式と使い方

開始行

コンテンツ行

終了行

コマンド

参照方法

書式と使い方

名前付きコメントの書式を以下に示します。


/**識別子**...

任意の文字列...

*/


上から開始行、コンテンツ行、終了行と呼びます。それぞれが独立した行になっている必要があります。

次のコメントを考えてみましょう。


/**Sample**/


単一行の名前付きコメントのようにも複数行コメントのようにも見えますが、これは名前付きコメントです。

この名前付きコメントは書式を満たしていないので例外が発生します。開始行と終了行が独立していないことが原因です。


このコメントを正しい名前付きコメントに修正してみましょう。


/**Sample**

*/


これでSampleという名前の名前付きコメントが定義できました。これをプログラムから参照してみましょう。

1:

/**Sample**

2:

*/

3:

4:

rice rr;

5:

string namedComment = rr.Sample;

これでSampleという名前の名前付きコメントを参照できます。namedCommentには空文字列が代入されます。これはSampleがコンテンツ行を持たないことが原因です。

開始行

複数行コメントの先頭が下記の規則に合致していれば、それは名前付きコメントです。


/**識別子**


/**と**の間に識別子が挟まれています。識別子はRice言語の識別子の規則に従います。


開始行は名前とコマンドを指定します。コマンドを指定した場合は以下の様になるでしょう。


/**識別子**コマンド


コマンドの指定は任意です。コマンドについては後述します。


開始行全体を**で分割したの二番目の項が名前として使用されます。

分割結果が三つ以上ある場合は三番目の項がコマンドです。コマンドを指定する場合は"concat"か"trimcat"を指定してください。これ以外のコマンドが指定された場合は無視されます。

四番目以降の項が存在する場合はそれらの項は無視されます。これを使って名前付きコメントにコメントを入れることができます。


/**Sample**concat**名前付きコメントのコメント。

*/


開始行は独立した行でなければなりません。この行に存在する内容が名前付きコメントとして参照されることはありません。

コンテンツ行

コンテンツ行は名前付きコメントとして参照される内容です。任意であり行数に制限はありません。

コンテンツ行の内容にも制限はありません。通常の文字列リテラルに使用できない文字も使用できます。特にダブルクォートをそのまま使用できます。

コンテンツ行が存在する場合は出現順に連結されて一つの文字列になります。この連結された文字列が参照結果です。

連結方法を開始行のコマンドにより制御できます。

終了行

終了行は複数行コメントの終了記号が含まれる行です。

終了行は独立した行でなければなりません。この行に存在する内容が名前付きコメントとして参照されることはありません。

コマンド

コマンドでコンテンツ行の連結方法を制御できます。連結方法は三つのモードがあります。制御無し、concat、trimcat です。

コマンドの指定は任意です。指定する場合はconcatかtrimcatを指定してください。これ以外のコマンドが指定された場合は無視されます。


/**Sample**名前付きコメントのコメント。

*/


コマンドが"名前付きコメントのコメント。"です。このような場合はコマンド指定が無視されて制御無しになります。

制御無し

コンテンツ行を連結する際に各行の終わりに改行文字を挿入します。


/**Sample**

function samplefunc() {

alert("Hello world!");

}

*/


参照の結果は以下のようになります。


function samplefunc() {⏎

alert("Hello world!");⏎

}⏎

concat

コンテンツ行を連結する際に改行文字を挿入しません。


/**Sample**concat

function samplefunc() {

alert("Hello world!");

}

*/


参照の結果は以下のようになります。


function samplefunc() {      alert("Hello world!");    }

trimcat

コンテンツ行を連結する際に行頭と行末の空白が削除され、改行文字は挿入されません。


/**Sample**trimcat

function samplefunc() {

alert("Hello world!");

}

*/


参照の結果は以下のようになります。


function samplefunc() {alert("Hello world!");}

文字列リテラルのように改行の無い参照結果が必要な場合は有意なコマンドを指定してください。制御無しは参照結果が単一行であっても最後に改行文字を加えます。

参照方法

名前付きコメントの参照はriceクラスの変数を経由して行います。

1:

/**Sample**

2:

*/

3:

4:

rice rr;

5:

string namedComment = rr.Sample;

6:

namedComment = rr.GetComment("Sample");

Copyright © Rice All rights reserved.