aboutsummaryrefslogtreecommitdiff
path: root/eval.h
diff options
context:
space:
mode:
authorShinichiro Hamaji <shinichiro.hamaji@gmail.com>2015-07-28 15:24:17 +0900
committerShinichiro Hamaji <shinichiro.hamaji@gmail.com>2015-07-28 15:24:17 +0900
commit86e113342a49499850701e3b752ce56ec73d34d6 (patch)
treebf2429c8e9cc7ff2347aefad956b79266eee1f76 /eval.h
parent7409aee3b69a7de63af7a4c3dd7ea87d84fed0f1 (diff)
downloadkati-86e113342a49499850701e3b752ce56ec73d34d6.tar.gz
[C++] Fix info, warning, and error for ninja
Diffstat (limited to 'eval.h')
-rw-r--r--eval.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/eval.h b/eval.h
index 558df3c..dad8127 100644
--- a/eval.h
+++ b/eval.h
@@ -59,6 +59,7 @@ class Evaluator {
shared_ptr<string> EvalVar(Symbol name);
const Loc& loc() const { return loc_; }
+ void set_loc(const Loc& loc) { loc_ = loc; }
const vector<shared_ptr<Rule>>& rules() const { return rules_; }
const unordered_map<Symbol, Vars*>& rule_vars() const {
@@ -76,6 +77,16 @@ class Evaluator {
bool avoid_io() const { return avoid_io_; }
void set_avoid_io(bool a) { avoid_io_ = a; }
+ const vector<string>& delayed_output_commands() const {
+ return delayed_output_commands_;
+ }
+ void add_delayed_output_command(const string& c) {
+ delayed_output_commands_.push_back(c);
+ }
+ void clear_delayed_output_commands() {
+ delayed_output_commands_.clear();
+ }
+
private:
Var* EvalRHS(Symbol lhs, Value* rhs, StringPiece orig_rhs, AssignOp op,
bool is_override = false);
@@ -92,7 +103,11 @@ class Evaluator {
Loc loc_;
bool is_bootstrap_;
+
bool avoid_io_;
+ // Commands which should run at ninja-time (i.e., info, warning, and
+ // error).
+ vector<string> delayed_output_commands_;
};
#endif // EVAL_H_