JPS62272323A - System for acquiring macro text - Google Patents

System for acquiring macro text

Info

Publication number
JPS62272323A
JPS62272323A JP11677486A JP11677486A JPS62272323A JP S62272323 A JPS62272323 A JP S62272323A JP 11677486 A JP11677486 A JP 11677486A JP 11677486 A JP11677486 A JP 11677486A JP S62272323 A JPS62272323 A JP S62272323A
Authority
JP
Japan
Prior art keywords
macro
buffer
storage area
text
name
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP11677486A
Other languages
Japanese (ja)
Inventor
Masanori Saito
齋藤 正則
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP11677486A priority Critical patent/JPS62272323A/en
Publication of JPS62272323A publication Critical patent/JPS62272323A/en
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

PURPOSE:To reduce the number of actual inputs/outputs by adopting the constitution where plural macro texts are stored in an actual storage area. CONSTITUTION:A macro procedure initial processing means 3 retrieves a pertinent macro name to discriminate whether this macro name is registered in a macro name storage area 11 or not by a macro name retrieval means 5, and it is registered in the macro name storage area 11 by a macro name register means 6 if it is not registered there. One buffer is acquired by a buffer allocating means 7 and a buffer control means 12, and its address is registered, and the pertinent macro is inputted to this buffer from an external medium 16 by a macro text input means 8. Since plural buffers are provided, there is a high probability that the macro name of a called macro is registered, that is, inputted to the buffer.

Description

【発明の詳細な説明】 3、発明の詳細な説明 〔産業上の利用分野〕 本発明はマクロテキスト取得方式、特に言語処理プログ
ラムに2いて、ソースプログラムでマクロ呼び出しが指
定されているときに該当するマクロテキストを取得して
、マクロ展開に供するマクロテキスト取得方式に関する
[Detailed Description of the Invention] 3. Detailed Description of the Invention [Field of Industrial Application] The present invention is applicable to a macro text acquisition method, especially when a language processing program is used and a macro call is specified in the source program. The present invention relates to a macro text acquisition method for acquiring macro text for macro expansion.

〔従来の技術〕[Conventional technology]

従来のマクロテキストa得方式は、ソースプログラムで
マクロ呼び出しが指定されると、マクロテキストを格納
している外部媒体からその都度。
In the conventional method of obtaining macro text a, whenever a macro call is specified in a source program, the macro text is obtained from an external medium storing the macro text each time.

該当するマクロをメモリにロードするようにしている。The relevant macro is loaded into memory.

〔発明が解決しようとする問題点〕[Problem that the invention seeks to solve]

このような従来方式にRいては、たとえ同一マクロであ
ってもソースプログラムでマクロ呼び出しの指定、があ
るたびごとに、外部媒体からマクロテキストをロードす
るため、入出力命令数が増え。
In such a conventional method, even if the macro is the same, each time a macro call is specified in the source program, the macro text is loaded from an external medium, which increases the number of input/output instructions.

