ここでは,構文定義ファイルの形式,ファイル中での使用できる識別子,及びサンプル提供されている構文定義ファイルの内容について説明します。
(1) 構文定義ファイルの形式
構文定義ファイルは,識別子,構文及び展開文を記述する三つの領域と仮記号で構成されています。構文定義ファイルの形式を図8-1に,複数の構文が格納されている構文定義ファイルの形式を図8-2にそれぞれ示します。
図8-1 構文定義ファイルの形式
図8-2 複数の構文が格納されている構文定義ファイルの形式
(2) 構文定義ファイルで使用できる識別子
構文定義ファイル中で使用する識別子は,構文とその構文を定義できるボックスの対応を表しています。構文定義ファイル中で使用できる識別子の一覧を表8-1に示します。
表8-1 構文定義ファイル中で使用できる識別子の一覧
識別子 | 対応する構文の種類 |
---|---|
SS | 連接ボックス用の構文 |
SR | 反復ボックス(UNTIL型)用の構文 |
SI | 選択ボックス用の構文 |
SC | 多分岐ボックス用の構文 |
SW | 反復ボックス(WHILE)用の構文 |
ST | 出口ボックス用の構文 |
SE | 外部コールボックス用の構文 |
SN | 内部コールボックス用の構文 |
SU | ユーザボックス用の構文 |
SG | 無条件分岐ボックス用の構文 |
MS | 連接ボックス用の複数構文 |
MT | 出口ボックス用の複数構文 |
ME | 外部コールボックス用の複数構文 |
MN | 内部コールボックス用の複数構文 |
MU | ユーザボックス用の複数構文 |
MG | 無条件分岐ボックス用の複数構文 |
△△ | 展開文 |
*△ | コメント(構文定義ファイルを見やすくするためのコメントで,PADエディタの構文表では表示されない) |
*S | 連接ボックス用のコメント(PADエディタの構文表で表示される) |
*R | 反復ボックス(UNTIL型)用のコメント(PADエディタの構文表で表示される) |
*I | 選択ボックス用のコメント(PADエディタの構文表で表示される) |
*C | 多分岐ボックス用のコメント(PADエディタの構文表で表示される) |
*W | 反復ボックス(WHILE型)用のコメント(PADエディタの構文表で表示される) |
*T | 出口ボックス用のコメント(PADエディタの構文表で表示される) |
*E | 外部コールボックス用のコメント(PADエディタの構文表で表示される) |
*N | 内部コールボックス用のコメント(PADエディタの構文表で表示される) |
*U | ユーザボックス用のコメント(PADエディタの構文表で表示される) |
*G | 無条件分岐ボックス用のコメント(PADエディタの構文表で表示される) |
― ― | 構文の継続行 |
(3) SEWB+ COBOL構造図エディタがサンプル提供している構文定義ファイル
SEWB+ COBOL構造図エディタでは,ユーザがすぐに構文定義ファイルを使用できるように,あらかじめ構文定義ファイルをサンプル提供しています。
サンプル提供されている構文定義ファイルの構文一覧を,ボックスごとに示します。
連接ボックス
構 文 | 展 開 文 |
---|---|
@1 → @2 | MOVE @1 TO @2 |
@1 に @2を加える | ADD @2 TO @1 |
@1 から @2 を引く | SUBTRACT @2 FROM @1 |
@1 ← @2 + @3 | COMPUTE @1 = @2 + @3 |
@1 ← @2 - @3 | COMPUTE @1 = @2 - @3 |
@1 ← @2 * @3 | COMPUTE @1 = @2 * @3 |
@1 ← @2 / @3 | COMPUTE @1 = @2 / @3 |
@1 ← 余り( @2 / @3 ) | COMPUTE @1 = @2 / @3 COMPUTE @1 = @2 - ( @1 * @3 ) |
@1 を @2 に表示する | DISPLAY @1 UPON @2 |
@1 を表示する | DISPLAY @1 |
@1 に日付を入れる | ACCEPT @1 FROM DATE |
@1 に通年日を入れる | ACCEPT @1 FROM DAY |
@1 に時刻を入れる | ACCEPT @1 FROM TIME |
@1 を初期化する | INITIALIZE @1 |
@1 ファイルを閉じる | CLOSE @1 |
@1 ファイルを入力で開く | OPEN INPUT @1 |
@1 ファイルを出力で開く | OPEN OUTPUT @1 |
@1 ファイルを更新で開く | OPEN I-O @1 |
@1 ファイルを追加で開く | OPEN EXTEND @1 |
@1 ファイルを読みレコードの終わりなら @2 に行く | READ @1 AT END GO TO @2 |
@1 ファイルを読みレコードの終わりなら @2 → @3 | READ @1 AT END MOVE @2 TO @3 |
@1 を書く | WRITE @1 |
@1 を書き換える | REWRITE @1 |
反復ボックス(UNTIL型)
構 文 | 展 開 文 |
---|---|
@1 になるまで繰り返す | PERFORM TEST AFTER UNTIL @1 |
反復ボックス(WHILE型)
構 文 | 展 開 文 |
---|---|
@1 回繰り返す | PERFORM @1 TIMES |
@1 になる間繰り返す | PERFORM TEST BEFORE UNTIL @1 |
選択ボックス
構 文 | 展 開 文 |
---|---|
もし @1 なら | IF @1 |
多分岐ボックス
構 文 | 展 開 文 |
---|---|
@1 が @2 の場合 | EVALUATE @1 WHEN @2 |
@1 の場合 | WHEN @1 |
その他 | WHEN OTHER |
@1 を表引きし終わりなら | SEARCH @1 AT END |
出口ボックス
構 文 | 展 開 文 |
---|---|
終わる | STOP RUN |
出る | EXIT |
戻る | EXIT PROGRAM |
外部コールボックス
構 文 | 展 開 文 |
---|---|
@1 を呼ぶ | CALL @1 |
@1 を呼び @2 を引き渡す | CALL @1 USING @2 |
内部コールボックス
構 文 | 展 開 文 |
---|---|
@1 を実行する | PERFORM @1 |
@1 を @2になる間実行する | PERFORM @1 TEST BEFORE UNTIL @2 |
@1 を @2になるまで実行する | PERFORM @1 TEST AFTER UNTIL @2 |
@1 を @2が @3になるまで 実行する | PERFORM @1 UNTIL @2 = @3 |
無条件分岐ボックス
構 文 | 展 開 文 |
---|---|
@1 に行く | GO TO @1 |