リテラル

式エディタ >

リテラルとは、特定の意味を持った定数のことをいいます。

数値の場合、特に識別子を使用しなくても識別されます。例えば、「123」や「15.52」はそのまま、数値リテラルとして(それ自体がリテラルとして)解釈されます。

数値以外のリテラルは、文字列として扱われます。通常、文字列は単引用符(')で囲みます。文字列のうち、テキスト以外の文字列には全て、その後ろにリテラルコードを付加します。このリテラルコードにより、単引用符(')で囲まれた文字列の種類を示すことができます。リテラルコード自体は単引用符で囲む必要はありません。例えば、'abcd'はテキストとして、'95/01/01'DATE は日付として扱われます。

リテラルとしての文字列は、Magic の内部表現に変換されます。式に文字列が定義されている場合、その文字列は、Magic の内部表現を使用して解析されます。実行時の式の評価には、内部表現の値(内部値)が使用されます。内部値は、その変更がないかどうか常にMagic により追跡され、変更があった時には、内部値に対応するリテラルも変更されます。

例えば、文字列「'1'DSOURCE」は、[データ]リポジトリの最初のデータ(行)を表します。このデータの前に新しいデータを挿入すると、このデータは1つ繰り下がり、2 番目のデータになります。その場合、自動的にリテラル文字列が「'2'DSOURCE」に更新されます。したがって、式でリテラルコード(この場合は「DSOURCE」)を使用して文字列を指定しておくことで、式を訂正しなくても済みます。

リテラルを使用することで、Magic のプログラムを別の言語に移植する作業も楽になります。例えば、タスクモードは「'MCDQLRUSFOE'」などと定義することで多言語に対応が可能になります。この場合、MODEリテラルを使用して「'MCDQLRUSFOE'MODE 」としておくと、文字列の中のタスクモードが自動的に変換先の言語を所定の値に変更されます。

リテラルコードを使用することで、式はより確実になり、プロジェクトを手直ししても式に影響が及ぶことが少なくなります。

以下は、Magic で使用できるリテラルコードです。