[ 前のページ ] [ 次のページ ] [ 目次 ] [ 索引 ] [ DOC Home ]

1 DEC XTPUの概要

この章では,DEC XTPU(DEC eXtended Text Processing Utility)に関して, 以下の項目について解説します。


1.1 DEC XTPUとは何か

DEC XTPUとは英語版のDEC Text Processing Utility (DECTPU)を拡張し, 複数コードセットを処理する機能を追加した,プログラミング可能なテキスト処理ユーティリティです。 DEC XTPUは,テキスト処理インターフェイスを開発するアプリケーション・プログラマ, およびシステム・プログラマを援助するためのツールとして設計されています。 たとえば,プログラマはDEC XTPUを用いて,特別な環境のエディタを作ることができます。 このDEC XTPUユーティリティにはコンパイラ,インタプリタ,高級手続き言語, および DEC XTPUで書かれたインターフェイスが含まれています。

DEC XTPUはスクリーン向きエディタのための一般的な機能の他に, 以下の特殊機能も備えています。

DEC XTPUのレイヤ上に構築されたエディタや他のアプリケーション・プログラムは, ユーザとDEC XTPU間のインターフェイスになります。 ユーザは日本語EVEを使うか, または独自のアプリケーション・プログラムを作ることによって,DEC XTPUを利用できます。

すなわち,DEC XTPUは日本語のテキスト処理アプリケーションを構築するための基礎となるものであると考えることができます。 日本語EVEという編集インターフェイスは, DEC XTPUの上にレイヤ構造として作成されたインターフェイスの例であり,DEC XTPU言語で書かれています。


1.2 日本語EVEとは何か

日本語EVEは,簡単に学習し,使用することができる日本語エディタです。 一般的な編集機能は日本語EVEキーパッドの1つのキーを押すことにより利用できるので, これまでエディタを使ったことがない人でも,基本的な編集操作なら, すみやかに実行することができます。

また,テキスト・エディタの使用経験の豊富なユーザにとっても, 日本語EVEは強力で効率のよいエディタです。 高度な編集機能は,日本語EVEコマンド・ラインにコマンドを入力することにより実行できます。 このコマンドを使用すれば,DEC XTPUの多くの特殊な機能を使用することができます。 日本語EVEインターフェイスについての詳しい説明は, 『日本語EVE ユーザーズ・ガイド』および 『日本語EVE リファレンス・マニュアル』を参照してください。


1.3 DEC XTPU言語

DEC XTPUは,強力なテキスト処理作業を行う高級手続き型プログラミング言語です。 DEC XTPU言語はDEC XTPUのもっとも基本的な構成要素であると考えることができます。 DEC XTPUの機能をアクセスするには,DEC XTPU言語でプログラムを作成し, DEC XTPUユーティリティを使ってそのプログラムをコンパイルし,実行しなければなりません。 1つのDEC XTPUステートメントだけしか含まない単純なプログラムから, 日本語EVEインターフェイスのセクション・ファイルのように複雑なプログラムまで, いろいろなプログラムをDEC XTPU言語で作成することができます。

DEC XTPU言語はブロック構造になっているため,簡単に学習でき,また使用できます。 DEC XTPU言語には多くのデータ・タイプ,関係演算子,エラー処理機能, 繰り返しやCASE文,重要な機能を実行するための広範囲にわたる組込みプロシージャなどがあります。 コメントはコメント文字(!)によって示すことができるので, プロシージャに関する内部的な記述を,プロシージャに含めることができます。 また,ユーザ作成デバッグ・プログラムを用いてプロシージャをデバッグすることもできます。


1.3.1 DEC XTPUのデータ・タイプ

DEC XTPU言語には多くのデータ・タイプが含まれています。 データ・タイプは変数の内容の意味を解釈するために使用されます。 他の多くの言語と異なって, DEC XTPU言語にはデータ・タイプを変数に割り当てるための宣言ステートメントはありません。 DEC XTPUの変数のデータ・タイプは, 代入ステートメントで代入されたときのデータ・タイプであると解釈されます。 たとえば,次のステートメントは,文字列データ・タイプをthis_varという変数に代入します。
     this_var := 'This can be a string of your choice';
