aboutsummaryrefslogtreecommitdiff
path: root/var.cc
diff options
context:
space:
mode:
authorShinichiro Hamaji <shinichiro.hamaji@gmail.com>2015-06-26 04:18:21 +0900
committerShinichiro Hamaji <shinichiro.hamaji@gmail.com>2015-06-26 16:42:23 +0900
commitf62e9a715e23083b9d3434286653a8a84ea9599c (patch)
treef7c27dd33b3bd93e3cbdbba4b77db6c0a5a40923 /var.cc
parent420f7754d973242d4120ed67a942bfb386706494 (diff)
[C++] Define VarOrigin
Diffstat (limited to 'var.cc')
-rw-r--r--var.cc19
1 files changed, 17 insertions, 2 deletions
diff --git a/var.cc b/var.cc
index 9ff8bb9..41a410d 100644
--- a/var.cc
+++ b/var.cc
@@ -22,6 +22,21 @@
UndefinedVar kUndefinedBuf;
UndefinedVar* kUndefined = &kUndefinedBuf;
+const char* GetOriginStr(VarOrigin origin) {
+ switch (origin) {
+ case VarOrigin::UNDEFINED: return "undefined";
+ case VarOrigin::DEFAULT: return "default";
+ case VarOrigin::ENVIRONMENT: return "environment";
+ case VarOrigin::ENVIRONMENT_OVERRIDE: return "environment override";
+ case VarOrigin::FILE: return "file";
+ case VarOrigin::COMMAND_LINE: return "command line";
+ case VarOrigin::OVERRIDE: return "override";
+ case VarOrigin::AUTOMATIC: return "automatic";
+ }
+ CHECK(false);
+ return "*** broken origin ***";
+}
+
Var::Var() {
}
@@ -32,7 +47,7 @@ void Var::AppendVar(Evaluator*, Value*) {
CHECK(false);
}
-SimpleVar::SimpleVar(shared_ptr<string> v, const char* origin)
+SimpleVar::SimpleVar(shared_ptr<string> v, VarOrigin origin)
: v_(v), origin_(origin) {
}
@@ -55,7 +70,7 @@ string SimpleVar::DebugString() const {
return *v_;
}
-RecursiveVar::RecursiveVar(Value* v, const char* origin, StringPiece orig)
+RecursiveVar::RecursiveVar(Value* v, VarOrigin origin, StringPiece orig)
: v_(v), origin_(origin), orig_(orig) {
}