処理速度が遅(なるという問題点がある。There is a problem that the processing speed is slow.

〔問題点を解決するための手段〕[Means for solving problems]

本発明の方式は、マクロテキストを格納するだめのエリ
ア、格納されたマクロテキストのマクロ内連結用エリア
な有する複数個のバッファと。
The system of the present invention includes a plurality of buffers including an area for storing macro text and an area for concatenating the stored macro text within the macro.

マクロ間連結の起点バッファと終点バッファの各アドレ
ス3よびバッファの使用数を格納するためのバッファ管
理記憶域と。
a buffer management storage area for storing each address 3 of the starting point buffer and ending point buffer of inter-macro linkage and the number of used buffers;

格納されたマクロの名称およびそのバッファアドレスを
格納するためのマクロ名記憶域と。
A macro name storage area for storing the name of the stored macro and its buffer address.

使用済バッファの再使用をラーるために使用済のバッフ
ァをバッファ管理記憶域およびマクロ間連結用エリアを
用いて連結する解放チェーン連結手段と。
A release chain connection means for connecting used buffers using a buffer management storage area and an inter-macro connection area in order to prevent reuse of the used buffers.

マクロテキストを格納するためにバッファの取り出しが
要求されるとマクロ内連結用エリアによびバッファ管理
記憶域の各内容に基づきバッフ ・fを取り出すと共に
マクロ名記憶域16よびバッファ管理記憶域を更新する
バッファ管理手段と。
When retrieval of a buffer is requested to store macro text, the buffer f is retrieved based on the contents of the intra-macro concatenation area and the buffer management storage area, and the macro name storage area 16 and buffer management storage area are updated. and buffer management means.

ソースプログラムまたはマクロ文でマクロ呼び出しが指
定されているとマクロ名記憶域を倹ぷ了るマクロ名検索
手段 とを設け、検索の結果により未登録が列名したマクロの
みのマクロテキストを外部媒体からパフ77に格納する
ようにしたことを特徴とする。
If a macro call is specified in a source program or a macro statement, a macro name search means is provided that saves the macro name storage area, and as a result of the search, the macro text of only the unregistered macros is retrieved from an external medium. It is characterized in that it is stored in a puff 77.

〔実施例〕〔Example〕

次に1本発明について図面?参照して説′!JJjる。 Next, a drawing about the invention? Please refer to the explanation! JJjru.

第1図は1本発明の一実施例を示す構底図である。FIG. 1 is a bottom view showing an embodiment of the present invention.

の翻訳に必要なマクロ名を記憶するマクロ名記憶域11
と、バッファテープMバッファ管理記ttM13と、バ
ッファテーブル・バッファ管理記憶域13を初期化する
初期化手段1と、ソースプログめ ラム15からマクロ呼び”出しを検出するソースプログ
ラム解析手段2と、マクロ手続初期処理手段3と、呼び
出されたマクロをマクロ名記憶域11より検索するマク
ロ名検索手段5と、マクロ名をマクロ名記憶域11に登
録するマクロ名登録手段6と、マクロテキスト千等を蓄
積するべ゛〈バッファテーブル・バッファ管理記憶域1
3からバッファを増り出てためのバッファアロケート手
段7と。
Macro name storage area 11 that stores macro names necessary for translation of
, a buffer tape M buffer management record ttM13, an initialization means 1 for initializing the buffer table/buffer management storage area 13, a source program analysis means 2 for detecting a macro call from the source program program 15, and a macro A procedure initial processing means 3, a macro name search means 5 for searching the macro name storage area 11 for a called macro, a macro name registration means 6 for registering the macro name in the macro name storage area 11, and a macro text 100, etc. Should be accumulated (buffer table/buffer management storage area 1)
buffer allocating means 7 for increasing the buffer from 3;

マクロテキスト解析のためのマクロテキストを外部媒体
16から入力するマクロテキスト入力手段8と、入力し
たマクロテキストを解析するマクロテキスト解析手段4
と、マクロが1つのバッファに格納し切れないとぎに複
数バッファ連鎖するバッファチェーン化手段9と、マク
ロテキストの終にバッファを解放チェーンに連結するだ
めの解放チェーン連結手段14と、バッファの取り出し
要求があったときに、バッファテーブル−バッファ管理
記憶域13を管理するためのバッファ管理手段12とか
ら構成されている。な81図中の−は制御の流れを示し
、→はデータの流れを示す。
Macro text input means 8 for inputting macro text for macro text analysis from external medium 16, and macro text analysis means 4 for analyzing the input macro text.
, buffer chaining means 9 for chaining multiple buffers when the macro cannot be stored in one buffer, release chain linking means 14 for linking the buffers to the release chain at the end of the macro text, and a buffer retrieval request. It consists of a buffer management means 12 for managing a buffer table and a buffer management storage area 13 when there is a problem. In Figure 81, - indicates the flow of control, and → indicates the flow of data.

次に本実施例の動作について、第2図に示した処理フロ
ーに従って説明する。第2図に8ける参照番号は第1図
に?ける参照番号と一致して2つ。
Next, the operation of this embodiment will be explained according to the processing flow shown in FIG. Is the reference number 8 in Figure 2 in Figure 1? Two matching reference numbers.

それぞれの処理内容は伎述グろ・カテク→州同初期化手
段1によるマクロ名記憶域11Xよびバッファテーブル
・バッファ管理記憶域13の初期化が終了すると、ソー
スプログラム解析手段2はソースプログラム15をEO
Fを検出するまで読み込む。ソースプログラムの各行に
Kいてマクロ呼び出しの指定がされていない場合にはそ
のままソースプログラムの次行を読むが、マクロ呼び出
しが指定されている場合には以下のようにして先ず、マ
クロ手続初期処理手段3が、マクロ名検索手段5によっ
て当該マクロ塩がマクロ名記憶域11にU録されている
か否か検索し、登鐵されていないとぎにはマクロ名登録
手段6によってマクロ名記憶域11に登録すると共にバ
ッファアロケート手段7.バッファ管理手段12により
1バツフアを取得してそのアドレスを登録し、マクロテ
キスト入力手段8によって外部媒体16かも当該マクロ
をそのバッファに入力する。た譬し1本発明にていては
複数個のバブ7アを設げているため、マクロ呼び出しさ
れたマクロ塩が登録、すなわちバッファに入力されてい
る確率が高い。
The contents of each process are as follows: When the initialization means 1 completes the initialization of the macro name storage area 11X and the buffer table/buffer management storage area 13, the source program analysis means 2 reads the source program 15. E.O.
Read until F is detected. If a macro call is not specified in each line of the source program, the next line of the source program is read as is, but if a macro call is specified, the macro procedure initial processing means is first executed as follows. 3, the macro name search means 5 searches whether the macro salt is registered in the macro name storage area 11 or not, and if it is not registered, the macro salt is registered in the macro name storage area 11 by the macro name registration means 6. and buffer allocation means 7. The buffer management means 12 acquires one buffer and registers its address, and the external medium 16 also inputs the macro into the buffer using the macro text input means 8. Example 1: Since a plurality of bubbles 7a are provided in the present invention, there is a high probability that the macro salt called by the macro will be registered, that is, input into the buffer.

1マクロテキストの入力が終了する1、+ %マクロテ
キスト解析手段4はこのマイクロテキスト内のマクロ文
を解析し、そのマクロ文をソースプログラムに展開して
い(が、マクロが1バツフアに格納し切れない場合には
バッファアロケート手段7による上述のバッファアロケ
ージコンとマクロテキスト入力手段8によるマクロテキ
ストの入力とを行い、この入力したマクロテキストにつ
いてマクロ文の解析を行う。マクロ文の解析の結果、そ
のマクロ文がさらにマクロ呼び出しをしているケースも
あり、そのようなときには上述のマクロ手続初期処理手
段によるマクロ手続初期処理が行われることKなる。
1 Macro text input is completed 1, + % Macro text analysis means 4 analyzes the macro statement in this micro text and expands the macro statement into the source program (However, the macro text cannot be stored in one buffer) If there is no macro text, the buffer allocator 7 performs the above-mentioned buffer allocation and the macro text input means 8 inputs the macro text, and analyzes the input macro text.As a result of the macro statement analysis, There is also a case where the macro statement further calls a macro, and in such a case, the macro procedure initialization processing is performed by the above-mentioned macro procedure initialization processing means.

1バツフアに格納し切れないマクロの各テキストを格納
する各バッファはバッファチェーン化手段9によってま
た解析の終了したマクロはマクロ解析終了処理手段10
.解放チェーン連結手段14によって、それぞれバッフ
ァテーブル・バッファ管理記憶域13を更新することに
エリ連結される。
Each buffer that stores each text of the macro that cannot be stored in one buffer is processed by the buffer chaining means 9, and the macro whose analysis has been completed is processed by the macro analysis completion processing means 10.
.. The release chain connection means 14 is used to update the buffer table/buffer management storage area 13, respectively.

バッファアロケート手段7よたは蕩放チェーン連結手役
14によりバッファの取り出し要求がされると、バッフ
ァ管理手段12はバッファテーブル・バッフ了管理記4
X埴13を参照して空きバッファないしは最古バッファ
を取り出すと共にでクロ名記憶城11’&更新する。
When a request for retrieving a buffer is made by the buffer allocating means 7 or the prodigy chain linking hand 14, the buffer managing means 12 stores the buffer table/buffer completion management record 4.
The free buffer or the oldest buffer is retrieved by referring to the X memory 13, and the black name memory 11'& is updated.

次に1本#1.施例の各構成要素についてその詳細を以
下に順欠説明する。
Next one #1. The details of each component of the embodiment will be explained below in sequence.

マクロ名記憶域11は第3図に示すように、マクロ塩を
格納する領域であるマクロ名格納域17と、マクロテキ
ストを蓄積するバッファ(後述するバッファテーブル1
30の一要素である)のアドレスを格納する領域である
バッファアドレス格納域18とから成る。
As shown in FIG. 3, the macro name storage area 11 includes a macro name storage area 17 which is an area for storing macro salt, and a buffer (buffer table 1 to be described later) which stores macro text.
30), and a buffer address storage area 18, which is an area for storing addresses (one element of 30).

バッファテーブル・バッファ管理記憶域13は。Buffer table/buffer management storage area 13.

第4図に示すように、マクロ名記憶域11の対応する要
素のアドレスを格納する    。
As shown in FIG. 4, the address of the corresponding element in the macro name storage area 11 is stored.

≠#含略揃呼鳴マクロ名記憶域アドレス格納域22、マ
クロテキストが1パツフフに入らない場合にバッファを
連鎖するバッファ同値チェーンアドレス格納域23.マ
クロテキスト解析手段4によるマクロテキストの解析が
終了したバッファを解放チェーンに連結するためのWj
故チェーン格納域24.解放チェーンを逆に連結するた
めの解放逆チェーン烙納域25およびマクロテキストを
格納する領域であるツマクロテキスト格納域26か点格
納域19と、前述チェーンの終了な示す解放チェーン終
了格納域20と、現在まで便用されているバッファの次
のバッファを示すバッファテーブル要素番号格納域21
とから成る。第4図に3いて参照数字131はパフ7丁
を示し、バッファテーブル130は複数個のバッファ1
31から構成されろ。
≠# Contains a complete ringing macro name storage area address storage area 22, a buffer equivalence chain address storage area 23 for chaining buffers when the macro text does not fit in one puff. Wj for connecting the buffer whose macro text has been analyzed by the macro text analysis means 4 to the release chain
Late chain storage area 24. A release reverse chain storage area 25 for connecting the release chain in reverse, a macro text storage area 26 which is an area for storing macro text, a point storage area 19, and a release chain end storage area 20 for indicating the end of the aforementioned chain. and a buffer table element number storage area 21 indicating the next buffer of the buffer used up to now.
It consists of In FIG. 4, reference numeral 131 indicates seven puffs, and a buffer table 130 indicates a plurality of buffers 1.
Consists of 31.

初期化手段lは、マクロ名記憶域11と、バッファテー
ブル・バッファ管理記憶域13とを初期化するものであ
る。マクロ名格納域17は空白文字にてまだバッファア
ドレス格納域18は9値によって初期化される。
The initialization means 1 initializes the macro name storage area 11 and the buffer table/buffer management storage area 13. The macro name storage area 17 is initialized with blank characters, and the buffer address storage area 18 is initialized with 9 values.

次に、ソースプログラム解析手段2について。Next, regarding the source program analysis means 2.

第5図に示すフローチャートを参照しつつ説明する。第
5図を参照すると、ソースプログラム解析手段2は、初
期化手段1から制御権を受けると。
This will be explained with reference to the flowchart shown in FIG. Referring to FIG. 5, when the source program analysis means 2 receives control authority from the initialization means 1.

まず、ソースプログラム15を1行読み込み(27)。First, one line of the source program 15 is read (27).

読み込んだソースプログラムの1行がソースプログラム
の終了を告げるものか否か判定を行ない(28)、終了
した場合は、処理を終了する。
It is determined whether one line of the source program that has been read indicates the end of the source program (28), and if it has ended, the process ends.

終了しない場合は、読み込んだソースプログラムの1行
内でマクロ呼び出しの検索を行なって(29)、  マ
クロ呼びしがされているか否かの判定を行い(30)、
  もしマクロ呼び出しがされていれば、マクロ処理を
行う(31)。またマクロ呼び出しがされていなければ
、マクロ処理(31)は行わず、その後にソースプログ
ラム15を1行読む処理を行なって、再び、ソースプロ
グラム15の終了判定(28)へ戻り、終了判定処理(
28)以下を繰り返丁ことになる。
If it does not end, search for a macro call within one line of the loaded source program (29), and determine whether a macro call has been made (30).
If a macro call has been made, macro processing is performed (31). If a macro call has not been made, the macro process (31) is not performed, and after that, the process of reading one line of the source program 15 is performed, and the process returns to the termination determination process (28) of the source program 15, and the termination determination process (31) is performed.
28) The following will be repeated.