次のステートメントは,ウィンドウ・データ・タイプを変数lower_caseに代入します。 ウィンドウはスクリーンの1行目から始まる15行を使用し,ステータス・ラインはOFF(表示されない)です。
     x := CREATE_WINDOW(1, 15, OFF)
多くのDEC XTPUデータ・タイプ(たとえば学習タイプやパターン)は, 通常のプログラミング言語で使用されているデータ・タイプと異なっています。 DEC XTPUのデータ・タイプは表 1-1に示すとおりです。

表 1-1 DEC XTPU データ・タイプ

データ・タイプ 説明
ARRAY 要素の集まり
BUFFER テキスト・レコードの集まり − BUFFERは編集作業ができる範囲を示します。
INTEGER 整数−有効な値は,-2,147,483,648から 2,147,483,647です。
KEYWORD DEC XTPUコンパイラにとって特別の意味がある予約語
LEARN DEC XTPUキーストロークの集まり
MARKER バッファ内の文字位置
PATTERN 一連の文字 − パターン演算子とパターン組込みプロシージャは結果としてこのデータ・タイプを通知します。 PATTERNはバッファ内の特定のテキストを見つけるために,SEARCH組込みプロシージャで使用されます。
PROCESS VMSサブプロセス
PROGRAM 実行可能なDEC XTPUステートメントのコンパイルされた形式
RANGE 2つのマーカの間に存在するすべてのテキスト(2つのマーカも含む)
STRING 文字列
UNSPECIFIED 変数宣言を持つコードがコンパイルされた後のグローバル変数の初期状態
WINDOW スクリーンを分割した領域−ウィンドウは,テキスト・バッファのうちスクリーン上に現れている領域です。

DEC XTPUデータ・タイプについての詳しい説明は, 『Guide to the DEC Text Processing Utility』および本書の 第2章 "DEC XTPUのデータ・タイプ" を参照してください。


1.3.2 DEC XTPU言語の宣言文

DEC XTPU言語の宣言文は表 1-2に示すとおりです。

表 1-2 DEC XTPU 言語の宣言文

モジュール宣言 MODULE − IDENT − ENDMODULE
プロシージャ宣言 PROCEDURE − ENDPROCEDURE
定数宣言 CONSTANT
グローバル変数宣言 VARIABLE
ローカル変数宣言 LOCAL

DEC XTPU言語の宣言文についての詳しい説明は, 『Guide to the DEC Text Processing Utility』および本書の 第3章を参照してください。


1.3.3 DEC XTPU言語ステートメント

DEC XTPU言語ステートメントは表 1-3に示すとおりです。

表 1-3 DEC XTPU言語ステートメント

代入ステートメント :=
繰返しステートメント LOOP − EXITIF − ENDLOOP
条件ステートメント IF − THEN − ELSE − ENDIF
ケース・ステートメント CASE − ENDCASE
エラー・ステートメント ON_ERROR − ENDON_ERROR

DEC XTPU言語ステートメントについての詳しい説明は, 『Guide to the DEC Text Processing Utility』および本書の 第3章を参照してください。


1.3.4 DEC XTPU組込みプロシージャ

DEC XTPU言語には多くの組込みプロシージャが含まれており,スクリーン管理やキー定義, テキスト操作,およびプログラム実行などの機能を提供します。

独自のプロシージャを作成するときには,組込みプロシージャを使うことができます。 また日本語EVEから組込みプロシージャを使うこともできます。 DEC XTPU組込みプロシージャについての詳しい説明は, 『DEC Text Processing Utility Reference Manual』および本書の 第4章を参照してください。


1.3.5 ユーザ作成プロシージャ

DEC XTPU組込みプロシージャの呼び出しとDEC XTPU言語ステートメントを用いて, 独自のプロシージャを作成することができます。 DEC XTPUのプロシージャは,値を返すことができます。 また再帰的なプロシージャを作成することもできます。 プロシージャを作成し,コンパイルしておけば, プロシージャ名を使ってそのプロシージャを呼び出すことができます。

プロシージャを作成するときには,以下のガイドラインに従ってください。

