構文変換の基本規則を説明します。
(1) 共通規則
図8-3 構文が変換される場合と変換されない場合の例
図8-4 構文変換での空白の扱い
図8-5 継続行中の空白の扱い
(2) CONTINUE文の処理
構文定義ファイル中の展開文にCONTINUE文を指定しても,構文には変換されません。CONTINUE文に変換したい場合は,ソースプログラム中のCONTINUE文と同じ行のコメント領域にコメント「CONTINUE」を指定すると,ボックスの中に構文が生成されます。ボックス中には,指定したコメントも一緒に生成されます。
図8-6 CONTINUE文の処理
(3) 構文の改行
構文中に「@/」(改行記号)があるときは,ボックス内で改行されます。
図8-7 構文の改行
(4) 仮記号の規則
仮記号(@n)を展開文に連続して定義したとき,一つの仮記号に対し,先頭から一つずつ,一つの語が対応付けられます。一つずつ対応付けていき,語が余った場合は,余った語が最後の語にすべて対応付けられます。
図8-8 仮記号の規則
(5) 単文変換
構文定義ファイル内の一つの構文が,一つの展開文に対応します。
(a) PADからソースプログラムを生成する場合
PADからソースプログラムを生成するときは,ボックス内の一つの構文をソースプログラム中の一つの展開文に変換します。
図8-9 PADからソースプログラム生成の単文変換の方式
(b) ソースプログラムからPADを生成する場合
ソースプログラムからPADを生成するときは,ソースプログラム中の一つの展開文をボックス内の一つの構文に変換します。
図8-10 ソースプログラムからPAD生成の単文変換の方式
(6) 複文変換
構文定義ファイル内の一つの構文が,複数の展開文に対応します。
(a) PADからソースプログラムを生成する場合
連接,外部コール,内部コール,出口,無条件分岐,及びユーザの各ボックス内の一つの構文から,複数の展開文に変換します。
図8-11 PADからソースプログラム生成の複文変換の方式
(b) ソースプログラムからPADを生成する場合
ソースプログラム中の複文行を表すコメント行「*****識別子 ……」を認識して,ボックスに対応した構文を生成します。
図8-12 ソースプログラムからPAD生成の複文変換の方式