マクロ手続初期処理手段3は、第6図にそのフローチャ
ートを示すように、第5図におけろマクロ処理31にて
、ソースプログラム15中からマクロ塩を取得すると、
そのマクロ塩を用いて、マクロ名記憶域11内のマクロ
名格納域17の中に一致するマクロ塩が有るか否かをマ
クロ名検索手段5により検索する(33)。マクロ塩が
登録されていないことがわかる(34)と、マクロ名登
録手段6によりマクロ名格納域17にそのマクロ塩を登
録する(35)。
As shown in the flowchart of FIG. 6, the macro procedure initial processing means 3 acquires the macro salt from the source program 15 in the macro processing 31 in FIG.
Using the macro salt, the macro name searching means 5 searches for a matching macro salt in the macro name storage area 17 in the macro name storage area 11 (33). When it is found that the macro salt is not registered (34), the macro salt is registered in the macro name storage area 17 by the macro name registration means 6 (35).

次に、マクロ名記憶域11内のバッファアドレス格納域
18を参照し、バッファが設定されているか判定する(
36)。バッファが設定されていなければ、バッファア
ドレス格納域18が空となっている。バッファが設定さ
れている場合には、マクロテキストを外部媒体16から
読み込まずに済むので、この点で実入出力の削減となる
ことがわファアドレス格納域18に設定するバッフアロ
ケージ薦ン処理をバッファロケット手段7により行い(
37)、  次に、アロケートしたバッファ(丁なわ6
.マクロテキスト格納領域26)にマクロテキスト入力
手段8によりマクロテキストを入力する(38)。
Next, refer to the buffer address storage area 18 in the macro name storage area 11 to determine whether a buffer has been set (
36). If no buffer is set, the buffer address storage area 18 is empty. If a buffer is set, the macro text does not need to be read from the external medium 16, which reduces actual input/output. is performed by buffer rocket means 7 (
37), Next, the allocated buffer (Double 6
.. The macro text is input into the macro text storage area 26) by the macro text input means 8 (38).

