ソース・セクション

ソース・セクションは、ILE RPG ソース仕様書を含むレコードを示しています。ルート・ソース・メンバー・レコードは常に表示されます。OPTION(*EXPDDS) も指定されると、 ソース・セクションは外部記述ファイルから生成されたレコードを示し、 それらの行番号の横の欄に '=' の印を付けます。これらのレコードは、*NOEXPDDS が指定された場合には表示されません。 OPTION(*SHOWCPY) が指定された場合には、これもまたソースに指定された /COPY メンバーからのレコードを示し、行番号の横の欄に '+' でこれらに印を付けます。これらのレコードは、*NOSHOWCPY が指定された場合には表示されません。

またソース・セクションは、条件付きコンパイル処理を示します。/IF、/ELSEIF、 /ELSE および /ENDIF 指示のあるすべての行および /IF グループが選択するソース行は印刷され、リスト行番号が指定されます。OPTION(*SHOWSKP) を指定すると、 /IF、/ELSEIF、および /ELSE 指示によって除外されたすべてのステートメントを表示し、 ステートメントの横の桁に '-------' の印を付けます。 リスト内の行番号は、除外された行について増分されることはありません。 スキップされたステートメントはすべて、指定されたとおり正確に印刷されますが、解釈はされません。 例えば、/EJECT 指示で除外されたステートメントによってページに切れ目が生じることはありません。 同様に、/SPACE、/TITLE、/COPY および /EOF コンパイラー指示は、除外行で検出されても無視されます。 こうしたステートメントは、 デフォルトの OPTION(*NOSHOWSKP) が指定されている場合には表示されません。 その代わりに、除外された行数を示すメッセージが印刷されます。

ソース・セクションは、ソースの構文エラーを識別し、適切であれば、フィールド表を含みます。

OPTION(*NOSRCSTMT) が指定された場合、行番号はリストの左側に順番に示され、コンパ イルされたソース行番号を反映します。ソース ID および SEU 順序番号は、リストの右 側に示され、ソース・メンバーおよびレコードをそれぞれ識別します。例えば 、図 235 は、行 35 に /COPY ステートメントが入っているリストの セクションを示します。 ルート・ソース・メンバーでは、次の行が DOWEQ 命令です。 しかし、このリストでは 、DOWEQ 命令は行 39 にあります。 リストに示された 3 つの中間の行は /COPY ソース・メンバーからのものです。

図 235. OPTION(*NOSRCSTMT) が指定された場合のリストのセクション例
 行    <-------------------------------- ソース仕様 -----------------------------------------------><------ 注記 ------> SRC  SEQ
 番号  ....1....+....2....+<-------- 26 - 35 -------->....4....+....5....+....6....+....7....+....8....+....9....+...10  ID   番号
    34 C                   MOVE                       '123'         BI_FLD1                                                 001500
    35 C/COPY MYCPY                                                                                              971104     001600
        *--------------------------------------------------------------------------------------------*
        * RPG メンバー名 . . . . . . :  MYCPY                                                        *                     5
        * 外部名 . . . . . . . . . . :  RPGGUIDE/QRPGLESRC(MYCPY)                                    *                     5
        * 最終変更 . . . . . . . . . :  98/07/24  16:20:04                                           *                     5
        * テキスト '記述'  . . . . . :  Text on copy member                                          *                     5
        *--------------------------------------------------------------------------------------------*
    36+C     Blue(1)       DSPLY                                                                                           5000100
    37+C     Green(4)      DSPLY                                                                                           5000200
    38+C     Red(2)        DSPLY                                                                                           5000300
    39 C     *in20         doweq                      *OFF                                                                  001700

OPTION(*SRCSTMT) が指定された場合、順序番号は、リストの左側に示され、SEU 順序番号 を反映し ます。ステートメント番号は、リストの右側に示されます。ステートメント番号情報は 、ソース ID および SEU 順序番号情報と同じです。例えば 、図 236 は、順序番号 001600 をもつ /COPY ステートメントが 入っているリストのセクションを示しています。ルート・ソース・メンバーの次の行は 、リスト内の次の行番号、つまり順序番号 001700 をもつ行と同じです。リストに示さ れた中間の 3 行には、/COPY ソース・メンバーからの SEU 順序番号が割り当てられていま す。対応するステートメント番号は、ルート・ソース・メンバーおよび /COPY ソース・ メンバーのソース ID および SEU 順序番号から生成されます。

