JPS61150037A - 構文解析エラ−情報出力処理方式 - Google Patents
構文解析エラ−情報出力処理方式Info
- Publication number
- JPS61150037A JPS61150037A JP59275404A JP27540484A JPS61150037A JP S61150037 A JPS61150037 A JP S61150037A JP 59275404 A JP59275404 A JP 59275404A JP 27540484 A JP27540484 A JP 27540484A JP S61150037 A JPS61150037 A JP S61150037A
- Authority
- JP
- Japan
- Prior art keywords
- skip
- error
- syntax
- symbol string
- range
- 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
Links
Landscapes
- Devices For Executing Special Programs (AREA)
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は構文解析エラー情報出力処理方式、特に1例え
ば交換サービス仕様記述言語等の構文解析の際に構文エ
ラーが検出され、エラー回復処理を行う場合、スキップ
した部分にマークを付けて出力することにより、わかり
易いエラー出力情報を得ることができる構文解析エラー
情報出力処理方式に関するものである。
ば交換サービス仕様記述言語等の構文解析の際に構文エ
ラーが検出され、エラー回復処理を行う場合、スキップ
した部分にマークを付けて出力することにより、わかり
易いエラー出力情報を得ることができる構文解析エラー
情報出力処理方式に関するものである。
構文規則の複雑なプログラム言語や2例えば交換サービ
スの仕様を記述する仕様記述言語等の構文解析を行う場
合、従来、構文解析によりエラーを検出すると、そのエ
ラーを含む行の行番号や。
スの仕様を記述する仕様記述言語等の構文解析を行う場
合、従来、構文解析によりエラーを検出すると、そのエ
ラーを含む行の行番号や。
そのエラー内容およびエラーの生じた位置等を出力して
いる。そして、解析を続けるためにエラー回復処理を行
う。即ち、エラーが生じると、単にエラー情報を出力し
て処理を中断してしまうのではなく、エラーの生じた部
分を読みとばして、最後まで解析を続けるようにされる
。
いる。そして、解析を続けるためにエラー回復処理を行
う。即ち、エラーが生じると、単にエラー情報を出力し
て処理を中断してしまうのではなく、エラーの生じた部
分を読みとばして、最後まで解析を続けるようにされる
。
しかし、従来方式によれば、エラー情報が出力されても
、エラー回復処理によってスキップした範囲は示されな
い。そのため、構文解析処理がどこで行われ、どこで行
われなかったかということが、不明確であるという問題
があった。特に、構文規則が比較的複雑な言語について
は、構文エラーの影響範囲等が複数行にまたがることが
あり。
、エラー回復処理によってスキップした範囲は示されな
い。そのため、構文解析処理がどこで行われ、どこで行
われなかったかということが、不明確であるという問題
があった。特に、構文規則が比較的複雑な言語について
は、構文エラーの影響範囲等が複数行にまたがることが
あり。
スキップ範囲がわからないと、構文エラーが二重に生じ
ていた場合などに見逃すことが多い。また。
ていた場合などに見逃すことが多い。また。
スキップしたことによって、その後の部分で2例えばラ
ベル未定義などのエラーが生じた場合にも。
ベル未定義などのエラーが生じた場合にも。
それがスキップによるものかどうかが判別しにくい等の
欠点がある。
欠点がある。
本発明は上記問題点の解決を図り、構文解析時に構文エ
ラーによってエラー回復処理を行った際に、スキップし
た部分にそのスキップ範囲を示すマークを付加すること
によって、エラー状況を明確にし、デハソグを容易にす
る構文解析エラー情報出力処理方式を提供する。即ち1
本発明の構文解析エラー情報出力処理方式は、プログラ
ム言語または仕様記述言語による入力記号列について所
定の構文規則に従って構文解析を行い、構文エラーがあ
ったときにその入力記号列と共にエラー情報を出力する
言語処理システムにおいて、構文エラーの種別情報とそ
の構文エラーにより構文解析を行わずに読みとばすスキ
ップ範囲を示す情報との対応関係情報が格納されたスキ
ップ範囲記憶部と、構文エラーが検出されたときに上記
スキップ範囲記憶部を検索し入力記号列のスキップ範囲
を決定するスキップ範囲決定部と、該スキップ範囲決定
部による決定によりスキップ範囲内にある入力記号列の
処理単位毎に読みとばしを示すスキップマークを付加し
て出力するスキップマーク付加部とを備えたことを特徴
としている。以下2図面を参照しつつ、実施例に従って
説明する。
ラーによってエラー回復処理を行った際に、スキップし
た部分にそのスキップ範囲を示すマークを付加すること
によって、エラー状況を明確にし、デハソグを容易にす
る構文解析エラー情報出力処理方式を提供する。即ち1
本発明の構文解析エラー情報出力処理方式は、プログラ
ム言語または仕様記述言語による入力記号列について所
定の構文規則に従って構文解析を行い、構文エラーがあ
ったときにその入力記号列と共にエラー情報を出力する
言語処理システムにおいて、構文エラーの種別情報とそ
の構文エラーにより構文解析を行わずに読みとばすスキ
ップ範囲を示す情報との対応関係情報が格納されたスキ
ップ範囲記憶部と、構文エラーが検出されたときに上記
スキップ範囲記憶部を検索し入力記号列のスキップ範囲
を決定するスキップ範囲決定部と、該スキップ範囲決定
部による決定によりスキップ範囲内にある入力記号列の
処理単位毎に読みとばしを示すスキップマークを付加し
て出力するスキップマーク付加部とを備えたことを特徴
としている。以下2図面を参照しつつ、実施例に従って
説明する。
第1図は本発明の一実施例構成ブロック図、第2図は本
発明の一実施例処理態様を説明するための図、第3図は
第1図図示実施例の処理説明図を示す。
発明の一実施例処理態様を説明するための図、第3図は
第1図図示実施例の処理説明図を示す。
図中、1は構文解析の対象となる言語の記号列が格納さ
れたソースファイル、2はソースファイル1から記号列
を入力する入力部、3は入力記号列を字句に分解する字
句解析部、4は字句解析結果について所定の構文規則に
従って構文解析を行う構文解析部、5は構文解析結果に
従って入力記号列を中間言語に変換し出力する中間言語
生成部。
れたソースファイル、2はソースファイル1から記号列
を入力する入力部、3は入力記号列を字句に分解する字
句解析部、4は字句解析結果について所定の構文規則に
従って構文解析を行う構文解析部、5は構文解析結果に
従って入力記号列を中間言語に変換し出力する中間言語
生成部。
6は中間言語生成部5の出力による中間言語が格納され
る中間言語ファイル、7は構文エラーの種別を示すエラ
一番号とスキップ範囲との対応情報が登録されているス
キップ範囲テーブル、8はスキップ範囲テーブル7に従
って読みとばし範囲を決定するスキップ範囲決定部、9
はスキップされた部分にスキップマークを付加するスキ
ップマーク付加部、10はプリンタを表す。
る中間言語ファイル、7は構文エラーの種別を示すエラ
一番号とスキップ範囲との対応情報が登録されているス
キップ範囲テーブル、8はスキップ範囲テーブル7に従
って読みとばし範囲を決定するスキップ範囲決定部、9
はスキップされた部分にスキップマークを付加するスキ
ップマーク付加部、10はプリンタを表す。
第1図に示した実施例は、電子交換機プログラム用の仕
様記述言語を処理するシステムである。
様記述言語を処理するシステムである。
仕様記述言語のソースコードは、ソースファイル1に格
納されており、入力部2は、そのソースコードを人力記
号列として入力する。字句解析部3では、入力部2が入
力した記号列が、単語として意味を持つ最小単位である
字句に分解される。分解された字句の並びは、さらに構
文解析部4によって構文解析が行われ、その結果をもと
に、中間言語生成部5で中間言語が生成されて、中間言
語ファイル6へ出力される。
納されており、入力部2は、そのソースコードを人力記
号列として入力する。字句解析部3では、入力部2が入
力した記号列が、単語として意味を持つ最小単位である
字句に分解される。分解された字句の並びは、さらに構
文解析部4によって構文解析が行われ、その結果をもと
に、中間言語生成部5で中間言語が生成されて、中間言
語ファイル6へ出力される。
構文解析部4でエラーが検出されると、そのエラ一種別
に対応するエラ一番号が、スキ・ノブ範囲決定部8に通
知される。スキップ範囲決定部8は。
に対応するエラ一番号が、スキ・ノブ範囲決定部8に通
知される。スキップ範囲決定部8は。
スキップ範囲テーブル7を検索することにより。
そのエラ一番号に応じたスキ・ノブ範囲を決定する。
スキップ範囲テーブル7には、予めエラーの種別に対応
して、そのエラーが生じたとき2次にどの記号や字句が
現れるまで、構文解析をスキ・ノブするかについての情
報が登録されている。スキ、2プ範囲決定部8は、スキ
・ノブ範囲を決定したならば。
して、そのエラーが生じたとき2次にどの記号や字句が
現れるまで、構文解析をスキ・ノブするかについての情
報が登録されている。スキ、2プ範囲決定部8は、スキ
・ノブ範囲を決定したならば。
その情報を構文解析部4に通知して1次に有効となる字
句等が現れるまでスキップを行う。
句等が現れるまでスキップを行う。
また、スキップマーク付加部9にスキップした入力記号
列を通知し、スキップマーク付加部9は。
列を通知し、スキップマーク付加部9は。
構文解析部4が出力する各種印刷情報に所定のスキップ
マークを付加して、構文解析処理をスキップした部分を
表示する。これにより、プリンタ10への出力情報をみ
れば、構文解析が行われた部分と、エラーによりスキッ
プされた部分とが直ちに認知できるようになる。
マークを付加して、構文解析処理をスキップした部分を
表示する。これにより、プリンタ10への出力情報をみ
れば、構文解析が行われた部分と、エラーによりスキッ
プされた部分とが直ちに認知できるようになる。
第2図は、 A I F L S (Architec
ture Independent Formal L
anguage 5pecification)と呼ば
れる交換機サービスの仕様記述言語の入力記号列と。
ture Independent Formal L
anguage 5pecification)と呼ば
れる交換機サービスの仕様記述言語の入力記号列と。
その構文解析結果によるエラー情報の出力例を示してい
るものである。
るものである。
例えば、記号列L1ないしLaに対し、順次。
構文解析がなされていくものとする。まず記号列L1で
は、状grlOJがダイヤルトーンを送出している状態
であることが示されているのに対して、記号列L2は、
ダイヤル信号をBへ送出することを示しており、記号列
L2において、構文エラーが検出される。即ち、安定な
状態「10」に外部からの何等かの信号が入力されない
場合、他に信号を送出する状態に遷移することはない。
は、状grlOJがダイヤルトーンを送出している状態
であることが示されているのに対して、記号列L2は、
ダイヤル信号をBへ送出することを示しており、記号列
L2において、構文エラーが検出される。即ち、安定な
状態「10」に外部からの何等かの信号が入力されない
場合、他に信号を送出する状態に遷移することはない。
このエラ一番号は@110であり、スキップ範囲テーブ
ル7がエラ一番号に基づいて検索される。
ル7がエラ一番号に基づいて検索される。
スキップ範囲テーブル7は、エラ一番号@110が2例
えばイベントを示すOPやRE等の入力情報の記号列が
現れるまで、構文解析処理をスキップすべきことを指示
している。そこで、記号列L5の前までの記号列し2〜
L4についての構文解析が省略され、読みとばされる。
えばイベントを示すOPやRE等の入力情報の記号列が
現れるまで、構文解析処理をスキップすべきことを指示
している。そこで、記号列L5の前までの記号列し2〜
L4についての構文解析が省略され、読みとばされる。
この読みとばした記号列は、第1図図示スキップマーク
付加部9に伝達され、スキップマーク付加部9は、各々
その記号列を含む行の先頭に9例えば「*S」のスキッ
プマーク21〜23を付加する。なお、エラーがあった
記号列L2には、従来と同様にエラ一番号表示25がな
される。
付加部9に伝達され、スキップマーク付加部9は、各々
その記号列を含む行の先頭に9例えば「*S」のスキッ
プマーク21〜23を付加する。なお、エラーがあった
記号列L2には、従来と同様にエラ一番号表示25がな
される。
以上のエラー回復処理の後、記号列L5から構文解析が
再開される。記号列L5は、受話器をおろしたオペレー
ションを示しており、このとき次の記号列L6によって
、状態「0」のアイドル状態に戻ることを指示している
。
再開される。記号列L5は、受話器をおろしたオペレー
ションを示しており、このとき次の記号列L6によって
、状態「0」のアイドル状態に戻ることを指示している
。
続く記号列L7および記号列L8は、記号列L1で設定
した時間についてタイムアウトになったとき、状態「5
0」について遷移すべきことを指示しているが、状Br
50Jは未定義であり、構文解析部4によって、記号列
L8について未定義に関するエラ一番号@123が通知
される。
した時間についてタイムアウトになったとき、状態「5
0」について遷移すべきことを指示しているが、状Br
50Jは未定義であり、構文解析部4によって、記号列
L8について未定義に関するエラ一番号@123が通知
される。
このエラ一番号@123によって、スキップ範囲テーブ
ル7が検索され、記号列“;”までのスキップ範囲が決
定される。この例では、スキップされるのは1行であり
、記号列L8の行の先頭に「*S」のスキップマーク2
4が付加される。次行にエラ一番号表示26がなされ、
最後に記号列L9の構文解析がなされる。以上のように
、第2図に印刷情報として示すようなスキップマーク2
1〜24が出力されて、構文解析処理がなされた部分と
、なされなかった部分とが明確になることになる。また
1本実施例によれば、スキップマークを付加することに
より、エラ一番号表示だけではな(、スキップマークに
よっても、エラーの生じた位置が直ちにわかるようにな
る。
ル7が検索され、記号列“;”までのスキップ範囲が決
定される。この例では、スキップされるのは1行であり
、記号列L8の行の先頭に「*S」のスキップマーク2
4が付加される。次行にエラ一番号表示26がなされ、
最後に記号列L9の構文解析がなされる。以上のように
、第2図に印刷情報として示すようなスキップマーク2
1〜24が出力されて、構文解析処理がなされた部分と
、なされなかった部分とが明確になることになる。また
1本実施例によれば、スキップマークを付加することに
より、エラ一番号表示だけではな(、スキップマークに
よっても、エラーの生じた位置が直ちにわかるようにな
る。
第3図は、第1図図示実施例による処理内容を示してい
る。入力部2は、まず第3図図示処理30によって、指
定されたソースファイル1からルコードづつ記号列を入
力する。処理31の判定により、ファイルの終りを示す
I?OF (End Of File)が検出されたな
らば、処理を終了する。
る。入力部2は、まず第3図図示処理30によって、指
定されたソースファイル1からルコードづつ記号列を入
力する。処理31の判定により、ファイルの終りを示す
I?OF (End Of File)が検出されたな
らば、処理を終了する。
記号列が入力されたならば、処理32によって。
字句解析を行い、処理33によって、構文解析処理をス
キップすべきか否かを判定する。最初の記号列では、前
にエラーが発生していないので、処理34へ移る。処理
34で入力記号列についての構文解析を行い、処理35
で構文エラーがあるか否かを判定する。エラーがない場
合、処理36によって、中間言語を生成して出力し、処
理37によって、構文解析した記号列の印字情報を出力
する。そして、処理30へ戻り9次の入力記号列につい
て処理を繰り返す。
キップすべきか否かを判定する。最初の記号列では、前
にエラーが発生していないので、処理34へ移る。処理
34で入力記号列についての構文解析を行い、処理35
で構文エラーがあるか否かを判定する。エラーがない場
合、処理36によって、中間言語を生成して出力し、処
理37によって、構文解析した記号列の印字情報を出力
する。そして、処理30へ戻り9次の入力記号列につい
て処理を繰り返す。
処理35の判定において、エラーが検出された場合、処
理38へ移り、第1図図示スキップ範囲テーブル7をエ
ラ一番号により検索して、処理39によって、スキップ
範囲を設定する。このスキップ範囲は、後の記号列につ
いて、処理33における判定の際、参照されることにな
る。処理40では、スキップマーク付加の処理がなされ
、処理41により、スキップマークが付加された印字情
報が出力される。その後、処理30へ制御が戻され、同
様に処理が繰り返される。処理33の判定において、入
力記号列がスキップ範囲にあることが検知された場合、
構文解析はなされず、処理40へ制御が移行される。
理38へ移り、第1図図示スキップ範囲テーブル7をエ
ラ一番号により検索して、処理39によって、スキップ
範囲を設定する。このスキップ範囲は、後の記号列につ
いて、処理33における判定の際、参照されることにな
る。処理40では、スキップマーク付加の処理がなされ
、処理41により、スキップマークが付加された印字情
報が出力される。その後、処理30へ制御が戻され、同
様に処理が繰り返される。処理33の判定において、入
力記号列がスキップ範囲にあることが検知された場合、
構文解析はなされず、処理40へ制御が移行される。
上記実施例では、各行単位にスキップマークを付けてい
るが、同様に桁単位でもって、構文解析をスキップした
位置を示すこともできる。その場合1例えばスキップ開
始桁と終了桁とにマークを挿入して、スキップ範囲を示
すとか、あるいはスキップした部分にアンダーライン等
を入れて連続的に示すとかすればよい。
るが、同様に桁単位でもって、構文解析をスキップした
位置を示すこともできる。その場合1例えばスキップ開
始桁と終了桁とにマークを挿入して、スキップ範囲を示
すとか、あるいはスキップした部分にアンダーライン等
を入れて連続的に示すとかすればよい。
以上説明した如く2本発明によれば、構文エラーが生じ
たとき、エラー回復処理によってスキ・ノブした範囲が
示されるので、構文解析処理の行われなかった部分が明
確にわかる。また、スキップしたことによって、その後
、構文エラーが生じた場合でも、スキップしたことが原
因だということが容易にわかるようになる。
たとき、エラー回復処理によってスキ・ノブした範囲が
示されるので、構文解析処理の行われなかった部分が明
確にわかる。また、スキップしたことによって、その後
、構文エラーが生じた場合でも、スキップしたことが原
因だということが容易にわかるようになる。
第1図は本発明の一実施例構成ブロック図、第2図は本
発明の一実施例処理態様を説明するための図、第3図は
第1図図示実施例の処理説明図を示す。 図中、1はソースファイル、4は構文解析部。 7はスキップ範囲テーブル、8はスキップ範囲決定部、
9はスキップマーク付加部を表す。
発明の一実施例処理態様を説明するための図、第3図は
第1図図示実施例の処理説明図を示す。 図中、1はソースファイル、4は構文解析部。 7はスキップ範囲テーブル、8はスキップ範囲決定部、
9はスキップマーク付加部を表す。
Claims (1)
- プログラム言語または仕様記述言語による入力記号列に
ついて所定の構文規則に従って構文解析を行い、構文エ
ラーがあったときにその入力記号列と共にエラー情報を
出力する言語処理システムにおいて、構文エラーの種別
情報とその構文エラーにより構文解析を行わずに読みと
ばすスキップ範囲を示す情報との対応関係情報が格納さ
れたスキップ範囲記憶部と、構文エラーが検出されたと
きに上記スキップ範囲記憶部を検索し入力記号列のスキ
ップ範囲を決定するスキップ範囲決定部と、該スキップ
範囲決定部による決定によりスキップ範囲内にある入力
記号列の処理単位毎に読みとばしを示すスキップマーク
を付加して出力するスキップマーク付加部とを備えたこ
とを特徴とする構文解析エラー情報出力処理方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP59275404A JPS61150037A (ja) | 1984-12-25 | 1984-12-25 | 構文解析エラ−情報出力処理方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP59275404A JPS61150037A (ja) | 1984-12-25 | 1984-12-25 | 構文解析エラ−情報出力処理方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS61150037A true JPS61150037A (ja) | 1986-07-08 |
Family
ID=17555021
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP59275404A Pending JPS61150037A (ja) | 1984-12-25 | 1984-12-25 | 構文解析エラ−情報出力処理方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS61150037A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02187828A (ja) * | 1989-01-13 | 1990-07-24 | Nec Corp | エラースキップ方式 |
-
1984
- 1984-12-25 JP JP59275404A patent/JPS61150037A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02187828A (ja) * | 1989-01-13 | 1990-07-24 | Nec Corp | エラースキップ方式 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Purdom | A sentence generator for testing parsers | |
US5487147A (en) | Generation of error messages and error recovery for an LL(1) parser | |
US5802262A (en) | Method and apparatus for diagnosing lexical errors | |
JPS61103247A (ja) | 翻訳プログラム作成システム | |
JPH077419B2 (ja) | 機械翻訳装置における略称付き固有名詞処理方法 | |
US5737621A (en) | Finite-state encoding system for hyphenation rules | |
EP0268069B1 (en) | Method of forming a message file in a computer | |
GB2197510A (en) | Translation apparatus | |
JPS61150037A (ja) | 構文解析エラ−情報出力処理方式 | |
US7389220B2 (en) | Correcting incomplete negation errors in French language text | |
JPH02224132A (ja) | メッセージパーサの自動発生システム | |
JP3591109B2 (ja) | キーワード設定装置 | |
JP3433827B2 (ja) | 句構造抽出装置 | |
JP2895137B2 (ja) | 日本文誤り自動検出および訂正装置 | |
JP3592353B2 (ja) | 形態素解析装置 | |
JP2856736B2 (ja) | 辞書参照装置及び辞書参照方法 | |
LaLonde | The construction of stack-controlling LR parsers for regular right part grammars | |
JPH0554145B2 (ja) | ||
JP2000242481A (ja) | プログラム修正支援方法 | |
JPH07200588A (ja) | 翻訳装置 | |
JPH0650503B2 (ja) | 情報抽出装置 | |
JPH09185623A (ja) | 言語処理装置及び方法 | |
JPH07129577A (ja) | 文書校正支援装置 | |
Holderle | LABORATORY FOR COMPUTER SCIENCE | |
JPH05290086A (ja) | 日本語意味解析方法 |