マクロ名検索手段5は第7図にフローチャートで示すよ
うに、アドレスポインタをマクロ名記憶域11の先頭へ
の位置づff(39)、その位置のマクロ名格納域17
が最終要素か否か(40)、空白文字を格納しているか
否か(41)判定し空白文字でかければマクロ手続初期
処理手段3かられたさt’Lタマクロ名と一致するか否
か照甘しく42)、マクロ名記憶域110次の要素への
位置づけ(43)を繰り返丁。マクロ塩が一致したとき
のみが登鏝済である。
As shown in the flowchart of FIG. 7, the macro name search means 5 moves the address pointer to the beginning of the macro name storage area 11 (ff(39)) and moves the address pointer to the beginning of the macro name storage area 17 at that position.
It is determined whether or not is the final element (40), and whether it stores a blank character (41), and if it is multiplied by the blank character, it matches the t'Lta macro name received from the macro procedure initial processing means 3. 42), macro name storage area 110, positioning to the next element (43) is repeated. It is only registered when the macro salts match.

マクロ名登録手段6は第6図に8げるステップ34に?
いて、マクロ名検索手段5による検索結果により未発コ
であることがわかると機能し、第8図に示すよ5に、先
ず、マクロ名倹索がマクロ名格納域17の最終要素で終
了したか否かを判定する(44)。もし、澱l將要素で
あるならばパフ7アテーブル131シま満杯であること
を意味するのでエラー処理が行われろ(!6)。また最
終要素でなければマクロ塩のマクロ格納@17−\の設
定が行われる(45)。
The macro name registration means 6 is entered in step 34 shown in FIG.
When the macro name search means 5 finds that the macro name has not yet been released as a result of the search result, the macro name search ends at the last element of the macro name storage area 17, as shown in FIG. It is determined whether or not (44). If it is a star element, it means that the puff 7 table 131 is full, so error processing should be performed (!6). Also, if it is not the final element, macro storage @17-\ of the macro salt is set (45).

