(57)【要約】【課題】  構文が複雑なプログラム言語では構文を覚えていない場合に正しい型のデータ項目の入力や、ソーステキストの誤りを修正できずコーディングの効率が低下する。【解決手段】  特定の操作により表示したデータ項目一覧から、使用者が選択したデータ項目が入力位置に指定可能な場合はそこに挿入し、指定不可の場合は指定できるように修正例一覧を表示し、選択した修正例でソーステキストを修正する。入力位置のデータ項目に型のミスマッチが生じる場合、使用者が別の特定の操作を行うと、入力位置のデータ項目とそれに関係するデータ項目位置にデータ項目一覧を表示し、使用者が選択したデータ項目で置換する操作を型のミスマッチがなくなるまで繰り返す。ソーステキストに誤りがある場合に、表示したエラーメッセージを選択すると、修正例一覧を表示し、選択した修正例でソーステキストを修正する。【選択図】  図７
2005099975.tif 000002
【特許請求の範囲】
【請求項１】
プログラム言語のソーステキストを編集するテキストエディタは、
使用者からの指示を受付けデータ項目の一覧を表示する手段と、
前記データ項目のうち一つを選択する指示を使用者から受付け、構文解析の結果を基に前記選択されたデータ項目が現在のカーソル位置に指定可能か判断する手段と、
前記判断手段で現在のカーソル位置に指定可能なデータ項目であると判断された場合は、前記選択されたデータ項目をカーソル位置に挿入する手段を備えたことを特徴とするテキストエディタ。
【請求項２】
前記指定可能の判断手段は、
現在のカーソル位置に指定不可能なデータ項目であると判断された場合は、前記データ項目を現在のカーソル位置に指定することと同等な結果が得られるようなソーステキストの修正例を表示する手段と、
前記修正例のうち一つを選択する指示を使用者から受付け、前記選択された修正例をカーソル位置に挿入する手段を備えたことを特徴とする請求項１記載のテキストエディタ。
【請求項３】
プログラム言語のソーステキストを編集するテキストエディタは、
カーソル位置のデータ項目が、前記データ項目が含まれる構文の他のデータ項目と組合すことができず、データ項目に型のミスマッチが生じているかどうかを判断する手段と、
前記判断手段で現在のカーソル位置のデータ項目に型のミスマッチが生じると判断された場合は、前記判断結果を使用者に通知する手段を備えたことを特徴とするテキストエディタ。
【請求項４】
前記データ項目の型のミスマッチの判断手段は、
現在のカーソル位置のデータ項目に型のミスマッチが生じると判断された場合は、カーソル位置のデータ項目とカーソル位置のデータ項目が含まれる構文のそれぞれのデータ項目である入力位置のデータ項目に関係するデータ項目の位置に記述済みのデータ項目一覧を表示する手段と、
前記データ項目のうち一つを選択する指示を使用者から受付け、前記選択されたデータ項目でデータ項目一覧が表示された位置のデータ項目を置き換え、前記操作を型のミスマッチがなくなるまで繰り返す手段を備えたことを特徴とする請求項３記載のテキストエディタ。
【請求項５】
プログラム言語のソーステキストを編集するテキストエディタは、
エラーメッセージのうち一つを選択する指示を使用者から受付け、前記選択されたエラーメッセージを修正するソーステキストの修正例を表示する手段と、
当該修正例のうち一つを選択する指示を使用者から受付け、前記選択された修正例でソーステキストを修正する手段を備えたことを特徴とするテキストエディタ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム言語のソーステキストを含むファイルを編集するプログラム編集装置（以下、テキストエディタと略記する）に関する。
【背景技術】
【０００２】
プログラム言語においては、構文が複雑で覚えにくいことがある。例えばプログラム言語ＣＯＢＯＬ（以下、ＣＯＢＯＬ言語と略す)では、文や句の種類が多数存在し、それぞれ独自の構文を持ち複雑であり、すべての構文を使用者が覚えるのは難しい。また、使用者が定義できるデータ項目の型も複雑であり、どの文や句にどの型のデータ項目を指定できるのか使用者が覚えるのは非常に難しい。
【０００３】
従来は、特許文献１のように、使用者が構文を覚えていなくても、エディタがそれを補助してくれる技術があった。この特許文献１はカーソル位置に記述できる定義済みのデータ項目がある場合、そのデータ項目名を表示し、使用者が選択するとカーソル位置に選択したデータ項目を挿入する。このように、特許文献１は使用者がＣＯＢＯＬ言語のような複雑な構文をもつ言語では、構文が覚えられず、コーディングの効率が悪いという問題を解決している。
【０００４】
【特許文献１】特開２００３−２２３３２０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
データ項目の型が複雑で間違えやすく、すべてを正確に覚えるのは困難な構文を持つプログラム言語の場合、使用者がある構文の特定の位置にどのような型のデータ項目を指定できるのか分からない、プログラムに誤りがあっても正しく修正できないという問題があり、使用者のコーディングの効率が悪い。
【０００６】
また、特許文献１では、カーソル位置に記述できるデータ項目を定義していない場合には適用できない。
【０００７】
本発明は、カーソル位置に記述できるデータ項目を定義していない場合にも適用できるテキストエディタを提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明のテキストエディタは、以下の手段を備える。
【０００９】
（１）編集中のソーステキストを構文解析し、入力位置のデータ項目が不正で、使用者が特定の操作を行った場合に、データ項目の一覧を表示し、使用者がそれらのうち一つを選択すると、構文解析の結果から判断し、入力位置に使用者が選択したデータ項目が指定できる場合は挿入し、指定できない場合は選択したデータ項目を指定可能にする修正例一覧を表示し、使用者が一覧から選択した修正例でソーステキストを修正する手段。
【００１０】
（２）編集中のソーステキストを構文解析し、入力位置のデータ項目に型のミスマッチが生じる場合、それを使用者に通知し、使用者が特定の操作を行うと、データ項目の組み合わせの不正がなくなるまで、順に入力位置のデータ項目及び入力位置のデータ項目に関係するデータ項目位置に、定義されているデータ項目一覧を表示し、使用者が一覧から選択したデータ項目で置き換える手段。
【００１１】
（３）編集中のソーステキストを構文解析し、コンパイルエラーが発生した場合に、エラーメッセージを表示し、使用者がそのエラーメッセージを選択すると、そのコンパイルエラーを修正するための修正例一覧を表示し、使用者が一覧から選択した修正例でソーステキストを修正する手段。
【発明の効果】
【００１２】
本発明によるテキストエディタを提供することにより、使用者はデータ項目の型が複雑で間違えやすく、すべてを正確に覚えるのは困難な構文をもつプログラム言語であっても、ある構文の特定の位置に正しくデータ項目を入力できるようになり、かつ、従来技術ではカーソル位置に記述できるデータ項目を定義していない場合には適用できないという問題も解決できる。また、複雑な構文や型を持つ言語を用いてコーディングを行う場合、プログラムに誤りがあっても、正しくプログラムの誤りを修正できないという問題を解決できる。以上により、使用者のコーディングの効率が向上する。
【発明を実施するための最良の形態】
【００１３】
以下、図面を用いて実施例を説明する。
【実施例１】
【００１４】
以下、本発明の第一の実施例によるテキストエディタについて説明する。
【００１５】
本発明の第一の実施例は、使用者が選択したデータ項目を現在の入力位置に正しく指定できるテキストエディタの実施例である。
【００１６】
本実施例では、プログラム言語ソーステキストを編集中に、使用者がある特定の操作を行うと、データ項目一覧を表示する。使用者は表示されたデータ項目一覧からひとつを選択すると、テキストエディタが構文解析の結果から現在の入力位置の前後の文脈を判断して入力位置の構文を決定し、選択したデータ項目が現在の入力位置に指定可能な型のデータ項目ならば、それを入力位置に挿入し、指定不可能な型のデータ項目を選択した場合は、入力位置にそのデータ項目を指定できるような修正例一覧を表示する。従って、本実施例は、カーソル位置に記述できるデータ項目を定義していない場合でも適用できる。
【００１７】
後者の修正例一覧を表示する場合、使用者が表示された修正例一覧からひとつを選択すると、その修正例で、ソーステキストを修正する。修正例のうち、データ項目の型を変更する場合は、波及分析を行い、使用者は型の変更による影響を知ることができる。
【００１８】
ここで、本実施例を適用した場合の操作手順の一例を簡単に説明する。
【００１９】
図２のソーステキスト例において使用者がソーステキストを編集中に特定の操作を行うと、図３のように、現在の入力位置であるＡＤＤ文のＴＯの直後に指定するためのデータ項目一覧を表示する選択ウィンドウ８０１が表示される。
【００２０】
図３において、使用者は現在の入力位置６０１に「ＤＡＴＡ−ＩＴＥＭ１」を指定するため、選択ウィンドウ８０１から「ＤＡＴＡ−ＩＴＥＭ１」を選択すると、「ＤＡＴＡ−ＩＴＥＭ１」は型が英数字項目であり、ＡＤＤ文のＴＯの直後には型が数字項目であるデータ項目しか指定できないため、そのままでは指定できない。そこで、テキストエディタは、図４のように入力位置６０１に「ＤＡＴＡ−ＩＴＥＭ１」を指定するための修正例の一覧を表示する選択ウィンドウ８０２を表示する。使用者が選択ウィンドウ８０２から文を展開する修正例を選択すると、ＡＤＤ文のＴＯの直後に「ＤＡＴＡ−ＩＴＥＭ１」を指定したのと同じ効果が得られるように、ＡＤＤ文が展開され図５に示すようにソーステキストが修正される。
【００２１】
図１は、本発明の第一の実施例を実現するテキストエディタの構成例を示すブロック図である。
【００２２】
図１において、テキストエディタ１０３は、プログラム言語のソーステキストを内容とする入力ファイル１０１を外部記憶装置から読み込みソーステキスト１０６としてテキストエディタ１０３内部に保持するファイル入力処理１０４と、ディスプレイ、キーボード等を有する表示／入力装置（以降、コンソールと呼ぶ）１１１に対する表示およびコンソール１１１からの入力操作を制御し、同時に現在の入力位置を制御する画面制御部１１０と、画面制御部１１０が制御する入力操作に基づいてソーステキスト１０６を編集する編集処理１０７と、前記編集結果によって更新されたソーステキスト１０６を外部記憶装置の更新結果ファイル１０２に出力するファイル出力処理１０５から構成される。
【００２３】
編集処理１０７はさらに、ソーステキスト１０６を構文解析し構文解析情報１２２を生成する構文解析処理１２１と、画面制御部１１０における現在の入力位置の前後の文脈を構文解析情報１２２から判定して現在の入力位置の構文を決定し入力位置構文情報１２７を生成する入力位置構文判定処理１２６と、データ項目の定義を修正したことにより影響が生じるか調査し波及分析情報１２５を生成する波及分析処理１２４と修正例の情報を保持する修正例テンプレートテーブル１２０と構文解析情報１２２と入力位置構文情報１２７と波及分析情報１２５から画面制御部１１０における現在入力位置に使用者が選択したデータ項目を挿入または、挿入可能にする修正例によってソーステキストを修正する補完制御部１２３から構成される。
【００２４】
修正例テンプレートテーブル１２０は図１９に示すように、各構文の各位置にどのようなデータ型が指定できないかを示し、指定できないデータ項目が指定された場合の修正例を格納している。
【００２５】
図２は、図１の構成から成るテキストエディタのコンソール１１１の表示例である。
【００２６】
図２において、コンソール１１１の表示画面には、入力ファイル１０１から読み込んだソーステキスト１０６を表示するソーステキストウィンドウ３０１を表示し、使用者は、このソーステキストウィンドウ３０１に対して編集操作を行う。６０１は現在の入力位置を示すカーソルである。
【００２７】
図３は、図２に示すように、入力位置６０１がＡＤＤ文の構文「ＴＯ」の直後にある状態で、使用者がテキストエディタ１０３に対して特定の操作を行った場合の、コンソール１１１の表示例である。
【００２８】
図３において、コンソール１１１の表示画面に、ソーステキスト１０６で既に定義済のデータ項目の一覧を表示する選択ウィンドウ８０１を表示し、使用者は、この選択ウィンドウ８０１から任意のデータ項目を１つ選択する。使用者が選択した状態は、選択状態４００１のように示す。また、定義済みのデータ項目でなく、新たにデータ項目を作成し挿入したい場合は、テキスト入力エリア９０１にデータ項目の名称を指定する。
【００２９】
図４は、図３に示すように、使用者が入力位置６０１に指定できないデータ項目を図３の選択ウィンドウ８０１から選択した場合の、コンソール１１１の表示例である。
【００３０】
図４において、コンソール１１１の表示画面に、修正例の一覧を表示する選択ウィンドウ８０２を表示し、使用者は、この選択ウィンドウ８０２から任意の修正例を１つ選択する。使用者が選択した状態は、選択状態４００１のように示す。また、修正例のいくつかは使用者が、テキスト入力エリア９０１に文字列を入力することで手を加えることができる。
【００３１】
選択ウィンドウ８０２に表示される修正例の一覧は、入力位置構文情報１２７を用いて図１９に示す修正例テンプレートテーブル１２０から選び出される。図４では、入力位置構文情報１２７が保持する入力位置の構文ＡＤＤを表す情報を用いて、修正例テンプレート１２０のＡＤＤ文に関係する行をすべて取り出す。取り出された行の「位置」列と入力位置構文情報１２７が保持するＡＤＤ文の入力位置（図４では、ＡＤＤ〜ＴＯの直後）を比較し、「ＡＤＤ〜ＴＯの直後」に関係する行をすべて取り出す。
【００３２】
次に、取り出された行の「指定不可なデータ型」列と図３の選択ウィンドウ８０１から選択したデータ項目ＤＡＴＡ−ＩＴＥＭ１の型を比較する。ＤＡＴＡ−ＩＴＥＭ１は英数字項目なので、「指定不可なデータ型」列の「英数字項目」の行の修正例を取りだし、図４のように選択ウィンドウ８０２を構成する。その際、図４では、取り出された修正例の「（レベル番号）」はＤＡＴＡ−ＩＴＥＭ１が定義されているレベル番号０１で置き換え、「（データ項目名）」はＤＡＴＡ−ＩＴＥＭ１で置き換え、「（一意名／定数）」は、入力位置の構文であるＡＤＤ文のＡＤＤの直後の定数７で置き換える。また、図１９に示すテキスト入力エリア９０１は図４に示すテキスト入力エリア９０１と同じことを表す。
【００３３】
図５は、図４に示すように、使用者が図４の選択ウィンドウ８０２から任意の修正例を１つ選択した場合の、コンソール１１１の表示例である。
【００３４】
図５において、ＡＤＤ文の「ＴＯ」の直後に図３における選択ウィンドウ８０１から使用者が選択したデータ項目ＤＡＴＡ−ＩＴＥＭ１を指定するために文が展開され（図中（ｂ）に示す）、一時的に用いるデータ項目ＴＭＰの定義が追加されている（図中（ａ）に示す）。
【００３５】
また、本実施例の説明では、データ項目一覧、修正例一覧をウィンドウに表示する手段を用いて説明したが、ウィンドウではなく別の手段によりデータ項目一覧、修正例一覧を表示するようにしてもよい。
【００３６】
次に、本実施例によるテキストエディタの処理手順を、フローチャートを用いて説明する。
【００３７】
図６は、図１の構成から成るテキストエディタの処理の流れを説明するフローチャートである。
【００３８】
図６では、入力ファイル１０１からソーステキスト１０６を読み込み、ソーステキスト１０６をコンソール１１１に表示するよう画面制御部１１０に指示し（ステップ２００１）、ソーステキスト１０６を構文解析処理１２１が構文解析し、構文解析情報１２２を生成する（ステップ２００２）。
【００３９】
ここで使用者がテキストエディタ終了を指示したか判定し（ステップ２００３）、終了を指示した場合はソーステキスト１０６を更新結果ファイル１０２に出力し（ステップ２００４）、テキストエディタを終了する。
【００４０】
ステップ２００３でテキストエディタ終了が指示されていない場合、使用者がデータ項目の一覧を表示するためのある特定の操作、例えば挿入を指示したか判定し（ステップ２００５）、データ項目の挿入を指示していない場合、使用者による編集操作をソーステキスト１０６に反映させ（ステップ２００６）、ステップ２００２に戻る。
【００４１】
ステップ２００５で使用者がデータ項目の挿入を指示した場合、入力位置構文判定処理１２６は構文解析情報１２２から現在の入力位置の前後の文脈を判定し、対応する入力位置構文情報１２７を生成する（ステップ２００７）。
【００４２】
ステップ２００８で、構文解析情報１２２から定義済みのデータ項目を全て取得し、データ項目名と入力位置にそのデータ項目が指定可能かどうかの情報を図３の選択ウィンドウ８０１に表示するよう画面制御部１１０に指示する（ステップ２００８）。
【００４３】
ステップ２００９で使用者が、選択ウィンドウ８０１に表示したデータ項目を選択指示しなかった場合、ステップ２００２に戻る。
【００４４】
次に、補完制御部１２３はステップ２００７で生成された入力位置構文情報１２７とステップ２００２で生成された構文解析情報１２２から、ステップ２００９で使用者の選択したデータ項目が現在の入力位置に指定可能か判定し（ステップ２０１０）、指定可能な場合は、現在の入力位置に選択したデータ項目を挿入し（ステップ２０１１）、ステップ２００２に戻る。なお、新規なデータ項目が指定された場合はデータ項目の定義も追加する。
【００４５】
現在の入力位置に使用者が選択したデータ項目を指定できない場合、補完制御部１２３は現在の入力位置に指定できるように、ソーステキスト１０６を修正するための修正例一覧を、入力位置構文情報１２７を用いて修正例テンプレートテーブル１２０から選び出し（ステップ２０１２）、それを図４の選択ウィンドウ８０２に表示するよう画面制御部１１０に指示する（ステップ２０１３）。
【００４６】
使用者が修正例を一つも選択しなかった場合（ステップ２０１４）、ステップ２００２に戻る。
【００４７】
選び出した修正例がデータ項目の型を変更しない場合、補完制御部１２３によって選び出した修正例でソーステキスト１０６を修正し（ステップ２０１６）、ステップ２００２に戻る。
【００４８】
選び出した修正例がデータ項目の型を変更する場合、ソーステキスト１０６を波及分析処理１２４が波及分析し、波及分析情報１２５を生成する（ステップ２０１７）。
【００４９】
次に、補完制御部１２３はステップ２０１７で生成した波及分析情報１２５によって、データ項目の型を変更することによりプログラムに影響が生じるか判定し（ステップ２０１８）、影響が生じない場合は、補完制御部１２３によって選び出した修正例でソーステキスト１０６を修正し（ステップ２０１６）、ステップ２００２に戻る。
【００５０】
ステップ２０１８でデータ項目の型を変更することによりプログラムに影響が生じると判定した場合、補完制御部１２３は使用者に影響が生じること通知するよう画面制御部１１０に指示する（ステップ２０１９）。
【００５１】
ステップ２０２０で使用者が、修正を行うと指示しなかった場合、ステップ２００２に戻り、修正を行うと指示した場合、補完制御部１２３によって選び出した修正例でソーステキスト１０６を修正し（ステップ２０１６）、ステップ２００２に戻る。
【００５２】
以上で説明した実施例によって、使用者が、プログラム言語のある構文について、指定可能なデータ項目の型を覚えていない場合でも、使用者が正しい構文に従って、プログラムを作成できる。
【実施例２】
【００５３】
次に、本発明の第二の実施例によるテキストエディタについて説明する。
【００５４】
本発明の第二の実施例は、現在の入力位置のデータ項目に型のミスマッチが生じる場合、使用者がデータ項目を再選択することで、型のミスマッチを修正できる実施例である。
【００５５】
本実施例では、編集中のプログラム言語ソーステキストをテキストエディタが構文解析し、構文解析の結果からテキストエディタが現在の入力位置の前後の文脈を判定して入力位置の構文を決定し、その結果から入力位置のデータ項目に関係するデータ項目の位置の検出を行う。入力位置のデータ項目に型のミスマッチが生じる場合、その旨を使用者に通知し、使用者がある特定の操作を行うと、テキストエディタは現在の入力位置のデータ項目と入力位置のデータ項目に関係するデータ項目のどれかひとつの位置にデータ項目の一覧を表示する。使用者が一覧からデータ項目をひとつ選択すると、その位置のデータ項目は選択したデータ項目で置き換わる。データ項目のミスマッチが解決されない場合は、他のデータ項目の位置に一覧を表示させ、同様の操作を行う。
【００５６】
ここで、本実施例を適用した場合の操作手順の一例を簡単に説明する。
【００５７】
図８に示す通り、入力位置６０１のデータ項目「ＤＡＴＡ−ＩＴＥＭ１」は「ＴＹＰＥ−Ａ」という型で強く型付けされ、「ＭＯＶＥ文」の構成要素のデータ項目「ＤＡＴＡ−ＩＴＥＭ４」及び「ＤＡＴＡ−ＩＴＥＭ５」は「ＴＹＰＥ−Ｂ」という型で強く型付けされている。従って、「ＤＡＴＡ−ＩＴＥＭ１」と「ＤＡＴＡ−ＩＴＥＭ４」及び「ＤＡＴＡ−ＩＴＥＭ５」に型のミスマッチが生じるため、テキストエディタは「ＤＡＴＡ−ＩＴＥＭ１」を強調し、型のミスマッチを使用者に通知する。
【００５８】
ここで、使用者がある特定の操作を行うと、図９のように「ＤＡＴＡ−ＩＴＥＭ４」の近傍にデータ項目一覧を表示する選択ウィンドウ８０３が表示される。使用者が図９の選択ウィンドウ８０３から「ＤＡＴＡ−ＩＴＥＭ２」を選択すると、図１０のように「ＤＡＴＡ−ＩＴＥＭ４」が「ＤＡＴＡ−ＩＴＥＭ２」に置き換わる。図１０では、まだ「ＤＡＴＡ−ＩＴＥＭ１」と「ＤＡＴＡ−ＩＴＥＭ２」及び「ＤＡＴＡ−ＩＴＥＭ５」に型のミスマッチが生じるので、「ＤＡＴＡ−ＩＴＥＭ５」の近傍にデータ項目一覧を表示する選択ウィンドウ８０３が表示される。
【００５９】
使用者が図１０の選択ウィンドウ８０３から「ＤＡＴＡ−ＩＴＥＭ３」を選択すると、図１１のように「ＤＡＴＡ−ＩＴＥＭ５」が「ＤＡＴＡ−ＩＴＥＭ３」に置き換わる。図１１のように、「ＤＡＴＡ−ＩＴＥＭ１」と「ＭＯＶＥ文」の構成要素のデータ項目「ＤＡＴＡ−ＩＴＥＭ２」及び「ＤＡＴＡ−ＩＴＥＭ３」は全て「ＴＹＰＥ−Ａ」という同じ型に修正され、型のミスマッチは生じないので、テキストエディタはこの修正処理を終了する。
【００６０】
図７は、本発明の第二の実施例を実現するテキストエディタの構成例を示すブロック図である。
【００６１】
図７において、編集処理１０７を除いて、その構成は図１の実施例１の構成と同様であり、同一のブロックは同一の記号で示している。
【００６２】
図７における編集処理１０７は、図１の編集処理１０７に対して、現在の入力位置のデータ項目を含む構文を構成する他のデータ項目の位置を検出するデータ項目位置検出処理１２８とデータ項目位置情報１２９を追加した構成である。
【００６３】
図８は、図７の構成から成るテキストエディタのコンソール１１１の表示例である。
【００６４】
入力位置のデータ項目「ＤＡＴＡ−ＩＴＥＭ１」と「ＤＡＴＡ−ＩＴＥＭ１」を含む構文である「ＭＯＶＥ文」の構成要素のデータ項目「ＤＡＴＡ−ＩＴＥＭ４」及び「ＤＡＴＡ−ＩＴＥＭ５」の組み合わせが不正なため、図８では、一つの例として「ＤＡＴＡ−ＩＴＥＭ１」に下線を引き、使用者にその旨を通知している。
【００６５】
これ以外の図８のコンソール１１１に表示されているソーステキストウィンドウ３０１の表示内容の詳細は、図２に示す本発明の第一の実施例の場合と同様であるため、説明は省略する。
【００６６】
図９は、図８に示すように、入力位置６０１がデータ項目「ＤＡＴＡ−ＩＴＥＭ１」の直後にあり、「ＤＡＴＡ−ＩＴＥＭ１」を含むＭＯＶＥ文を構成するデータ項目「ＤＡＴＡ−ＩＴＥＭ４」、「ＤＡＴＡ−ＩＴＥＭ５」及び「ＤＡＴＡ−ＩＴＥＭ１」に組み合わせの不正がある状態で、使用者がテキストエディタ１０３に対して特定の操作を行った場合の、コンソール１１１の表示例である。
【００６７】
図９において、コンソール１１１の表示画面には、データ項目「ＤＡＴＡ−ＩＴＥＭ１」と組み合わせが不正なデータ項目の一つの近傍にデータ項目一覧を表示する選択ウィンドウ８０３が表示される。この図の例では、「ＤＡＴＡ−ＩＴＥＭ４」の近傍に選択ウィンドウ８０３を表示してある。選択ウィンドウ８０３中には、入力位置のデータ項目と組み合わせが不正なデータ項目の一覧と、置き換えるデータ項目の選択項目一覧から構成される。ここで、使用者が選択した状態は、選択状態４００１のように示す。
【００６８】
図１０は、使用者が図９に示す選択ウィンドウ８０３の「ＤＡＴＡ−ＩＴＥＭ２（型：ＴＹＰＥ−Ａ）」を選択した場合の、コンソール１１１の表示例である。
【００６９】
図１０において、コンソール１１１の表示画面内のソーステキストウィンドウ３０１では、データ項目「ＤＡＴＡ−ＩＴＥＭ４」が「ＤＡＴＡ−ＩＴＥＭ２」で置き換わっている。
【００７０】
図１０では、入力位置のデータ項目「ＤＡＴＡ−ＩＴＥＭ１」と「ＤＡＴＡ−ＩＴＥＭ５」は組み合わせに不正があるので、「ＤＡＴＡ−ＩＴＥＭ５」の近傍に選択ウィンドウ８０３が表示される。ここで、使用者が選択した状態は、選択状態４００１のように示す。
【００７１】
図１１は、使用者が図１０に示す選択ウィンドウ８０３の「ＤＡＴＡ−ＩＴＥＭ３（型：ＴＹＰＥ−Ａ）」を選択した場合の、コンソール１１１の表示例である。
【００７２】
図１１において、コンソール１１１の表示画面内のソーステキストウィンドウ３０１では、データ項目「ＤＡＴＡ−ＩＴＥＭ５」が「ＤＡＴＡ−ＩＴＥＭ３」で置き換わっている。図１１のように、入力位置のデータ項目「ＤＡＴＡ−ＩＴＥＭ１」と「ＤＡＴＡ−ＩＴＥＭ１」を含む構文「ＭＯＶＥ文」の構成要素であるデータ項目「ＤＡＴＡ−ＩＴＥＭ２」及び「ＤＡＴＡ−ＩＴＥＭ３」に組み合わせの不正がなくなった場合、処理を終了する。
【００７３】
また、本実施例の説明では、データ項目一覧をウィンドウに表示する手段を用いて説明したが、ウィンドウではなく別の手段によりデータ項目一覧を表示するようにしてもよい。
【００７４】
以下、本実施例によるテキストエディタの処理手順を、フローチャートを用いて説明する。図１２は、図７の構成から成るテキストエディタの処理の流れを説明するフローチャートである。
【００７５】
図１２では、入力ファイル１０１からソーステキスト１０６を読み込み（ステップ３００１）、ソーステキスト１０６をコンソール１１１に表示するよう画面制御部１１０に指示し（ステップ３００２）、ソーステキスト１０６を構文解析処理１２１が構文解析し、構文解析情報１２２を生成する（ステップ３００３）。
【００７６】
ここで使用者がテキストエディタ終了を指示したか判定し（ステップ３００４）、終了を指示した場合はソーステキスト１０６を更新結果ファイル１０２に出力し（ステップ３００５）、テキストエディタを終了する。
【００７７】
ステップ３００４でテキストエディタ終了が指示されていない場合、使用者による編集操作をソーステキスト１０６に反映させ（ステップ３００６）、構文解析情報１２２を用いてソーステキスト１０６を入力位置構文判定処理１２６が構文判定処理し、現在の入力位置の前後の文脈を判定し、対応する入力位置構文情報１２７を生成する（ステップ３００７）。
【００７８】
次に、補完制御部１２３は入力位置構文情報１２７から、現在の入力位置がデータ項目か判定し（ステップ３００８）、入力位置がデータ項目でない場合、ステップ３００３に戻る。ステップ３００８で入力位置がデータ項目であると判定された場合、入力位置のデータ項目に型のミスマッチがあるか判定し（ステップ３００９）、ミスマッチがない場合、ステップ３００３に戻る。
【００７９】
ステップ３００９で入力位置のデータ項目に型のミスマッチがある場合、テキストエディタは使用者にデータ項目の型のミスマッチがあることを通知する（ステップ３０１０）。
【００８０】
型のミスマッチがあることを受け、使用者がデータ項目の修正を指示したか判定し（ステップ３０１１）、データ項目の修正を指示していない場合、ステップ３００３に戻る。
【００８１】
ステップ３０１１で使用者がデータ項目の修正を指示した場合、ソーステキスト１０６をデータ項目位置検出処理１２８が検出処理し、入力位置のデータ項目に関係するデータ項目の位置を検出し、データ項目位置情報１２９を生成する（ステップ３０１２）。
【００８２】
次に、補完制御部１２３はデータ項目位置情報１２９から、入力位置のデータ項目に関係するデータ項目の一つの位置に選択ウィンドウ８０３を表示する（ステップ３０１３）。
【００８３】
ここで使用者が選択ウィンドウ８０３の中からデータ項目の選択を指示したか判定し（ステップ３０１４）、データ項目の選択を指示しなかった場合、ステップ３００３に戻る。
【００８４】
ステップ３０１４で使用者がデータ項目の選択を指示した場合、構文解析情報１２２を用いてソーステキスト１０６を入力位置構文判定処理１２６が構文判定処理し、現在の入力位置の前後の文脈を判定し、対応する入力位置構文情報１２７を生成する（ステップ３０１５）。
【００８５】
次に、補完制御部１２３は入力位置構文情報１２７から、入力位置のデータ項目に型のミスマッチがあるか判定し（ステップ３０１６）、型のミスマッチがない場合、ステップ３００３に戻る。
【００８６】
ステップ３０１６でデータ項目に型のミスマッチがある場合、補完制御部１２３はデータ項目位置情報１２９から、入力位置のデータ項目に関係するデータ項目の別の位置に選択ウィンドウ８０３を表示し（ステップ３０１７）、ステップ３０１４に戻る。
【００８７】
以上で説明した実施例によって、使用者が、プログラム言語のある構文に指定できるデータ項目の組み合わせを覚えていない場合でも、使用者が正しい構文に従って、プログラムを作成できる。
【実施例３】
【００８８】
以下、本発明の第三の実施例によるテキストエディタについて説明する。
【００８９】
本発明の第三の実施例は、プログラム言語ソーステキストに誤りがある場合、テキストエディタがその誤りの修正例を表示し、使用者がこれを選択することにより、選択した修正例で正しくソーステキストの誤りを修正できる実施例である。
【００９０】
本実施例では、プログラム言語ソーステキストを編集中に、例えばカーソルを現在の入力位置の行から他の行へ移動させた場合など、使用者のある特定の操作を検出すると、構文解析を行う。構文解析の結果エラーがある場合、エラーメッセージを表示し、使用者は表示されたエラーメッセージから一つを選択すると、そのエラーを修正するための修正例一覧を表示する。
【００９１】
ここで、本実施例を適用した場合の操作手順の一例を簡単に説明する。
【００９２】
図１４のようにソーステキストに誤りがある場合、各行のエラーメッセージが誤りのあるソーステキストと同じ行に表示される。一つの行に複数のエラーが生じる場合は、エラーリスト７０１を用いて表示を行う。図１６のように、使用者がソーステキストの「ＲＥＡＤ  ＲＥＣ−ＤＡＴＡ１」に対するエラーメッセージの一つである「”ＲＥＣ−ＤＡＴＡ１”は，ファイル名ではありません。」を選択すると、その誤りを修正するための修正例一覧を表示する選択ウィンドウ８０４が表示される。使用者が、修正例の一つである「ＦＩＬＥ−ＤＡＴＡ１で置換する」を選択ウィンドウ８０４から選択すると、図１７のように「ＲＥＡＤ  ＲＥＣ−ＤＡＴＡ１」が「ＲＥＡＤ  ＦＩＬＥ−ＤＡＴＡ１」で置換され、ＲＥＡＤ文の直後に誤ってデータ項目名を指定した誤りが修正される。
図１３は、本発明の第三の実施例を実現するテキストエディタの構成例を示すブロック図である。図１３において、編集処理１０７を除いて図１の実施例１の構成の一部と同様であり、同一のブロックは同一の記号で示している。
【００９３】
編集処理１０７は、ソーステキスト１０６を構文解析し、構文解析情報１２２を生成する構文解析処理１２１と、修正例の情報を保持する修正例テンプレートテーブル１２０と構文解析情報１２２から使用者が選択した修正例によってソーステキストを修正する補完制御部１２３から構成される。
【００９４】
修正例テンプレートテーブル１２０には、図２０に示すように、構文エラーの内容とそれに対応する修正例が格納されている。
【００９５】
図１４は、図１３の構成から成るテキストエディタのコンソール１１１の表示例である。
【００９６】
図１４において、コンソール１１１の表示画面には、入力ファイル１０１から読み込んだソーステキスト１０６を表示するソーステキストウィンドウ４０１を表示し、使用者は、このソーステキストウィンドウ４０１に対して編集操作を行う。６０１は現在の入力位置を示すカーソルである。ソーステキストウィンドウ４０１のソーステキストに誤りがある場合、エラーメッセージ出力ウィンドウ５０１の各行にソーステキストの各行に対応するエラーメッセージを出力する。ソーステキストの1行に複数個のエラーが検出された場合は、エラーリスト７０１を用いて表示を行う。
【００９７】
図１５は、図１４に示すように、ソーステキストの1行に複数個のエラーが検出され、エラーメッセージ出力ウィンドウ５０１に、エラーリスト７０１が表示された状態で、使用者が、エラーリスト７０１を選択した場合のコンソール１１１の表示例である。
【００９８】
図１５において、エラーリスト７０１が展開され、「ＲＥＡＤ  ＲＥＣ−ＤＡＴＡ１」から生じた全てのエラーメッセージが表示される。
【００９９】
図１６は、図１５に示すように、使用者がエラーリスト７０１を選択し、リストが展開された状態で、エラーメッセージのうちの一つを選択した場合のコンソール１１１の表示例である。
【０１００】
図１６において、コンソール１１１の表示画面に、選択されたエラーメッセージの修正例の一覧を表示する選択ウィンドウ８０４を表示し、使用者は、この選択ウィンドウ８０４から任意の修正例を１つ選択する。使用者が選択した状態は、選択状態４００１のように示す。また、修正例のいくつかは、使用者が、テキスト入力エリア９０１に文字列を入力することで手を加えることができる。
【０１０１】
選択ウィンドウ８０４に表示される修正例の一覧は、構文解析情報１２２を用いて図２０に示す修正例テンプレートテーブル１２０から選び出される。図１６では、構文解析情報１２２が保持する構文エラー「“ＲＥＣ−ＤＡＴＡ１”は，ファイル名ではありません。」を表す情報と修正例テンプレート１２０の「構文エラーの内容」列の「“（不正なファイル名）”は，ファイル名ではありません。」が一致するため、この行の修正例を取り出し、選択ウィンドウ８０４を構成する。その際、図１６では、「（不正なファイル名）」をＲＥＣ−ＤＡＴＡ１に置き換え、「（ファイル名）」を図１６で定義されているファイル名で置き換える。図１６では、ファイルがＦＩＬＥ−ＤＡＴＡ１、ＦＩＬＥ−ＤＡＴＡ２の二つ定義されているため、この修正例は図１６のように「ＲＥＣ−ＤＡＴＡ１をＦＩＬＥ−ＤＡＴＡ１で置換する」と「ＲＥＣ−ＤＡＴＡ１をＦＩＬＥ−ＤＡＴＡ２で置換する」の二つが生成される。また、図２０に示すテキスト入力エリア９０１は、図１６に示すテキスト入力エリア９０１と同じことを表す。
【０１０２】
図１７は、図１６に示すように、使用者が選択ウィンドウ８０４から任意の修正例を１つ選択した場合の、コンソール１１１の表示例である。
【０１０３】
図１６において、図１６における選択ウィンドウ８０４から使用者が選択した修正例が実行され、「ＲＥＡＤ  ＲＥＣ−ＤＡＴＡ１」を「ＲＥＡＤ  ＦＩＬＥ−ＤＡＴＡ１」に修正している。
【０１０４】
また、本実施例の説明では、修正例一覧をウィンドウに表示する手段を用いて説明したが、ウィンドウではなく別の手段により修正例一覧を表示するようにしてもよい。
【０１０５】
次に、本実施例によるテキストエディタの処理手順を、フローチャートを用いて説明する。図１８は、図１３の構成から成るテキストエディタの処理の流れを説明するフローチャートである。
【０１０６】
図１８では、入力ファイル１０１からソーステキスト１０６を読み込み（ステップ１００１）、構文解析処理１２１がソーステキスト１０６を構文解析して構文解析情報１２２を生成し（ステップ１００２）、構文解析情報１２２から取り出したエラーメッセージをコンソール１１１に表示するよう画面制御部１１０に指示する（ステップ１００３）。
【０１０７】
次に、ソーステキスト１０６をコンソール１１１に表示するよう画面制御部１１０に指示する（ステップ１００４）。
【０１０８】
ここで使用者がテキストエディタ終了を指示したか判定し（ステップ１００５）、終了を指示した場合はソーステキスト１０６を更新結果ファイル１０２に出力し（ステップ１００６）、テキストエディタを終了する。
【０１０９】
ステップ１００５でテキストエディタ終了が指示されていない場合、使用者がエラーメッセージを選択したか判定し（ステップ１００７）、エラーメッセージの選択を指示していない場合、使用者による編集操作をソーステキスト１０６に反映させ（ステップ１０１２）、使用者のある特定の操作が検出されたか判定し（ステップ１０１３）、使用者のある特定の操作が検出された場合ステップ１００２に戻り、検出されなかった場合は、ステップ１００４に戻る。
【０１１０】
ステップ１００７で使用者がエラーメッセージの選択を指示した場合、補完制御部１２３は、ソーステキスト１０６を修正するための修正例一覧を、構文解析情報１２２を用いて修正例テンプレート１２０から選び出し（ステップ１００８）、それを表示するよう画面制御部１１０に指示する（ステップ１００９）。
【０１１１】
ここで使用者が修正例の選択を指示したか判定し（ステップ１０１０）、選択を指示した場合は補完制御部１２３により選択した修正例でソーステキスト１０６を修正し（ステップ１０１１）、ステップ１００４に戻る。ステップ１０１０で使用者が修正例の選択を指示しなかった場合、ステップ１０１２に進む。
【０１１２】
以上で説明した実施例によって、使用者が、誤ったプログラムを修正できない場合でも、使用者が正しくプログラムを修正できる。
【０１１３】
なお、以上で説明した本発明による第一、第二及び第三の実施例ではＣＯＢＯＬ言語を使用して説明したが、Ｃ言語等の他言語でも編集処理１０７を各言語用に置き換えて、第一、第二及び第三の実施例の処理と同様の処理を行うことで、本発明による第一、第二及び第三の実施例と同様の効果が得られる。
【図面の簡単な説明】
【０１１４】
【図１】本発明の第一の実施形態によるテキストエディタの構成例を示すブロック図である。
【図２】本発明の第一の実施形態によるテキストエディタが動作しているコンソールの画面表示例である。
【図３】本発明の第一の実施形態によるテキストエディタの選択ウィンドウを表示させた場合のコンソールの画面表示例である。
【図４】本発明の第一の実施形態によるテキストエディタの、図３における選択ウィンドウから任意の１つを選択した場合のコンソールの画面表示例である。
【図５】本発明の第一の実施形態によるテキストエディタの、図４における選択ウィンドウから任意の１つを選択した場合のコンソールの画面表示例である。
【図６】本発明の第一の実施形態によるテキストエディタの処理の流れを示すフローチャートである。
【図７】本発明の第二の実施形態によるテキストエディタの構成例を示すブロック図である。
【図８】本発明の第二の実施形態によるテキストエディタが動作しているコンソールの画面表示例である。
【図９】本発明の第二の実施形態によるテキストエディタの選択ウィンドウを表示させた場合のコンソールの画面表示例である。
【図１０】本発明の第二の実施形態によるテキストエディタの、図９における選択ウィンドウから任意の１つを選択した場合のコンソールの画面表示例である。
【図１１】本発明の第二の実施形態によるテキストエディタの、図１０における選択ウィンドウから任意の１つを選択した場合のコンソールの画面表示例である。
【図１２】本発明の第二の実施形態によるテキストエディタの処理の流れを示すフローチャートである。
【図１３】本発明の第三の実施形態によるテキストエディタの構成例を示すブロック図である。
【図１４】本発明の第三の実施形態によるテキストエディタが動作しているコンソールの画面表示例である。
【図１５】本発明の第三の実施形態によるテキストエディタのエラーリストを選択した場合のコンソールの画面表示例である。
【図１６】本発明の第三の実施形態によるテキストエディタの、図１５におけるエラーリストから任意の１つを選択した場合のコンソールの画面表示例である。
【図１７】本発明の第三の実施形態によるテキストエディタの、図１６における選択ウィンドウから任意の１つを選択した場合のコンソールの画面表示例である。
【図１８】本発明の第三の実施形態によるテキストエディタの処理の流れを示すフローチャートである。
【図１９】本発明の第一の実施形態によるテキストエディタの、図１に示す修正例テンプレート１２０の内容を示す図である。
【図２０】本発明の第一の実施形態によるテキストエディタの、図１３に示す修正例テンプレート１２０の内容を示す図である。
【符号の説明】
【０１１５】
１０１：入力ファイル、１０２：更新結果ファイル、１０３：テキストエディタ、
１０４：ファイル入力処理、１０５：ファイル出力処理、１０６：ソーステキスト、
１０７：編集処理、１１０：画面制御部、
１１１：ディスプレイ、キーボード等を有する表示／入力装置、
１２０：修正例テンプレートテーブル、１２１：構文解析処理、１２２：構文解析情報、
１２３：補完制御部、１２４：波及分析処理、１２５：波及分析情報、
１２６：入力位置構文判定処理、１２７：入力位置構文情報、
１２８：データ項目位置検出処理、１２９：データ項目位置情報
【図１】
2005099975.tif 000003
【図２】
2005099975.tif 000004
【図３】
2005099975.tif 000005
【図４】
2005099975.tif 000006
【図５】
2005099975.tif 000007
【図６】
2005099975.tif 000008
【図７】
2005099975.tif 000009
【図８】
2005099975.tif 000010
【図９】
2005099975.tif 000011
【図１０】
2005099975.tif 000012
【図１１】
2005099975.tif 000013
【図１２】
2005099975.tif 000014
【図１３】
2005099975.tif 000015
【図１４】
2005099975.tif 000016
【図１５】
2005099975.tif 000017
【図１６】
2005099975.tif 000018
【図１７】
2005099975.tif 000019
【図１８】
2005099975.tif 000020
【図１９】
2005099975.tif 000021
【図２０】
2005099975.tif 000022