MML reference: Repeat(A)

定義(Define)

記法1

        [count
	:
	]count

記法2

        [:count
	:
	:]count

引数(Inputs)

count

リピートの回数を指定します。0~255の範囲で指定してください。
リピート開始、リピート終了のどちらにも記述できますが、かならず、どちらかの1つに記述して下さい。

内容(Contents)

リピート(繰り返し)を記述します。

コマンド内容
[
[:
リピートの開始位置を示します。
: 最終リピート時に、リピートを終了します。
記法1、記法2で共通です(MMLコンパイラが自動で判別します)。
]
:]
リピートの終了位置を示します。

#RepeatModeコマンドで設定したリピートモードにより、リピートの展開方法が異なります。

リピートモード 0 (Default)

記法1のリピートコマンドのみで、ネスティングを含めたリピート(繰り返し)を行えます。
本モード時は、自動でMMLコンパイラがコンパイル方法を決定するため、 ユーザーはドライバ実装のリピート、コンパイラ展開のリピートを意識する必要はありません。

具体的には、 記法1によるリピートを記述した場合、標準ではドライバ実装のリピートを使用します。
但し、ネスティングした場合は、2段目以降のリピートコマンドはMMLコンパイラにて展開します。
記法2によるリピートを記述した場合は、強制的にMMLコンパイラにてリピートを展開します。
尚、サブルーチン記述ブロックの場合は、リピートモード2と同様の処理となります。

リピートモード 1

リピートコマンドを、ドライバ実装のリピートを使用するか、MMLコンパイラで展開するかユーザで制御したい場合にご使用ください。
ユーザ・アプリケーションへの組込等、メモリの制約がある場合に、ご利用ください。

記法1によるリピートを記述した場合、ドライバ実装のリピートを使用します。ネスト不可です。
記法2によるリピートを記述した場合、MMLコンパイラにてリピートを展開します。

リピートモード 2

リピートコマンドを、ドライバ実装のリピートを使用するか、MMLコンパイラで展開するかユーザで制御したい場合にご使用ください。
ユーザ・アプリケーションへの組込等、メモリの制約がある場合に、ご利用ください。

記法1によるリピートを記述した場合、MMLコンパイラにてリピートを展開します。
記法2によるリピートを記述した場合、ドライバ実装のリピートを使用します。ネスト不可です。

注意(Notes)

ドライバ実装のリピートは、ネスト不可となります。

本コマンド『リピート(A)』の区間で『リピート(B)』を使用する場合、リピート(B)の区間を終了してからリピート(A)を終了してください。

MMLコンパイラによる展開を使用した場合、展開した分だけコンパイル後のシーケンスサイズが大きくなります。
なるべくMMLコンパイラによるリピートの展開は使わず、サブルーチンに置き換えるなどの工夫をお勧めします。

例(Sample)

    [8 : cr ] <br>     /* = crcrcrcr crcrcr<br> */