バッファアロケート手段7は第6図に?しするステップ
36に3いてバッファが設定されていないことがわかる
と機能する。第9図に示すように、先ずバッファ管理手
Q 12 i(より1つのバッファを取得しく47)−
バッファアドレス格納域18へそのバッファアドレス設
定しく48)、 マクロ名記憶域アドレス格納域22に
、上記バッファアドレスを設定したマクロ名記憶域11
のアドレスを設定する(49)。
Is the buffer allocation means 7 shown in Figure 6? It functions when it finds in step 36 that no buffer has been set. As shown in FIG. 9, first, the buffer manager Q 12 i (to acquire one more buffer 47)-
Set the buffer address in the buffer address storage area 18 (48), and set the macro name storage area 11 with the above buffer address in the macro name storage area address storage area 22.
(49).

マクロテキスト入力手段8は、このようにして割り付ゆ
られたマクロテキスト格納域26へマクロテキストを外
部媒体16から入力する。なすぜ。
The macro text input means 8 inputs macro text from the external medium 16 into the macro text storage area 26 allocated in this manner. Let's do it.

マクロテキストはバッファ131のサイズと同一にしで
ある。
The macro text is the same size as the buffer 131.

次に、第10図を参照しつつマクロ解析手段4について
説明する。マクロ手続初期処理手段3によるマクロテキ
ストの入力が終了すると、マクロテキスト解析手段4が
機能するようになる。
Next, the macro analysis means 4 will be explained with reference to FIG. When the input of the macro text by the macro procedure initial processing means 3 is completed, the macro text analysis means 4 starts functioning.

先ず、入力したマクロテキストの一マクロ文を解析して
それがマクロ終了文か否か判定しく 50 )。
First, one macro sentence of the input macro text is analyzed to determine whether it is a macro end sentence (50).

もし終了文ならマクロ解析終了処理手段lOによるマク
ロ終了処理を行ない(51)、  また終了文でなげれ
ばマクロテキストの終了か否かをバッファ131のアド
レスポインタにより判定する(52)。
If it is an end sentence, the macro analysis end processing means lO performs macro end processing (51), and if it is an end sentence, it is determined whether the macro text ends or not using the address pointer of the buffer 131 (52).

