前処理ツール

本章では、OFCOBOLの前処理ツールの使用方法について説明します。基本的なコンパイル・オプションは、-hを使用して確認できます。

1. ofconv

IDMS COBOL文法をOpenFrame環境で使用できるCOBOL文法に変換します。

  • 使用方法

    Usage : ofconv -i <source-file> [options]
  • [options]

    項目 説明

    -saveretcode

    プログラムのRETURN-CODE値を一時変数に移した後、NDB2関連構文を呼び出した後に復元します。

    -dmlseq

    プログラムのDMLセグメントのシーケンス番号を出力します。

    -uc

    プログラムで使用されているDMLセグメントをリストします。

2. ofcbpp

コンパイルとは別に、COPY文の処理などを含む前処理を行います。

  • 使用方法

    Usage : ofcbpp -i <source-file> [options]
  • [options]

    項目 説明

    -o <output name>

    出力ファイルの名前を指定します。

    -copypath <path>

    環境変数に指定したコピーブック・パス以外のコピーブック・パスを指定します。追加するパスごとに1つのオプションを使用します。

    --enable-osvs

    OS/VS COBOLの文法を含めて前処理を行います。

    --enable-rw

    IBM REPORT WRITER関連文法を含めて前処理を行います。

    --enable-include

    EXEC SQL INCLUDE文で宣言されたファイルを、DB2INCLUDE環境変数に指定されたディレクトリ、OFCOBCPY環境変数に指定されたディレクトリ、現在のディレクトリの順に検索してインクルードします。

    --enable-declare

    EXEC SQL INCLUDE文で宣言されたファイルを、DB2INCLUDE環境変数に指定されたディレクトリ、OFCOBCPY環境変数に指定されたディレクトリ、現在のディレクトリの順に検索してインクルードします。そして、EXEC SQL文で参照されるデータ部の変数がEXEC SQL DECLARE文によって囲まれていない場合、そのステートメントを追加します。

    --collating-seq-ebcdic

    照合シーケンス(Collating Sequence)をEBCDICに設定するステートメントを追加します。

    --add-missing-period

    セクション/段落前の文の終端にピリオドが省略された場合に、ピリオドを追加します。ただし、セクション/段落は領域Aに宣言される必要があります。

    --conv-stop-run

    STOPステートメントをGOBACKステートメントに変換して前処理を行います。

    --disable-cpy-limit

    COPYステートメントを使用する場合、ターゲット・コピーブック名の文字数制限(8文字)を解除します。

    --expanded

    拡張COBOL構文を含めて前処理を行います。サポートする拡張COBOL構文については、OpenFrame COBOL『言語リファレンスガイド』の付録「拡張COBOL」を参照してください。

    --conv-nominal-key

    --enable-osvsオプションを指定した場合に有効です。NOMINAL KEY節をORGANIZATION INDEXED節に置き換えます。

3. ofcbppf

ofcobでNetCOBOL文法をコンパイルするための前処理を行います。

  • 使用方法

    Usage : ofcbppf -i <source-file> [options]
  • [options]

    項目 説明

    -o <output name>

    出力ファイルの名前を指定します。

    --version

    ofcbppfの現在のバージョンを示します。

    -v

    可変形式のCOBOLプログラムであることを指定します。

    -l

    セクションや段落の名前を出力するDISPLAYステートメントを挿入します。

    DISPLAYステートメントはすべての段落に追加されるため、一部の段落には不要に挿入される場合があります。これにより、警告メッセージが出力されることがありますが、問題はありません。

    -c <num>

    指定したnumに従って、前処理に必要な照合シーケンス・モードを設定します。

    • 0 : 前処理プロセスで照合シーケンス処理を行いません(デフォルト)

    • 1 : COBOLプログラムに照合シーケンスが設定されていない場合にのみ、OpenFrame AIMがデフォルトで提供する照合シーケンスを使用するように前処理します。

    • 2 : COBOLプログラムに照合シーケンスが設定されているかどうかに関係なく、常にOpenFrame AIMがデフォルトで提供する照合シーケンスを使用するように前処理します。

    -t

    CALLステートメントを実行時に、callpush関数、callpop関数を呼び出すコードを作成します。これにより、これらの関数に渡す引数情報をOpenFrameに渡すことができます。

    --resolve-console

    DISPLAYステートメントのUPON CONSOLE句を使用できるようにします。

    --print-rename

    前処理によって名前が変更された変数の変更前と変更後の変数名リストを出力します。

    --user-ndb-exception

    NDBステートメントを前処理する際に、DBの例外やデッドロック処理を行うコードを自動で生成しないようにします。

    --config-print

    MODE節、CHARACTER TYPE節の前処理後に生成されるプリント制御コードをCSV形式のconfigファイルを使用して変更できるようにします。

    -call-assembly

    OFASMのvariable_parameter_listを使用できるように、CALLステートメントの実行時にパラメータ情報を渡すためのコードを生成します。

    --enable-asa-byte

    WRITEステートメントのADVANCING動作時には、行の先頭に1バイトのASAバイトが追加される。

    --enable-acsapi

    ASCAPI関数を呼び出して使用する場合、パラメータの数と長さを渡すコードを生成します。

    --enable-sosi

    NまたはNCリテラルからSHIFT-IN SHIFT-OUTバイトを削除します。

