LabTalkでのセミコロンの使用

セミコロンでステートメントを分割する

C言語の構文と同様、LabTalkでもセミコロンが、ステートメントを分割するために使用されます。

通常、各ステートメントはセミコロンで終わります。 しかし、セミコロンの使用について次のような規則があります。

  • スクリプトウィンドウで一つのステートメントのスクリプトのみを実行する場合
    • type "hello".同じ行の任意の場所にカーソルを置き、ENTERを押すと実行されます。; は実行を示すために最後に自動的に追加されます。
    • 例えばtype "hello";のように、;がある場合、カーソルを ; の前に置いて実行する必要があります。
  • { } ブロック内の最後のステートメント
if (m>2) {type "hello"; type "goodbye"} // } の前に; は不要
  • {} ブロックの直後
//if (m>2) {type "hello";} else {type "goodbye";} // } の後に; は不要

遅延実行のための文頭のセミコロン

スクリプトの実行を遅らすために、スクリプトの前にセミコロンを ';' 置くことができます。これは、ウィンドウを閉じたり、新しくプロジェクトを作成するといったボタン自体が消去されるボタン内でスクリプトを実行する必要がある場合に、必要となります。例えば、ボタン内に以下のスクリプトを置くと、おそらくクラッシュするでしょう。

// このウィンドウを閉じるボタン
type "closing this window";
win -cn %H;

これを解決するため、スクリプトを次のように記述します。

// このウィンドウを閉じるボタン
type "closing this window";
;win -cn %H;

実行を遅くするため、文頭のセミコロン ';' の後にすべてのスクリプトを記述します。ステートメントの特定グループを遅延させたい場合、セミコロン';'に続けて、{script} の内側にスクリプトを置くことができます。例えば

// このウィンドウを閉じるボタン
type "closing this window";
;{type "from delayed execution";win -cn %H;}
type "actual window closing code will be executed after this";

関連項目: LabTalk システム変数 @LT