マクロが終了でないのにマクロテキストが終了したとい
うことはマクロテキストとバッファ131のサイズを用
−にしているのでマクロを1つのバッファ131に格納
しきれなかったことを意味する。この場合には、バ、フ
ァ口ヶーシ、ン53(37と同じ)Sよびマクロテキス
ト入力54(38と同じ)を行なっh後で、この久方し
たマクロテキストの先頭ヘバッ7ア131のアドレスポ
インタを位置づ1(55)Lステップ5oに戻る。
The fact that the macro text has ended even though the macro has not ended means that the macro could not be stored in one buffer 131 because the size of the macro text and the buffer 131 were used. In this case, after performing the input 53 (same as 37) and the macro text input 54 (same as 38), the address pointer of the beginning of the macro text 131 is returned. Position 1 (55)L Return to step 5o.

ステップ52にgいてマクロテキストが終了でないこと
がわかると、そのマクロ文はマクロ呼び出しか否かを調
べ(56)、  マクロ呼び出しである場合にはマクロ
手続初期処理手段3による前述のような一連のマクロ手
続初期処理を行な5 (57)。
If it is determined in step 52 that the macro text is not finished, it is checked whether the macro statement is a macro call (56), and if it is a macro call, the macro procedure initial processing means 3 executes the above-mentioned series of steps. Perform macro procedure initial processing 5 (57).

また、ステップ56でマクロ呼び出しでないことがわか
るとマクロ文処理1丁なわちそのマクロ文で指定されて
いる命令の実行を行なって、マクロ文をソースプログラ
ム文に展開する(58)。ステップ57またはステップ
58終了後にはバッファ131のアドレスポインタを進
めて次のマクロ文テップ51に8いて終了となったバッ
ファ131のバッファ同値チェーンアドレス格納域23
へ。
Further, if it is determined in step 56 that the macro statement is not a call, one macro statement processing, that is, the instruction specified by the macro statement is executed, and the macro statement is expanded into a source program statement (58). After step 57 or step 58 is completed, the address pointer of the buffer 131 is advanced to the next macro statement step 51, and the buffer equivalence chain address storage area 23 of the buffer 131 is completed.
fart.

ステップ53に8いてアロケートされたバッファ131
のアドレスを格納する(60)。このようにして、マク
ロが1バツフアに格納し切れないときにマクロテキスト
を格納する各バッファを連結してい(のである。
Buffer 131 allocated at step 53
(60). In this way, when the macro cannot be stored in one buffer, the buffers storing the macro text are concatenated.

マクロ終了処理手段10は、マクロ処理終了処理と解放
チェーン連結手段14による処理とを行う。解放チェー
ン連結手段14は、第12図に示すように、解放チェー
ン起点格納域19の内容を読み取って(61)、それが
9値か否かを調べ(62)。
The macro termination processing means 10 performs macro processing termination processing and processing by the release chain connection means 14. As shown in FIG. 12, the release chain linking means 14 reads the contents of the release chain starting point storage area 19 (61) and checks whether it is 9-valued (62).

9値なら解放チェーン格納域24に9値な書き込み(6
3)、解放チェーン終了格納域20にはマクロ終了文が
認められた(50)マクロテキストを格納しているバッ
ファ131(現バッファ)のアドレスを設定する(64
)。
If the value is 9, write the 9 value to the release chain storage area 24 (6
3) The macro end statement is recognized in the release chain end storage area 20 (50), and the address of the buffer 131 (current buffer) storing the macro text is set (64).
).

ステップ62に8いて解放チェーン起点格納域19が9
値でない、つまりバッファテーブル130に’l、Cく
とも1つのマクロが入力済のときは、解放済みのときは
、解放チェーン起点格納域19が指定するバッファ13
1(起点バッファと称する)の解放逆チェーン格納域2
5に現バッファ131のアドレスを設定しく65)、現
バッファ131の解放チェーン格納域24には起点バッ
ファのアドレスを設定する(66)。
8 at step 62 and release chain starting storage area 19 is 9
If it is not a value, that is, at least one macro 'l or C has been input in the buffer table 130, and if it has been released, the buffer 13 specified by the release chain starting point storage area 19 is
1 (referred to as the origin buffer) release reverse chain storage area 2
5 is set to the address of the current buffer 131 (65), and the address of the starting point buffer is set to the release chain storage area 24 of the current buffer 131 (66).

ステップ64または66からはステップ67へ移行して
現バッファ131の解放逆チェーン格納域25に9値を
設定し、次いで解放チェーン起点格納域19に現バッフ
ァ131のアドレスを設定する(68)。第13図は3
つのバッファA、BgよびCが上述のようにして順次に
連結されていく様子を示す。
From step 64 or 66, the process moves to step 67, where a value of 9 is set in the release reverse chain storage area 25 of the current buffer 131, and then the address of the current buffer 131 is set in the release chain start storage area 19 (68). Figure 13 is 3
It shows how the three buffers A, Bg and C are sequentially connected as described above.

