(57)【要約】      （修正有）【課題】予め、チェック対象関数についてのチェック項目をツール化しておかなくても、あらゆる関数について、その関数呼出し箇所の記述の誤りを自動的に検出することができる、ソースプログラム中の関数呼出し異常パターン検出プログラムを、提供する。【解決手段】解析部は、前処理結果ファイル中に含まれる各関数呼出を関数毎に一覧した関数呼出一覧を作成する（Ｓ１）。そして、各関数毎に、前処理結果ファイルにおける当該関数についての関数呼出一覧に含まれる関数呼出の前後から、グローバル識別子又はキーワードを抽出し、出現頻度が高いグローバル識別子又はキーワードを共通出現パターンとして設定し（Ｓ６，Ｓ７）、相対共通出現パターンをその前後の文に含まない関数呼出につき、警告メッセージを出力する（Ｓ８，Ｓ９）。【選択図】図２
2007249765.tif 000002
【特許請求の範囲】
【請求項１】
ソースプログラムに含まれる各関数呼出の前後の文の記述の誤りを検出するために、主記憶装置及び出力装置に接続されているコンピュータに、
前記ソースプログラムを前記主記憶装置上に読み込む読込処理，
前記主記憶装置上に読み込まれたソースプログラムから、各関数毎に、その関数を呼び出すための関数呼出の前後の文を抽出する関数呼出前後文抽出処理，
前記関数呼出前後文抽出処理によって抽出された各関数呼出の前後の文に含まれる出現頻度の高い文字列パターンを共通出現パターンとして、前記主記憶装置上に設定する共通出現パターン設定処理，及び
前記主記憶装置上に読み込まれたソースプログラムに含まれる、前記共通出現パターン設定処理により設定された共通出現パターンを前後の文に含まない関数呼出について、警告メッセージを前記出力装置から出力する警告メッセージ出力処理
を実行させることを特徴とするソースプログラム中の関数呼出し異常パターン検出プログラム。
【請求項２】
ソースプログラムに含まれる各関数呼出の前後の文の記述の誤りを検出するために、主記憶装置及び出力装置に接続されているコンピュータに、
前記ソースプログラムを前記主記憶装置上に読み込む読込処理，
前記主記憶装置上に読み込まれたソースプログラムから、各関数毎に、その関数を呼び出すための関数呼出の前後の文を抽出する関数呼出前後文抽出処理，
前記関数呼出前後文抽出処理によって抽出された各関数呼出の前後の文から、複数の関数呼出の前後の文に共通して含まれる文字列パターンを抽出する文字列パターン抽出処理，
前記文字列パターン抽出処理により抽出された各文字列パターンの出現頻度を算出する出現頻度算出処理，
前記出現頻度算出処理により算出された出現頻度が所定閾値を超える文字列パターンを共通出現パターンとして、前記主記憶装置上に設定する共通出現パターン設定処理，
前記共通出現パターン設定処理により設定された共通出現パターンを前後の文に含まない関数呼出を、前記主記憶装置上に読み込まれたソースプログラムが検索する検索処理，及び
前記検索処理により検索された、前記共通出現パターンを前後の文に含まない関数呼出について、警告メッセージを前記出力装置から出力する警告メッセージ出力処理
を実行させることを特徴とするソースプログラム中の関数呼出し異常パターン検出プログラム。
【請求項３】
前記文字列パターン抽出処理，前記出現頻度算出処理，前記共通出現パターン設定処理，前記検索処理及び前記警告メッセージ出力処理は、関数呼出の前文及び後文につき、夫々実行される
ことを特徴とする請求項２記載のソースプログラム中の関数呼出し異常パターン検出プログラム。
【請求項４】
前記関数呼出前後文抽出処理では、前記ソースプログラムから、関数呼出を抽出し、各関数毎に、抽出された関数呼出の一覧を前記主記憶装置上に作成し、各関数呼出の一覧毎に、その一覧に含まれている各関数呼出の前後の文をソースプログラムから抽出する
ことを特徴とする請求項２記載のソースプログラム中の関数呼出し異常パターン検出プログラム。
【請求項５】
前記共通出現パターン設定処理では、オペレータにより選択された閾値用いる
ことを特徴とする請求項２記載のソースプログラム中の関数呼出し異常パターン検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソースプログラム中に記述される関数呼出し箇所の記述の誤りを検出するためのソースプログラム中の関数呼出し異常パターン検出プログラムに、関する。
【背景技術】
【０００２】
ソースプログラム中の関数呼出し箇所は、所定の規約に従って、なされていなければならない。関数呼出し文自体は勿論、その前後の文に誤りがあると、関数呼び出しの前準備ミスや後処理ミスに起因する障害が発生してしまうからである。
【０００３】
そこで、従来、ソースプログラム中から、関数呼出し箇所の記述の誤りを見つける手法が、提案されている。その一つが、人間が手作業で関数呼出し箇所の記述をチェックするレビューであり、他の一つが、自動的に関数呼出し箇所のチェックを行うツールを用いる方式（プログラムレビュー）である（下記特許文献）。
【特許文献１】特開２００５−４３０１号
【特許文献２】特開平１１−１３４１８８２号
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、レビューを人間が実施する場合、誰が行ったとしてもチェック漏れが発生し易く、しかも、チェック結果がレビューアのスキルに依存してしまうという問題がある。
【０００５】
また、プログラムレビューの場合には、予め、チェック対象とすべき関数毎に、その関数のチェック項目をツール化しなければならなかった。即ち、チェック対象関数毎に、その関数を呼び出すための関数呼出の記述が所定の条件を満たしているかどうか（例えば、対となって記述されるべき一方の関数が記述されている場合に、他方の関数が記述されているかどうか），その関数に特定の引数を与えた場合に特定の戻り値が戻ってくるかどうか，等のチェック項目を予め決定して、プログラミングしておかなければならなかった。そのため、従来のプラグラムレビューによると、かかるチェック項目がツール化されている関数についてしかチェックされないが、全ての関数のチェック項目をツール化することは、コスト，時間の制約からして、事実上困難である。
【０００６】
本発明は、従来の関数呼出し箇所のチェック手法におけるかかる問題に鑑みてなされたものであり、予め、チェック対象関数についてのチェック項目をツール化しておかなくても、あらゆる関数について、その関数呼出し箇所の記述の誤りを自動的に検出することができる、ソースプログラム中の関数呼出し異常パターン検出プログラムの提供を、課題とする。
【課題を解決するための手段】
【０００７】
本発明によるソースプログラム中の関数呼出し異常パターン検出プログラムの第１の態様は、ソースプログラムに含まれる各関数呼出の前後の文の記述の誤りを検出するために、主記憶装置及び出力装置に接続されているコンピュータに、前記ソースプログラムを前記主記憶装置上に読み込む読込処理，前記主記憶装置上に読み込まれたソースプログラムから、各関数毎に、その関数を呼び出すための関数呼出の前後の文を抽出する関数呼出前後文抽出処理，前記関数呼出前後文抽出処理によって抽出された各関数呼出の前後の文に含まれる出現頻度の高い文字列パターンを共通出現パターンとして、前記主記憶装置上に設定する共通出現パターン設定処理，及び、前記主記憶装置上に読み込まれたソースプログラムに含まれる、前記共通出現パターン設定処理により設定された共通出現パターンを前後の文に含まない関数呼出について、警告メッセージを前記出力装置から出力する警告メッセージ出力処理を実行させることを、特徴とする。
【０００８】
このように構成されたソースプログラム中の関数呼出し異常パターン検出プログラムを読み込んで実行したコンピュータは、処理対象のソースプログラムを主記憶装置上に読み込む（読込処理）。そして、前記主記憶装置上に読み込まれたソースプログラムから、各関数毎に、その関数を呼び出すための関数呼出の前後の文を抽出する（関数呼出前後文抽出処理）。そして、抽出された前の文及び後の文の夫々について、出現頻度の高い文字列を共通出現パターンとして特定する（共通出現パターン設定処理）。そして、ソースプログラムから、前の文の共通出現パターン及び後の文の共通出現パターンを夫々前後の文に含まない関数呼出について、警告メッセージを出力装置から出力する（警告メッセージ出力処理）。このようにして警告メッセージを出力されなかった関数呼出は、他の同じ関数についての関数呼出において常用されている文字列パターンをその前後の文に含んでいるので、所定の規約に従って正しく記述されている可能性が高い。しかしながら、警告メッセージを出力された関数呼出は、他の同じ関数についての関数呼出において常用されている文字列パターンをその前後の文に含んでいないので、所定の規約に従って正しく記述されていない可能性が高い。そこで、この警告メッセージを受けたオペレータは、ソースプログラム中の当該警告メッセージが出力された関数呼出の前後の記述を点検することができる。
【０００９】
本発明によるソースプログラム中の関数呼出し異常パターン検出プログラムの第２の態様は、ソースプログラムに含まれる各関数呼出の前後の文の記述の誤りを検出するために、主記憶装置及び出力装置に接続されているコンピュータに、前記ソースプログラムを前記主記憶装置上に読み込む読込処理，前記主記憶装置上に読み込まれたソースプログラムから、各関数毎に、その関数を呼び出すための関数呼出の前後の文を抽出する関数呼出前後文抽出処理，前記関数呼出前後文抽出処理によって抽出された各関数呼出の前後の文から、複数の関数呼出の前後の文に共通して含まれる文字列パターンを抽出する文字列パターン抽出処理，前記文字列パターン抽出処理により抽出された各文字列パターンの出現頻度を算出する出現頻度算出処理，前記出現頻度算出処理により算出された出現頻度が所定閾値を超える文字列パターンを共通出現パターンとして、前記主記憶装置上に設定する共通出現パターン設定処理，前記共通出現パターン設定処理により設定された共通出現パターンを前後の文に含まない関数呼出を、前記主記憶装置上に読み込まれたソースプログラムが検索する検索処理，及び前記検索処理により検索された、前記共通出現パターンを前後の文に含まない関数呼出について、警告メッセージを前記出力装置から出力する警告メッセージ出力処理を実行させることを、特徴とする。
【００１０】
このように構成されたソースプログラム中の関数呼出し異常パターン検出プログラムを読み込んで実行したコンピュータは、処理対象のソースプログラムを主記憶装置上に読み込む（読込処理）。そして、前記主記憶装置上に読み込まれたソースプログラムから、各関数毎に、その関数を呼び出すための関数呼出の前後の文を抽出する（関数呼出前後文抽出処理）。そして、抽出された各関数呼出の前後の文から、複数の関数呼出の前後の文に共通して含まれる文字列パターンを抽出する（文字列パターン抽出処理）。そして、抽出された各文字列パターンの出現頻度を算出し（出現頻度算出処理）、算出された出現頻度が所定閾値を超える文字列パターンを共通出現パターンとして特定する（共通出現パターン設定処理）。そして、設定された共通出現パターンを前後の文に含まない関数呼出をソースプログラムが検索し（検索処理）、検索された共通出現パターンを前後の文に含まない関数呼出について、警告メッセージを出力装置から出力する（警告メッセージ出力処理）。このようにして警告メッセージを出力されなかった関数呼出は、他の同じ関数についての関数呼出において常用されている文字列パターンをその前後の文に含んでいるので、所定の規約に従って正しく記述されている可能性が高い。しかしながら、警告メッセージを出力された関数呼出は、他の同じ関数についての関数呼出において常用されている文字列パターンをその前後の文に含んでいないので、所定の規約に従って正しく記述されていない可能性が高い。そこで、この警告メッセージを受けたオペレータは、ソースプログラム中の当該警告メッセージが出力された関数呼出の前後の記述を点検することができる。
【発明の効果】
【００１１】
以上のように構成された本発明によると、チェック対象関数についてのチェック項目をツール化しておかなくても、あらゆる関数について、その関数呼出し箇所の記述の誤りを自動的に検出することができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施の形態を、図面を参照して説明する。
＜システム構成＞
図１は、本発明の実施の形態である関数呼出異常パターン抽出プログラムがインストールされているコンピュータの概略構成（ハードウェア構成及びプログラム構成）を示すブロック図である。図１に示すように、このコンピュータは、バスＢによって相互に接続されたＣＰＵ１０，ＲＡＭ１１，ハードディスク１２，ディスプレイ１３及びキーボード１４を、主要構成として有している。
【００１３】
このうち、ＣＰＵ１０は、プログラムを読み込んで実行することによって、所定の処理を実行する中央処理装置であり、請求項中のコンピュータそのものに相当する。
【００１４】
また、ハードディスク１２は、ＣＰＵ１０が実行する各種プログラムや各種データを保存する記憶媒体である。ハードディスク１２が格納しているプログラムの一つが、上記関数呼出異常パターン抽出プログラム１２１である。また、ハードディスク１２が格納しているデータには、上記関数呼出異常パターン抽出プログラム１２１による処理対象となるソースファイル１２２が、含まれている。
【００１５】
ＲＡＭ１１は、ＣＰＵ１０が上記処理実行をするにあたり、ハードディスク１２から読み出されたプログラムがキャッシュされて、その作業領域が展開される主記憶装置である。図１は、関数呼出異常パターン抽出プログラム１２１がＣＰＵ１０によって読み込まれることによって、関数呼出異常パターン抽出プログラム１２１を構成する各モジュールがＲＡＭ１１の作業領域上に展開する状態を、示している。即ち、この関数呼出異常パターン抽出プログラム１２１は、大別して、制御部１２１０，前処理部１２１１，解析部１２１２から、構成されている。
【００１６】
制御部１２１０は、前処理部１２１１及び解析部１２１２の動作を制御するモジュールである。この制御部１２１０には、オプション解析部１２１３が含まれている。このオプション解析部１２１３は、後述する関数呼出一覧の統合条件や出願頻度の高いパターンの判定閾値に関して、オペレータにより予め何れのオプションが選択されのかを、図示せぬテーブル又はレジスタに登録されたオプションの内容に基づいて、解析する。
【００１７】
前処理部１２１１は、ハードディスク１２からソースファイル１２２を読み込み、このソースファイル１２２に格納されているソースプログラムについて、インクルードヘッダの取り込みや、マクロ展開といった前処理を実施して、前処理結果ファイル１２２１として出力する。
【００１８】
解析部１２１２は、字句／構文解析部１２１４及び関数呼出異常パターン抽出部１２１５から、構成される。この字句／構文解析部１２１４は、前処理結果ファイル１２２１中のソースプログラムの字句及び構文を解析して、その各行に記述された文字列の意味を解析し、解析結果を解析結果ファイル１２２２として出力する。関数呼出異常パターン抽出部１２１５は、解析結果ファイル１２２２中の解析結果から、関数呼出の前後の文の記述が誤っていると思しき記述パターンを抽出して、ディスプレイ１３上に出力すべき指摘メッセージ１２２３を出力する。
【００１９】
ディスプレイ１３は、ＣＰＵ１０が処理結果を画面として表示させるための出力装置である。キーボード１４は、オペレータが、ＣＰＵ１０に各種コマンドやデータを入力するために操作される入力装置である。
＜処理＞
次に、上述した解析部１２１２による処理（即ち、関数呼出異常パターン抽出プログラム１２１に従ってＣＰＵ１０が実行する処理のうち、解析部１２１２のモジュールに相当する部分）を、図２のフローチャートに基づいて説明する。この処理を開始する時点では、上述したように、前処理部１２１１により、処理対象ソースファイル１２２に基づく前処理結果ファイル１２２１が生成されている。解析部１２１２のモジュールに従って動作するＣＰＵ１０（以下、単に「解析部１２１２」と称する）は、この処理結果ファイル１２２１に対して、処理を実行する。
【００２０】
図２のフローチャートにおいて、解析部１２１２（字句／構文解析部１２１４）は、Ｓ１において、ソースプログラムの字句解析及び構文解析を実行し、解析結果ファイル１２２２として、ＲＡＭ１１上に出力する（読込処理に相当する）。
【００２１】
次のＳ２では、解析部１２１２（関数呼出異常パターン抽出部１２１５）は、呼び出されている関数一覧を作成する。即ち、解析結果に含まれる各関数の呼出により呼び出される関数の一覧を、ＲＡＭ１１上に作成する。
【００２２】
次のＳ３では、解析部１２１２は、Ｓ２にて作成した関数一覧に挙げられた各関数につき、夫々、解析結果中に含まれるその関数の呼び出しの一覧（関数呼出一覧）を、ＲＡＭ１１上に作成する。
【００２３】
次のＳ４では、解析部１２１２は、制御部１２１０のオプション解析部１２１３によって解析されたオペレータによる選択に基づき、Ｓ３にて作成された関数呼出一覧を統合する。具体的には、呼び出している関数が同じものを一つの関数とみなすとのオプション（第一のオプション）が選択されている場合には、解析部１２１２は、処理をそのままＳ５へ進める。また、呼び出している関数が異なっても、関数の名前が同じものを一つの関数とみなすとのオプション（第二のオプション）が選択されている場合には、解析部１２１２は、関数名が同じ関数について作成された関数呼出一覧同士を、一つの関数呼出一覧として統合する。例えば、以下のように記述される関数呼出は、別々の関数を呼び出すものではあるが、関数名としては同じである。このような場合に、第一のオプションが選択されている場合には、夫々の関数呼出一覧は統合されないが、第二のオプションが選択されている場合には、両関数呼出一覧が統合される。
【００２４】
func(0);
func(0, 1);
また、呼び出している関数が異なっても、似ている関数名は一つの関数とみなすとのオプション（第三のオプション）が選択されている場合には、解析部１２１２は、相互に似ている関数名の関数呼出一覧同士を統合する。
【００２５】
次に、解析部１２１２は、Ｓ４によって統合された各関数呼出一覧毎に、関数呼出箇所の記載の誤りを抽出するために、Ｓ５乃至Ｓ１０のループ処理を実行する。このループ処理に入って最初のＳ５では、解析部１２１２は、Ｓ４にて統合された各関数呼出一覧のうち、未処理のものを一つ特定する。
【００２６】
次のＳ６では、解析部１２１２は、処理対象関数呼出一覧に含まれる各関数呼出毎に、その関数呼出の前の文及び後の文を、夫々、Ｓ１にて得られた解析結果ファイル１２２２から抽出する（関数呼出前後文抽出処理に相当）。
【００２７】
次のＳ７では、解析部１２１２は、Ｓ６にて抽出した各関数呼出の前の文うち、出現頻度の高い記述パターンを捜し、それを「共通出現パターン」に設定する。具体的には、解析部１２１２は、Ｓ６にて抽出された各関数呼出の前の文に含まれるグローバルな識別子名（関数の中で閉じておらずあらゆる関数で使える識別子）又はキーワードを抽出し（複数の関数呼出の前後の文に共通して含まれる文字列パターンを抽出する文字列パターン抽出処理に相当）、全関数呼出の前の文におけるグローバル識別子及びキーワードの出現数の総和に対する各グローバル識別子及びキーワードの出現数の比率を出現頻度として算出する（出現頻度算出処理に相当）。そして、その比率（出現頻度）が、オペレータによって複数オプションの中から選択されて制御部１２１０のオプション解析部１２１３によって解析された閾値を超えているグローバル識別子及びキーワードを、「共通出現パターン」に設定するのである（共通出現パターン設定処理に相当）。
【００２８】
例えば、いま、処理対象関数呼出一覧が関数：accept()に関するものであったとする。そして、Ｓ１にて得られた解析結果ファイル１２２２には、下記表１に示されるように、関数：accept()が４箇所（パターン１〜４）の情報が記述されているとする。
【００２９】
【表１】
2007249765.tif 000003
この場合、Ｓ７では、表１に示される解析結果から、表２に示されるように、各関数呼出の前の文が抽出される。
【００３０】
【表２】
2007249765.tif 000004
同様に、表１に示される解析結果から、表３に示されるように、各関数呼出の後の文が抽出される。
【００３１】
【表３】
2007249765.tif 000005
この場合、表１に示される解析結果から抽出された、表２に示される前の文から、抽出される全グローバル識別子及びキーワード，各グローバル識別子及びキーワードの出現数は、表４に示されるようになる。
【００３２】
【表４】
2007249765.tif 000006
表４に示されるように、全グローバル識別子及びキーワードの出現数の総和（出現数合計）は“１０”であるので、出現数が“１”である“MSGOUT_Error_View”についての出現頻度（割合）は“１０％”となり、出現数が“１”である“Pointer”についての出現頻度（割合）は“１０％”となり、出現数が“１”である“MSGOUT_Error”についての出現頻度（割合）は“１０％”となり、出現数が“３”である“if”についての出現頻度（割合）は“３０％”となり、出現数が“３”である“FREE_PTR”についての出現頻度（割合）は“３０％”となり、出現数が“１”である“false”についての出現頻度（割合）は“１０％”となる。このとき、オペレータによって選択された閾値が“２５％”であるとすると、出現頻度が“３０％”である“if”及び“FREE_PTR”が、「共通出現パターン」に設定される。
【００３３】
また、表１に示される解析結果から抽出された、表３に示される後の文から、抽出される全グローバル識別子及びキーワード，各グローバル識別子及びキーワードの出現数は、表５に示されるようになる。
【００３４】
【表５】
2007249765.tif 000007
表５に示されるように、全グローバル識別子及びキーワードの出現数の総和（出現数合計）は“４”であるので、出現数が“４”である“return”についての出現頻度（割合）は“１００％”となる。このとき、オペレータによって選択された閾値が“２５％”であるとすると、出現頻度が“１００％”である“return”は、直ちに「共通出現パターン」に設定される。
【００３５】
次のＳ８では、解析部１２１２は、処理対象関数呼出一覧に含まれる各関数呼出のうち、Ｓ７にて設定した前の文についての「共通出現パターン」をその前の文に有さない関数呼出を、検索する。同様に、処理対象関数呼出一覧に含まれる各関数呼出のうち、Ｓ７にて設定した後の文についての「共通出現パターン」をその後の文に有さない関数呼出を、検索する（検索処理に相当）。
【００３６】
表１の例では、関数：accept()についての全ての関数呼出が後の文についての「共通出現パターン」：returnが含まれているが、前の文についての「共通出現パターン」：“if”又は“FREE_PTR”は、何れもパターン１には含まれない。よって、パターン１における関数呼出が、「共通出現パターン」を有さない関数呼出として、探し出される。
【００３７】
次のＳ９では、解析部１２１２は、Ｓ８にて探し出された前の文についての「共通出現パターン」を有さない関数呼出について、その旨を示す警告メッセージを、ディスプレイ１３上に表示する。同様に、Ｓ８にて探し出された後の文についての「共通出現パターン」を有さない関数呼出について、その旨を示す警告メッセージを、ディスプレイ１３上に表示する（警告メッセージ出力処理に相当）。
【００３８】
表１の例では、パターン１における関数呼出について、「共通出現パターン」を有さない旨が、警告メッセージがディスプレイ１３上に表示される。
【００３９】
次のＳ１０では、解析部１２１２は、Ｓ３にて作成した全ての関数呼出一覧に対して、Ｓ５乃至Ｓ９の処理を実行したか否かをチェックする。そして、全ての関数呼出一覧に対してＳ５乃至Ｓ９の処理を実行した場合には、解析部１２１２は、処理を完了する。
＜作用＞
以上のように構成された本実施例によれば、ソースプログラムから、同じ関数（若しくは、同じ関数名，相互に似ている関数名）の前の文又は後の文で常用されている表現（共通出現パターン）をその前後に有さない関数呼出について、警告メッセージがディスプレイ１３上に表示される。従って、オペレータは、警告メッセージがなされた関数呼出について、規約通りに記述されていない可能性があるとの認識を持つことができ、その認識に基づき、当該関数呼出前後の記述が規約通りに正しく記述されるかどうかを検証することができる。
【００４０】
本実施例によれば、ソースプログラム中に同じ関数（若しくは、同じ関数名，相互に似ている関数名）についての関数呼出が複数（望ましければ３箇所以上）含まれてさえいれば、その関数のチェック項目や引数及び戻り値の組み合わせが、予め、関数呼出以上パターン抽出プログラム中（若しくは、当該プログラムによって参照されるテーブル中）に定義されていなくても、共通出現パターンを設定し、それに基づいて、規約通りに記述されていない可能性がある関数呼出箇所（関数呼出及びその前後の文）を検出することができる。
【図面の簡単な説明】
【００４１】
【図１】本発明の実施例である関数呼出異常パターン抽出プログラムがインストールされているコンピュータの概略構成を示すブロック図
【図２】関数呼出異常パターン抽出プログラム中の解析部のモジュールによってＣＰＵが実行する処理の内容を示すフローチャート
【符号の説明】
【００４２】
１０    ＣＰＵ
１１    ＲＡＭ
１３    ディスプレイ
１２１    関数呼出以上パターン抽出プログラム
１２２    ソースファイル
１２１２    解析部
１２１４    字句／構文解析部
１２１５    関数呼出以上パターン抽出部
１２２２    解析結果ファイル
１２２３    指摘メッセージ
【図１】
2007249765.tif 000008
【図２】
2007249765.tif 000009