8.3.2 ボックス及び文への複文変換規則
ここでは,PADからソースプログラム又はソースプログラムからPAD生成の複文変換時の生成規則を示します。
- <この項の構成>
- (1) PADからソースプログラムを生成するときの複文変換時の変換規則
- (2) ソースプログラムからPADを生成するときの複文変換時の変換規則
(1) PADからソースプログラムを生成するときの複文変換時の変換規則
- 複文変換時には,構文定義中の識別子に対応した複文行を表すコメント「*****識別子 ……」が,ソースプログラム中に生成されます。
図8-13 ソースプログラム生成時の複文変換のコメント生成例
![[図データ]](figure/zu081300.gif)
- 命令として有効なのは構文定義ファイルの72カラムまでです。73カラムを超える分は,コメントとして生成されます。
- コメントとしてボックス中に生成できるのは,複文行「***** 識別子 ……」の73~80カラムのコメントだけです。
- 変換のとき,展開文の前にある空白は圧縮されないで,そのまま展開されます。また,IF文に対する「THEN」,「ELSE」,「END-IF」などの文字列は一切付きません。展開文の後ろにある空白だけが削除されます。
図8-14 ソースプログラム生成時の複文変換の後ろ空白削除の例
![[図データ]](figure/zu081400.gif)
- ピリオドは,レベル1の文で,コメント行以外の最終行のときにだけ付きます。
図8-15 ソースプログラム生成時にピリオドが付かない例
![[図データ]](figure/zu081500.gif)
- ボックス上の表記が1行に収まらないときは,次の行以降の先頭に「*****識別子 ……」が付き,これに続く文字列として収まらない部分が格納されます。2行目以降の書き出し位置は,先頭行のコメントの書き出し位置と同じになります。
図8-16 ソースプログラム生成時の複文変換のコメントの書き出し位置
![[図データ]](figure/zu081600.gif)
- 「PADとCOBOLソースの対応表」には,展開された展開文の先頭行だけがボックスと対応して出力されます。次の行以降は対応表に出力されないで,ボックスに対するラベルだけが出力されます。このとき,複文変換を示すコメントも対応表には出力されません。「PADとCOBOLソースの対応表」の詳細は「6.6 「PADとCOBOLソースの対応表」の生成規則」を参照してください。
図8-17 複文変換時の「PADとCOBOLソースの対応表」の出力例
![[図データ]](figure/zu081700.gif)
(2) ソースプログラムからPADを生成するときの複文変換時の変換規則