定数には数値定数と文字定数があります。
定数は展開制御文中(@@set文の代入値や,@@if文の条件式中など)に記述した場合だけ定数として解釈されます。展開文中に記述しても,単なる展開文字列としか解釈されません。
@@if (@START_MSG == "Yes")
DISPLAY '**** PROGRAM STARTED *****'
@@end;
このとき,条件中の"Yes"は展開制御文中に記述されているため,文字定数として解釈されます。しかし,DISPLAY文の'**** PROGRAM STARTED *****'は展開文中に記述されているため,文字定数ではなく,展開文の一部とみなされます。
数値定数は次の規則に従って数値を表現したものです。
123456 …10進数
文字定数は,文字の並びをアポストロフィ(')かダブルクォーテーション(")で囲んだものです。ただし,文字定数を囲む1組を,アポストロフィとダブルクオーテーションを混在して記述することはできません。
文字定数に可変記号を記述する場合は次の注意が必要です。
@@set @MSG = "****** START!! *****";
@@set @START1 = "@MSG"; …ダブルクォーテーション
で囲まれているため@MSG
の内容"***** START!!
*****"が設定される。
@@set @START2 = '@MSG'; …アポストロフィで囲まれ
ているため@MSGがそのま
ま設定される。
したがって,そのあとの展開文での指定によって,展開される内容は次のようになります。
DISPLAY '@START1'ならDISPLAY '***** START!! *****'が展開される。
DISPLAY '@START2'なら'@MSG'が展開される。
文字定数を,行をまたがって記述する場合は,各行を文字定数として記述します。
@COMMENT = "入力ファイル1個,"
"出力ファイル2個,"
"DB1はHiRDBです。"
この指定は次のように1行で記述したのと同じです。
@COMMENT = "入力ファイル1個,出力ファイル2個,DB1はHiRDBです。"
文字定数内で改行や復帰などの出力できない文字や,アポストロフィやダブルクォーテーションなどの特別な意味を持つ文字を表すときは,¥記号とそれに続く文字の組み合わせを記述することによって表現できます。
表現したい内容 | 記述する文字 |
---|---|
展開制御開始文字 | ¥@ |
改行 | ¥n |
復帰 | ¥r |
タブ | ¥t |
円記号 | ¥¥ |
アポストロフィ | ¥' |
ダブルクォーテーション | ¥" |