copy Features to OldFeatures

This commit is contained in:
Christopher Dunn 2015-02-10 17:00:34 -06:00
parent 435d2a2f8d
commit 052050df07

View File

@ -892,6 +892,39 @@ bool Reader::good() const {
return !errors_.size(); return !errors_.size();
} }
// exact copy of Features
class OldFeatures {
public:
static OldFeatures all();
static OldFeatures strictMode();
OldFeatures();
bool allowComments_;
bool strictRoot_;
bool allowDroppedNullPlaceholders_;
bool allowNumericKeys_;
}; // OldFeatures
// exact copy of Implementation of class Features
// ////////////////////////////////
OldFeatures::OldFeatures()
: allowComments_(true), strictRoot_(false),
allowDroppedNullPlaceholders_(false), allowNumericKeys_(false) {}
OldFeatures OldFeatures::all() { return OldFeatures(); }
OldFeatures OldFeatures::strictMode() {
OldFeatures features;
features.allowComments_ = false;
features.strictRoot_ = true;
features.allowDroppedNullPlaceholders_ = false;
features.allowNumericKeys_ = false;
return features;
}
// Implementation of class Reader
// ////////////////////////////////
// exact copy of Reader, renamed to OldReader // exact copy of Reader, renamed to OldReader
class OldReader { class OldReader {
public: public:
@ -903,7 +936,7 @@ public:
std::string message; std::string message;
}; };
OldReader(Features const& features); OldReader(OldFeatures const& features);
bool parse(const char* beginDoc, bool parse(const char* beginDoc,
const char* endDoc, const char* endDoc,
Value& root, Value& root,
@ -1000,13 +1033,13 @@ private:
Location lastValueEnd_; Location lastValueEnd_;
Value* lastValue_; Value* lastValue_;
std::string commentsBefore_; std::string commentsBefore_;
Features features_; OldFeatures features_;
bool collectComments_; bool collectComments_;
}; // OldReader }; // OldReader
// complete copy of Read impl, for OldReader // complete copy of Read impl, for OldReader
OldReader::OldReader(Features const& features) OldReader::OldReader(OldFeatures const& features)
: errors_(), document_(), begin_(), end_(), current_(), lastValueEnd_(), : errors_(), document_(), begin_(), end_(), current_(), lastValueEnd_(),
lastValue_(), commentsBefore_(), features_(features), collectComments_() { lastValue_(), commentsBefore_(), features_(features), collectComments_() {
} }
@ -1788,7 +1821,7 @@ class OldCharReader : public CharReader {
public: public:
OldCharReader( OldCharReader(
bool collectComments, bool collectComments,
Features const& features) OldFeatures const& features)
: collectComments_(collectComments) : collectComments_(collectComments)
, reader_(features) , reader_(features)
{} {}
@ -1815,7 +1848,7 @@ CharReader* CharReaderBuilder::newCharReader() const
// TODO: Maybe serialize the invalid settings into the exception. // TODO: Maybe serialize the invalid settings into the exception.
bool collectComments = settings_["collectComments"].asBool(); bool collectComments = settings_["collectComments"].asBool();
Features features = Features::all(); OldFeatures features = OldFeatures::all();
features.allowComments_ = settings_["allowComments"].asBool(); features.allowComments_ = settings_["allowComments"].asBool();
features.strictRoot_ = settings_["strictRoot"].asBool(); features.strictRoot_ = settings_["strictRoot"].asBool();
features.allowDroppedNullPlaceholders_ = settings_["allowDroppedNullPlaceholders"].asBool(); features.allowDroppedNullPlaceholders_ = settings_["allowDroppedNullPlaceholders"].asBool();