名前付きコメント
名前付きコメント
名前付きコメントは内容をプログラムから参照するための特別な書式を持つ複数行コメントである。
書式を以下に示す。
/**識別子**コマンド
任意の文字列...
*/
上から、開始行、コンテント行、終了行と呼ぶ。
開始行
複数行コメントが下記の正規表現パターンに合致するならば、それは名前付きコメントである。
^/¥*¥*[_a-zA-Z][_a-zA-Z0-9]*¥*¥*
合致しない場合は複数行コメントである。
コメントが名前付きコメントならば開始行は名前とコマンドを指定する。
開始行全体を**で分割した結果の二番目の項が名前である。命名規則は識別子に準ずる。
三番目の項がコマンドである。コマンドの指定は任意である。指定する場合は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!");}