Class context
hamigaki::bjam::context —
bjamのコンテキスト情報を保持するクラス。
Synopsis
Description
context construct/copy/destruct
context frame functions
-
frame& current_frame();
-
void push_frame(const frame& f);
| Effects: |
フレーム情報をスタックに追加し、それを現在のフレーム情報とする |
-
void pop_frame();
| Effects: |
現在のフレーム情報をスタックから削除し、直前のフレーム情報を現在のフレーム情報とする |
context module functions
-
boost::optional<std::string> caller_module_name(std::size_t level) const;
呼び出し元のモジュール名を返す。levelは呼び出しの深さを指定するパラメータで、0が現在のフレームを意味する。
-
string_list back_trace(std::size_t level, std::size_t skip = 0) const;
呼び出しフレームのバックトレース情報を返す。levelはバックトレースの深さ指定するパラメータで、0ならば全てのフレームが利用される。skipは、スキップするフレームの深さを指定するパラメータで、0なら現在のフレームから開始される。
返される各バックトレース情報は次の形式を取る。
jamファイル名
行番号
モジュール名
ルール名
なお、モジュール名の末尾には「.」が付加される。
-
module& get_module(const boost::optional<std::string>& name);
| Effects: |
フレーム情報をスタックに追加し、それを現在のフレーム情報とする |
-
const module& get_module(const boost::optional<std::string>& name) const;
-
std::pair<module_iterator,module_iterator> module_entries() const;
| Returns: |
全モジュールを列挙する反復子のペア |
-
bool is_defined_module(const boost::optional<std::string>& name) const;
| Returns: |
nameに対応するモジュールが定義されているかどうか |
-
bool change_module(const boost::optional<std::string>& name);
| Effects: |
現在のフレームのモジュールをnameで指定されたモジュールに変更する |
context target functions
-
target& get_target(const std::string& name);
-
std::pair<module_iterator,module_iterator> target_entries() const;
| Returns: |
全ターゲットを列挙する反復子のペア |
-
string_list targets_to_update() const;
| Returns: |
組み込みルールUPDATEで設定されたターゲット名のリスト |
-
void targets_to_update(const string_list& x);
| Effects: |
更新すべきターゲット名のリストを設定する。組み込みルールUPDATEから呼ばれる。 |
context rule functions
-
void set_builtin_rule(const std::string& name, const list_of_list& params,
const boost::function1<string_list,context>& func,
bool exported = true);
組み込み関数を登録する。引数の意味は次表の通り。
-
rule_definition get_rule_definition(const std::string& name) const;
| Returns: |
nameに対応した組み込み関数の定義 |
-
string_list invoke_rule(const std::string& name, const list_of_list& args);
ルールnameを引数argsで呼び出す。
context directory functions
-
std::string working_directory() const;
-
void working_directory(const std::string& dir);
| Effects: |
bjamの作業ディレクトリをdirに設定する。 |
context stream functions
-
std::ostream& output_stream() const;
-
void output_stream(std::ostream& os);
| Effects: |
標準出力用のストリームをosに設定する。 |