(57)【要約】【課題】  コンパイル対象にならないソースコードについては、文字列検索を行わないようにして検索効率を向上させたエディタを実現する。【解決手段】  ソースコード翻訳エンジンを具備し、ソースコードを翻訳してプリプロセッサ命令、コメント等コンパイル対象にならないソースコードを除外したソースコードファイルを生成し、このソースコードファイル内に目的の文字列が存在するか検索して、文字列が存在する場合に、その行にジャンプして１カラム目から文字列の検索を実行するように構成した。  【選択図】図３
2006277330.tif 000002
【特許請求の範囲】
【請求項１】
ソースコード翻訳手段と、
コンパイル対象としないソースコードを特定するための情報を設定する非コンパイルソースコード情報設定手段と、
検索文字列を設定する検索文字列設定手段と、
前記ソースコード翻訳手段によってソースコードファイルを翻訳させ、前記非コンパイルソースコード情報設定手段で設定された情報に基づくソースコードを除外した２次ソースコードファイルを生成する２次ソースコードファイル生成手段と、
この２次ソースコードファイル生成手段によって生成された２次ソースコードファイルに対して、前記検索文字列設定手段で設定された文字列を検索する文字列検索手段と、
この文字列検索手段による検索結果に基づき、前記ソースコードファイルの少なくとも特定部位を表示する表示手段と、
を具備したことを特徴とするソースコード編集装置。
【請求項２】
前記文字列検索手段は、２次ソースコードファイルの検索の結果、文字列が存在する場合、その行番号情報を出力する第１の検索手段と、前記ソースコードファイルの、この第１の検索手段によって与えられる行番号にジャンプしてその行の前記文字列を検索する第２の検索手段を含むことを特徴とする請求項１に記載のソースコード編集装置。
【請求項３】
さらに、前記ソースコード翻訳手段に、翻訳を実行させるためのスクリプトファイル設定手段を備えたことを特徴とする請求項１または２に記載のソースコード編集装置。
【請求項４】
前記非コンパイルソースコードは、コメントを含むことを特徴とする請求項１乃至３のいずれかに記載のソースコード編集装置。
【請求項５】
コンパイル対象としないソースコードを特定するための情報を設定するステップと、
検索文字列を設定するステップと、
前記ソースコード翻訳手段によってソースコードファイルを翻訳させ、前記非コンパイルソースコード情報設定手段で設定された情報に基づくソースコードを除外した２次ソースコードファイルを生成するステップと、
前記２次ソースコードファイル生成手段によって生成された２次ソースコードファイルに対して、前記設定された検索文字列を検索するステップと、
検索結果に基づき、前記ソースコードファイルの少なくとも特定部位を表示するステップと、
を具備したことを特徴とするソースコード編集方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ソースコードの編集装置に関し、特にソースコード内の特定文字列を検索する機能を備えたソースコード編集装置に関する。また、この発明はソースコードファイルの特定文字列を検索する際に、ソースコードの翻訳を行って、検索不要な範囲を特定することを可能にしたソースコード編集方法に関する。
【背景技術】
【０００２】
プログラム開発する際に用いられるソースコードの編集を目的としたソースコード編集装置には、検索機能が付属されるのが一般である。例えば特定の文字列がソースコードファイルのどこの行に含まれているかというような検索を行うことができるようにして、編集の機能を向上させている。
【０００３】
従来このようなソースコード編集装置の検索機能は、ソースコードに含まれる全ての文字列に対して検索を実行するものであるため、コンパイル対象にならない、すなわち検索してほしくないソースコードまで検索していた。すなわち、例えば、プリプロセッサ命令やコメント等のコンパイル対象にならないソースコードまで検索するため、効率がよくないという問題を抱えていた。
【０００４】
特許文献１には、一般的なソースコードを検索するシステムが開示されている。
【特許文献１】特開平６−２８２４２９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
以上説明したように、従来、ソースコードの検索機能を備えたソースコード編集装置では、ソースコードに含まれる全ての文字列に対して検索を実行するため編集の効率がよくないという問題を有していた。
【０００６】
本発明は、以上の点に鑑みてなされたものであり、ソースコードを翻訳しながら検索できるように、翻訳エンジンを備えることで、ソースコードの非コンパイル対象部分を検索対象から除外することができるようにしたソースコード編集装置及びソースコード編集方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
この発明に係わるソースコード編集装置は、ソースコード翻訳手段と、コンパイル対象としないソースコードを特定するための情報を設定する非コンパイルソースコード情報設定手段と、検索文字列を設定する検索文字列設定手段と、前記ソースコード翻訳手段によってソースコードファイルを翻訳させ、前記非コンパイルソースコード情報設定手段で設定された情報に基づくソースコードを除外した２次ソースコードファイルを生成する２次ソースコードファイル生成手段と、この２次ソースコードファイル生成手段によって生成された２次ソースコードファイルに対して、前記検索文字列設定手段で設定された文字列を検索する文字列検索手段と、この文字列検索手段による検索結果に基づき、前記ソースコードファイルの少なくとも特定部位を表示する表示手段と、を具備したことを特徴とする。
【０００８】
この発明に係わるソースコード編集方法は、コンパイル対象としないソースコードを特定するための情報を設定するステップと、検索文字列を設定するステップと、前記ソースコード翻訳手段によってソースコードファイルを翻訳させ、前記非コンパイルソースコード情報設定手段で設定された情報に基づくソースコードを除外した２次ソースコードファイルを生成するステップと、前記２次ソースコードファイル生成手段によって生成された２次ソースコードファイルに対して、前記設定された検索文字列を検索するステップと、検索結果に基づき、前記ソースコードファイルの少なくとも特定部位を表示するステップと、を具備したことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、ソースコードを翻訳しながら目的の文字列を検索することによってソースコードのコンパイル対象部分のみを検索することが可能となり、編集の効率を向上させることができるものである。
【発明を実施するための最良の形態】
【００１０】
以下、この発明の実施の形態について、図面を参照して詳細に説明する。図１は、この発明に係わるソースコード編集装置（エディタ）を実行させるためのシステムの概略を説明するための構成図であり、システム全体を制御するためのＣＰＵ（Central Processing Unit）で構成される制御部１０１と、ユーザが設定のための入力を行う操作入力部１０２と、制御部１０１のワークエリアとして使われるメモリ１０３と、エディタを含むアプリケーションソフト、あるいは編集対象のソースコードファイルが蓄積される例えばＨＤＤ（Hard Disk Drive）で構成される記憶装置１０４と、ユーザが設定を行う際に、その設定のための表示を行うと共に、ソースコードの表示を行う表示部１０５を有している。
【００１１】
次に、この発明に係わるソースコード編集装置（ソースコード翻訳機能付きエディタ）と、このエディタによって、編集されるソースコードファイルが保存されるＨＤＤ（Hard Disk Drive）等の記憶装置との間で実行される処理の概略について図２を参照して説明する。
【００１２】
エディタ２０１は、機能としてのオプション設定２０２と、ソースコード検索エンジン２０３と、検索Ａ２０４と、ソースコード表示２０５を含む。
【００１３】
オプション設定２０２は、ユーザによる操作入力部１０２の操作に基づきソースコードを翻訳するためのスクリプトファイルを設定し、さらに検索エンジン２０３でコメントと解釈する文字を設定する機能を有する。
【００１４】
ソースコード翻訳エンジン２０３は、オプション設定２０２で設定したスクリプトファイルを解釈してソースコードの翻訳を実行しながら、コメントと解釈する文字及びプリプロセッサ命令を特定し、コンパイル対象となるソースコードと、そのソースコードの行番号で構成される「翻訳されたソースコードファイル」生成する。さらにソースコード翻訳エンジン２０３は、生成した「翻訳されたソースコードファイル」内で、後述する検索Ａから与えられる文字列を検索し、その検索結果を検索Ａに送出する。
【００１５】
検索Ａ２０４は、ユーザによる操作入力部１０２の操作に基づき、検索文字列の設定、検索モードの設定、すなわち翻訳検索モードか通常検索モードかの設定を行うと共に、翻訳検索モードにおいて、ソースコード翻訳エンジン２０３に対してこれを起動させる処理を行う。さらに検索Ａ２０４は、ソースコード翻訳エンジン２０３から検索結果を受け取って、それに基づいてソースコードを検索し、検索結果をソースコード表示２０３に送出する。
【００１６】
ソースコード表示２０５は、ソースコードを表示すると共に、検索Ａ２０４から与えられる表示位置データに基づいてソースコードファイルの内容を表示する機能を有する。
【００１７】
記憶装置１０４には、編集対象であるソースコードファイル２０６と、コンパイル用のスクリプトファイル２０７と、翻訳エンジンによって翻訳されたソースコードファイル２０８とが蓄積される。
【００１８】
なお、プリプロセッサ命令は、＃ｉｎｃｌｕｄｅ、＃ｄｅｆｉｎｅ、＃ｕｎｄｅｆ、＃ｉｆｄｅｆ、＃ｉｆｎｄｅｆ、＃ｉｆ、＃ｅｌｓｅ、＃ｅｌｉｆ、＃ｅｎｄｉｆであり、コメントは「／＊」から「＊／」まて、または「／／」から改行コードまで、または「／／」からＥＯＦ（End Of File）コードまでの文字列のことである。
【００１９】
以上のように構成されたエディタにおいて、その処理の詳細を図３に示すフローチャートを参照してさらに詳細に説明する。
【００２０】
図３において、ステップＳ３０１で開始され、ステップＳ３０２で、ユーザの操作によってエディタが起動する。このときソースコードファイルの内容がソースコード表示２０５に表示される。
【００２１】
次にステップＳ３０３で、オプション設定を起動し、ここでユーザは表示部１０５の表示画面を見ながら操作入力部１０２を駆使して、ソースコードを翻訳させるためのスクリプトファイルと、コメントと解釈させる文字を指定する。すなわち、ステップＳ３０４でスクリプトファイルの指定を行い、ステップＳ３０５でコメントと解釈させる文字の指定を行って、ステップＳ３０６でオプション設定を終了する。
【００２２】
次に、ステップＳ３０７でユーザの操作入力部１０２の操作によって検索Ａ２０４を起動し、ステップＳ３０８で検索文字列を指定する。この処理も、ユーザは表示部１０５の画面表示に基づいて行う。
【００２３】
検索文字列の指定が完了したら、ステップＳ３０９で、ユーザによって翻訳検索モードが指定される。次いでステップＳ３１０で、ユーザによって操作入力部１０２の検索ボタンが押されると、ステップＳ３１１において、検索Ａ２０４がソースコード翻訳エンジン２０３を起動する。
【００２４】
起動されたソースコード翻訳エンジン２０３によって、ステップＳ３１２でソースコードの翻訳と文字列の検索が実行される。このとき、ソースコード翻訳エンジン２０３は、オプション設定で指定したスクリプトファイルを解釈して翻訳を実行し、さらにプリプロセッサ命令とコメントと解釈される文字を特定し、それらが除外された「翻訳されたソースコードファイル」すなわち２次ソースコードファイルを生成する。
【００２５】
次に、ソースコード翻訳エンジン２０３は、「翻訳されたソースコードファイル」ついて、検索Ａ２０４から与えられた文字列の検索を実行し、「翻訳されたソースコードファイル」全てについて検索が実行されたらステップＳ３１３で検索処理を終了する。
【００２６】
次に、ステップＳ３１４でソースコード翻訳エンジン２０３は、検索結果を検索Ａ２０４に送出するものであるが、検索の結果、対象となる文字列があった場合にはその行番号、文字列がなかった場合には最終行番号に１を加えたものかあるいはゼロを検索結果として、検索Ａに送出する。
【００２７】
次に、ステップＳ３１５で、検索Ａ２０４が、ソースコード翻訳エンジン２０３から送られた検索結果に基づいて、ソースコードファイル内の検索を行う。すなわち、検索Ａ２０４は、ソースコード翻訳エンジン２０３から送られた行番号にジャンプして、その１カラム目から目的の文字列を検索して対象となる文字列の位置情報を得る。
【００２８】
さらに検索Ａ２０４は、ステップＳ３１６で、検索の結果得られた目的の文字列の位置情報をソースコード表示２０５に渡し、ステップＳ３１７で検索Ａ２０４としての処理を終了する。
【００２９】
次に、ステップＳ３１８で、ソースコード表示２０５が、検索した文字列を含めてソースコードファイルを表示部１０５で表示させ、ステップＳ３１９で全ての処理を終了する。
【００３０】
なお、図３において、斜線で囲ったステップＳ３０４，Ｓ３０５，Ｓ３０９，Ｓ３１１，Ｓ３１２，Ｓ３１３，Ｓ３１４は、本件発明の特徴的な処理であり、従来存在しなかった新規な処理である。
【００３１】
以上のように本発明によれば、ソースコードの特定の文字列を検索する機能を有したエディタにおいて、ソースコード翻訳エンジンを備え、ソースコードファイルを翻訳して、コンパイルの対象とならないプリプロセッサ命令と、コメントを除外して、翻訳されたソースコードファイル（２次ソースコードファイル）を生成すると共に、この翻訳されたソースコードファイル内で目的の文字列を検索して、検索の結果、文字列が検出されたらその行番号を検索Ａに渡して、検索Ａで、行番号の文字列を検索するように構成したので、コンパイルの対象とならない範囲を除外して、目的の文字列の検索が実行できるので、編集効率を向上させることができるものである。
【００３２】
図４は、図２に示すソースコード翻訳エンジンを詳細に示すもので、エディタ４０１は、ソースコード翻訳エンジン４０２と、機能としてのオプション設定４０３及び検索Ａ４０４と、記憶装置４０５を含む。
【００３３】
ソースコード翻訳エンジン４０２は、機能としてソースコード翻訳４０６と、ファイル作成４０７と、ファイル入出力４０８と、オプション認識４０９と、検索Ａインターフェース４１０と検索Ｂ４１１で構成される。
【００３４】
ソースコード翻訳４０６は、プリプロセッサ命令である＃ｉｎｃｌｕｄｅ、＃ｄｅｆｉｎｅ、＃ｕｎｄｅｆ、＃ｉｆｄｅｆ、＃ｉｆｎｄｅｆ、＃ｉｆ、＃ｅｌｓｅ、＃ｅｌｉｆ、＃ｅｎｄｉｆを翻訳し、オプション認識４０９を介してオプション設定４０３から与えられるスクリプトファイルとコメント情報に基づき、当該コメントの翻訳も実行する。
【００３５】
ファイル作成４０７は、ソースコード翻訳で翻訳されたソースコードファイル（２次ソースコードファイル）を作成するが、このとき、コンパイル対象にならないプリプロセッサ命令及びコメントのソースコード行はファイルに含めない。
【００３６】
ファイル作成４０７で作成するファイル形式は、図５に示すように、エディタでの表示イメージ５０１に対して、ファイルのレコード内容５０２としては、ソースコードの１カラムが５バイト目に入り、１バイト目から４バイト目にはソースコードの行番号が入るようになる。
【００３７】
ファイル入出力４０８は、ファイル作成４０７で作成された翻訳されたソースコードファイルを記憶装置４０５に記憶させるべく送出したり、あるいは記憶装置４０５から読み出されたソースコードファイルあるいはスクリプトファイルを受けて、ソースコード翻訳４０６に送出する機能を有する。
【００３８】
オプション認識４０９は、オプション設定４０３から与えられるオプション情報を認識して、コメントと解釈する文字を特定しソースコード翻訳４０６に出力する。
【００３９】
検索Ａインターフェース４１０は、検索Ａ４０４から与えられるソースコード翻訳エンジン起動コマンドを受けて、ソースコード翻訳エンジン４０２を起動させ、さらに検索Ａ４０４から与えられる検索文字列情報を検索Ｂ４１１に導出する。
【００４０】
検索Ｂ４１１は、検索Ａ４０４から与えられる検索文字列情報に基づき、翻訳されたソースコードファイルを検索して、その結果を検索Ａインターフェース４１０を介して検索Ａに導出する。
【００４１】
記憶装置４０５は、編集の対象となるソースコードファイル４１２と、ソースコード翻訳４０６でソースコード翻訳を実行させるためのスクリプトファイル４１３と、翻訳されたソースコードファイル４１４を保存する。翻訳されたソースコードファイル４１４は、ソースコード翻訳エンジン４０２のファイル作成４０７で生成され、ファイル入出力４０８を介して送出されたものである。また、スクリプトファイル４１３は、ソースコード翻訳４０６を実行させるものである。
【００４２】
なお、図４において、実線の矢印は、ソースコードを翻訳するために必要なデータの流れを示し、荒い点線は、翻訳されたソースコードファイルを構成するデータの流れを示し、細かな点線は、検索Ｂ４１１が検索文字列を検索するときのデータの流れを示すものである。
【００４３】
図４に示す実施の形態の処理の過程を図６のフローチャートを参照してさらに詳細に説明する。
【００４４】
図６において、ステップＳ６０１で開始され、ステップＳ６０２で、ソースコード翻訳エンジン４０２が起動し、オプション認識４０９が、オプション設定４０３からステップＳ６０３でソースコードを翻訳するためのスクリプトファイルを取得し、さらにステップＳ６０４でコメントと解釈する文字情報を取得して、それらを認識してソースコード翻訳４０６に渡す。
【００４５】
次にステップＳ６０５で、ファイル入出力４０８が記憶装置４０５からソースコードファイル４１２を読み出してソースコード翻訳４０６に渡す。次いで、ステップＳ６０６で、ソースコード翻訳４０６がソースコードファイルを翻訳して、翻訳した内容をファイル作成４０７に渡す。
【００４６】
次にステップＳ６０７で、ファイル作成４０７が、ソースコード翻訳４０６から受け取ったデータから、翻訳されたソースコードファイルを、ファイル入出力４０８を介して記憶装置４０５に作成する。
【００４７】
次に、ステップＳ６０８で、検索Ｂが翻訳されたソースコードファイル内において、目的の文字列を検索し、目的文字列が存在する場合その行番号を、また存在しない場合には、最終行番号に１を加えたものかゼロを検索結果とし、ステップＳ６０９でそれを検索Ａインターフェース４１０に渡し、ステップＳ６１０で検索Ａインターフェース４１０が、受け取った検索結果を検索Ａに渡す。
【００４８】
ステップＳ６１１でソースコード翻訳エンジン４０２を終了し、ステップＳ６１２で処理を終了する。
【００４９】
以上説明したように、本件発明によれば、エディタでソースコード内の目的の文字列を検索する際に、ソースコードを翻訳して、コンパイル対象とならない、プリプロセッサ命令とコメントを除外した翻訳したソースコードファイルを別途生成し、この翻訳したソースコードファイル内に目的の文字列が存在するか否か検索を行うようにしたので、検索効率を向上させることができるものである。
【００５０】
なお、本発明は以上説明した実施の形態に限定されるものではなく、趣旨を逸脱しない範囲で種々変形可能である。
【図面の簡単な説明】
【００５１】
【図１】この発明に係わるソースコード編集装置において、編集を実行するためのシステムの概略を説明するために示す図。
【図２】この発明に係わるソースコード編集装置の一実施の形態の機能の概略を説明するために示す図。
【図３】図２に示すソースコード編集装置の処理状況を説明するために示すフローチャート。
【図４】図１に示す装置の要部の構成をさらに詳細に説明するために示す図。
【図５】この発明に係わるソースコード編集装置で生成される翻訳されたソースコードファイルの内容を説明するために示す図。
【図６】図４に示すソースコード編集装置の処理状況を説明するために示すフローチャート。
【符号の説明】
【００５２】
１０１…制御部
１０２…操作入力部
１０３…メモリ
１０４…記憶装置
１０５…表示部
２０１…ソースコード翻訳検索機能付きエディタ
２０２…オプション設定
２０３…ソースコード翻訳エンジン
２０４…検索Ａ
２０５…ソースコード表示
２０６，４１２…ソースコードファイル
２０７，４１３…スクリプトファイル
２０８，４１４…翻訳されたソースコードファイル
４０１…ソースコード翻訳検索機能付きエディタ
４０２…ソースコード翻訳エンジン
４０３…オプション設定
４０４…検索Ａ
４０５…記憶装置
４０６…ソースコード翻訳
４０７…ファイル作成
４０８…ファイル入出力
４０９…オプション認識
４１０…検索Ａインターフェース
４１１…検索Ｂ
【図１】
2006277330.tif 000003
【図２】
2006277330.tif 000004
【図３】
2006277330.tif 000005
【図４】
2006277330.tif 000006
【図５】
2006277330.tif 000007
【図６】
2006277330.tif 000008