図 236. OPTION(*SRCSTMT) が指定された場合のリストのセクション例
SEQ    <-------------------------- ソースの仕様 --------------------------------------------------<------- 注記 ------>  STATEMENT
番号   ....1....+....2....+<-------- 26 - 35 -------->....4....+....5....+....6....+....7....+....8....+....9....+...10       番号
001500 C                   MOVE                       '123'         BI_FLD1                                                 001500
001600 C/COPY MYCPY                                                                                              971104     001600
        *--------------------------------------------------------------------------------------------*
        * RPG メンバー名 . . . . . . :  MYCPY                                                        *                     5
        * 外部名 . . . . . . . . . . :  RPGGUIDE/QRPGLESRC(MYCPY)                                    *                     5
        * 最終変更 . . . . . . . . . :  98/07/24  16:20:04                                           *                     5
        * テキスト '記述'  . . . . . :  Text on copy member                                          *                     5
        *--------------------------------------------------------------------------------------------*
000100+C     Blue(1)       DSPLY                                                                                           5000100
000200+C     Green(4)      DSPLY                                                                                           5000200
000300+C     Red(2)        DSPLY                                                                                           5000300
001700 C     *in20         doweq                      *OFF                                                                  001700

図 237 は、OPTION(*NOSRCSTMT) が指定された MYSRC のソース・セクシ ョン全体を示しています。

図 237. リストのサンプル・ソース部分
5722WDS V5R4M0  060210 RN        IBM ILE RPG             MYLIB/MYSRC              ISERIES1   02/08/15 14:21:00        Page      2
   1a 
