ソース コード レイアウトと継続行

多くのプログラミング言語とは異なり、MAXScript コードのレイアウト規則には C や C++ のような自由形式言語の利点があり、しかもセミコロンやカッコで囲まれたパラメータ リストのような長々しい区切り記号は不要です。

MAXScript では、行区切りが式の中で行われることを前提に、複数行にまたがるステートメントや式を必要な箇所で区切ることができます。MAXScript は各行の終わりまでコードを読み込み、完全な式になっているかどうかを判断します。式が完全でない場合、MAXScript は式の終わりを検出するまで次の行に読み込みを続けます。

次に例を示します。

a + b * c / d - e + f * g / h

この行は、どの演算子の後でも区切ることができます。MAXScript では、演算子にもう 1 つの引数が必要なため、次の行が続けて読み取られます。

たとえば、次のようになります。

a + b * c / d - e +
f * g / h

次の例で最初の行の式は完全な式なので、行を区切っても同じ結果は得られません。MAXScript では 2 つの行が別の式であると解釈され、2 つ目の式演算子で始まるので、構文として正しくありません

不正な書き方:

a + b * c / d - e
+ f * g / h

部分式の終わりで区切る場合、行継続文字の「¥」(バックスラッシュ) を使用します。上の例では無効な区切りも、次のように「e」の後に行継続文字を使用することにより、有効になります。

例:

a + b * c / d - e \
+ f * g / h

行の最後の文字に「¥」(空白、タブ、またはコメント以外) がある場合、行区切りがなかったかのように次の行が続けて読み込まれます。

行継続文字は、引数が多数ある関数呼び出しを区切る場合によく使われます。詳細は、「」を参照してください。

以上の手順により、同一のステートメントを次の形式で書くことができます。他の自由形式言語で使用するピリオドやセミコロンは不要です。

たとえば、if/then/else 構造は次のように記述できます。

if a < b then print c else print d

または

if a < b then print c
else print d

または

if
a < b
then
print c
else
print d

また、MAXScript では、複数のステートメントと式を 1 行に組み合わせることができます。以下のように、ステートメントまたは式は「;」で区切られます。

例:

print "End of input data reached" to:f ; close f ; f = undefined
if a < 0 do (print "value out of range";a=0)

MAXScript のコメントは 2 つのハイフン「--」で始まり、行の終わりまで続きます。多くの場合、このヘルプ ファイルのコード例はこの種のコメントを使用しています。

例:

-- special cases...
if first do
subanims[6]=undefined-- subanims[6] is #Image_Motion_Blur_Multiplier