4. ofcbppe

ofcobツールでESQL構文をコンパイルするための前処理を行います。

  • 使用方法

    Usage: ofcbppe -i <source-file> [options]
  • [options]

    項目 説明

    -o <output name>

    出力ファイルの名前を指定します。

    --version

    ofcbppeの現在のバージョンを示します。

    -copypath <path>

    コピーブックが保存されているディレクトリを指定します。

    --enable-osvs

    OS/VS COBOLの文法を含めて前処理を行います。

    --enable-rw

    IBM報告書作成プログラム関連の文法を含めて前処理を行います。

    --enable-varchar

    ユーザーが宣言したCOBOLグループ項目をESQLのVARCHARデータ型として認識するように指定します。

    --enable-mode-ansi

    ANSI動的SQLを使用するように指定します。このオプションを指定した場合、Tiberoの動的SQLを使用すると、プリコンパイラーで文法エラーが発生します。

    --enable-unsafe-null

    指示子変数がない場合、NULL値を許容するかどうかを指定します。NULLデータが予想される場合も、便宜上指示子変数の使用を省略したい場合にこのオプションを使用します。

    --enable-runtime-odbc

    ODBC(Open DataBase Connectivity)を使用する場合に指定します。

    --enable-close-on-commit

    コミットと同時にカーソルを閉じるように指定します。

    --enable-mssql

    DB2 SQLをMSSQLのSQLに置き換えます。

    --enable-end-of-fetch-100

    SQL文の実行後、END-OF-FETCH状況でユーザーに返すSQLCODE値を100に指定します。

    --enable-loglvl-debug

    esql_set_optionに「LOG_LVL」、「DEBUG」を指定します。

    --remove-quote

    tbdb2cblcvの使用時にROWNUMを使用する場合、二重引用符を削除します。

    --disable-cpy-limit

    COPYステートメントを使用する際にターゲット・コピーブック名の文字数制限(8文字)を解除します。

    --enable-lazy-pstmt-check

    prepare構文とdeclare構文の順序は無視されます。

    --conv-comp5

    User CODEのUSAGE COMPをUSAGE COMP-5に変更します。

    1. ofcbppeはTiberoが提供するESQLパーサーを参照します。したがって、ofcbppeツールを使用してESQL構文を前処理するためには、Tiberoクライアントがインストールされている必要があります。『Tibero インストールガイド』を参照してTiberoクライアントをインストールし、TB_HOMEのclient/libにlibtbeparser.soが存在するか確認してください。

    2. ofcbppe-1.0.34以前のバージョンでは、--enable-runtime-odbcの代わりに --runtime-odbcを使用する必要があります。詳細については、--helpオプションで確認できます。

5. ofcbppd

ofcobでDB2構文をコンパイルするための前処理を行います。現在、COMPで宣言されたホスト変数のエンディアン処理のためのcomp_swap関数を作成する機能のみサポートしています。

  • 使用方法

    Usage: ofcbppd -i <source-file> [options]
  • [options]

    項目 説明

    -o <output name>

    出力ファイルの名前を指定します。

    --version

    ofcbppdの現在のバージョンを示します。

    -copypath <path>

    コピーブックが保存されているディレクトリを指定します。

    --enable-osvs

    OS/VS COBOLの構文を含めて前処理を行います。

    --enable-rw

    IBM報告書作成プログラム関連の構文を含めて前処理を行います。

    --oracle

    Oracleデータベースを使用できるようにします。

6. ofcbppr

ofcbpprコマンドを使用すると、ofcobでレポートライター構文をコンパイルするための前処理を行うことができます。

ofcbpprで前処理されたCOBOLは、レポートライター構文がCOBOL構文に変換されます。

  • 使用方法

    Usage: ofcbppr -i <source-file> [options]
  • [options]

    項目 説明

    -o <output name>

    出力ファイルの名前を指定します。

    --version

    ofcbpprの現在のバージョンを表示します。

    -copypath <path>

    コピーブックが保存されているディレクトリを指定します。

    -v

    COBOLプログラムが可変形式であることを指定します。