行     <----------------------- ソース仕様 --------------------------------------><------ 注記 ------> DO  PAGE  変更  SRC  SEQ
番号   ....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8....+....9....+...10 NUM 行    日付  ID   番号
                          ソ  ー  ス  リ  ス  ト
     1 H DFTACTGRP(*NO) ACTGRP('Srcactgrp') CCSID(*GRAPH:*SRC)                                                   980727     000100
     2 H OPTION(*NODEBUGIO)                                                                                      980727     000200
     3 H BNDDIR('SRCLIB1/BNDDIR1' : 'SRCLIB2/BNDDIR2' : '"ext.nam"')                                             971104     000300
     4 H ALTSEQ(*SRC)                                                                                            971104     000400
     5 H FIXNBR(*ZONED)                                                                                          980728     000500
     6 H TEXT('Text specified on the Control Specification')                                                     971104     000600
        *--------------------------------------------------------------------*   2 
        * 有効なコンパイラー・オプション:                                    *
        *--------------------------------------------------------------------*
        *  テキスト '記述' . .. . . . . . . :                                *
        *                 Text specified on the Control Specification        *
        *  生成重大度レベル . . . . . . . . :   10                           *
        *  省略時の活動化グループ . . . . . :   *NO                          *
        *  コンパイラー・オプション . . . . :   *XREF      *GEN              *
        *                                       *SECLVL    *SHOWCPY          *
        *                                       *EXPDDS    *EXT              *
        *                                       *SHOWSKP *NOSRCSTMT          *
        *                                       *NODEBUGIO   *NOEVENTF       *
        *  最適化レベル . . . . . . . . . . :   *NONE                        *
        *  ソース・リストの字下げ . . . . . :   '| '                         *
        *  タイプ変換オプション . . . . . . :   *NONE                        *
        *  ソート順序 . . . . . . . . . . . :   *HEX                         *
        *  言語識別コード . . . . . . . . . :   *JOBRUN                      *
        *  ユーザー・プロファイル . . . . . :   *USER                        *
        *  権限 . . . . . . . . . . . . . . :   *LIBCRTAUT                   *
        *  数値の切り捨て . . . . . . . . . :   *YES                         *
        *  数値の修正 . . . . . . . . . . . :   *ZONED      *INPUTPACKED     *
        *  ヌル値可能 . . . . . . . . . . . :   *NO                          *
        *  CMD からの BINDING ディレクトリー:   BNDDIRA      BNDDIRB         *
        *    ライブラリー   . . . . . . . . :     CMDLIBA      CMDLIBB       *
        *  SRC からの BINDING ディレクトリー:   BNDDIR1      BNDDIR2         *
        *    ライブラリー . . . . . . . . . :     SRCLIB1      SRCLIB2       *
        *                                       "ext.nam"                    *
        *                                         *LIBL                      *
        *  活動化グループ . . . . . . . . . :   Srcactgrp                    *
        *  パフォーマンス収集使用可能化 . . :   *PEP                         *
        *  プロファイリング・データ . . . . :   *NOCOL                       *
        *--------------------------------------------------------------------*
     7 FInFile    IF   E             DISK                                                                        971104     000700
        *--------------------------------------------------------------------------------------------*   3 
        *                               RPG 名           外部名                                      *
        * ファイル名 . . . . . . . . :  INFILE           MYLIB/INFILE                                *
        * レコード様式 . . . . . . . :  INREC            INREC                                       *
        *--------------------------------------------------------------------------------------------*
     8 FKEYL6     IF   E           K DISK                                                                        971104     000800
        *--------------------------------------------------------------------------------------------*
        *                               RPG 名           外部名                                      *
        * ファイル名 . . . . . . . . :  KEYL6            MYLIB/KEYL6                                 *
        * レコード様式 . . . . . . . :  REC1             REC1                                        *
        *                               REC2             REC2                                        *
        *--------------------------------------------------------------------------------------------*
     9 FOutfile   O    E             DISK                                                                        971104     000900
        *--------------------------------------------------------------------------------------------*
        *                               RPG 名           外部名                                      *
        * ファイル名 . . . . . . . . :  OUTFILE          MYLIB/OUTFILE                               *
        * レコード様式 . . . . . . . :  OUTREC           OUTREC                                      *
        *--------------------------------------------------------------------------------------------*
    10 D Blue            S              4    DIM(5)CTDATA PERRCD(1)                                              971104     001000
    11 D Green           S              2    DIM(5)ALT(Blue)                                                     971104     001100
    12 D Red             S              4    DIM(2)CTDATA PERRCD(1)                                              980727     001200
    13 D DSEXT1        E DS           100    PREFIX(BI_)INZ(*EXTDFT)                                             980727     001300
    14 D FLD3          E                     INZ('111')                                                          980727     001400
        *--------------------------------------------------------------------------------------------*   4                 1
        * データ構造 . . . . . . . . :  DSEXT1                                                       *                     1
        * 接頭部 . . . . . . . . . . :  BI_ :    0                                                   *                     1
        * 外部様式 . . . . . . . . . :  REC1 : MYLIB/DSEXT1                                          *                     1
        * 様式テキスト . . . . . . . :  Record format description                                    *                     1
        *--------------------------------------------------------------------------------------------*                     1
   5 
    15=D BI_FLD1                        5A   EXTFLD (FLD1)                        FLD1 description                         1000001
    16=D                                     INZ (*BLANK)                                                                  1000002
    17=D BI_FLD2                       10A   EXTFLD (FLD2)                        FLD2 description                         1000003
    18=D                                     INZ (*BLANK)                                                                  1000004
    19=D BI_FLD3                       18A   EXTFLD (FLD3)                        FLD3 description                         1000005
    20=D                                     INZ ('111')                                                                   1000006
    21=IINREC                                                                                                              2000001
        *--------------------------------------------------------------------------------------------*                     2
        * RPG レコード様式 . . . . . :  INREC                                                        *                     2
        * 外部様式 . . . . . . . . . :  INREC : MYLIB/INFILE                                         *                     2
        *--------------------------------------------------------------------------------------------*                     2
    22=I                             A    1   25  FLDA                                                                     2000002
    23=I                             A   26   90  FLDB                                                                     2000003
    24=I                  13488 *VAR C   91  112  UCS2FLD                                                                  2000004
    25=IREC1                                                                                                               3000001
        *--------------------------------------------------------------------------------------------*                     3
        * RPG レコード様式 . . . . . :  REC1                                                         *                     3
        * 外部様式 . . . . . . . . . :  REC1 : MYLIB/KEYL6                                           *                     3
        *--------------------------------------------------------------------------------------------*                     3
    26=I                        *ISO-D    1   10  FLD12                                                                    3000002
    27=I                             A   11   13  FLD13                                                                    3000003
    28=I                             A   14   17  FLD14                                                                    3000004
    29=I                             A   18   22  FLD15                                                                    3000005
    30=I                  13488      C   23   32  FLDC                                                                     3000006
    31=I                  13488 *VAR C   33   44  FLDCV                                                                    3000007
    32=I                  835        G   45   54  FLDG                                                                     3000008
    33=IREC2                                                                                                               4000001
        *--------------------------------------------------------------------------------------------*                     4
        * RPG レコード様式 . . . . . :  REC2                                                         *                     4
        * 外部様式 . . . . . . . . . :  REC2 : MYLIB/KEYL6                                           *                     4
        *--------------------------------------------------------------------------------------------*                     4
    34=I                        *ISO-D    1   10  FLD22                                                                    4000002
    35=I                             A   11   13  FLD23                                                                    4000003
    36=I                             A   14   17  FLD24                                                                    4000004
    37=I                             A   18   22  FLD25                                                                    4000005
  行   <--------------------------- ソース仕様 ---------------------------------------------------><------ 注記 ------>  SRC SEQ
  番号 ....1....+....2....+<-------- 26 - 35 -------->....4....+....5....+....6....+....7....+....8....+....9....+...10  ID  番号
    38 C                   MOVE                       '123'         BI_FLD1                                                 001500
    39 C/COPY MYCPY                                                                                              971104     001600
        *--------------------------------------------------------------------------------------------*   6 
        * RPG メンバー名 . . . . . . :  MYCPY                                                        *                     5
        * 外部名 . . . . . . . . . . :  MYLIB/QRPGLESRC(MYCPY)                                       *                     5
        * 最終変更 . . . . . . . . . :  98/07/24  16:20:04                                           *                     5
        * テキスト '記述'  . . . . . :  Text specified on Copy Member                                *                     5
        *--------------------------------------------------------------------------------------------*
   7 
    40+C     Blue(1)       DSPLY                                                                                           5000100
    41+C     Green(4)      DSPLY                                                                                           5000200
    42+C     Red(2)        DSPLY                                                                                           5000300
   8 
    43 C     *in20         doweq                      *OFF                                                                  001700
    44 C                   | READ                     InRec                              ----20                             001800
    45 C                   | if                       NOT *in20                                                             001900
    46 C     FLDA          | | DSPLY                                                                                        002000
    47 C                   | endif                                                                                          002100
    48 C                   enddo                                                                                            002200
    49 C                   write                      outrec
                                                                                           9 
    50 C                   SETON                                                         LR----                             002400
    47 C/DEFINE ABC                                                                                              971104     002500
    51 C/IF DEFINED(ABC)                                                                                         971104     002600
    52 C                   MOVEL                      'x'           Y                10                                     002700
    54 C                   MOVEL                      'x'           Z                10                                     002800
    55 C/ELSE                                                                                                    971104     002900
   10 
