LabTalk中でのセミコロンの使用

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

C言語の構文と同様、LabTalkでもセミコロンが、ステートメントを分割するために使用されます。 通常、各ステートメントはセミコロンで終わります。 しかし、セミコロンの使用について次のような規則があります。

  • スクリプトウィンドウで一つのステートメントのスクリプトのみを実行する場合、セミコロンを文末に付けてはいけません。
    • 適切な構文の例は次のとおりです: type "hello" (ENTER).
    • それが実行されると、インタプリタによって自動的にセミコロンが文末に付けられます。
  • { } ブロックで終了するステートメントは、セミコロンを省略できます。
  • { } ブロック内の最後のステートメントもセミコロンを省略できます。

次のサンプルで、3つのtypeコマンド間の違いに注意してください。

if (m>2) {type "hello";} else {type "goodbye"}
type "the end";

上記は次のように書くこともできます。

if (m>2) {type "hello"} else {type "goodbye"}
type "the end";

または

if (m>2) {type "hello"} else {type "goodbye"};
type "the end";

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

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

// このウィンドウを閉じるボタン
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