SenseTalkにおける制限ワード
スクリプトで重要な意味を持つ名前の使用においてユーザーに最大限の自由を与えるために、私達は制限ワードの数ができるだけ少なくなるように細心の注意を払いました。SenseTalkエンジンが適切にスクリプトを理解できるようにするために、単語の中には、その特別な意味のみに限定して使用しなければならないものがあります。これらの制限ワードを許可されていない方法で使用しようとすると、構文エラーが発生します。
制限のあるコマンドおよび関数名
以下の単語は、コマンドまたは関数名として使用できません。
catch constant do else end exit |
function getProp global if local next |
on pass properties repeat return send |
setProp the then to try universal |
制限のある変数名
以下の単語は、変数(コンテナ)の名前として使用できません。
down else empty end |
false field fld global |
if repeat return target |
then true universal up |
事前定義済みの変数
その他多くの単語は、事前定義済みの値を保持しており、通常、その標準的な意味を必要としない状況のみにおいて、変数として使用する必要があります。混乱を避けるために、このような単語を変数の名前として使用しないことが推奨されますが、これらの使用が禁止されているわけではなく、いくつかのケースにおいては、その中に異なる値を格納することが役に立つ場合もあります。事前定義済みの変数については、値で詳細に説明します。以下に、変数名としての使用を避けた方がよい例を示します。
- 代替ブーリアン値:yes、no、on、off
- 特殊文字:コロン、コンマ、キャリッジリターン(cr)、creturn、If、行送り、crlf、フォームフィード、復帰改行、引用符、スペース、タブ、スラッシュ、バックスラッシュ、null
- アルファベットによる数値表記:pi、zero、one、two、threeなど
- 現在の日付や時間:today、now、date、time
また、ホストアプリケーションとロード済みの外部モジュールが、その他の事前定義済みの変数を定義する場合もあります。
引用符なしのリテラル
変数名として許可されているその他すべての単語(上記の制限リストに含まれていないか、事前定義済みの特別な値を持たないもの)は、別のものが格納されるまで、変数の名前として評価されます。その他の単語においては、引用符なしのリテラルとして使用できます。このような名前を変数として使用すると、その値はemptyとして処理されます。引用符なしのリテラルは、ハンドラ内の最初の使用に従って、常に大文字で始めます。同じハンドラ内で同じ名前(大文字と小文字だけが異なる)を続けて使用すると、最初のオカレンスと同じとして処理されます(以下の例の最初の3行を参照)。
注意 |
strictVariablesグローバルプロパティをtrueに設定する場合は、初期化していない変数を引用符なしのリテラルとして使用することはできません。 |
例
put BIG -- "BIG"
put little -- "little"
put big && LITTLE -- "BIG little"
set the strictVariables to true --引用符なしのリテラルの使用を防止します
put big -- これにより、例外が投げられます