サーチ…
前書き
Compile "r-code"と呼ばれる進捗コード。通常、拡張子.rのファイルに保存されます。コンパイルにはいくつかの方法があります: COMPILE
文を使用するか、LinuxまたはAppBuilder:組込みアプリケーションコンパイラ。 Developer Studio(Eclipse環境)にはビルドプロセスが組み込まれています。
データベースを更新する4GLプログラムをコンパイルするには、4GL DevelopmentまたはOpenEdge Studioがインストールされている必要があります。
構文
- COMPILE program.p SAVE。 // program.pをコンパイルしてrコードを保存する
- COMPILE VALUE(var)SAVE。 //変数 "var"に保存された名前をコンパイルし、rコードを保存します。
- コンパイルprog.p XREF prog.xref LISTING prog.list。 // prog.pをコンパイルし、xrefとlisting-filesを作成します。 rコードは保存しないでください。
- COMPILE program.p NO-ERRORを保存します。 // program.pをコンパイルしてrコードを保存し、エラーを抑えて実行を停止します。
アプリケーションコンパイラ
Windows AppBuilder
Windows Appbuilderでは、Application CompilerはToolsメニューにあります。
プロシージャエディタ(Linux - pro
またはWindows pro.exe
プロシージャエディタ(LinuxとWindowsの両方)で、ツールメニューにコンパイラがある場合
アプリケーションコンパイラ
OSにかかわらず、コンパイラの機能は同じです。ディレクトリやファイルを追加してコンパイルすることができます。
主な設定(以下を参照):
- 新しい.rファイルを保存します。チェックされていない場合、ファイルは単にコンパイルされますが保存されません。たとえば、エラートラッキングに役立ちます。
- サブディレクトリを見てください。それ以外の場合は、サブディレクトリを追加する必要があります。
- 古い.rファイルを削除します。古い.rファイルを上書きします。
- Onlu .rファイルがない場合にコンパイルします。コンパイルされていないファイルのみをコンパイルします。
オプション:
- Propath - あなたにプロパスを示し、コンパイルするディレクトリを選択しましょう。
- 追加 - ディレクトリまたはファイルを入力できます。
- 変更 - 既存のエントリを変更できます。
- 削除 - エントリを削除します。
- Start Compile - コンパイラを起動します。ショートカット: F2
メインメニューの選択肢:
- ファイル - >終了:コンパイラを終了する
- コンパイル - >コンパイル開始:コンパイラを開始します。ショートカット: F2
- ツール - >他のツールへのアクセス
- オプション - >コンパイラ...:設定、以下を参照してください。
- ヘルプ - > OpenEdgeヘルプ(Windowsのみ)。オンラインヘルプ。ショートカット: F1
設定
- デフォルトのファイル仕様:コンパイルするファイル拡張子
- メッセージログファイル:メッセージ、警告、およびエラーを保存するファイル
- 保存先:.rファイルを保存する場所。空白の場合は、コードと同じディレクトリ。
- 言語:翻訳のため。ここでは扱いません。
- V6Frame:古いと不慣れな...
- Steam-IO:コンパイラ出力を印刷したい場合。ほとんどない可能性があります。
- リストファイル:コンパイラがリストファイルを作成する場合。デバッグに便利
- 追加:既存のリストファイルに追加します。それ以外の場合は上書きします。
- ページ幅+長さ:リストファイルの書式。
- 外部参照ファイル:コンパイラに
XREF
を作成させる場合。デバッグ、インデックスの使用状況のチェックなどに便利です。 - XMLフォーマット:コンパイラのxrefがxmlである必要がある場合。そうでなければ "平らな"テキスト。
- 追加:既存のxrefファイルに追加します。それ以外の場合は上書きします。
- デバッグファイル:デバッガリストファイル。
- 暗号化キー:
xcode
を使用してソースファイルを暗号化する場合は、ここにキーを挿入します。 - Rコードのサイズを最小限に抑える:rコードを小さく保つために、デバッグ情報を削除します。
- MD-5を生成する:主にWebClientのコンパイル用。
基本的な使用法
- コンパイラを起動する
- パスを追加する(最後のセッションからまだ保存されていない場合)
- F2を押してコンパイルします。
- エラーを観察してください。
- 出口
COMPILEステートメント
コンパイルステートメントでは、プログレスABLでプログラムをコンパイルできます。
基本的な使用法:
COMPILE hello-world.p SAVE.
変数の場合:
DEFINE VARIABLE prog AS CHARACTER NO-UNDO.
prog = "hello.p".
COMPILE VALUE(prog) SAVE.
COMPILE
文にはいくつかのオプションがあります。
SAVE
は、今後の使用のために.rコードを保存する必要があると述べています。
COMPILE hello-world.p SAVE.
SAVE INTO dir OR SAVE INTO VALUE(dir-variable)
保存するか、 SAVE INTO dir OR SAVE INTO VALUE(dir-variable)
保存するSAVE INTO dir OR SAVE INTO VALUE(dir-variable)
は、指定されたディレクトリにrコードを保存します。
COMPILE hello-world.p SAVE INTO /usr/sources.
LISTING file
。ブロックに関する情報を含むリストファイルを作成します。
COMPILE program.p SAVE LISTING c:\temp\listing.txt.
リストには、ファイル、ページサイズ、およびページ幅を追加するための2つのオプションがあります。
APPEND PAGE-SIZE num PAGE-WIDTH num
XREF xreffile
は、文字列と索引の使用状況などの情報を含むコンパイラの外部参照ファイルを保存します。また、これをAPPEND
することもできます。
COMPILE checkFile.p SAVE XREF c:\directory\xref-file.txt.
XREF-XML xreffile-or-dir
と同じことを行いますXREF
代わりにXML形式でファイルを保存します。ディレクトリを使用する場合、xref-fileはprogramname.xref.xml
という名前にprogramname.xref.xml
ます。
COMPILE file.p SAVE XREF c:\temp\.
NO-ERROR
は、プログラムの停止NO-ERROR
を抑制します。
COMPILE program SAVE NO-ERROR.
DEBUG-LIST file
は、行番号を持つデバッグファイルを生成します。
COMPILE checkFile.p SAVE DEBUG-LIST c:\temp\debug.txt.
PREPROCESS file
は、まずすべてのプリプロセッサを翻訳し、コンパイルする前にコードで新しい.p-ファイルを作成します。
COMPILE checkFile.p SAVE PREPROCESS c:\temp\PREPROC.txt.
XCODE key
はXCODE key
をkey
として暗号化されたソースコードをコンパイルします。 XREF、XREF-XML、STRING-XREF、またはLISTINGオプションとともにXCODEを使用することはできません。
COMPILE program.p SAVE XCODE myKey.
いくつかのオプションを組み合わせることができます:
COMPILE prog.p SAVE INTO /usr/r-code XREF /usr/xrefs/xref.txt APPEND LISTING /usr/listings.txt APPEND NO-ERROR.
COMPILERシステムハンドル
COMPILER
システムのハンドルは、最近のコンパイルに関する情報を見ていきます。
ok-program.p
がエラーまたは警告のないok-program.p
であると仮定します。
COMPILE ok-program.p SAVE NO-ERROR.
DEFINE VARIABLE iError AS INTEGER NO-UNDO.
MESSAGE
"Errors: " COMPILER:ERROR SKIP
"Warnings: " COMPILER:WARNING SKIP
"Messages: " COMPILER:NUM-MESSAGES
VIEW-AS ALERT-BOX INFORMATION.
これは次のようになります。
警告を伴うプログラムのコンパイル:
/* program-with-warning.p */
DEFINE VARIABLE c AS CHARACTER NO-UNDO.
DEFINE VARIABLE i AS INTEGER NO-UNDO.
c = "hello".
DISPLAY c.
//This RETURN makes the program exit here and the code below unreachable.
RETURN.
IF TRUE THEN DO:
i = 10.
END.
プログラムのコンパイル:
COMPILE program-with-warning.p SAVE.
DEFINE VARIABLE iError AS INTEGER NO-UNDO.
MESSAGE
"Errors: " COMPILER:ERROR SKIP
"Warnings: " COMPILER:WARNING SKIP
"Messages: " COMPILER:NUM-MESSAGES
VIEW-AS ALERT-BOX INFORMATION.
DO iError = 1 TO COMPILER:NUM-MESSAGES:
DISPLAY
COMPILER:GET-FILE-NAME(iError) LABEL "Filename" FORMAT "x(20)"
COMPILER:GET-MESSAGE(iError) LABEL "Message" FORMAT "x(50)"
COMPILER:GET-NUMBER(iError) LABEL "Msg#"
COMPILER:GET-ERROR-COLUMN(iError) LABEL "Column"
COMPILER:GET-ERROR-ROW(iError) LABEL "Row"
WITH FRAME fr1 SIDE-LABELS 1 COLUMNS.
END.
結果:
エラーのあるプログラムのコンパイル
DEFINE VARIABLE c AS CHARACTER NO-UNDO.
DEFINE VARIABLE i AS INTEGER NO-UNDO.
c = "hello".
DISPLAY c.
//Casting should be required below...
IF TRUE THEN DO:
i = c.
END.
プログラムのコンパイル:
//Use no-errors to supress any error messages from interrupting us.
COMPILE c:\temp\program-with-error.p SAVE NO-ERROR.
DEFINE VARIABLE iError AS INTEGER NO-UNDO.
MESSAGE
"Errors: " COMPILER:ERROR SKIP
"Warnings: " COMPILER:WARNING SKIP
"Messages: " COMPILER:NUM-MESSAGES
VIEW-AS ALERT-BOX INFORMATION.
DO iError = 1 TO COMPILER:NUM-MESSAGES:
DISPLAY
COMPILER:GET-FILE-NAME(iError) LABEL "Filename" FORMAT "x(20)"
COMPILER:GET-MESSAGE(iError) LABEL "Message" FORMAT "x(50)"
COMPILER:GET-NUMBER(iError) LABEL "Msg#"
COMPILER:GET-ERROR-COLUMN(iError) LABEL "Column"
COMPILER:GET-ERROR-ROW(iError) LABEL "Row"
WITH FRAME fr1 SIDE-LABELS 1 COLUMNS 20 DOWN.
DOWN WITH FRAME fr1.
END.
その結果、エラーごとに2つのエラーがほぼ常に発生します。 「理解できませんでした」の後に実際のエラーが続きます。