------ C                   MOVEL     ' '           Y                10                                           971104     003000
------ C                   MOVEL     ' '           Z                10                                           971104     003100
    56 C/ENDIF                                                                                                   971104     003200
行     <---------------------- ソース仕様 ---------------------------------------><------ 注記 ------> DO  PAGE  変更   SRC SEQ
番号   ....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8....+....9....+...10 NUM 行    日付   ID  番号
    57=OOUTREC                                                                                                             6000001
        *--------------------------------------------------------------------------------------------*                     6
        * RPG レコード様式 . . . . . :  OUTREC                                                       *                     6
        * 外部様式 . . . . . . . . . :  OUTREC : MYLIB/OUTFILE                                       *                     6
        *--------------------------------------------------------------------------------------------*                     6
    58=O                       FLDY               100A CHAR      100                                                       6000002
    59=O                       FLDZ               132A CHAR       32                                                       6000003
    60=O                       GRAPHFLD           156G GRPH       12 835                                                   6000004
       * * * * *   ソ ー ス の 終 わ り   * * * * *
 1a *NOSRCSTMT ソース見出し
上の例のソース見出しは、OPTION(*NOSRCSTMT) を指定して生成されたものです。
行番号
1 で始まり、各ソースまたは生成されたレコードで 1 ずつ増えます。ステートメント番号を使用してデバッグする時には、この番号を使用してくだ さい。
桁表示行
この行は、字下げが指定された時に調整されます。
DO NO.
構造化命令のレベルを指定します。 字下げが要求された場合には、この番号は現れません。
PAGE 行
ソース・レコードの最初の 5 桁を示します。
Src ID
レコードのソース (/COPY または DDS) を指定します。 /COPY メンバーの場合には、これを使用して、/COPY メンバー・テーブルから 外部メンバー名を入手することができます。
順序番号 (リストの右側に示されるもの)
ソース物理ファイルのメンバーからのレコードの SEU 順序番号を 示します。 /COPY メンバーからのレコードまたは DDS からのレコードの増分番号を示します。
 1b  *SRCSTMT ソース見出し
