Index: trunk/src/tools/gn/value.cc |
=================================================================== |
--- trunk/src/tools/gn/value.cc (revision 214322) |
+++ trunk/src/tools/gn/value.cc (working copy) |
@@ -1,126 +0,0 @@ |
-// Copyright (c) 2013 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "tools/gn/value.h" |
- |
-#include "base/strings/string_number_conversions.h" |
- |
-Value::Value() |
- : type_(NONE), |
- int_value_(0), |
- origin_(NULL) { |
-} |
- |
-Value::Value(const ParseNode* origin, Type t) |
- : type_(t), |
- int_value_(0), |
- origin_(origin) { |
-} |
- |
-Value::Value(const ParseNode* origin, int64 int_val) |
- : type_(INTEGER), |
- int_value_(int_val), |
- origin_(origin) { |
-} |
- |
-Value::Value(const ParseNode* origin, const base::StringPiece& str_val) |
- : type_(STRING), |
- string_value_(str_val.as_string()), |
- int_value_(0), |
- origin_(origin) { |
-} |
- |
-Value::~Value() { |
-} |
- |
-// static |
-const char* Value::DescribeType(Type t) { |
- switch (t) { |
- case NONE: |
- return "none"; |
- case INTEGER: |
- return "integer"; |
- case STRING: |
- return "string"; |
- case LIST: |
- return "list"; |
- default: |
- NOTREACHED(); |
- return "UNKNOWN"; |
- } |
-} |
- |
-int64 Value::InterpretAsInt() const { |
- switch (type_) { |
- case NONE: |
- return 0; |
- case INTEGER: |
- return int_value_; |
- case STRING: |
- return string_value_.empty() ? 0 : 1; |
- case LIST: |
- return list_value_.empty() ? 0 : 1; |
- } |
- return 0; |
-} |
- |
-std::string Value::ToString() const { |
- switch (type_) { |
- case NONE: |
- return "<void>"; |
- case INTEGER: |
- return base::Int64ToString(int_value_); |
- case STRING: |
- return string_value_; |
- case LIST: { |
- std::string result = "["; |
- for (size_t i = 0; i < list_value_.size(); i++) { |
- if (i > 0) |
- result += ", "; |
- // TODO(brettw) maybe also want to escape quotes in the string. |
- if (list_value_[i].type() == STRING) |
- result += std::string("\"") + list_value_[i].ToString() + "\""; |
- else |
- result += list_value_[i].ToString(); |
- } |
- result.push_back(']'); |
- return result; |
- } |
- } |
- return std::string(); |
-} |
- |
-bool Value::VerifyTypeIs(Type t, Err* err) const { |
- if (type_ == t) |
- return true; |
- |
- *err = Err(origin(), std::string("This is not a ") + DescribeType(t) + "."); |
- return false; |
-} |
- |
-bool Value::operator==(const Value& other) const { |
- if (type_ != other.type_) |
- return false; |
- |
- switch (type_) { |
- case Value::INTEGER: |
- return int_value() == other.int_value(); |
- case Value::STRING: |
- return string_value() == other.string_value(); |
- case Value::LIST: |
- if (list_value().size() != other.list_value().size()) |
- return false; |
- for (size_t i = 0; i < list_value().size(); i++) { |
- if (list_value()[i] != other.list_value()[i]) |
- return false; |
- } |
- return true; |
- default: |
- return false; |
- } |
-} |
- |
-bool Value::operator!=(const Value& other) const { |
- return !operator==(other); |
-} |