JPH041825A - コンパイラにおけるエラー情報出力処理方式 - Google Patents

コンパイラにおけるエラー情報出力処理方式

Info

Publication number
JPH041825A
JPH041825A JP2104200A JP10420090A JPH041825A JP H041825 A JPH041825 A JP H041825A JP 2104200 A JP2104200 A JP 2104200A JP 10420090 A JP10420090 A JP 10420090A JP H041825 A JPH041825 A JP H041825A
Authority
JP
Japan
Prior art keywords
syntax
error information
error
processing unit
processing
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
JP2104200A
Other languages
English (en)
Inventor
Tetsushige Kawaguchi
哲成 川口
Masahiro Nakamura
正博 中村
Hiroyuki Matsuyama
松山 浩之
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.)
Fujitsu Ltd
PFU Ltd
Original Assignee
Fujitsu Ltd
PFU Ltd
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 Fujitsu Ltd, PFU Ltd filed Critical Fujitsu Ltd
Priority to JP2104200A priority Critical patent/JPH041825A/ja
Publication of JPH041825A publication Critical patent/JPH041825A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 [概要] コンパイラにおけるエラー情報出力処理方式に関し、 入力ソース中に記述される構文のエラー情報を正確に出
力できるようにすることを目的とし、入力ソースの語分
解処理を実行する語分解処理部と、この語分解された語
の構文チェックを実行しつつ翻訳処理を実行する構文評
価処理部と、この検出された構文エラー情報を出力する
エラー出力処理部と、これらの処理部の制御処理を実行
する翻訳制御処理部とを備えるコンパイラにおいて、構
文エラー内容を登録管理するエラー情報退避テ−プルを
備え、構文評価処理部が、翻訳対象として選択された入
力ソース文中に記述されるすべての構文エラー内容をエ
ラー情報退避テーブルに設定するよう処理するとともに
、エラー出力処理部が、該入力ソース文の翻訳処理終了
時点で、エラー情報退避テーブルに設定された構文エラ
ー情報を出力するよう構成する。
[産業上の利用分野] 本発明は、コンパイラにおけるエラー情報出力処理方式
に関し、特に、入力ソース中に記述される構文のエラー
情報を正確に出力できるようにするコンパイラにおける
エラー情報出力処理方式に関するものである。
入力ソースを翻訳処理することで新たな出力ソースを生
成するよう処理するコンパイラでは、入力ソースの記述
内容が言語系のスペックに適合しているか否かの構文チ
ェックを行い、この構文チェックに従って構文エラーを
検出するときには、そのエラー情報を出力していくよう
処理することになる。このエラー情報の出力処理は、翻
訳処理を効率的に行うためにも正確に出力できるように
していく必要がある。
[従来の技術〕 従来のコンパイラにおいては、構文チェックを実行して
いくときにあって、単一の要因箇所で構文エラーを検出
すると、その要因箇所にはエラーが存在するということ
で、その要因箇所のそれから以降については構文チェン
ジを行わずに次の有効語まで読み飛ばしてしまうという
構成を採っていた。すなわち、例えば、入力ソース文中
に変数の区切語があるような場合において、その区切語
の前の部分に構文エラーがあるときには、その区切語ま
で読み飛ばしてしまうという構成を採っていたのである
[発明が解決しようとする課H] しかしながら、このような従来技術では、単一の要因箇
所で複数の構文エラーが発生するような場合に対して、
最初に検出したエラーだけを出力することになる。従っ
て、このような場合には、同一の入力ソース文の翻訳処
理を繰り返しながら、1つずつ構文エラーを修正してい
かな(ではならず、翻訳処理を効率的に実行できないと
いう問題点がでていた。
本発明はかかる事情に鑑みてなされたものであって、入
力ソース中に記述される構文のエラー情報を正確に出力
できるようにすることで、効率的な翻訳処理を可能とす
るコンパイラにおけるエラー情報出力処理方式の提供を
目的とする。
〔課題を解決するための手段] 第1図は本発明の原理構成図である。
図中、1は本発明を具備するコンパイラ、2はコンパイ
ラlが備える出力機器であって、構文エラー情報を出力
するものである。
コンパイラ1は、語分解処理部10、構文評価処理部1
1、エラー出力処理部12、翻訳制御処理部13及びエ
ラー情報退避テーブル14を備えこの語分解処理部10
は、空白や予約語等を分離符として翻訳対象となる入力
ソースの語分解処理を実行するよう処理し、構文評価処
理部11は、語分解された語の並びに対して構文のチェ
ンジを実行しつつ、翻訳処理を実行することで出力ソー
スを生成するよう処理し、エラー出力処理部12は、検
出された構文エラー情報を出力機器2に出力するよう処
理し、翻訳制御処理部13は、語分解処理部10、構文
評価処理部11及びエラー出力処理部12の制御処理を
実行するよう処理し、エラー情報退避テーブル14は、
構文エラー内容を登録管理するよう処理する。
〔作用] 本発明では、構文評価処理部11が、翻訳対象として選
択された入力ソース文中に記述されるすべての構文エラ
ー内容をエラー情報退避テーブル14に設定する。そし
て、エラー出力処理部12が、その入力ソースの翻訳処
理終了時点において、エラー情報退避テーブル14に設
定された構文エラー情報を出力する。
このように、本発明では、エラー情報退避テーブル14
を新たに備えて、構文評価処理部11が、このエラー情
報退避テーブル14に翻訳対象として選択された入力ソ
ース文中に記述されるすべての構文エラー内容を設定し
、エラー出力処理部12が、この設定された構文エラー
内容を一度にまとめて出力するよう処理することから、
入力ソース文中に記述される構文のエラー情報が一度に
正確に出力できるようになり、効率的な翻訳処理が可能
となるのである。
〔実施例〕
以下、実施例に従って本発明の詳細な説明する。
第2図に、第1図で説明したエラー情報退避テーブル1
4の一実施例を図示する。この図に示すように、エラー
情報退避テーブル14は、翻訳対象として選択されるこ
とになる1つの入力ソース文で発生する可能性のある構
文エラー情報のすべてが登録可能となるようにn個のエ
ラ一番号の登録域を持つとともに、その構文エラー情報
の補足情報を記述するための登録域を持ち、更に、エラ
ー個数の総数を管理するための管理域を持つよう構成さ
れる。この構成により、このエラー情報退避テーブル1
4に対して、1つの入力ソース文で発生する構文エラー
情報のすべてが登録可能となることになる。
第1図で説明した構文評価処理部11は、第3図のフロ
ーチャートに示すように、構文チェックを実行していく
ときに最初の構文エラーが発生することを検出すると、
このエラー情報退避テーブル14にその構文エラー情報
を設定(エラ一番号、補足情報及びエラー総数を設定す
る)するとともに、その最初の構文エラーに関連する関
連の構文エラーがあるか否かをチェックして、関連の構
文エラーがあるときには、その構文エラー情報を設定し
ていくよう処理する。そして、すべての構文エラーをエ
ラー情報退避テーブル14に登録すると、翻訳制御処理
部13に制御を戻すよう処理する。すなわち、本発明の
構文評価処理部11は、従来のように、最初の構文エラ
ーが発生すると次の有効語まで読み飛ばしてしまうとい
うようなことをせずに、すべての構文エラーを検出して
エラー情報退避テーブル14に登録するよう処理するの
である。
第4図に、入力ソースに記述されることになる呼び出し
文の定義文の一例を図示する。この定義文では、第4図
に示すように、(31部分で定義文の名前を記述し、(
b)部分の左括弧で定義文の開始を記述し、(C)部分
で変数を記述し、(d)部分で変数の区切りを記述(以
下、キーワードと称することがある)し、(e)部分で
変数を記述し、(f)部分の右括弧で定義文の終了を記
述する。ここで、変数の区切りについては、1つに限ら
れることなく複数個記述することが可能である。なお、
この定義文は、パラメータ1及びパラメータ2を指定し
てrABC」というマクロを呼び出すというプログラム
文である。
第5図に、この定義文に従って記述された呼び出し文の
一例を図示する。■ないし■は、第1図で説明した語分
解処理部10により分割された語を示すものであって、
■の「■」は、翻訳対象として選択された入力ソース文
の最終を意味している。この呼び出し文では、[相]の
語の後に、本来は2つの右括弧が記述されるべきところ
を記述し忘れたことを想定している。
次に、この第5図の呼び出し文に対して実行する構文評
価処理に従って、構文評価処理部11の処理について具
体的に説明する。
第1図で説明した翻訳制御処理部13は、この第5図の
呼び出し文の■の語でもって第4図に示す定義文が記述
されていることを検出すると、それに続く■の語からの
語を構文評価処理部11に通知することで、入力されて
くる呼び出し文の構文評価処理に入るよう指示する。そ
して、この■の語の入力に従って、構文評価処理部11
は構文評価処理を開始する。この開始にあたって、構文
評価処理部11は、作業域に用意する図示しない括弧カ
ウンタの計数値を0”に初期化する。
次に、構文評価処理部11は、■の語を受は取ると、キ
ーワード以外の語であるために、定義文の「?パラ1」
に対する変数に語を設定する。続いて、■の語を受は取
ると、定義文と同名のキーワードであることから、「?
パラl」に対する変数の処理を終了し、「?パラ2」に
対する変数の処理に入る。続いて、■、■の語を受は取
ると、キーワード以外の語であることから、定義文の「
?バラ2」に対する変数に語を設定する。続いて、■の
語を受は取ると、同しくキーワード以外の語であること
から、定義文の[?バラ2Jに対する変数に語を設定す
る。このとき、■の語が「左括弧」の語であるので、上
述の括弧カウンタの計数値に“l”を加算することでそ
の計数値を“1”にセットする。この「左括弧」の入力
に従って、「?バラ2」に対するデータについては対と
なる「右括弧」が必要となる。
続いて、構文評価処理部11は、■、■の語を受は取る
と、キーワード以外の語であることから、定義文の「?
パラ2」に対する変数に語を設定する。続いて、[相]
の語を受は取ると、同じくキーワード以外の語であるこ
とから、定義文の「9パラ2」に対する変数に語を設定
する。このとき、[相]の語が「左括弧」の語であるの
で、上述の括弧カウンタの計数値に“1”を加算するこ
とでその計数値を“′2”にセ7卜する。続いて、■、
■、■の語を受は取ると、キーワード以外の語であるこ
とから、定義文の「9パラ2」に対する変数に語を設定
する。続いて、[相]の語を受は取ると、同しくキーワ
ード以外の語であることから、定義文の「?バラ2」に
対する変数に語を設定する。このとき、[相]の語が「
右括弧Jの語であるので、上述の括弧カウンタの計数値
から“1”を減算することでその計数値を“l”にセッ
トする。もし、この■の語の処理時点で、括弧カウンタ
の計数値が°“0パになった場合には、呼び出し文のr
@ABC」に対しての構文評価処理は正常終了となる。
続いて、構文評価処理部11は、■の語を受は取ること
で呼び出し文の終了を検出すると、括弧カウンタの計数
値が“0”以外の数値となっていることがら、上述のエ
ラー情報退避テーブル14に、 (1) r ’ilパラ2」に対する変数での括弧の組
み合わせに誤りがある。
(2)呼び出し文の最終括弧が指定されていない。
という2つの構文エラーを登録する。
この登録処理を受けて、第1図で説明したエラー出力処
理部12は、この構文エラー情報を一度にまとめて出力
するよう処理する。この構文エラー情報の出力処理によ
り、入力ソース文中に記述される構文のエラー情報が一
度に正確に出力できるようになり、効率的な翻訳処理が
可能となるのである。
第6図に、構文評価処理部11の処理例を図式化して示
す。図中、20は正規に記述された呼び出し文、21は
誤って記述された呼び出し文である。この図に示すよう
に、構文評価処理部11の処理に従って、エラー情報退
避テーブル14には処理対象として選択された入力ソー
ス文のすべての構文エラー情報が登録されることになる
のであ〔発明の効果〕 以上説明したように、本発明によれば、入力ソース文中
に記述される構文のエラー情報が一度に正確に出力でき
るようになる。これから、効率的な翻訳処理を実現でき
るようになる。
【図面の簡単な説明】
第1図は本発明の原理構成図、 第2図はエラー情報退避テーブルの一実施例、第3図は
構文評価処理部が実行するフローチャート、 第4図は定義文の説明図、 第5同は呼び出し文の説明V、 第6図は本発明の詳細な説明図である。 図中、lはコンパイラ、2は出力機器、10は語分解処
理部、11は構文評価処理部、12はエラー出力処理部
、13は翻訳制御処理部、14はエラー情報退避テーブ
ルである。 エラー情報退避テーブルの一実施例 筒 図 構文評価処理部が実行するフローチャート第 図

Claims (1)

  1. 【特許請求の範囲】 入力ソースの語分解処理を実行する語分解処理部(10
    )と、該語分解処理部(10)により語分解された語の
    構文チェックを実行しつつ翻訳処理を実行する構文評価
    処理部(11)と、該構文評価処理部(11)により検
    出された構文エラー情報を出力するエラー出力処理部(
    12)と、これらの処理部の制御処理を実行する翻訳制
    御処理部(13)とを備えるコンパイラにおいて、 構文エラー内容を登録管理するエラー情報退避テーブル
    (14)を備え、 上記構文評価処理部(11)が、翻訳対象として選択さ
    れた入力ソース文中に記述されるすべての構文エラー内
    容を上記エラー情報退避テーブル(14)に設定するよ
    う処理するとともに、上記エラー出力処理部(12)が
    、該入力ソース文の翻訳処理終了時点で、上記エラー情
    報退避テーブル(14)に設定された構文エラー情報を
    出力するよう処理することを、 特徴とするコンパイラにおけるエラー情報出力処理方式
JP2104200A 1990-04-19 1990-04-19 コンパイラにおけるエラー情報出力処理方式 Pending JPH041825A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2104200A JPH041825A (ja) 1990-04-19 1990-04-19 コンパイラにおけるエラー情報出力処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2104200A JPH041825A (ja) 1990-04-19 1990-04-19 コンパイラにおけるエラー情報出力処理方式

Publications (1)

Publication Number Publication Date
JPH041825A true JPH041825A (ja) 1992-01-07

Family

ID=14374337

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2104200A Pending JPH041825A (ja) 1990-04-19 1990-04-19 コンパイラにおけるエラー情報出力処理方式

Country Status (1)

Country Link
JP (1) JPH041825A (ja)

Similar Documents

Publication Publication Date Title
US6367068B1 (en) Dynamic parsing
Ullrich et al. Beyond notations: Hygienic macro expansion for theorem proving languages
CN110851514B (zh) 基于flink的etl处理方法
US20190018663A1 (en) Code lineage tool
JPH041825A (ja) コンパイラにおけるエラー情報出力処理方式
JP2000029678A (ja) プログラム言語変換方法、変換装置および記録媒体
Colakoglu et al. AgenticIE: An Adaptive Agent for Information Extraction from Complex Regulatory Documents
CN117407430B (zh) 数据查询方法、装置、计算机设备及存储介质
CN119806538B (zh) 一种基于llm的双层调试驱动的api编排方法及系统
JP2002312167A (ja) 変数の値をコンピュータに算出させるためのプログラム、コンパイルプログラム、変数値確定方法およびプログラム生成方法
JP3063297B2 (ja) 言語処理プログラム作成装置
JP3021697B2 (ja) プログラミング言語における例外処理方法
CN116737524A (zh) 一种应用测试方法、装置、设备、存储介质及产品
JP2797777B2 (ja) 言語処理装置
JPH04177534A (ja) 未定義名標エラー処理方式
JP2001184190A (ja) フォーマット変換装置及び方法
Luque Ruiz et al. Error Detection, recovery, and repair in the translation of inorganic nomenclatures. 3. An error handler
JPH0431933A (ja) 原始プログラム解析装置
JPH0310327A (ja) コンパイラ処理方式
JPH02190904A (ja) 推論制御方法
JPH0668131A (ja) 機械翻訳装置における並列名詞句処理方式
JPH03235127A (ja) インライン展開処理方法
JPS58169637A (ja) コンパイル処理方式
JPH01292526A (ja) プログラムの連繋編集方式
JPH02222032A (ja) 加減算命令の最適化方式