OPTION(*SRCSTMT) が指定された場合には、ソース見出しは、次のように変わりま す。
       1b 
SEQ    <-------------------------- ソース仕様 -----------------------------------><------- 注記 -----> DO  PAGE 変更   STATEMENT
番号   ....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8....+....9....+...10 NUM 行   日付   番号
桁表示行、DO NUM、および PAGE 行は、変わりません。
順序番号 (リストの左側に示されるもの)
ソース物理ファイルのメンバーからのレコードの SEU 順序番号を 示します。 /COPY メンバーからのレコードまたは DDS からのレコードの増分番号を示します。
STATEMENT 番号
以下のような、ソース ID 番号および SEU 順序番号から生成されたステートメント番号を 示します。
ステートメント番号 = ソース ID * 1000000 + ソース SEU 順序番号
ステートメント番号を使用してデバッグする時には、この番号を使用してくだ さい。
 2  有効なコンパイラー・オプション
有効なコンパイラー・オプションを識別します。コンパイル・オプション・キーワードが 制御仕様書に指定されると表示されます。
 3  ファイル/レコード情報
外部記述ファイル、およびこれが含むレコードを指定します。
 4  DDS 情報
フィールド情報がどの外部記述ファイルから取り出されるかを 確認します。 指定された場合には、接頭部値が示されます。 DDS で指定された場合には、 様式レコード・テキストが示されます。
 5  生成された仕様書
行番号の横に '=' が示された、DDS から生成された仕様書を 示します。 DDS で指定された場合には、最大 50 桁のフィールド・テキストを示します。 定義仕様書に INZ キーワードで指定されたとおりの初期値を示します。 外部記述データ構造サブフィールドに INZ(*EXTDFT) が指定された場合には、DDS デフォルト値が表示されます。長すぎて 1 行に収まらないデフォルト値は、切り捨てら れ、終わりに '...' が付けられます。
 6  /COPY メンバー情報
使用される /COPY メンバーを指定します。 もしあれば、メンバー・テキストを示します。メンバーへの最終変更の日付および時刻を示します。
 7  /COPY メンバー・レコード
/COPY メンバーからのレコードを示しますが、これは行番号の横に '+' で示さ れます。
 8  字下げ
構造化命令にマークを付けるように要求した時に、構造化命令がどのように現 れるかを示します。
 9  標識使用状況
標識が使用される時に、未使用の標識の位置を示します。
 10  OPTION(*SHOWSKP) の使用
/IF 指示によって除外される 2 つのステートメントは、 横に '-------' を付けて表示されます。 OPTION(*NOSHOWSKP) が指定されると、この 2 つのステートメントは、 LINES EXCLUDED: 2 に置き換えられます。