(57)【特許請求の範囲】
【請求項１】
少なくとも１つのコマンド有する少なくとも部分的に完成したスクリプタをコンピュータを介して処理する方法であって、前記方法は、構文およびアーギュメントが一致しているかどうかをチェックするものであり、前記方法が、
ａ）前記スクリプトから、現在のアーギュメントを有する評価対象の現在のコマンドを供給するステップと、
ｂ）一組の許容されるコマンドから、前記スクリプト内に定義された変数の前の値と一致する理想的なアーギュメントを有する理想的なコマンドを発生するステップと、
ｃ）前記現在のコマンドを前記理想的なコマンドと比較するステップと、
ｄ）前記ステップｃ）の結果が一致する場合には、前記スクリプトからの第２のコマンドを使用して、前記ステップａ）に戻るステップと、
ｅ）前記ステップｃ）の結果が一致しない場合には、一致が発見されるまで、または前記一組の許容できるコマンドが全部使い果たされるまで、追加の理想的なコマンドに対して、前記ステップｂ）とｃ）とを反復して実行するステップと、
を含むコンピュータ実行ステップにより実行されることを特徴とする方法。
【請求項２】
請求項１に記載の方法において、前記ステップｂ）は、
ｂ１）有効なコマンド構文を表すストリングのリストから、変数を表すサブストリングを有する第１のストリングを検索するステップと、
ｂ２）前記サブストリングを前記変数の前の値で置き換えることにより、前記第１のストリングを改訂するステップとを含むことを特徴とする方法。
【請求項３】
請求項１に記載の方法であって、前記コンピュータ実行ステップはさらに、
ｆ）前記スクリプト内に、一つのコマンドと前記コマンドを使用することができる一つの領域とを示す一つのラインを供給するステップと、
ｇ）前記ラインにより識別される前記領域を決定するステップと、
ｈ）前記領域に対する、一組の許容できるコマンドを検索するステップとを含み、
前記ステップａ）は、前記現在のコマンドを入手するために、前記第１のラインから領域情報を抽出することを特徴とする方法。
【請求項４】
コマンドのシーケンスを有するスクリプトをコンピュータを介して編集する方法であって、前記方法が、
ａ）スクリプトを供給するステップと、
ｂ）前記スクリプトから、変数の値を設定する関連アーギュメントを有する編集対象のコマンドを選択するステップと、
ｃ）前記変数の値を変更するために、前記選択したコマンドの前記関連アーギュメントを更新するステップとを含み、前記スクリプトは、前記変数に対応するが、前記変数の更新値に等しくない定義したアーギュメントを有する第２のコマンドを含んでおり、さらに、
ｄ）前記変数の前記更新値に等しくなるよう前記定義したアーギュメントを更新するために、前記スクリプトを再生するステップと、
を含むコンピュータ実行ステップにより実行されることを特徴とする方法。
【請求項５】
ハイレベルのスクリプト言語で書かれたコマンドのシーケンスを有するスクリプト内の各コマンドをコンピュータを介して解釈する方法であって、前記方法は、構文およびアーギュメントが一致するかどうかをチェックするものであり、前記方法が、
ａ）前記スクリプトから、現在のアーギュメントを有する評価対象の現在のコマンドを供給するステップと、
ｂ）一組の許容されるコマンドから、前記スクリプト内に定義された変数の前の値と一致する理想的なアーギュメントを有する理想的なコマンドを発生するステップと、
ｃ）前記現在のコマンドを前記理想的なコマンドと比較するステップと、
ｄ）前記ステップｃ）の結果が一致する場合には、前記現在のコマンドを実行するステップと、
ｅ）前記ステップｃ）の結果が一致する場合には、前記スクリプトからの第２のコマンドを使用して、前記ステップａ）に戻るステップと、
ｆ）前記ステップｃ）の結果が一致しない場合には、一致が発見されるまで、または前記一組の許容できるコマンドを全部使い果たすまで、追加の理想的なコマンドに対して、前記ステップｂ）とｃ）とを反復して実行するステップと、
ｇ）前記ステップｆ）において一致が発見された場合には、前記現在のコマンドを実行するステップと、
を含むコンピュータ実行ステップにより実行されることを特徴とする方法。
【請求項６】
請求項５に記載の方法において、前記ステップｂ）が、
ｂ１）有効なコマンド構文を表すストリングのリストから、変数を表すサブストリングを有する第１のストリングを検索するステップと、
ｂ２）前記サブストリングを前記変数の前の値で置き換えることにより、前記第１のストリングを改訂するステップとを含む方法。
【請求項７】
請求項５に記載の方法において、さらに、
ｈ）前記スクリプト内に、一つのコマンドと前記コマンドを使用すべき一つの領域とを示す一つのラインを供給するステップと、
ｉ）前記ラインにより識別される前記領域を決定するステップと、
ｊ）前記領域に対する、一組の許容できるコマンドを検索するステップとを含み、
前記ステップａ）が、前記現在のコマンドを入手するために、前記第１のラインから領域情報を抽出する方法。
【請求項８】
コンピュータ読取り可能媒体に実現されている符号部分を有し、プロセッサによって読み取られた場合に、前記プロセッサに請求項１乃至３の何れか１項に記載の方法を実行させることを特徴とするコンピュータ読取り可能媒体。
【請求項９】
コンピュータ読取り可能媒体に実現されている符号部分を有し、プロセッサによって読み取られた場合に、前記プロセッサに請求項４に記載の方法を実行させることを特徴とするコンピュータ読取り可能媒体。
【請求項１０】
コンピュータ読取り可能媒体に実現されている符号部分を有し、プロセッサによって読み取られた場合に、前記プロセッサに請求項５乃至７の何れか１項に記載の方法を実行させることを特徴とするコンピュータ読取り可能媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、スクリプタおよびインタープリタに関し、特に構文および変数の値が、スクリプト全体を通して矛盾しないで列挙／使用されているかどうかをチェックするスクリプタおよびインタープリタに関する。
【０００２】
【従来の技術】
スクリプトは、プロセッサの機械語にコンパイルされ、その後で、プロセッサにより直接実行されるプログラムとは対照的に、プロセッサ上で動作しているプログラムにより解釈、すなわち、実行されるコマンドのシーケンスである。スクリプトを解釈する、このようにプログラムされたプロセッサは、通常、インタープリタと呼ばれる。スクリプトは、テキスト・エディタにより生成することができる。別の方法としては、コマンド、およびプルダウン・メニューからのアーギュメントをアセンブルすることにより、ユーザがスクリプトを書くことができる、グラフィカル・ユーザ・インターフェース（ＧＵＩ）を使用する方法が周知である。このようなスクリプトをするためのＧＵＩは、通常、スクリプタと呼ばれる。
【０００３】
コマンドの構文をチェックする、スクリプタおよびインタープリタは周知である。そのような構文チェックは、（１）そのコマンドが、有効なコマンドかどうかの確認、（２）そのコマンドに対して、必要なアーギュメントが存在するかどうかの確認に限定される。
【０００４】
一例を挙げると、同時係属出願の主題である、無線自動化マネージャ・インターフェース言語（ＷＡＭＩＬ）で書かれたスクリプトについては、無線技術に関する一般的な説明を行った後で説明する。無線技術の一般的な説明は、このスクリプトおよび後に続く他のスクリプトの文脈を確実に理解してもらうためのものである。
【０００５】
大型のシステムは、多くの場合、一人またはそれ以上のユーザが、システム全体の性能をモニタすることができ、特に、大型システムの一つまたはそれ以上のパラメータの状態をモニタすることができるモニタ・システムを備える。ある場合には、上記モニタ・システムがユーザに情報を伝達する方法が重荷になる恐れがある。
【０００６】
上記大型システムの一例としては、ある地理的エリア内に位置する無線ユニットに無線通信サービスを提供する無線通信ネットワークがある。移動交換センター（ＭＳＣ）は、とりわけ、無線ユニット間の呼出しおよび無線ユニットと有線ユニットとの間の呼出しの設定および維持を責任をもって行う。それ故、ＭＳＣは、その地理的エリア内の無線ユニットを公衆交換電話網（ＰＳＴＮ）と相互接続する。ＭＳＣによるサービスを受ける地理的エリアは、「セル」と呼ばれる空間区域に分割される。簡単なブロック図においては、各セルは、蜂の巣パターンの一つの六角形で簡単に表示してある。
【０００７】
【発明が解決しようとする課題】
しかし、実際には、各セルは、セルを囲む地域の地形により、複雑な形をしている。通常、各セルは、基地局を含み、基地局は、無線機、およびそのセル内の無線ユニットと通信するために、基地局が使用するアンテナを備える。基地局は、また、基地局が通信リンクを通して、その地理的エリア内のＭＳＣと通信するために使用する送信装置を備える。場合によっては、一つのセル・サイトが、いくつかのセクターをカバーする場合がある。この場合、セルとセクターとは同じものである。
【０００８】
無線セルラー通信システムにおいては、基地局および無線ユニットは、順方向のリンクおよび反対方向のチャネルを通して、音声および／またはデータを通信する。この場合、順方向のリンクは、少なくとも一つの順方向のチャネルを通して、基地局から無線ユニットに通信信号を運び、反対方向のリンクは、少なくとも一つの反対方向のリンクを通して、無線ユニットから基地局に通信信号を運ぶ。セルラー通信システムにおいて、無線ユニットおよび基地局が、どのようにして通信するのかを決定するためのスキームが、いくつか存在する。例えば、無線ユニットと基地局との間の無線通信リンクは、時分割多重アクセス（ＴＤＭＡ）、周波数分割多重アクセス（ＦＤＭＡ）、符号分割多元接続（ＣＤＭＡ）およびその他を含む、異なる無線プロトコルにより定義することができる。
【０００９】
地理的エリア内においては、ＭＳＣは、ハンドオフと呼ばれる、無線ユニットのセル間の移動が行われた場合、基地局間の呼出しをリアルタイムで交換する。現在、ＦＤＭＡ、ＴＤＭＡ、ＣＤＭＡおよびＧＳＭの場合には、あるセルに対する地理的通達範囲を決定するためのセル・サイト計画は、常に調整を必要とする手動による集中的な作業である。あるセルを計画する際には、利用度およびゾーン区分規則に基づいて、地理的エリアの地形およびアンテナの場所が選択される。このような選択は、通常、最適なものではなく、適当なものである。駆動テストおよび手動による信号法データの収集が、主に、通達範囲エリアの周辺で行われる。呼出しの品質を改善するために、送信アンテナおよび受信アンテナおよび電力が、手動により反復して調整される。場合によっては、通達範囲を改善するために、近隣のセルとの間で周波数の交換が行われ、および／または送信電力の再調整が行われる。時間の経過につれて、セル・サイトのエンジニアは、顧客の苦情およびセル・サイトで通信できなかった呼出し報告を再検討し、手動により、ＲＦ性能を最適化しようと再び試みる。
【００１０】
ルーセント・テクノロジー社は、無線通信システムのパラメータを変更し、それについてのデータを抽出するために、ユーザが使用することができるモニタ・システムを開発した。このモニタ・システムは、ＴＩｐｄｕｎｉｘ（ＴＩ）インターフェース、状況表示ページ（ＳＤＰ）インターフェースおよび／またはＡＵＴＯＰＬＥＸの最近の変更および確認データベース（ＡＰＸＲＣＶ）インターフェースを生成することができる。これらのインターフェースは、個々に使用することができる。しかし、通常、インターフェースの中の一つから抽出された情報は、ある方法または他の方法で、インターフェースの中の第２のインターフェースを使用することを決定するために使用される。あるインターフェースを使用するためには、ユーザは異なるプロセスをスタートしなければならない。ウィンドウズをベースとする環境の場合には、各インターフェース・セッションは、それ自身のウィンドウを持つ。
【００１１】
例示としての第１のスクリプトは下記の通りである。
第１のスクリプト
ライン    コマンド
０１    ＷＡＭ：ＭＳＣ５
０２    ＷＡＭ：ＣＥＬＬ１２３
０３    ＷＡＭ：ＢＢＡ８
０４    ＷＡＭ：ＣＯＮＮＥＣＴ  ＴＩ
０５    ＴＩ：ｏｐ：ｃｅｌｌ  １０１，  ＢＢＡ８
０６    ＷＡＭ：ＤＩＳＣＯＮＮＥＣＴ  ＴＩ
０７    ＷＡＭ：ＥＮＤＴＥＳＴ
【００１２】
ライン２において、変数ＣＥＬＬは、１２３に設定される。ライン５には、既知のＴｉｐｄｕｎｉｘ  Ｉｎｔｅｒｆａｃｅ（ＴＩ）の動作コマンドｏｐが埋設される。完全に埋設されているコマンドは、ｏｐ：ｃｅｌｌ  １０１、ＢＢＡ８である。このコマンドはセル１０１に働きかける。グローバル変数ＣＥＬＬは、ライン２に設定された値（すなわち、値１２３）とは異なる値である。周知のスクリプタまたはインタープリタは、これを、スクリプト内のバグ／エラーとは見なさない。何故なら、これは、単なる状況情報を検索する動作コマンドであるからである。ライン２の値と、ライン５で識別されたセルとの間の相違は無視することができる。
【００１３】
ライン５に埋設されているコマンドが診断コマンド、ｄｇｎである場合には、このコマンドは、潜在的に非常に大きな問題になる恐れがある。診断手順の間には、セルにより呼出しを行うことはできない。そのうえ、診断が始まると、セルは、新しい呼出しを行うことを拒否する。そして、（診断が要求された時点で存在していた）すべての呼出しが終了するまで、実際のテスト手順を始めることはできない。上記呼出しを終了させるのに必要な時間の長さは、これらの呼出しで行われている会話の性質により異なる。診断が終了した後でだけ、そのセルは新しい呼出しを再び取り上げることができる。
【００１４】
第１のスクリプトのライン２は、動作させようとするセルが１２３であることを示す。しかし、ライン５は、矛盾しているが、異なるセル、すなわち、１０１上で動作する。ある人がセル１２３上で診断を行なおうと計画した場合で、診断をうっかりセル１０１上で行った場合には、多くのユーザが混乱しおよび／または不便を被る。
【００１５】
周知のスクリプタおよびインタープリタは、変数値のこのような矛盾した設定を識別することができない。都合の悪いことに、スクリプト内のこのような矛盾は、比較的頻繁に起こることであり、特に、スクリプトが長いか、ユーザが、自分の変更を、スクリプト全体に伝達しなければならないことに気がつかないで、現在のスクリプトを編集した場合には、頻繁に起こる。
【００１６】
スクリプト言語およびその使用は、無線技術だけに限定されない。スクリプトが銀行業界用の適当な言語で書かれたと仮定しよう。ライン２が、変数ＡＣＣＯＵＮＴの値を５６７に設定し、一方、ライン５がある金額を口座５６８に振り込んだ場合には、第１のスクリプトのところで説明したエラーと類似のエラーが起こる。口座５６８の所有者は、喜ぶかも知れないが、（ライン２から明らかな、本来の受取人である）口座５６７の所有者は、少なくとも混乱する。
【００１７】
【課題を解決するための手段】
ある観点から見た場合、本発明は、スクリプト内のコマンドの構文のチェックの必要性だけではなく、スクリプト全体の変数の矛盾のない使用のチェックの必要性を認識する。本発明は、とりわけ、本発明者が、背景技術に存在することを知ったいくつかの問題を解決する。
【００１８】
ある観点から見た場合、本発明は、少なくとも一つのコマンドを含む、少なくとも一部が完成したスクリプトを処理するための方法、（および関連するプログラム、およびプログラムされたデバイス）を提供する。この場合、上記方法は、構文およびアーギュメントが、矛盾していないかどうかをチェックする。上記方法は、ａ）スクリプトから、評価すべき現在のアーギュメントを持つ現在のコマンドを供給するステップと；ｂ）一組の許容できるコマンドから、このスクリプト内で識別した変数の前の値と一致する理想的なアーギュメントを持つ理想的なコマンドを生成するステップと；ｃ）現在のコマンドと上記理想的なコマンドとを比較するステップと；ｄ）ステップｃ）の結果が、一致する場合には、上記スクリプトからの第２のコマンドを使用して、ステップａ）へ戻るステップと；ｅ）ステップｃ）が一致しない場合には、一致が発見されるまで、または許容できる一組のコマンドが使い果たされるまで、追加の理想的なコマンドのために、ステップｂ）およびｃ）を反復して行うステップとを含む。また、上記方法は、さらに、ｆ）ステップｅ）により一致が発見された場合には、上記スクリプトからの第２のコマンドを使用して、ステップａ）へ戻るステップを含むことができる。
【００１９】
ある観点から見た場合、本発明は、コマンドのシーケンスを含むスクリプトを編集するための方法（および関連するプログラムおよび装置）を提供する。上記方法は、ａ）スクリプトを供給するステップと；ｂ）スクリプトから編集する、変数の値を設定する関連アーギュメントを含むコマンドを選択するステップと；ｃ）上記変数の値を変更するために、上記選択したコマンドの上記関連アーギュメントを更新するステップであって、その場合、上記スクリプトが、上記変数に対応するが、上記変数の更新した値と等しくない、定義した変数を持つ第２のコマンドを含むステップと；ｄ）上記変数の更新した値に等しくする目的で、定義したアーギュメントを更新するために、上記スクリプトを再生するステップとを含む。
【００２０】
ある観点から見た場合、本発明は、ハイ・レベルのスクリプト言語で書かれた、そのシーケンスを持つスクリプト内の各コマンドを解釈するための方法（および関連プログラムおよび装置）を提供する。この場合、上記方法は、構文およびアーギュメントが矛盾していないかどうかをチェックする。上記方法は、ａ）スクリプトから評価される、現在のアーギュメントを持つコマンドを供給するステップと；ｂ）一組の許容できるコマンドから、このスクリプト内で識別した変数の前の値と一致する理想的なアーギュメントを持つ理想的なコマンドを生成するステップと；ｃ）現在のコマンドと上記理想的なコマンドとを比較するステップと；ｄ）ステップｃ）の結果が、一致する場合には、現在のコマンドを実行するステップと；ｅ）ステップｃ）が一致する場合には、上記スクリプトから第２のコマンドを使用して、ステップｃ）に戻るステップと；ｆ）ステップｃ）の結果が一致しない場合には、一致が発見されるまで、または許容できる一組のコマンドが使い果たされるまで、追加の理想的なコマンドのために、ステップｂ）およびｃ）を反復して行うステップと；ｇ）ステップｆ）により一致が発見された場合には、現在のコマンドを実行するステップとを含む。上記方法は、さらに、ｈ）ステップｆ）により一致が発見された場合には、上記スクリプトからの第２のコマンドを使用して、ステップａ）へ戻るステップを含むことができる。
以下の詳細な説明を読めば、本発明の上記および他の目的を理解することができるだろう。しかし、本発明の好適な実施形態を示す詳細な説明および特定の例は、説明のためだけのものであることを理解されたい。何故なら、この詳細な説明を読めば、当業者であれば、本発明の精神および範囲から逸脱することなしに、種々の変更および修正を容易に思いつくことができるからである。
【００２１】
以下の詳細な説明を読み、添付の図面を参照すれば、本発明をよりよく理解することができるだろう。上記説明および図面は説明のためだけのものであって、本発明を制限するものではない。
【００２２】
【発明の実施の形態】
好適には、本発明のスクリプタおよび／またはインタープリタは、図４の例示としての略図に示すように実行することが好ましい。上記実施形態は、プロセッサ４０２、ビデオ・ディスプレイ・デバイス（ＶＤＤ）４０６、マウスおよび／またはキーボードのようなユーザ入力デバイス４０８、およびメモリ・デバイス４０４を含む、プログラムされたシステム４００の形をしている。メモリ４０４は、プロセッサ４０２に、本発明のスクリプタおよび／またはインタープリタを生成させる、一つまたはそれ以上のプログラムまたはスクリプトを記憶する。例えば、本発明の実施形態は、二つの言語、すなわち、ツール・コマンド言語（ＴＣＬ）およびＣ言語で書かれている。
【００２３】
コンピュータが読むことができるメモリ４０４は、ＲＡＭ、ＲＯＭ、固定ハードディスク・ドライブ、および／またはフロッピー・ディスクまたはＣＤＲＯＭのような、固定されていないディスク・ドライブ用の、取り外すことができる記憶媒体を含むことができる。プロセッサ４０２に本発明のスクリプタおよび／またはインタープリタを生成させるプログラムは、任意の接続４１２を通して、遠隔地のホスト４１０から、プロセッサ４０２にダウンロードすることができる。任意の接続４１２を通して、プログラムがダウンロードされると、プログラムが実行されている、コンピュータが読むことができる媒体は、伝達された信号の形をとる。
【００２４】
本発明のスクリプタおよび／またはインタープリタの生成は、多くの分類および比較動作、および参照用テーブル（ＬＵＴ）へのアクセスを含む。それ故、プロセッサ４０４は、十分速い速度で確実に結果を供給するだけの十分な処理能力を持つものでなければならない。適当なプロセッサの例としては、インテル社が市販しているプロセッサのペンティアムグループに属するプロセッサがある。
【００２５】
本発明のスクリプタおよびインタープリタは、非常に多くの言語で動作するように調整することができる。本発明のスクリプタおよびインタープリタは、第１の同時係属出願の主題である、無線自動化マネージャ・インターフェース言語（ＷＡＭＩＬ）に特に適している。ＷＡＭＩＬ言語は、コマンド、ＩＦ構造素子、ＷＨＩＬＥ構造素子を含む。ＷＡＭＩＬコマンドは、例えば、ＴＩ：ＯＰ：ＣＥＬＬ  ＡＲＧＵＭＥＮＴ」、「ＷＡＭ：ＣＯＮＮＥＣＴＳＤＰ」または「ＷＡＭ：ＧＥＴＳＤＰ」のような、「インターフェース：コマンド」のフォーマットを持つ。すなわち、ＷＡＭＩＬコマンドは、インターフェースを識別する第１のフィールドと、コマンドを識別する第２のフィールドとを持つ。第１のフィールドは、実際に、第２のフィールドのコマンドが有効なインターフェースを識別する。好適には、第１のフィールドが先行し、すなわち、第１のフィールドが、第２のフィールドに対してヘッダとなり、コロンのような英数字で区切ることが好ましい。
【００２６】
本明細書で説明するＷＡＭＩＬ言語の実施形態は、無線自動化マネージャ・インターフェース言語（ＷＡＭＩＬ）の特定の実施形態である。コマンド、ＩＦ構造素子および（オプションとしての）ＷＨＩＬＥ構造素子の異なる組合せを持つＷＡＭＩＬ言語の多くの変種が、それに対して、本発明のスクリプタおよびインタープリタを動作できるように調整することができるスクリプト言語を実行することができることに留意されたい。
【００２７】
ＷＡＭＩＬ言語の詳細については、同じ譲受人である、ルーセント・テクノロジー社に譲渡された、同じ日付、＿＿＿＿＿付の、同じ発明者のギャスパ・ヘルナンデス  IIIの、「多重インターフェース・スクリプト言語」という名称の、第１の同時係属米国特許出願を参照されたい。この第１の同時係属出願の全文は、引用によって本明細書の記載に援用する。
【００２８】
第１の同時係属出願に記載されているコマンドの中の一つは、「ＧＥＴＳＤＰ」である。このコマンドの詳細については、同じ譲受人であるルーセント・テクノロジー社に譲渡された、同じ日付、＿＿＿＿＿付の、同じ発明者のギャスパ・ヘルナンデス  IIIの、「インジケータを表わす非テキスト表示発生データをテキスト変数に変換する技術」という名称の、第２の同時係属米国特許出願を参照されたい。この第２の同時係属出願の全文は、引用によって本明細書の記載に援用する。
【００２９】
ＷＡＭＩＬ言語でかかれたスクリプトを使用するための、好適なコンテキストの詳細が、同じ譲受人であるルーセント・テクノロジー社に譲渡された、同じ日付、＿＿＿＿＿付の、同じ発明者のギャスパ・ヘルナンデス  IIIの、「リエゾン・インターフェース」という名称の、第３の同時係属出願に含まれている。この第３の同時係属出願の全文は、引用によって本明細書の記載に援用する。
【００３０】
本発明のインタープリタは、コマンド・ラインから、またはグラフィカル・ユーザ・インターフェース（ＧＵＩ）により実行することができる。コマンド・ラインの実行によるユーザの負担を軽減するためのグラフィカル・ユーザ・インターフェース（ＧＵＩ）の詳細については、同じ譲受人である、ルーセント・テクノロジー社に譲渡された、同じ日付、＿＿＿＿＿付の、同じ発明者のギャスパ・ヘルナンデス  IIIの、「コマンド・ライン・ゼネレータ」という名称の、第４の同時係属出願に記載されている。この第４の同時係属出願の全文は、引用によって本明細書の記載に援用する。
【００３１】
＜ＷＡＭＩＬスクリプタ・インターフェース・プロセス要件＞
ＷＡＭＩＬ（無線自動化マネージャ・インターフェース言語）スクリプタ・インターフェースにより、ユーザは、自動化テスト・スクリプトとして、セーブし、その後で、実行することができるＷＡＭＩＬテスト・スクリプトを生成することができる。ＷＡＭＩＬテスト・スクリプトは、例えば、グラフィカル・スクリプタ・インターフェース・プルダウン・メニューから選択された、ＷＡＭＩＬコマンドにより生成することができる。
【００３２】
＜ＷＡＭＩＬスクリプト発生プロセス＞
新しいＷＡＭＩＬテスト・スクリプトを生成するためには、ユーザは、単に、ＷＡＭＩＬスクリプタ・インターフェース・プルダウン・メニューから、一度に一つずつ、必要なＷＡＭＩＬコマンドを選択し、その後で、完了後、ユーザのホーム・ディレクトリ、またはＷＡＭＩＳＨＡＲＥサブ・ディレクトリ、またはＷＡＭＩＬスクリプト・テキスト入力ボックス内にユーザが入力する指定のファイル名の他のどこかに完成したスクリプトをセーブしさえすればよい。ＷＡＭＩＬコマンドをプルダウン・メニューから選択すると、これらコマンドは、「テスト・スクリプト」リスト・ボックスにシーケンシャルな順序で追加される。ＷＡＭＩＬコマンドが「テスト・スクリプト・リスト・ボックスに追加される度に、コマンドの前に一意のライン番号が現われる。完成したＷＡＭＩＬスクリプトをセーブするには、ユーザは、単に、セーブＷＡＭＩＬスクリプト・コマンド・ボタンを選択しさえすればよい。
【００３３】
ユーザが生成したすべてのＷＡＭＩＬスクリプトは、（このＷＡＭＩＬ実施形態の場合）、拡張子ｗａｍｉｌを持っていなければならない。例えば、ｊｔ１２４２という名称のＷＡＭＩＬスクリプト・ファイルは、ｊｔ１２４２．ｗａｍｉｌとしてセーブされる。スクリプタは、自動的に拡張子「ｗａｍｉｌ」を追加する。
【００３４】
ＷＡＭＩＬスクリプタ・インターフェース・プルダウン・メニューは、すべてのＡＰＸ、ＳＤＰ、ＷＡＭおよびＴＩインターフェース・コマンドをサポートする。各プルダウン・メニューにより、ユーザは、特定のＷＡＭＩＬコマンドを選択し、構成することができる。
【００３５】
＜ＷＡＭＩＬスクリプトの例＞
ＷＡＭＩＬスクリプトの例を以下に示す。
ライン    コマンド
０１    ＷＡＭ：ＩＮＩＴＩＡＬＩＺＥ
０２    ＷＡＭ：ＰＲＩＮＴ  Ｔｅｓｔ  Ｃａｓｅ：ｊｔ１２４２
０３    ＷＡＭ：ＤＡＴＥ
０４    ＷＡＭ：ＴＩＭＥ
０５    ＷＡＭ：ＭＳＣ５
０６    ＷＡＭ：ＣＥＬＬ１０１
０７    ＷＡＭ：ＣＣＣ２３
０８    ＷＡＭ：ＧＥＴＡＰＸ  ｂａｃｋｕｐ  ｃｅｌｌ２
０９    ＷＡＮＴ：ＰＵＴＡＰＸ  ｃｅｌｌｓ  ｊｔｌ２４２
１０    ＷＡＭ：ＥＸＥＣ  ＳＨＡＲＥ  ｉｎｉｔｓｃｒｉｐｔ
１１    ＷＡＭ：ＣＯＮＮＥＣＴ  ＴＩ
１２    ＩＦ：ＬＦＡＩＬ
１３    ＴＨＥＮＤＯ：
１４        ＷＡＭ：ＥＮＤＴＥＳＴ
１５    ＥＬＳＤＯ：
１６    ＥＮＤＩＦ：
１７    ＴＩ：ＯＰ：ＣＥＬＬ  １０１，ｃｃｃ２３
１８    ＩＦ：ＣＯＭＰＬＥＴＥＤ
１９    ＴＨＥＮ：ＣＯＮＴＩＮＵＥ
２０    ＥＬＳＩ：ＷＡＩＴＱＵＥＲＹ  １０  ＴＩ５
２１    ＩＦ：ＯＭＳＧ：ＣＣＣ２３  ＡＣＴＩＶＥ
２２    ＴＨＥＮＤＯ
２３        ＷＡＭ：ＥＸＥＣ  ＳＨＡＲＥ
２４    ＥＬＳＥＤＯ：
２５        ＷＡＭ：ＰＵＴＡＰＸ  ｃｅｌｌ２  ｂａｃｋｕｐ
２６    ＥＮＤＩＦ：
２７    ＷＡＭ：ＥＮＤＴＥＳＴ
【００３６】
ライン１においては、ＷＡＭＩＬスクリプトは、最初、すべてのＷＡＭＩ変数をその初期状態に初期化する。その後で、スクリプトは、（ライン２）ＷＡＭＩＬスクリプト報告ファイルに、テキスト、テスト・ケース：ｊｔ２４２を印刷し、（ライン３−４）日付および時間を報告書ファイルに印刷し、（ライン５−７）移動交換センター変数ＭＳＣを５に設定し、セル変数ＣＥＬＬを１０１に設定し、変数ＣＣＣを２３に設定する。
【００３７】
次に、ＷＡＭＩＬスクリプトは、（ライン８）ＭＳＣ５、セル１０１、セル２ＤＢ形式を主ＤＢファイル名のユーザのホーム出力サブディレクトリにセーブし、バックアップし、その後で、（ライン９において）ＡＰＸＲＣＶインターフェースを通して、主ＤＢファイルｊｔ１２４２を使用して、ユーザのホーム出力サブディレクトリからセル２ＤＢ形式の新しいバージョンをリストア（ダウンロード）する。
【００３８】
その後で、スクリプトは、（ライン１０）ＷＡＭＩ  ＳＨＡＲＥ  ｗａｍ．ｗａｍｉｌサブディレクトリ内に位置するＷＡＭＩＬスクリプト  ｉｎｉｔｓｃｒｉｐｔを実行する。ＷＡＭＩＬ  ｉｎｉｔｓｃｒｉｐｔの実行が終了した場合、ＷＡＭＩＬスクリプトは、（ライン１１）をＴＩインターフェースに接続しようと試みる。この試みが成功した場合には、スクリプトは、（ライン１７）を次のＷＡＭＩＬコマンドに継続する。上記試みが成功しなかった場合には、スクリプトは、ライン１４のところでテストを終了する。
【００３９】
ＴＩインターフェースへの接続が行われると、ＷＡＭＩＬスクリプトは、（ライン１７）ＴＩ  ｏｐ：ｃｅｌｌ  １０１，ｃｃｃ  ２３コマンドを実行して、応答待ちになる。「完成した」出力メッセージをＴＩインターフェースから受信した場合には、スクリプトは、（ライン１９）次のＷＡＭＩＬコマンドに継続する。「完成した」出力メッセージを受信しない場合には、スクリプトは（ライン２０）１０秒間待機して、ＴＩインターフェースに、５回まで出力メッセージについて問い合わせを行う。ＷＡＭＩＬスクリプトは、「完成した」出力メッセージを受信するか、または上記回数が回数切れになるまで、ＴＩインターフェースに、１０秒毎に５回まで引続き問い合わせを行う。
【００４０】
「完成した」出力メッセージを受信した場合には、ＷＡＭＩＬスクリプトは、ＣＣＣ２３が能動状態にあるかどうかを判断するために、出力メッセージ（ライン２１）テストする。ＣＣＣが能動状態にある場合には、スクリプトは、ＷＡＭＩ  ＳＨＡＲＥ  ｗａｍ．ｗａｍｉｌサブディレクトリ内に位置する、ＷＡＭＩＬスクリプトｊｔ１２４３（ライン２３）を実行し、テストを終了する（ライン２７）。ＣＣが能動状態でない場合には、スクリプトは、主ＤＢファイル・バックアップから、スクリプトの初めのところでセーブした、セル２ＤＢ形式を復元（ライン２５）し、テストを終了する（ライン２７）。
【００４１】
＜ＷＡＭＩＬスクリプト構文および変数一致チェック機能＞
ユーザは、任意の時間に、「スクリプタ・テスト・スクリプト」リスト・ボックスに現在ロードされているＷＡＭＩＬスクリプトの構文をチェックすることができる。ＷＡＭＩＬスクリプタ・インターフェース・プルダウン・メニューから発生したスクリプトは、構文エラーを含んでいないが、この機能は、ＷＡＭＩＬスクリプタ・インターフェース・コマンド挿入機能を使用して、特定のＷＡＭＩＬコマンドを挿入した、ユーザのための機能として存在するものである。
【００４２】
現在ロードされているスクリプトの構文および変数が、一致しているかどうかをチェックするためには、ユーザは、単に、スクリプト構文コマンド・チェック・ボタンを選択しさえすればよい。そうすると、無線自動化マネージャ（ＷＡＭ）インタープリタ（ＷＡＭＩ）が、実行中のスクリプトの打ち切り、または不履行を起こすなんらかのエラーを探して、スクリプト内の各ラインの構文をチェックする。
【００４３】
スクリプト内で構文エラーを発見した場合には、ＷＡＭＩは、スクリプト・ライン番号、および構文エラーを発見したＷＡＭＩＬコマンドを含む適当なエラー・メッセージを表示する。
【００４４】
ＷＡＭインタープリタによる構文エラー・チェックは、また、スクリプトが、実行を成功させるために必要なキーＷＡＭＩＬコマンドを含んでいることの確認も含む。例えば、ＭＳＣおよびセル番号が設定されているＷＡＭＩＬコマンドは、（ＷＡＭＩＬのこの特定の実施形態の場合には）、ＷＡＭＩＬスクリプト内に含まれていなければならない。そうでない場合には、インタープリタは、現在のセルまたはＷＡＭＩに定義されているＭＳＣ番号が、特定のインターフェース・コマンドを拡張するために使用する値であると見なす。それ故、インターフェース・コマンドのセル番号が、ＷＡＭＩに定義されている現在のセル番号と異なっている場合には、構文エラーが発生する。すなわち、インタープリタおよびスクリプタも、構文エラーと変数値の両方が一致しているかどうかを、すなわち、スクリプト内での変数の使用／反復使用が矛盾していないかどうかをチェックする。
【００４５】
構文および変数値の一致のチェックについては、後でもっと詳細に説明する。
【００４６】
＜ＷＡＭＩＬコマンド選択機能＞
ユーザは、「スクリプタ・テスト・スクリプト」リスト・ボックス内に、現在ロードされているＷＡＭＩＬスクリプトから、任意のＷＡＭＩＬコマンドを選択し、編集することができる。ＷＡＭＩＬコマンドを編集するには、ユーザは、単に、あるコマンドをダブルクリックしさえすればよい。そうすると、そのコマンドが「現在のコマンド」選択テキスト入力ボックス内に表示される。その後で、ユーザは、必要に応じて、そのコマンドを編集することができ、選択したコマンドを新しく編集したコマンドで置き換えることができる。
【００４７】
新しく編集したコマンドが構文エラーを含んでいる場合には、ＷＡＭＩは、エラーを説明するエラー・メッセージを表示し、「テスト・スクリプト」リスト・ボックス内の選択したコマンドの置換えは行われない。
【００４８】
ＷＡＭＩＬスクリプタ・インターフェースは、存在するコマンドだけを同じタイプのコマンドで置き換えることができる。ＷＡＭＩＬスクリプタ・インターフェースは、ユーザが、存在するコマンドを異なるタイプ編集したコマンドで置換えることを許さない。
【００４９】
＜ＷＡＭインタープリタ・プロセス要件＞
図１は、本発明のインタープリタの一実施形態が実行するプロセス全体のフローチャートである。
【００５０】
ＷＡＭインタープリタは、図１のステップ１０２からスタートし、ステップ１０４のところでＷＡＭＩＬスクリプト・ファイルから、ＷＡＭＩＬコマンドを読み込む。ＷＡＭＩＬスクリプト・ファイルは、好適には、ファイル名に追加された拡張子ｗａｍｉｌを含んでいることが好ましい。例えば、ｊｔ１２４２というスクリプト・ファイルは、ｊｔ１２４２．ｗａｍｉｌというファイル名でセーブされる。ユーザが生成した（ＷＡＭＩＬのこの特定の実施形態の場合の）すべてのＷＡＭＩＬスクリプトは、好適には、（ＷＡＭＩへのホームと呼ばれる）ＷＡＭＩ  ｗａｍ．ｗａｍｉｌユーザ・ディレクトリに記憶することが好ましいが、他の任意の場所にセーブすることもできる。
【００５１】
ＷＡＭＩＬラインは、インターフェース・コマンド、またはＩＦ構造素子またはＷＨＩＬＥ構造素子のようなＷＡＭＩＬコマンドを含む。インタープリタは、ＷＡＭＩＬスクリプト・ファイルから、一度に一つずつＷＡＭＩＬコマンドを読み出して実行する。
【００５２】
ステップ１０６においては、コマンドが、ＩＦ構造素子ではなく、インターフェース・コマンドである場合には、そのコマンドに対応するインターフェースが、サポートされているかどうかが判断される。サポートされていない場合には、処理はステップ１０８に進み、スクリプトは打ち切られる。その後で、処理はステップ１１０に進み、そこでユーザに対して、スクリプトが打ち切られたという通知または警告が行われ、終了ステップ１１２に進む。しかし、インターフェースがサポートされる場合、処理はステップ１１４に進む。
【００５３】
ステップに１１４おいては、構文および変数が、矛盾していないかどうかのチェックが行われる。正しくない場合には、処理はステップ１０８等へ進む。しかし、構文および変数値が正しく、判断ステップ１１６において、コマンドが、ＷＡＭＩインターフェース・コマンドであることを判明した場合には、または判断ステップ１２６で、ＩＦ構造素子と認識されず、それにより、暗黙にそのコマンドが、非ＷＡＭＩインターフェースに対する、インターフェース・コマンドであると、判断された場合には、ＷＡＭインタープリタは、対応するコマンドを、それぞれ、ステップ１３０およびステップ１３２において、インターフェースに送り、その実行が終了するのを待つ。（この時点で、処理はステップ１２０へ進む。）ＷＡＭインタープリタは、少なくとも下記のインターフェース、すなわち、ＴＩインターフェース（ＴＩｐｄｕｎｉｘインターフェース）；ＳＤＰインターフェース（状況表示ページ・インターフェース）；ＡＰＸインターフェース（ＡＰＸＲＣＶインターフェース）；およびＷＡＭＩインターフェース（内部ＷＡＭプラットフォーム・コマンド）に対してＷＡＭＩＬコマンドをサポートする。
【００５４】
ここでもまた、インターフェース・コマンド構文および変数値の一致が、ステップ１１４において無効である場合には、または、インターフェースが、ステップ１０６において、サポートされていない場合には、ＷＡＭインタープリタは、すなわち、ステップ１０８においてスクリプトを打ち切り、ステップ１１０において、ユーザに構文エラーまたはインターフェース・エラーが発生した、ＷＡＭＩＬスクリプトのライン番号を通知する。
【００５５】
ステップ１３２において、ＷＡＭＩＬインターフェースを実行した場合には、インタープリタのＯｕｔＢｕｆｆバッファが、インターフェース・セッションから、インターフェース出力を保持する。ＯｕｔＢｕｆｆの内容は、他のＴＩ、ＳＤＰまたはＡＰＸ  ＷＡＭＩＬコマンドが実行されるまで、またはバッファをフラッシュするために、ＷＡＭプラットフォーム・コマンドが実行されるまで、変化しないで元のままの状態に維持される。（このＷＡＭＩＬ実施形態の場合には）、任意のＴＩ、ＳＤＰまたはＡＰＸ  ＷＡＭＩＬコマンドを実行する前に、ＯｕｔＢｕｆｆはいつでもフラッシュされる。
【００５６】
ＷＡＭＩＬコマンドの実行が成功した場合には、ＯｕｔＢｕｆｆは下記のように処理される。ａ）（ステップ１３２において）実行される次のＷＡＭＩＬコマンドが、ＴＩまたはＳＤＰコマンドである場合には、ステップ１３０において、ＯｕｔＢｕｆｆがフラッシュされる。ｂ）実行対象の次のＷＡＭＩＬコマンドが、（ステップ１１１６において、決定した）バッファを、フラッシュするＷＡＭプラットフォーム・コマンド以外のＷＡＭプラットフォーム・コマンドである場合には、ＷＡＭコマンドが実行され、ＯｕｔＢｕｆｆはそのまま変化しない。ｃ）実行対象の次のＷＡＭＩＬコマンドが、（ステップ１２６において、決定した）ＷＡＭＩＬ  ＩＦコマンド構造である場合には、（ステップ１２８において）ＯｕｔＢｕｆｆの内容が処理される。
【００５７】
ＷＡＭＩＬスクリプトが終了した場合には、ＷＡＭインタープリタは、好適には、（ステップ１２４において）、下記の処理を行うことが好ましい。ａ）ＷＡＭＩＬスクリプトの実行中に開いていた、すべてのＷＡＭインターフェース接続を閉じる。ｂ）スクリプトのために、ＷＡＭＩＬ  Ｉ／Ｏログ・ファイルへの任意のデータの追加を終了し、ファイルを閉じ、スクリプト報告としてセーブする。ｃ）スクリプトのために生成されたものがある場合には、ＯｕｔＢｕｆｆ宛先変更ファイルへの、すべてのログ・データの追加を終了し、ファイルを閉じる。ｄ）ＯｕｔＢｕｆｆをフラッシュする。
【００５８】
ＷＡＭＩＬスクリプトが、（ステップ１２０において決定したように）完成すると、ＷＡＭＩは、ＷＡＭＩＬスクリプトが、（ステップ１２２において、決定したように）一緒にリンクしない限りは、そのアイドル状態に戻る。この時点で、ＷＡＭインタープリタは、リンクしたリストの形で、次のＷＡＭＩＬスクリプトの実行を開始する。
【００５９】
＜ＷＡＭインターフェース言語（ＷＡＭＩＬ）要件＞
この節では、ＷＡＭＩＬ（ＷＡＭインターフェース言語）コマンドの構造および構文を繰り返して説明する。
【００６０】
ＷＡＭＩＬインターフェース・コマンドのフォーマットは、下記に示すものでなければならない。
ＴＩ：ｏｐ：ｃｅｌｌ，ｇｅｎｅｒｉｃ
【００６１】
テキスト・ストリング、ＴＩは、コマンドが対応するインターフェースを示す。コロン以後の残りの構文は、特定の埋設インターフェース・コマンドである。ＷＡＭＩは、少なくとも下記の各インターフェース、すなわち、ＴＩインターフェース（ＴＩｐｄｕｎｉｘインターフェース）；状況表示ページ（ＳＤＰ）インターフェース；ＡＰＸインターフェース（ＡＰＸＲＣＶインターフェース）；およびＷＡＭＩインターフェース（内部ＷＡＭＩプラットフォーム・コマンド）に対してインターフェース言語をサポートする。
【００６２】
＜ＷＡＭＩＬ  ＴＩインターフェース・コマンド要件＞
ＷＡＭＩＬ  ＴＩインターフェース・コマンドは、下記のフォーマットを持っていなければならない。
ＴＩ：ｏｐ：ｃｅｌｌ，ｇｅｎｅｒｉｃ
【００６３】
ＷＡＭインタープリタは、すべてのＴＩｐｄｕｎｉｘ関連のＴＩコマンドをサポートする。ＴＩコマンドは、ユーザの構成設定に従って生成しなければならない。例えば、ユーザがｃｅｌｌ９３およびＣＣＣ２を選択した場合、またはこれらのパラメータをＷＡＭＩＬプラットフォーム・コマンドにより設定した場合には、コマンドｐｏ：ｃｅｌｌ  ｘ，ｃｃｃｙが下記のように生成される。
ＴＩ：ｏｐ：ｃｅｌｌ９３，ｃｃｃ２
【００６４】
ＷＡＭＩプラットフォーム・インターフェース・コマンド要件
この節においては、スクリプト変数、入力／出力パラメータ、およびスクリプト・ループ形成技術を変更するために、ＷＡＭＩＬスクリプト内で使用することができる、ＷＡＭＩプラットフォーム・インターフェース・コマンドについて説明する。
【００６５】
ＷＡＭＩプラットフォーム・インターフェース・コマンドは、下記のフォーマットを持つものでなければならない。
ＷＡＭ：ＣＥＬＬ  ９３
【００６６】
この場合、ＣＥＬＬは、ＷＡＭＩインターフェース・コマンドであり、その一例であり、９３という値は、コマンド・アーギュメントの一例である。ＷＡＭインタープリタは、（このＷＡＭＩＬ実施形態の場合）すべての存在するＷＡＭ変数、入力／出力プロセス、ファイル選択プロセス、およびデータ宛先変更プロセスに対して、すべてのＷＡＭＩプラットフォーム・インターフェース・コマンドをサポートするものでなければならない。
【００６７】
0003732731.tif 000002
0003732731.tif 000003
0003732731.tif 000004
0003732731.tif 000005
0003732731.tif 000006
0003732731.tif 000007
0003732731.tif 000008
0003732731.tif 000009
0003732731.tif 000010
0003732731.tif 000011
【００６８】
＜ＷＡＭＩ変数の初期状態＞
この節では、（ＷＡＭＩＬのこの特定の実施形態に対する）プラットフォーム上に存在する、すべての予め定めたＷＡＭＩ変数、およびＷＡＭの最初の始動時のその初期状態を列挙し、説明する。これら変数は、また、ＷＡＭ：ＩＮＩＴＩＡＬＩＺＥ  ＷＡＭＩＬコマンドを実行するとその初期状態に戻る。
【００６９】
以下に、ＷＡＭ変数の名称、値および説明の簡単なリストを示す。
0003732731.tif 000012
0003732731.tif 000013
【００７０】
＜ＩＦ構成要件のＷＡＭＩＬ  ＩＦ  ＴＥＨＮ  ＥＬＳＥタイプ＞
この節では、バッファのＯｕｔＢｕｆｆ内に記憶されていて、テスト結果が真または偽である場合、指定のＷＡＭＩＬコマンドを実行するＷＡＭＩＬインターフェース・コマンドの結果をテストするのに、ＩＦ構造のＩＦ  ＴＥＨＮ  ＥＬＳＥタイプで使用することができるＷＡＭＩＬ  ＩＦテスト表現について説明する。
【００７１】
ＩＦ構造のＩＦ  ＴＥＨＮ  ＥＬＳＥタイプの一例は、下記のような構成になっている。
ＩＦ：ＧＥＮＥＲＩＣａ３４ｙ１２．０ｔ
ＴＨＥＮ：ＰＲＩＮＴ  Ｐａｓｓ
ＥＬＳＥ：ＣＯＮＴＩＮＵＥ
【００７２】
この場合、一般的なａ３４ｙ１２．０ｔは、実際のＷＡＭＩＬテスト表現であり、ＰＲＩＮＴは、テストの結果が真である場合に実行される、（それに対して、テストストリング「Ｐａｓｓ」が、印刷されるアーギュメントである）ＷＡＭＩＬコマンドであるＣＯＮＴＩＵＥは、テストの結果が偽である場合に、実行されるＷＡＭＩＬコマンドである。（ＷＡＭＩＬのこの特定の実施形態に対する）すべてのＷＡＭＩＬのＩＦ  ＴＨＥＮ  ＥＬＳＥ構造は、（ＷＡＭＩＬのこの特定の実施形態に対して）完全なものでなければならないし、一つのＩＦを持ち、少なくとも一つのＴＨＥＮおよび一つのＥＬＳＥを持つものでなければならない。ＷＡＭインタープリタは、好適には、不完全なＩＦ  ＴＨＥＮ  ＥＬＳＥ構造を受け付けないことが好ましい。（このＷＡＭＩＬ実施形態においては）いかなる不完全なＩＦ  ＴＨＥＮ  ＥＬＳＥ構造も、好適には、ＷＡＭインタープリタからの構文エラーを発生することが好ましい。
【００７３】
ＷＡＭインタープリタは、（ＷＡＭＩＬのこの特定の実施形態に対する）すべてのＷＡＭＩＬインターフェース・コマンド出力に対して、ＩＦテスト表現をサポートする。ＷＡＭＩＬのＩＦテスト表現は、ＷＡＭインタープリタ出力バッファＯｕｔＢｕｆｆの内容、または変数のフラグの状態または値に対して評価される、特定のテストを意味するものでなければならない。変数またはフラグの場合には、このテストは、現在のＷＡＭ変数値またはフラグ状態に対して評価される。例えば、上記ＷＡＭＩＬのＩＦ  ＴＨＥＮ  ＥＬＳＥ構造を実行した場合には、テスト表現、ＧＥＮＥＲＩＣ ａ３４ｙ１２．０ｔは、特定の一般的なロード番号が、現在のＷＡＭＩセル変数に対する、現在のＷＡＭＩの一般的な変数設定に等しいかどうかをテストする。
【００７４】
下記の表は、ＷＡＭＩＬのＩＦキーワード、およびＷＡＭＩＬのＴＨＥＮおよびＥＬＳＥコマンドのリストを示す。
0003732731.tif 000014
0003732731.tif 000015
0003732731.tif 000016
【００７５】
＜ＩＦ  ＴＨＥＮＤＯ  ＥＬＳＥＤＯ  ＥＮＤＩＦタイプのＩＦ構造＞
この節では、ＩＦテスト表現の結果に基づいて、コマンドの一つのグループを実行するために、（このＷＡＭＩＬの実施形態の）すべてのＩＦ構造コマンドと一緒に使用することができる、ＩＦ構造のＷＡＭＩＬのＩＦ  ＴＨＥＮＤＯ  ＥＬＳＥＤＯ  ＥＮＤＩＦタイプについて説明する。
【００７６】
ＷＡＭＩＬのＩＦ  ＴＨＥＮＤＯ  ＥＬＳＥＤＯ  ＥＮＤＩＦ構造は、下記のようの構成される。
ＩＦ：ＧＥＮＥＲＩＣａ３４ｙ１２．０ｔ
ＴＨＥＮＤＯ：
ＷＡＭ：ＰＲＩＮＴセルの一般名が有効である。
ＩＦ：ＡＣＴＩＶＩＴＹ  ＮＯ（活動していないなら、）
ＴＨＥＮ：ＰＲＩＮＴ現在のセル上では、活動は行われていない。
ＥＬＳＥ：ＥＮＤＴＥＳＴ（テスト終了）
ＥＬＳＥＤＯ：
ＷＡＭ：ＰＲＩＮＴセルの一般名は正しくない。
ＷＡＭ：ＥＮＤＴＥＳＴ
ＥＮＤＩＦ：
【００７７】
（ＷＡＭＩＬのこの特定の実施形態に対する）ＴＨＥＮＤＯ構造とＥＬＳＥＤＯ構造の間のすべてのコマンドは、ＩＦコマンドの実行結果が真である場合に実行され、（ＷＡＭＩＬのこの特定の実施形態に対する）ＥＬＳＥＤＯとＥＮＤＩＦの間のすべてのコマンドは、ＩＦコマンドの実行結果が偽である場合に実行される。
【００７８】
すべてのＷＡＭＩＬ  ＩＦ  ＴＨＥＮＤＯ  ＥＬＳＥＤＯ  ＥＮＤＩＦ構造は、（ＷＡＭＩＬのこの特定の実施形態に対して）完全なものでなければならないし、一つのＩＦ、一つのＴＨＥＮＤＯ、一つのＥＬＳＥＤＯ、および一つのＥＮＤＩＦを含んでいなければならない。ＷＡＭインタープリタは、不完全な構造を受け入れない。（このＷＡＭＩＬ実施形態の）すべての不完全な構造体は、ＷＡＭインタープリタから構文エラーを発生する。任意のＷＡＭＩＬ  ＩＦ  ＴＨＥＮＤＯ  ＥＬＳ構造体は、（このＷＡＭＩＬ実施形態の）任意のＴＨＥＮＤＯ  ＥＬＳＥＤＯ、またはＥＬＳＥＤＯ  ＥＮＤＩＦ構造に、入れ子状態の挿入することができる。また、必要な場合には、ＩＦ  ＴＨＥＮＤＯ  ＥＬＳＥＤＯ  ＥＮＤＩＦ構造体を、他のＩＦ  ＴＨＥＮＤＯ  ＥＬＳＥＤＯ  ＥＮＤＩＦ構造体内に入れ子状態に挿入することができる。
【００７９】
＜ＷＡＭＩＬスクリプト実行プロセス＞
ユーザは、ＷＡＭグラフィカル・ユーザ・インターフェース（ＧＵＩ）メイン・メニュー・ツールのプルダウン・メニューから、または、例えば、上記第４の同時係属出願により促進するために、コマンド・ラインから、Ｒｕｎ  Ｓｃｒｉｐｔを選択することにより、スクリプトを実行することができる。Ｒｕｎ  Ｓｃｒｉｐｔコマンドを選択すると、そのコマンドは、プルダウン・メニューの下の現在の選択コマンド・ボックス内に表示される。
【００８０】
その後で、ユーザは、実行コマンド・ボタンを単に選択しさえすれば、ＷＡＭＧＵＩが確認するようにユーザにプロンプトした後で、ＷＡＭＩＬスクリプトが実行される。
【００８１】
ＷＡＭＩＬスクリプトが実行されると、ＷＡＭ  ＧＵＩは、スクリプトをインタープリタに送り、独立した形でテストが行われる。この時点以降、ＷＡＭ  ＧＵＩセッションは、スクリプトの実行、または任意の現在行われている実行から独立して行われる。ＷＡＭインタープリタは、好適には、スクリプトを実行すこことができ、スクリプトがスタートする前に、ユーザが指定したように、ＷＡＭＧＵＩプラットフォームから独立して、スクリプト出力を行えるものであることが好ましい。
【００８２】
しかし、ＷＡＭＩＬスクリプトをスタートする前であって、実行を行う前に、ＷＡＭ  ＧＵＩは、選択したＷＡＭＩＬスクリプト・ファイルを探索し、アーギュメントとして、インタープリタに送る必要がある任意のＷＡＭＩＬ変数をチェックする。その後で、ＷＡＭ  ＧＵＩは、スクリプトをスタートする前に、必要な各変数に対してユーザをプロンプトし、必要な場合には、スクリプト名と一緒にその値をＷＡＭインタープリタに送る。
【００８３】
スクリプトがスタートすると、ＷＡＭＧＵＩは、「ＷＡＭＧＵＩの現在の選択」を、スクリプト名、スクリプト報告名、およびスクリプト状況状態と一緒に表示する。スクリプト報告名は、報告のファイル名が選択したＷＡＭＩＬスクリプト内に定義されていない限りは、ＷＡＭＩＬスクリプト名でなければならない。
【００８４】
実行した各ＷＡＭＩＬスクリプトに対して、ＷＡＭは、入力をＷＡＭＩＬ  ｅｘｅｃ．ｗａｍファイルに追加する。
【００８５】
好適には、ＷＡＭＩＬスクリプト状況状態は、下記の表のように定義することが好ましい。
0003732731.tif 000017
【００８６】
ＷＡＭＧＵＩは、上記のすべての状況を表示することはできないが、ＷＡＭインタープリタは、ＷＡＭＩＬスクリプトを実行している際に、これら状況の中の任意のものを表示することができる。しかし、「ＷＡＭＧＵＩの現在の選択」は、他のスクリプトが実行されるまで、またはスクリプトが打ち切られるまで、変化しないでそのままの状態を維持される。
【００８７】
＜ＷＡＭＩＬスクリプト打ち切りプロセス要件＞
進行中のＷＡＭＩＬスクリプトの実行は、ＷＡＭＧＵＩプラットフォームを通して、（このＷＡＭＩＬ実施形態中の）任意の時点で打ち切ることができる。好適には、この打ち切りは、それによりスクリプトを打ち切ることができる、（ＷＡＭＩＬのこの特定の実施形態に対する）唯一の方法であることが好ましい。別の方法としては、ＷＡＭインタープリタは、また、スクリプト状況表示ウィンドウを通して、スクリプトを打ち切る能力を持つことができる。
【００８８】
実行中のＷＡＭＩＬスクリプトは、これらの方法の中のどれかによって打ち切るべきであり、そうでない場合には、（ＷＡＭＩＬのこの特定の実施形態に対する）スタートしたＷＡＭＩＬスクリプトの、すべての存在する子のスクリプトすべてを終了させることはできない。スクリプトを打ち切るために、ＷＡＧＵＩが提供する上記方法以外の、他の方法を使用した場合には、存在するプロセスおよび接続を終了させることはできない。
【００８９】
ＷＡＭＩＬスクリプトを打ち切るためには、ユーザは、ＷＡＭＧＵＩメイン・メニュー・ツール・プルダウン・メニューから、（ＷＡＭＩＬのこの特定の実施形態に対して）「スクリプト状況．．．」コマンドを選択しなければならない。選択した場合、「ＷＡＭＧＵＩスクリプト状況」ウィンドウが標示される。
【００９０】
ＷＡＭ  ＧＵＩスクリプト状況ウィンドウは、下記のフォーマットで、時間の経過中に、実行された現在のユーザの、ＷＡＭＩＬスクリプトの経歴を表示する。
日付  スクリプト名  スクリプト状況
【００９１】
この場合、日付は、ＹＹ：ＭＭ：ＤＤ：ＨＨ：ｍｍ：ＳＳというフォーマットの、ＷＡＭＩＬスクリプトが実行された、または実行する予定のシステムの日付および時間である。この場合、ＹＹは２桁の年であり、ＭＭは２桁の月であり、ＤＤは２桁の日であり、ＨＨは２桁の時間であり、ｍｍは２桁の分であり、ＳＳは２桁の秒であり、スクリプト名は、ＷＡＭＩＬスクリプト名であり、スクリプト状況は、ＷＡＭＩＬスクリプトの現在の状況状態である。この情報は、「スクリプト状況」リスト・ボックス内に表示される。スクリプト名は、アルファベット順に配列されている。ＷＡＭ  ＧＵＩは、一意のプロセスＩＤ番号のような、スタートしたスクリプトに関する他の情報も含んでいるが、この情報は、ユーザには表示されない。この情報は、以下に説明するように、ＷＡＭＩＬ  ｅｘｅｃ．ｗａｍファイルに含まれる。
【００９２】
進行中のＷＡＭＩＬスクリプトの実行を打ち切るには、ユーザは、単に、「スクリプト状況」リスト・ボックス内の、必要なＷＡＭＩＬスクリプト名をダブルクリックしさえすればよい。その後で、スクリプト名が、ウィンドウの一番下の部分に表示される。その後で、ユーザは、打ち切りコマンド・ボタンを選択する。すると、ＷＡＭ  ＧＵＩは、ユーザに確認するようにプロンプトした後で、スクリプト、およびそのすべての子のプロセスおよび関連接続を終了する。
【００９３】
その後で、「スクリプト状況」表示リスト・ボックスは、選択したスクリプトの新しい状態により直ちに更新される。（ＷＡＭＩＬのこの特定の実施形態に対する）、実行または予定状況にあるＷＡＭＩＬスクリプトだけを打ち切ることができる。
【００９４】
ＷＡＭ  ＧＵＩスクリプト経歴ログは、ＷＡＭ ＧＵＩによりユーザが実行した、すべてのＷＡＭＩＬスクリプトの完全な経歴を表示する。この経歴ログは、ＷＡＭＩＬスクリプトが実行される度に、ＷＡＭ ＧＵＩにより常に追加され、時間が経過するにつれて、大きく成長することができる。実行されたスクリプトの経歴ログ・ファイルは、ｗａｍ．ｔｅｓｔｌｏｇと呼ばれ、ユーザのホームｗａｍ．ｗａｍｉｌサブディレクトリ内に維持される。ｗａｍ．ｔｅｓｔｌｏｇファイルのフォーマットは、「スクリプト状況」リスト・ボックス内に表示される情報のフォーマットと同じものであるが、使用中のスクリプトおよびシステムのユーザのような追加情報を含む。実行した各ＷＡＭＩＬスクリプトに対して、ｗａｍ．ｔｅｓｔｌｏｇファイルには１行が存在する。
【００９５】
ユーザは、異なる名称で、ｗａｍ．ｔｅｓｔｌｏｇ経歴ファイルをセーブすることができる。この時点で、ＷＡＭ  ＧＵＩは、新しいＷＡＭＩＬスクリプトを実行した際に、新しいｗａｍ．ｔｅｓｔｌｏｇ経歴ファイルをスタートするか、完了した状況の、すべてのＷＡＭＩＬスクリプトをファイルからパージする。それ故、ファイルは短くなる。ログ・ファイルから完了した状態がパージされると、情報はもはや回復することはできない。それ故、ファイルをセーブするのは望ましい習慣である。
【００９６】
経歴ログ・ファイルをセーブするには、ユーザは、単に、経歴セーブ・ボタンを選択しさえすればよい。このボタンを選択すると、このボタンの下のテキスト入力ボックスが動作可能になる。（このボタンは、ＷＡＭ  ＧＵＩスクリプト状態表示ウィンドウが最初に表示された時に、ＷＡＭ  ＧＵＩにより、デフォールト値として、いつでも選択することができる。
【００９７】
その後で、ユーザは、単に、新しい経歴ログ・ファイル名を入力し、セーブ／クリア・コマンド・ボタンを実行しさえすればよい。ｗａｍ．ｔｅｓｔｌｏｇファイルは、テキスト入力ボックス内で指定した、新しいファイル名に自動的に書き換えられる。ＷＡＭＩＬスクリプトを実行すると、新しいｗａｍ．ｔｅｓｔｌｏｇファイルが生成する。
【００９８】
すべての完了したスクリプトの経歴ログ・ファイルをパージするには、ユーザは、経歴クリア・ボタンを選択すればよい。このボタンを選択すると、テキスト入力ボックスが動作不能になる。その後で、ユーザは、単に、セーブ／クリア・コマンド・ボタンを実行しさえすれば、ｗａｍ．ｔｅｓｔｌｏｇ経歴ファイルから、すべての完了したスクリプトがパージされる。ログ・ファイルをパージする前に、ＷＡＭ  ＧＵＩが、ユーザに確認するようにプロンプトする。
【００９９】
＜ＷＡＭＩ環境構造体要件＞
この節においては、ＷＡＭＩソフトウェア環境およびユーザ設定要件について説明する。ＷＡＭＩは、好適には、ＵＮＩＸウィンドウズが開いている環境での、すべての機能を使用することができることが好ましく、ユーザの開いているウィンドウズ・メニューから、簡単にアクセスできるものでなければならない。
【０１００】
好適には、下記の例示としてのＷＡＭＩホーム・ファイルおよびサブディレクトリであることが好ましい。
0003732731.tif 000018
【０１０１】
＜構文および変数の一致のチェック＞
図２Ａおよび図２Ｂは、本発明のスクリプタが実行する、構文および変数値の一致のチェックの、例示としての実行を示すフローチャートである。処理は、ステップ２０２からスタートし、ステップ２０４へ進み、そこでスクリプトが供給される。その後で、処理は、ステップ２０６に進み、そこでスクリプタは、スクリプトの現在の（この場合は、第１の）ラインをチェックする。処理は、ステップ２０８へ進み、そこでスクリプタは、上記ラインに識別されているインターフェースをチェックする。
【０１０２】
ＷＡＭＩＬコマンドが、好適には、インターフェース：コマンドのフォーマットを持つテキスト・ストリングのフォーマットをとることを思いだしてほしい。システム４００のメモリ４０４は、例えば、ＴＩ、ＷＡＭおよびＳＤＰのような、各インターフェースに関連する、テキスト・ストリングを記憶している参照用テーブルを持つ。プロセッサ４０２は、問題のスクリプタ・ラインをテキスト・ストリングとし処理し、参照用テーブル内の各入力を上記テキスト・ストリングと比較する。一致した場合には、上記プロセッサは、関連するインターフェースを識別する。
【０１０３】
処理は、図２Ａのステップ２０８から２１０に進み、そこで識別したインターフェースに対する、一組の許容できるコマンドが検索される。各インターフェースは、メモリ４０４に記憶している一組の許容できるコマンドを持つ。
【０１０４】
処理は、図２Ａのステップ２１０から２１２に進む。ステップ２１２においては、プロセッサ４０２は、現在のコマンド・ストリングを形成するために、現在のスクリプト・ラインから、インターフェース識別子ストリングと、例えば、「：」のような、連結のためのアルファベット文字を取り出す。その後で、処理は、ステップ２１４に進み、そこでプロセッサ４０２は、第１の理想的なコマンド・ストリングを検索する。処理は、ステップ２１６に進み、プロセッサ４０２は、更新した理想的なコマンド・ストリングを形成するために、理想的なコマンド・ストリング内に、アーギュメントとして列挙してある、任意の変数に対する現在の値を代入する。
【０１０５】
処理は、図２Ａのステップ２１６からステップ２１８へ進み、そこでプロセッサ４０２は、現在のコマンド・ストリングを更新した理想的なストリングと比較する。処理は図２Ｂのステップ２２０に進み、そこで、これら二つのテキスト・ストリングが一致するかどうかが判断される。一致する場合には、構文は正しく、コマンドが使用した変数の値は、スクリプト内に前に設定された、これらの変数の値と一致する。一致した場合には、処理は、ステップ２２０からステップ２２２に進み、そこで、プロセッサ４０２は、現在のラインになるスクリプト内の次のラインを設定する。その後で、処理はステップ２０６に戻る。
【０１０６】
図２Ｂのステップ２２０において、テキスト・ストリングが一致しないと判断された場合には、処理は、ステップ２２４に進む。そこで、問題の理想的なコマンドが、その組の最後の理想的なコマンドであるかどうかの判断が行われる。そうでない場合には、処理は、ステップ２２６に進み、そこで、プロセッサは、現在の理想的なコマンドになる次の理想的なコマンドを設定する。処理は、図２Ｂのステップ２２６から図２Ａのステップ２１４に戻る。しかし、ステップ２２４において、最後の理想的なコマンドが一致しなかった場合には、処理はステップ２２８に進み、そこで、プロセッサ４０２はデバッグ動作を打ち切る。処理は、ステップ２３０に進み、そこで、構文および変数の一致のチェック手順は終了する。
【０１０７】
図２Ａおよび図２Ｂは、デバッグ動作中、本発明のスクリプタにより実行された、構文および変数値の一致のチェックのところですでに説明した。スクリプトの実行中に、一組の主要な違いがあると判断した場合には、同じこの一組のステップが実行される。一致した場合には、スクリプタにより、処理は、ステップ２２０からステップ２２２へ進む。インタープリタにより、処理はステップ２２０からステップ２３２へ進み、そこで、問題のコマンドが解釈され／実行される。その後で、処理は、ステップ２３２からステップ２２２へ進む。ステップ２２２からの処理は、スクリプタのところで説明した処理と同じものである。また、ステップ２３０においては、打ち切ることが必要な場合には、インタープリタは、デバッグ手順を打ち切るのではなく、解釈手順を打ち切る。
【０１０８】
図３は、全スクリプトを通して、スクリプトの１行に対して行われた変更を伝達するために、スクリプタが行う手順の一例である。処理は、ステップ３０２からスタートし、ステップ３０４へ進み、そこで、編集されるスクリプトが供給される。処理は、ステップ３０６に進み、そこで、ユーザは、編集するために、変数の値を設定するコマンドを選択する。好適には、しかし、必ずしもそうする必要はないが、ユーザが必要な変更は、グラフィカル・ユーザ・インターフェース（ＧＵＩ）により行うことが好ましい。処理は、ステップ３０８へ進み、そこで、ユーザは、選択したコマンドにより設定中の変数の値を実際に変更する。
【０１０９】
処理は、図３のステップ３０８からステップ３１０に進む。ステップ３１０においては、プロセッサ４０２は、その値がステップ３０８において更新された変数に対応する、他のコマンドのアーギュメントを更新するために、全スクリプトを再生する。処理は、ステップ３１２に進み、そこで、もう一つのコマンドを編集すべきかどうかの判断が行われる。編集すべきであると判断した場合には、処理はステップ３１４に進み、そこで、編集すべき次のコマンドか選択される。このステップから、処理は、ステップ３０８へ戻る。ステップ３１２において、編集すべきコマンドが他にない場合には、処理はステップ３１６へ進み、そこで、編集伝達手順が終了する。
【０１１０】
以下に、本発明のスクリプタおよび／またはインタープリタの動作のいくつかの例を説明する。最初に、本出願の発明の背景のところで説明した、スクリプト、すなわち、第１のスクリプトについて考えてみよう。このスクリプトを本発明のスクリプタによりデバッグ、または本発明のインタープリタにより解釈する場合には、デバッグ動作／解釈動作は打ち切られる。何故なら、ライン５の変数「ｃｅｌｌ」のために使用した値（すなわち、１０１）は、ライン２に設定されている変数「ＣＥＬＬ」の値（すなわち、１２３）と同じではないからである。
【０１１１】
こんどは、発明の背景のところで説明した例示としてのスクリプトの一つの変形を考えてみよう。
第２のスクリプト
ライン      コマンド
０１    ＷＡＭ：ＭＳＣ５
０２    ＷＡＭ：ＣＥＬＬ４９
０３    ＷＡＭ：ＢＢＡ８
０４    ＷＡＭ：ＣＯＮＮＥＣＴ  ＴＩ
０５    ＴＩ：ｏｐ：ｃｅｌｌ４９，ＢＢＡ８
０６    ＷＡＭ：ＤＩＳＣＯＮＮＥＣＴ  ＴＩ
０７    ＷＡＭ：ＥＮＤＴＥＳＴ
【０１１２】
第２のスクリプトも、ＷＡＭＩＬ言語で書かれていて、移動交換センター（ＭＳＣ）番号５のセル番号４９を処理する。第２のスクリプトは、ＴＩセッションを接続（または確立）し、ライン５に埋設されたｏｐ：ｃｅｌｌコマンドを発行し、その後で、上記セッションを切り離すか、終了する。ユーザが、ライン５において、回路盤ＢＢＡ  Ｎｏ．８の代わりに回路盤ＢＢＡ Ｎｏ．１を処理しようとしている場合には、スクリプトは、ライン３を必要としない。何故なら、ＷＡＭＩＬ言語における変数ＢＢＡのデフォールト値は、１に設定されているからである。しかし、ライン５は、「ＴＩ：ｏｐ：ｃｅｌｌ４９、ＢＢＡ８」と書かれているので、ライン３がないと、スクリプタによるスクリプトのデバッグ動作およびインタープリタによるスクリプトの解釈は打ち切られる。これらは打ち切られる。何故なら、ライン５の埋設コマンドに設定中の変数ＢＢＡの値は、ＷＡＭＩＬ言語の変数ＢＢＡのデフォールト値と一致しないからであり、変数ＢＢＡの値をＮｏ．８に、肯定的に設定する介入コマンドが存在しないからである。同様に、ライン５が、ＢＢＡ８の代わりにＢＢＡ９を列挙する場合には、一致していないので、スクリプタまたはインタープリタは打ち切る。
【０１１３】
ユーザが、ライン２の変数の値を変更するために、このスクリプトを４９から１０１に編集する場合には、スクリプタは、この変更をスクリプト全体にわたって伝達する。この場合、スクリプタは、ライン５の埋設コマンドの変数「ｃｅｌｌ」の値を４９から１０１に変更する。この更新は、ユーザとは無関係に行われる。すなわち、スクリプタは、ライン２からの変更を、自動的にスクリプトの対応する部分全体に伝達する。
【０１１４】
本発明のスクリプタおよびインタープリタは、コマンドの構文をチェックするばかりでなく、任意の所与のラインの変数の値が、スクリプト内に前に設定したこれら変数の値と一致するような方法で、設定されているかどうかをチェックするという利点を持つ。短いスクリプト内においては、長きスクリプトの場合のように、上記利点の有難みを容易には理解できない。しかし、本発明が防止する誤りを回避する際の利点はハッキリしている。ここでもまた、これらエラーは、背景技術のスクリプタおよびインタープリタによっては検出されない。何故なら、上記エラーは、不適当な構文によるものではないからである。それどころか、上記エラーは、変数の値が、例えば、ユーザの見落としにより、一致するように設定されるいくつかの例を示す。
【０１１５】
本発明は、本発明の精神および本質的な特徴から逸脱することなしに他の方法で実行することができる。上記実施形態は、本発明の例示としての実施形態であり、本発明を制限するものでないと考えるべきである。本発明の範囲は、添付の特許請求の範囲に記載されているものである。特許請求の範囲に含まれるすべての変化は、本発明の範囲内に含まれる。
【図面の簡単な説明】
【図１】本発明のインタープリタの、ある実施形態により実行するプロセスのステップを概略示すフローチャートである。
【図２Ａ】本発明のスクリプタのある実施形態、およびインタープリタのある実施形態による、構文および変数が矛盾していないかどうかをチェックするために実行するステップを示すフローチャートである。
【図２Ｂ】本発明のスクリプタのある実施形態、およびインタープリタのある実施形態による、構文および変数が矛盾していないかどうかをチェックするために実行するステップを示すフローチャートである。
【図３】変更を現在のスクリプト全体に知らせるための、本発明のスクリプタのある実施形態が行うステップを示すフローチャートである。
【図４】本発明のスクリプタおよび／またはインタープリタの、ハードウェアの実施形態の略図である。
【図１】
0003732731.tif 000019
【図２Ａ】
0003732731.tif 000020
【図２Ｂ】
0003732731.tif 000021
【図３】
0003732731.tif 000022
【図４】
0003732731.tif 000023