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 に設定する。 |