例 1-1は, 現在の文字位置を現在のバッファの先頭に移動するプロシージャの例です。 DEC XTPU言語ステートメント(PROCEDURE-ENDPROCEDURE) と組込みプロシージャ(POSITION, BEGINNING_OF, CURRENT_BUFFER, MESSAGE, GET_INFO)が使用されています。

例 1-1 ユーザ作成プロシージャの例

     ! This procedure moves the editing
     ! position to the top of the buffer

     PROCEDURE user_top

       POSITION (BEGINNING_OF(CURRENT_BUFFER));
       MESSAGE (" 現在のバッファは "+ GET_INFO (CURRENT_BUFFER, "name") + "   です");
     ENDPROCEDURE
このプロシージャをコンパイルしておけば, user_topという名前を使ってこのプロシージャを呼び出すことができます。


1.4 DEC XTPUがサポートするハードウェア

DEC XTPUは,日本語OpenVMSがサポートするすべてのハードウェアで実行することができます。

DEC XTPUは日本語端末VT280シリーズ(DEC漢字1983年版)およびVT382でスクリーン編集機能をサポートします。 日本語端末VT280シリーズ(DEC漢字1978年版)は, DEC漢字1983年版で変更になった文字が表示されない,という制限のもとでサポートされます。

DEC XTPUのサポートする日本語端末に関する制限事項については, 付録 Aを参照してください。


1.5 DEC XTPUの呼び出し

DCLレベルでDEC XTPUを呼び出すには,EDIT/XTPUコマンドを入力し, ファイルの名前を指定します。
     $ EDIT/XTPU text_file.lis
このコマンドは text_file.lis というファイルを編集のためにオープンします。 追加ファイルは,編集セッションでDEC XTPUの内部からREAD_FILE組込みプロシージャを使って指定することができます。

上記のコマンドでDEC XTPUを呼び出す場合には, 省略時の編集インターフェイスが使用されます(/NOSECTIONを指定しなかった場合)。 DEC XTPUの省略時の編集インターフェイスは日本語EVEです。 使用されるインターフェイス名(ここでは日本語EVE (JEVE))をコマンドとして, DEC XTPUを呼び出すことができるように,以下に示すようなシンボルを定義することをお勧めします。

     $ JEVE  :== EDIT/XTPU


1.5.1 DEC XTPUコマンドの修飾子

DEC XTPUコマンドには修飾子を追加することができます。 DEC XTPU修飾子は中断されたセッションからの回復や, DEC XTPUをアクセスするために使用されるインターフェイスを与える初期化ファイルなどのアイテムを制御します。 DEC XTPUに対する修飾子は表 1-4に示すとおりです。

表 1-4 DEC XTPU コマンドの修飾子

修飾子 省略時の値
/CODESET=codeset_keyword /CODESET=ISO_LATIN1
/[NO]COMMAND[=filespec] /COMMAND=XTPU$COMMAND
/[NO]CREATE /CREATE
/[NO]DEBUG[=filespec] /NODEBUG
/[NO]DISPLAY[=keyword] /DISPLAY=CHARACTER_CELL
/[NO]INITIALIZATION[=filespec] /NOINITIALIZATION
/[NO]JOURNAL[=filespec] /[NO]JOURNAL
/[NO]KANJI_DICTIONARY[=filespec] /KANJI_DICTIONARY
/[NO]MODIFY /MODIFY
/[NO]OUTPUT[=filespec] /OUTPUT=input_file.type
/[NO]READ_ONLY /NOREAD_ONLY
/[NO]RECOVER /NORECOVER
/[NO]SECTION[=filespec] /SECTION=XTPU$SECTION
/START_POSITION=(line,column) /START_POSITION=(1,1)
/[NO]WRITE /WRITE

DEC XTPUコマンドの修飾子についての詳しい説明は, 第5章を参照してください。


1.5.2 初期化ファイル

初期化ファイルには,コマンド・ファイルセクション・ファイルそしてイニシャライゼーション・ファイルの3つのファイルがあります。 コマンド・ファイルとセクション・ファイルを用いると, 日本語EVEエディタあるいはアプリケーションをカスタマイズできます。 イニシャライゼーション・ファイルは,日本語EVEやその他のアプリケーションを, それら特有のコマンド,設定,およびキー定義を使ってカスタマイズするのに使用されます。