バッファ管理手段12は、第14図に示すよ5に。The buffer management means 12 is 5 as shown in FIG.

まずバッファテーブル要素番号格納域21の内容を読み
壜ってバッファテーブル130に含まれるバッファ13
1の数との大小を比較し空いているバッファが存在する
か否かを判定する(69)。バッファテーブル要素格納
域21の内容が大きくないとぎは空いているバッファが
存在する場合であり、バッファ同値チェーンアドレス格
納域23または解放チェーン終了格納域20が指定する
バッファの次のバッファを便用することになり(70)
First, the contents of the buffer table element number storage area 21 are read and the buffer 13 included in the buffer table 130 is read.
It is compared with the number 1 to determine whether there is an empty buffer (69). When the contents of the buffer table element storage area 21 are not large, there is an empty buffer, and the buffer next to the buffer specified by the buffer equivalence chain address storage area 23 or the release chain end storage area 20 is conveniently used. It turns out (70)
.

バッファテーブル要素番号格納域21を更新する。The buffer table element number storage area 21 is updated.

ステップ69に8いて空いたバッファが存在しない場合
には、解放チェーン終了格納域20の内容が9値か否か
を判定しく72)、現在アロケートされたバッファで一
番参照のさいバッファ(第13図の例ではバッファ人)
を再使用丁なわあ。
If it is determined in step 69 that there is no free buffer, it is determined whether the contents of the release chain end storage area 20 are 9 values (72), and the most referenced buffer among the currently allocated buffers (13th buffer) is checked. In the example shown, the buffer person)
I can't reuse it.

解放チェーン終了格納域20が指定するバッファをもら
い(73)、M放チェーン終了格納域20の内容を更新
しく74)、  次いで対応するバッファアドレス格納
域18に9値を設定する(75)のである。
It receives the buffer specified by the release chain end storage area 20 (73), updates the contents of the M release chain end storage area 20 (74), and then sets the value 9 in the corresponding buffer address storage area 18 (75). .

な2.エラー処理76は、使用可能なバッファがなくな
った場合で1本発明では、異常終了してしまうことにな
る。
2. In the present invention, the error processing 76 ends abnormally when there are no more usable buffers.

〔発明の効果〕〔Effect of the invention〕

以上説明したように本発明は、複数のマクロテキストを
実記憶域に蓄積する構成を採用することにより、実入出
力の削減を図ることができる。
As explained above, the present invention can reduce actual input/output by adopting a configuration in which a plurality of macro texts are stored in a real storage area.

【図面の簡単な説明】[Brief explanation of the drawing]

