COBOL2002 操作ガイド
外部プログラム名は,プログラム定義の最外のプログラムである外部プログラムのプログラム名段落(PROGRAM-ID)で指定した名称です。内部プログラム名は,内部プログラムのプログラム名段落(PROGRAM-ID)で指定した名称です。記述規則は,COBOLの言語仕様に従って,変換規則も適用します。変換後の名称をTDコマンドのオペランドに指定できます。
クラス名は,クラス定義のクラス名段落(CLASS-ID)で指定した名称です。メソッド名は,メソッド定義のメソッド名段落(METHOD-ID)で指定した名称です。記述規則は,COBOLの言語仕様に従って,変換規則も適用します。変換後の名称をTDコマンドのオペランドに指定できます。
利用者による関数定義の関数名段落(FUNCTION-ID)で指定した名称です。記述規則は,COBOLの言語仕様に従って,変換規則も適用します。変換後の名称をTDコマンドのオペランドに指定できます。
原始プログラムの一連番号領域に記述してある番号です。原始プログラムの一連番号領域に番号の記述がない場合,順序が昇順でない場合,または自由形式正書法の場合は,コンパイラが自動的に振り直す番号が行番号となります。
COBOL言語の文を指定する番号です。行番号と位置番号をピリオドでつなぎます。行の先頭文を位置番号の1とします。位置番号の1は省略できます。
外部プログラム名およびENTRY文で指定される入口点の名前を,入口名とします。
COBOL言語の手続き名です。手続き名には,段落名と節名があります。手続き名も一つの文として文番号が割り当てられます。
テストデバッグで指定できるCOBOL言語のデータは次のとおりです。
データ名は,COBOL言語の仕様に準拠した形で,修飾,添字付けおよび部分参照の指定ができます。COBOL言語との指定方法の違いは次のとおりです。
表の属性を持つデータ名を参照するときは,添字を付けて指定します。添字は,整数定数,添字の付かない数字項目,指標名の指定ができます。ただし,データ監視条件では,整数定数でなければなりません。
次の項目は,添字に指定できません。
また,整数定数を,ピリオドを2個(..)続けてつなぎ,添字に指定すると,表の一部の範囲を一度に参照できます。
データの部分を参照するときは,最左端位置と長さを指定します。最左端位置と長さは,整数定数を指定します。部分参照には,次の制限があります。
テストデバッガで使用できる定数には,COBOLの言語仕様に準拠した形式と,拡張16進定数があります。COBOLの言語仕様に準拠した形式では,次の定数を代入,比較で使用できます。
記号文字・定数名は使用できません。ALLは,英数字定数・ブール定数・日本語文字定数・表意定数に指定できます。
定数を囲む一対の区切り記号には,アポストロフィ(')またはダブルコーテーション(")が使用できます。区切り記号としてアポストロフィ(')またはダブルコーテーション(")を使用する場合の指定方法については「12.1 TDコマンドの指定方法」を参照してください。
定数の種類 | 例 | |
---|---|---|
英数字定数 | 英数字 | 'ABC' |
16進英数字 | X'0AE2' | |
数字定数 | 固定小数点数字 | 123 123.45 |
浮動小数点数字 | 123.E+02 | |
16進数字 | H'B0EF'長さ8文字まで指定できます。 2の倍数長である必要はありません。 |
|
ブール定数 | ブール | B'1010' |
日本語文字定数 | 日本語文字 | N'日本語' , NC'日本語' , ND'日本語' |
16進日本語文字 | NX'81568134' | |
表意定数 | ALL 'A', ALL N'日本語', ALL B'1010' , 〔ALL〕HIGH-VALUE, 〔ALL〕HIGH-VALUES, 〔ALL〕LOW-VALUE, 〔ALL〕LOW-VALUES, 〔ALL〕ZERO, 〔ALL〕ZEROS, 〔ALL〕ZEROES, 〔ALL〕SPACE, 〔ALL〕SPACES, 〔ALL〕QUOTE, 〔ALL〕QUOTES, 〔ALL〕NULL, 〔ALL〕NULLS |
#Xで始まり,一対のアポストロフィ(')またはダブルコーテーション(")で囲んだ0〜9,A〜Fの文字列です。文字数は,2の倍数で,160文字までの長さです。ALLによる定数の繰り返しも指定できます。
拡張16進定数は,COBOL2002の定数で代入,比較ができないデータ項目にも,代入,比較ができます。代入,比較の規則の詳細については,「9.3.1 データの比較・代入規則」の「(1) データの代入規則」,「(2) データの比較規則」を参照してください。
〔ALL〕 #X' ・・・・ ' 〔ALL〕 #X" ・・・・ "
#X'313233' ALL #X'FF'
テストデバッガで使用できるCOBOL言語の既定義オブジェクトは次のとおりです。
オペランドの内容を指定するときに,補助語を使用します。補助語の先頭にはシャープ(#)が付きます。オペランドの補助語を次に示します。
表12-2 オペランドの補助語
補助語 | 内容 |
---|---|
#ENTRY | ソース要素の入口を指定します。 |
#EXIT | ソース要素の出口を指定します。 |
#PROGRAM | プログラム名を指定します。 |
#CLASS | クラス名を指定します。 |
#FACTORY | ファクトリオブジェクトを示します。 |
#OBJECT | インスタンスオブジェクトを示します。 |
#FUNCTION | 利用者定義関数名を指定します。 |
#ALL | すべてという意味で指定します。 |
#> | 参照するオブジェクトの特定のデータ名を示します。 |
#LASTCODE | 直前のASSIGN CASECODEコマンドで設定した値を示します。 |
利用者が任意に指定する語です。先頭が英字で始まる英数字で,長さは31バイト以内です。
表12-3 TD利用者定義語
種類 | 用途 |
---|---|
カウンタ変数 | TDコマンド群の実行回数をカウントします。 |
記号名 | シミュレーションでデータ名を識別します。 |
監視識別子 | データ条件中断の設定を識別します。 |
ケース識別子 | テストケースを識別します。 |
TD利用者定義語は,TDコマンドで使用するCOBOL2002の予約語(OF,IN,WITHなど)と同じ名称を指定できません。
翻訳単位を特定します。
翻訳単位指定が指定されていない場合は,次の順で翻訳単位指定を仮定します。SET QUALIFICATIONコマンドの詳細については,「12.4 TDコマンドの詳細」の「(23) SET QUALIFICATION/RESET QUALIFICATION(翻訳単位・ソース要素の指定と解除)」の「(a) SET QUALIFICATION(翻訳単位・ソース要素の指定)」を参照してください。
プログラムを特定するときに指定します。
形式
クラスを特定するときに指定します。
形式
関数を特定するときに指定します。
形式
ソース要素を特定します。
ソース要素指定が指定されていない場合は,次の順でソース要素指定を仮定します。
SET QUALIFICATIONコマンドの詳細については,「12.4 TDコマンドの詳細」の「(23) SET QUALIFICATION/RESET QUALIFICATION(翻訳単位・ソース要素の指定と解除)」の「(a) SET QUALIFICATION(翻訳単位・ソース要素の指定)」を参照してください。
文を文番号で指定します。
手続き名を指定します。
ソース要素の入口,出口を指定します。ソース要素の入口とはソース要素の最初の文を実行する前の状態です。ソース要素の出口とはソース要素の最後の文を実行したあとの状態です。
ソース要素の入口を#ENTRY,ソース要素の出口を#EXITで表します。
#ENTRY *> 入口 #PROGRAM(A/A)#ENTRY *> 外部プログラムAの入口 #EXIT *> 出口 #PROGRAM(A/B)#EXIT *> 外部プログラムAに属する *> 内部プログラムBの出口
#CLASS(クラス名/#FACTORY) #CLASS(クラス名/#OBJECT)
操作する対象となるデータを一意にするときに指定します。
COBOL言語の原始プログラムのファイル記述項のファイル名を指定します。
一つにまとまった処理をするためのTDコマンドの集まりをTDコマンド群として指定できます。TDコマンド群は,次のTDコマンドで指定できます。
SET BREAK STATEMENT(100) DO DISPLAY DATA(品名) SET BREAK STATEMENT(500) DO *> ネスト DISPLAY DATA(番号) ENDDO ENDDO
データ監視条件の設定,または中断点の設定による中断が一つの文で同時に成立したときは,次の順番でTDコマンド群が実行されます。
さらに,データ監視条件の設定によって,一つの文で複数のデータ監視条件が同時に成立したときは,監視識別子の昇順にTDコマンド群が実行されます。
SET BREAK STATEMENT(5000) *> 中断点の設定 DO DISPLAY COMMENT("TEST#1 OK!") ENDDO SET WATCH(WORK) CONDITION(WORK NOT = 0) *> データ監視の設定(1) DO DISPLAY DATA(WORK) ENDDO SET WATCH(DATAA) CONDITION(DATAA NOT = 0) *> データ監視の設定(2) DO DISPLAY DATA(DATAA) ENDDO
次の,プログラムを続行するTDコマンドをTDコマンド群に指定すると,プログラムの実行が再開されてしまうために,それ以降のTDコマンドは実行されません。TDコマンド群が複数ある場合,最初に実行されるTDコマンド群にプログラムを続行するTDコマンドが指定されていたときは,それ以降のTDコマンド群は実行されません。
TDコマンド群が実行されなかったとき,カウンタ変数は加算されません。中断点を設定したときのスキップ回数のカウントは加算されます。
SET WATCH(WATCH50) CONDITION(A = 50) DO GO ENDDO SET BREAK STATEMENT(6000) COUNTER(C) DO DISPLAY DATA(B) ENDDO
カウンタ変数は,TDコマンド群の実行回数を参照するための変数です。カウンタ変数を定義したTDコマンド群の中でだけ参照できます。2進項目のデータとして扱われ,1から始まり,TDコマンド群が実行されるたびに1ずつ加算されます。最大値は2,147,483,647で,最大値を超えた場合は,最大値のまま更新されません。
カウンタ変数は,表示,代入,比較に使用できます。ただし,添字・部分参照には使用できません。
TDコマンド群が実行される場合,カウンタ変数と同じ名前のデータ名が参照範囲にあるときは,カウンタ変数が指定できるオペランドであれば,カウンタ変数とみなします。カウンタ変数が指定できないオペランドであれば,データ名とみなします。
SET QUALIFICATION (#PROG (給与計算)) SET BREAK ST(1350) COUNTER(CNT) DO IF C (CNT = 1) DISPLAY DATA(合計) *> 一度目に実行される ENDIF IF C (CNT = 2) DISPLAY DATA(総合計) *> 二度目に実行される ENDIF ENDDO
記号名は,副プログラムシミュレーション・ファイルシミュレーションのために定義する名前です。記号名については,「9.2.7 プログラムの単体テスト」の「(4) 記号名」を参照してください。
カウンタ変数と同じ名前は指定できません。ソース要素中のデータ名と同じ名前を記号名として定義したときは,記号名とみなします。記号名に対応するデータ名が表の場合は,添字を必要とします。部分参照できるデータ名であれば,部分参照の指定ができます。
SIMULATE FILE(OUTPUT-FILE) OPENMODE(OUTPUT) RECORD(SYMBOL1) DEFINE 01 SYMBOL1 02 SYMBOL11 03 SYMBOL111 ENDDEFINE DISPLAY DATA (SYMBOL111(1, J)(1:5)) ENDSIMULATE
次のシミュレーションで,反復回数とTDコマンド群を指定します。「12.4 TDコマンドの詳細」の「(17) REPEAT(繰り返し指定)」を参照してください。
繰り返し指定の使用例については,「9.2.7 プログラムの単体テスト」の「(3) ファイルシミュレーション」の「(a) ファイル入出力文のシミュレーション」の使用例2を参照してください。
繰り返し指定を複数記述することで,シミュレーションが行われるごとに実行されるTDコマンド群を変更できます。反復回数分のシミュレーションでTDコマンドを実行されると,次のシミュレーションから次の繰り返し指定のTDコマンド群が実行されます。すべての繰り返し指定を実行したあとに,シミュレーションが実行されるときは,最後の繰り返し指定のTDコマンド群を実行します。
シミュレーションする次の入出力文に対応させて,ファイルシミュレーションの手続きを実行させます。「12.4 TDコマンドの詳細」の「(18) SELECT ACTION(入出力文選択指定)」を参照してください。
使用例については「9.2.7 プログラムの単体テスト」の「(3) ファイルシミュレーション」の「(a) ファイル入出力文のシミュレーション」の使用例3を参照してください。
条件を指定します。
OLEプロパティを特定します。
'Caption' WITH OLE-OBJ1 *> OLE-OBJ1のOLEオブジェクトに属するOLEプロパティ'Caption' PROP1 WITH OLE-OBJ2 *> OLE-OBJ2のOLEオブジェクトに属し *> データ名PROP1に設定された名称のOLEプロパティ
All Rights Reserved. Copyright (C) 2013, 2016, Hitachi, Ltd.