Hitachi

COBOL2002 Professional Tool Kit COBOLソース解析ガイド


10.2 制限がある構文

COBOLソース解析で制限があるCOBOL2002の構文および機能について説明します。

制限の対象になる構文を含むCOBOLソースファイルを解析したときに,ソース解析情報が生成されるとエラーメッセージは出力されます。ソース解析情報が生成されないときは,エラーメッセージは出力されません。

COBOLソース解析で制限になる構文を次の表に示します。

表10‒2 COBOLソース解析で制限になる構文

項番

制限の対象

COBOLソース解析の動作

1

次に示す文のファイルアクセス情報

  • CLOSE

  • MERGE

  • OPEN

  • RELEASE

  • RETURN

  • START

  • SORT

  • USE

  • UNLOCK

解析を継続します。

ソース解析情報に生成されません。

ファイルアクセス情報の対象となる文を次に示します。

  • READ

  • WRITE

  • REWRITE

  • DELETE

2

「データベース操作シミュレーション機能」のINCLUDE

解析を継続します。

表名情報を出力する「SQLデータ操作機能」として認識します。

3

アドレス名および指標名

解析を継続します。

データ項目として認識しません。

4

節がコメントで終了しているCOBOLソースファイル

解析を継続します。

節コメント行の文字列を取得できません。

5

ASSIGN句の定数に,Windowsのフォルダ名に使用できない文字列(¥/:*?<>|など)を指定している

解析を継続します。

生成結果は不正になることがあります。

6

利用者定義語以外のCOBOLの語に全角文字を使用

全角文字を使用するとソースファイルが登録されないことがあります。また,ソースが登録できても予約語が認識されないで,ソース解析情報が正しく生成されないことがあります。

7

PROGRAM-IDを行の先頭から始めていないとき

プログラムの登録時にプログラム名を取得できないため,エラーになります。

8

ENTRY文で定義した入口名

ENTRY文で定義した入口名は,解析/生成の対象にしません。

9

数字編集項目の小数部に浮動挿入文字が存在

数字編集項目の小数部に,次に示す浮動挿入文字があると,[プログラムデータ]画面の「ファイル節,作業場所節,連絡節のデータ定義」属性欄の浮動挿入文字は「9」と表示されます。

  • ¥

  • +

  • -

正しい属性は,ソース表示のデータ定義を参照してください。

(例)

「PIC ¥.¥¥」は「¥.99」と表示

「PIC +.++」は「+.99」と表示

「PIC -.--」は「-.99」と表示

10

報告書節のデータ項目数と記述項数

報告書節がある場合,報告書節のデータ項目は,[プログラム詳細]画面の「プログラム概要」のデータ項目数と記述項数に加算されません。

11

節見出しで始まらない手続き部先頭の節

次に示す節を仮定して解析を継続します。

  • 節名:{PROCEDURE_START}

  • 節の開始行:手続き部の最初の実行文または段落の開始行

COBOLソース解析時の注意事項を次に示します。

  • 節{PROCEDURE_START}の節コメント行は抽出できません。

  • -SQL,XDMコンパイラオプションが指定されている場合,埋め込みSQL文(EXEC SQL〜END-EXEC)は,一律,覚え書きの実行文として扱われます。このため,実行文でないDECLARE CURSOR文や埋め込み例外宣言も,節見出しのない手続き部先頭に記述されていれば,節{PROCEDURE_START}の先頭として扱われます。

12

同一プログラム内で01レベルデータ項目の名前(ファイルレコードの場合はファイル名で修飾した名前)が重複(参照されていない場合)

最初のデータ項目の名前はそのままで解析し,2番目以降のデータ項目の名前には"(n)"の重複番号(n=2〜)を付加して解析を継続します。

13

特殊名段落でCURRENCY SIGN句を指定した場合のPICTURE文字列中の通貨編集用文字

PICTURE文字列中の通貨編集用文字は常に通貨記号(¥)で表示されます。

(例)特殊名段落でCURRENCY SIGN IS '$'が指定されている場合

「PIC $$$,$$$,$$$」は「¥¥¥,¥¥¥,¥¥¥」と表示されます。

14

定数の連結式

定数の連結式は,順番に評価して1つの定数に変換します。

(例1)

'A' & 'B' & 'C' → 'ABC'

'A' & X'42' & 'C' → 'ABC'

X'41' & 'B' & X'43' → 'ABC'

'41' & X'42' & X'43' → X'414243'

N'あい' & N'う' → N'あいう'

NX'82a082a2' & N'う' → NX'82a082a282a4'

N'あいう' & NX'4142' → N'あいうAB'

ただし,連結後の英数字定数や日本語定数が非印字可能文字(制御文字や非シフトSJIS文字)を含む場合は,それぞれ16進英数字定数や16進日本語定数に変換します。また,-JPNコンパイラオプション指定時に日本語の定数(日本語定数および16進日本語定数)と,英数字の定数(英数字定数および16進英数字定数)を連結した場合,連結後の日本語定数や16進日本語定数のバイトサイズが奇数になる場合は,それぞれ英数字定数,16進英数字定数に変換します。

(例2)連結後の英数字定数や日本語定数が非印字可能文字を含む場合

'ABC' & X'00' → X'41424300'

N'あいう' & NX'0020' → NX'82a082a282a40020'

(例3)日本語の定数と英数字の定数を連結した場合

'あいう' & 'AB' → N'あいうAB'

N'あいう' & 'ABC' → 'あいうABC'

NX'82a082a282a4' & 'AB' → NX'82a082a24142'

NX'82a082a282a4' & 'ABC' → X'82a082a2414243'

15

連絡節に指定されたLIMIT指定のない動的長基本項目のサイズ

連絡節に指定されたLIMIT指定のない動的長基本項目は実行時までサイズが決定しません。このため,文字列長を0として,動的長英数字項目の場合は1,動的長日本語項目の場合は2がサイズとして表示されます。