コマンド・ファイル

ファイル・タイプ: .TPU
DEC XTPU修飾子: /COMMAND=filespec
省略時のファイル: 現在のディレクトリの XTPU$COMMAND.TPU

コマンド・ファイルには,DEC XTPU言語で書かれたソース・コードが入っています。

省略時設定は,/COMMAND=XTPU$COMMANDです。 論理名XTPU$COMMANDに任意のファイルを定義して使うこともできます。 /NOCOMMAND修飾子が指定されない限り,DEC XTPUはコマンド・ファイルを読み込もうとします。

/COMMAND修飾子についての詳しい説明は 『Guide to the DEC Text Processing Utility』および本書の 第5.5.2項を参照してください。

セクション・ファイル

ファイル・タイプ: .XTPU$SECTION
DEC XTPU修飾子: /SECTION=filespec
省略時のファイル: SYS$LIBRARYディレクトリの JEVE$SECTION_V3.XTPU$SECTION

セクション・ファイルはDEC XTPUソース・コードをコンパイルした形式のバイナリ・ファイルです。

省略時設定は,/SECTION=XTPU$SECTIONです。日本語OpenVMSでは, 起動時に XTPU$SECTIONという論理名がJEVE$SECTION_V3に定義されます。このため, DCLレベルでEDIT/XTPUコマンドを入力すると,日本語EVEエディタが起動されます。 日本語EVEを使用しないときには,別のセクション・ファイルを指定するか, /NOSECTION修飾子を指定しなければなりません。


注意
/NOSECTION修飾子を指定して DEC XTPUを呼び出した場合には, DEC XTPUに対するインターフェイスを与えるためのバイナリ・ファイルの読み取りは実行されません。 この場合には,[Return]や<X]キーさえも定義されていない状態になります。 新しいセクション・ファイルを作成しているときに, 既存のセクション・ファイルからプロシージャや変数, あるいは定義を含みたくない場合には,/NOSECTION修飾子を使用します。

/SECTION修飾子についての詳しい説明は 『Guide to the DEC Text Processing Utility』および本書の 第5.5.12項を参照してください。

イニシャライゼーション・ファイル

ファイル・タイプ: .EVE
DEC XTPU修飾子: /INITIALIZATION=filespec
省略時のファイル: 現在のディレクトリまたはSYS$LOGINディレクトリのJEVE$INIT_V3.EVE

イニシャライゼーション・ファイルには, DEC XTPUを使用して書かれたアプリケーションのためのコマンドが入っています。 たとえば,日本語EVEのイニシャライゼーション・ファイルには, キー定義やマージンの設定を含めることができます。

省略時の設定は,/INITIALIZATIONです。 論理名JEVE$INIT_V3に任意のファイルを定義して使うこともできます。 イニシャライゼーション・ファイルはとても簡単に作成できますが, セクション・ファイルやコマンド・ファイルを使用したときよりも, 起動に時間がかかります。/NOINITIALIZATION修飾子が指定されない限り, DEC XTPUはイニシャラゼーション・ファイルを読み込もうとします。

/INITIALIZATION修飾子についての詳しい説明は 『Guide to the DEC Text Processing Utility』および本書の 第5.5.6項を,また, イニシャライゼーション・ファイルの作成については日本語EVE ユーザーズ・ガイドの "イニシャライゼーション・ファイルの作成" を参照してください。

初期化ファイルの使用法

コマンド・ファイルとセクション・ファイルのどちらか一方, または両方を使用することにより, 既存のインターフェイスを変更または拡張することができます。

日本語EVEのソース・ファイルはXTPU$EXAMPLESにあります。 これらのリストを見るには,以下のコマンドを入力してください。
     $ DIRECTORY XTPU$EXAMPLES:JEVE$*.TPU
システムにこのファイルが含まれていないときには,システム管理者に連絡してください。


[ 前のページ ] [ 次のページ ] [ 目次 ] [ 索引 ] [ DOC Home ]