第1図は本発明の一実施例、第2図は本実施例の動作を
説明するための70−チヤートzよび第3図から第14
図までは本実施例の構成要素の詳細をそれぞれ示す。 1・−・・・・初期化手段、2・・・・・・ソースプロ
グラム解析手段、3・・・・・・マメクロ手続初期処理
手段、4・・・・・・マクロテキスト解析手段、5・・
・・・・マクロ名検索手段、6・・・・・・マクロ名登
録手段、7・・・・−・バッファアロケート手段、8・
・・・−・マクロテキスト入力手段。 9・・・・・・バッフ了チェーン化f[,10・・・用
マクロ解析終了処理手没、11・−・・・・マクロ名記
憶域。 12・・・・・・バッファ管理子R,1a・・・・・・
パブファテープル・バッファ管理記憶域、14・・・・
・・解放チェーン連結手段、15・・・・・・ソースプ
ログラム、16・・・・・・外部媒体、1.7・・・・
・・マクロ名格納域、18・・・・・・バッファアドレ
ス格納域、19・・・・・・解放チェーン起点格納域、
20・・・・・・解放チェーン終了格納域。 21・・・・・・バッファテーブル要素番号格納域、2
2・・・・・・マクロ名記憶域アドレス格納域、23・
・・・・・バッファ同値チェーンアドレス格納域、24
・・・・・・解放チェーン格納域、25・・・・・・解
放逆チェーン格納域、26・・・・・・マクロテキスト
格納域、130・・・・・・バッファチー7’ル、13
1.A、B、C・・・・・・パッ系i図 第4図 冶Z 図 第7図 筋8図 第7図     第17図 第76図 堵72図 (ロン 塔/、5 図 躬/4図
FIG. 1 shows one embodiment of the present invention, and FIG. 2 shows a 70-chart z and FIGS. 3 to 14 for explaining the operation of this embodiment.
The figures up to the figures show details of the constituent elements of this embodiment. 1... Initialization means, 2... Source program analysis means, 3... Macro procedure initial processing means, 4... Macro text analysis means, 5.・
...Macro name search means, 6.Macro name registration means, 7.--Buffer allocation means, 8.
...--Macro text input means. 9...Buffer completed chaining f[, 10...Macro analysis end processing was completed, 11...Macro name storage area. 12...Buffer manager R, 1a...
Pabfataple buffer management storage area, 14...
...Release chain connection means, 15...Source program, 16...External medium, 1.7...
... Macro name storage area, 18 ... Buffer address storage area, 19 ... Release chain start storage area,
20... Release chain end storage area. 21...Buffer table element number storage area, 2
2... Macro name storage area address storage area, 23.
...Buffer equivalence chain address storage area, 24
......Release chain storage area, 25......Release reverse chain storage area, 26...Macro text storage area, 130...Buffer team 7'le, 13
1. A, B, C...Pass series

Claims (1)

【特許請求の範囲】 マクロテキストを格納するためのエリア、格納されたマ
クロテキストのマクロ内連結用エリアおよびマクロ間連
結用エリアを有する複数個のバッファと、 前記マクロ間連結の起点バッファと終点バッファの各ア
ドレスおよび前記バッファの使用数を格納するためのバ
ッファ管理記憶域と、 前記格納されたマクロの名称およびそのバッファアドレ
スを格納するためのマクロ名記憶域と、使用済バッファ
の再使用をするために使用済の前記バッファを前記バッ
ファ管理記憶域および前記マクロ間連結用エリアを用い
て連結する解放チェーン連結手段と、 前記マクロテキストを格納するためにバッファの取り出
しが要求されると前記マクロ内連結用エリアおよびバッ
ファ管理記憶の各内容に基づきバッファを取り出すと共
に前記マクロ名記憶域および前記バッファ管理記憶域を
更新するバッファ管理手段と、 ソースプログラムまたはマクロ文でマクロ呼び出しが指
定されていると前記マクロ名記憶を検索するマクロ名検
索手段 とを設け、該検索の結果により未登録が判明したマクロ
のみのマクロテキストを外部媒体から前記バッファに格
納するようにしたことを特徴とするマクロテキストの取
得方式。
[Scope of Claims] A plurality of buffers having an area for storing macro text, an area for intra-macro concatenation of stored macro texts, and an area for inter-macro concatenation, and a starting point buffer and an end point buffer for the inter-macro concatenation. a buffer management storage area for storing each address and the number of used buffers; a macro name storage area for storing the stored macro names and their buffer addresses; and a macro name storage area for storing used buffers. release chain linking means for linking the used buffers using the buffer management storage area and the inter-macro linking area; buffer management means for extracting a buffer based on the contents of a concatenation area and a buffer management memory and updating the macro name storage area and the buffer management storage area; and a macro name search means for searching the macro name memory, and the macro text of only the macros found to be unregistered as a result of the search is stored in the buffer from an external medium. method.
JP11677486A 1986-05-20 1986-05-20 System for acquiring macro text Pending JPS62272323A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11677486A JPS62272323A (en) 1986-05-20 1986-05-20 System for acquiring macro text

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11677486A JPS62272323A (en) 1986-05-20 1986-05-20 System for acquiring macro text

Publications (1)

Publication Number Publication Date
JPS62272323A true JPS62272323A (en) 1987-11-26

Family

ID=14695390

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11677486A Pending JPS62272323A (en) 1986-05-20 1986-05-20 System for acquiring macro text

Country Status (1)

Country Link
JP (1) JPS62272323A (en)

Similar Documents

Publication Publication Date Title
JPH0630066B2 (en) Table type language translation method
JPH0652225A (en) Method and system for retrieving file
CN111259003B (en) Database establishment method and device
JPH06149589A (en) Reference object variable determination processing method and translation processing system
CN112765963B (en) Sentence word segmentation method, sentence word segmentation device, computer equipment and storage medium
JPS62272323A (en) System for acquiring macro text
JPH1166095A (en) Data managing device
JPS583033A (en) Tree structure retrieval processor
CN103150408A (en) System and method for finding and accessing database in real-time databases according to roll call
CN111967257B (en) Word segmentation method and device, electronic equipment and storage medium
JPH03152640A (en) Data base inquiry processor
JP6347023B1 (en) Recording medium with code automatic description 2 software recorded
JP3106550B2 (en) Voice recognition result display device
JPH0290364A (en) Method and system for mechanical translation
JPS583032A (en) Tree structure access processing system
JPS60252949A (en) Information retrieving method
SU1672471A1 (en) Data retrieval device
JPS63103393A (en) Word recognizing device
JPH02216533A (en) Device and method for executing rule base
JPH07281879A (en) Application program editing device
JPS63138479A (en) Character recognizing device
JPH02249087A (en) English word retrieving device
JPS59189463A (en) Memory access control system
JPS59119458A (en) Method of garbage collection
JPS62164181A (en) Character recognizing device