Cmdインスタンスは、次のメソッドを持ちます:
[intro]) |
オプションの引数は、最初のプロンプトの前に表示されるバナーあるいは紹介用の文字列です(これはクラスメンバintroをオーバーライドします)。
readlineモジュールがロードされているなら、入力は自動的にbashのような履歴リスト編集機能を受け継ぎます(例えば、Control-Pは直前のコマンドへのスクロールバック、Control-Nは次のものへ進む、Control-Fはカーソルを右へ非破壊的に進める、Control-Bはカーソルを非破壊的に左へ移動させる等)。
入力のファイル終端は、文字列'EOF'
として渡されます。
メソッドdo_foo()を持っている場合に限って、インタープリタのインスタンスはコマンド名"foo"を認識します。特別な場合として、文字"?"で始まる行はメソッドdo_help()へディスパッチします。他の特別な場合として、文字"!"で始まる行はメソッドdo_shell()へディスパッチします (このようなメソッドが定義されている場合)。
このメソッドは postcmd() メソッドが真を返したときに return します。 postcmd() に対する stop 引数は、このコマンドが対応する do_*() メソッドからの返り値です。
補完が有効になっているなら、コマンドの補完が自動的に行われます。また、コマンド引数の補完は、引数text、line、begidx、およびendidxと共にcomplete_foo()を呼び出すことによって行われます。textは、我々がマッチしようとしている文字列の先頭の語です。返されるマッチは全てそれで始まっていなければなりません。lineは始めの空白を除いた現在の入力行です。begidxとendidxは先頭のテキストの始まりと終わりのインデックスで、引数の位置に依存した異なる補完を提供するのに使えます。
Cmdのすべてのサブクラスは、定義済みのdo_help()を継承します。このメソッドは、(引数'bar'
と共に呼ばれたとすると)対応するメソッドhelp_bar()を呼び出します。引数がなければ、do_help()は、すべての利用可能なヘルプ見出し(すなわち、対応するhelp_*()メソッドを持つすべてのコマンド)をリストアップします。また、文書化されていないコマンドでも、すべてリストアップします。
str) |
) |
line) |
text, line, begidx, endidx) |
line) |
stop, line) |
) |
) |
Cmdのサブクラスのインスタンスは、公開されたインスタンス変数をいくつか持っています: