言語構造
言語構造は、プログラム言語の振る舞いを規定する基本的な一連の規約です。この章では、Caché Basic の言語構造を説明します。
a.foo = 10
A.foo = 20
PrintLn "a = " & a.foo
PrintLn "A = " & A.foo
大文字と小文字の区別
Basic では、文や関数、演算子の名前で大文字と小文字は区別されません。
PrintLn "Hello"
PRINTLN "Hello"
println "Hello"
変数名では、大文字と小文字が区別されます。
a = 10
A = 20
PrintLn "a = " & a
PrintLn "A = " & A
オブジェクト識別子 (クラス、メソッド、およびプロパティ名) では大文字と小文字が区別されません。しかし、ローカルでは、大文字と小文字を区別している場合と同様に一意の名前にする必要があります (つまり、Person クラスと PERSON クラスは同時に存在することはできません)。
person = OpenId Sample.Person(1)
PrintLn person.Name
' PrintLn person.name ' Error
空白と行の継続
Basic では、トークンの間の空白およびタブは無視されます。トークンは関数名、変数名、数値、またはキーワードのいずれかになります。空白をトークンの内部に使用することはできません。
改行文字は Basic コード文の終了を意味します。アンダースコア文字 (_) は、行継続文字です。文を次の行に継続して記述するには、最初の行の末尾に空白文字とそれに続いてアンダースコアを記述する必要があります。アンダースコアは、行の最後の文字である必要があります。行継続文字の後にスペースまたはコメントを挿入することはできません。
コメント
Basic のコメントは行型で、Rem 文、またはアポストロフィ (') で開始します。コメントは必ず行の最後まであり、コメント全体が無視されます。
' This is a comment
リテラル
リテラルはプログラム内に表示され、データ値を表します。リテラルは、定数でもかまいません (vbMonday)。
以下は、さまざまなリテラルを出力する例です。
PrintLn "This is a String" 'String literal
PrintLn 1234 ' Integer literal
PrintLn 123.4 ' Numeric literal
PrintLn true
PrintLn vbMonday
識別子と変数
識別子とは名前のことであり、変数、関数、クラスなどに名前を付けるために使用されます。
変数とは名前が付いたストレージ位置で、プログラム実行中に変更できるデータを含みます。各変数には名前があり、スコープ・レベルで一意に変数を識別します。変数には、ローカル変数、プロセス・プライベート・グローバル変数、およびグローバル変数の 3 つのタイプがあります。この 3 つのタイプの変数の詳細は、"Caché ObjectScript の使用法" の “変数” の章を参照してください。
変数名では、大文字と小文字が区別されます。変数名の長さに制限がなく、最初の 31 字内で (接頭語の文字数を除く) 一意の必要があります。変数には、複数レベルの添え字があります。Caché Basic における変数の名前付け規則の詳細は、このドキュメントの “変数” の章を参照してください。
ラベル
Caché Basic コードでは、以下のようにラベルを定義することができます。
labelOne:
' some code
labelTwo:
' some more code
ラベルは、後にコロン (:) が続く有効な識別子です。ラベル名では、大文字と小文字が区別されます。ラベル名は、文字またはパーセント (%) 文字のいずれかで開始できます。ラベル名の残りの部分は、文字または数字でなければなりません。ラベルは任意の長さにできますが、最初の 31 文字のみに意味があります。ラベルは、変数または予約語と同じ名前にすることができますが、これはお勧めできません。
ラベルは、プログラム行の最初の項目でなければなりません。ラベルは、列 1 から開始する必要はありません。ただし、通常は列 1 から開始することをお勧めします。1 つのプログラム行に複数のラベルを指定できます。その場合、ラベルは空白で区切ります。
プログラム行のすべてのラベルの後、同じ行で 1 つ以上のコマンドを指定できます。同じプログラム行に複数のコマンドを指定する場合は、コロン文字で区切ります。プログラム行のすべてのラベルおよびコマンドの後に、コメントを指定できます。以下の例は、Caché Basic コードの有効な行です。
label1: label2: Set x="text" : Println x ' my comment
ラベルは、Goto 文と On Error Goto 文によって使用されます。これらについては、"Caché Basic リファレンス" を参照してください。On Error Goto 文の詳細は、このドキュメントの "エラー処理" の章を参照してください。
予約語
Caché Basic には、ローカル変数名、または関数名として使用できない多くの予約語があります。
予約語の一覧は、"Caché Basic リファレンス" を参照してください。