summaryrefslogtreecommitdiff
path: root/src/third_party
diff options
context:
space:
mode:
authorMark Benvenuto <mark.benvenuto@mongodb.com>2016-01-25 14:41:24 -0500
committerMark Benvenuto <mark.benvenuto@mongodb.com>2016-02-03 13:25:07 -0500
commit1698a9411f8d8010c42ac87794d69fadc6dd7138 (patch)
tree3f94b36e0bb5c98c256965bd332d60738e0d8b1a /src/third_party
parent0ee4b963fa18ed83aa8433185a9be6e7620f3f85 (diff)
downloadmongo-1698a9411f8d8010c42ac87794d69fadc6dd7138.tar.gz
SERVER-22295 yaml-cpp 0.5.1 removal
Diffstat (limited to 'src/third_party')
-rw-r--r--src/third_party/yaml-cpp-0.5.1/SConscript43
-rw-r--r--src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/anchor.h16
-rw-r--r--src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/binary.h62
-rw-r--r--src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/contrib/anchordict.h42
-rw-r--r--src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/contrib/graphbuilder.h133
-rw-r--r--src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/dll.h28
-rw-r--r--src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/emitfromevents.h45
-rw-r--r--src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/emitter.h209
-rw-r--r--src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/emitterdef.h13
-rw-r--r--src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/emittermanip.h149
-rw-r--r--src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/eventhandler.h36
-rw-r--r--src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/exceptions.h208
-rw-r--r--src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/mark.h26
-rw-r--r--src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/convert.h280
-rw-r--r--src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/detail/bool_type.h26
-rw-r--r--src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/detail/impl.h168
-rw-r--r--src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/detail/iterator.h64
-rw-r--r--src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/detail/iterator_fwd.h27
-rw-r--r--src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/detail/memory.h39
-rw-r--r--src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/detail/node.h130
-rw-r--r--src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/detail/node_data.h110
-rw-r--r--src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/detail/node_iterator.h139
-rw-r--r--src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/detail/node_ref.h69
-rw-r--r--src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/emit.h23
-rw-r--r--src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/impl.h451
-rw-r--r--src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/iterator.h28
-rw-r--r--src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/node.h116
-rw-r--r--src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/parse.h28
-rw-r--r--src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/ptr.h29
-rw-r--r--src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/type.h14
-rw-r--r--src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/noncopyable.h25
-rw-r--r--src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/null.h25
-rw-r--r--src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/ostream_wrapper.h69
-rw-r--r--src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/parser.h47
-rw-r--r--src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/stlemitter.h51
-rw-r--r--src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/traits.h57
-rw-r--r--src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/yaml.h21
-rw-r--r--src/third_party/yaml-cpp-0.5.1/license.txt19
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/binary.cpp93
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/collectionstack.h35
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/convert.cpp83
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/directives.cpp24
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/directives.h29
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/emit.cpp29
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/emitfromevents.cpp105
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/emitter.cpp951
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/emitterstate.cpp384
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/emitterstate.h190
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/emitterutils.cpp424
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/emitterutils.h36
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/exp.cpp113
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/exp.h196
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/graphbuilder.cpp16
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/graphbuilderadapter.cpp96
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/graphbuilderadapter.h73
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/indentation.h38
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/memory.cpp29
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/node.cpp14
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/node_data.cpp295
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/nodebuilder.cpp138
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/nodebuilder.h58
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/nodeevents.cpp99
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/nodeevents.h57
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/null.cpp6
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/ostream_wrapper.cpp57
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/parse.cpp68
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/parser.cpp141
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/ptr_stack.h49
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/ptr_vector.h47
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/regex.cpp60
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/regex.h67
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/regeximpl.h186
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/scanner.cpp394
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/scanner.h133
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/scanscalar.cpp214
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/scanscalar.h45
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/scantag.cpp84
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/scantag.h20
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/scantoken.cpp439
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/setting.h105
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/simplekey.cpp139
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/singledocparser.cpp394
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/singledocparser.h65
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/stream.cpp447
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/stream.h79
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/streamcharsource.h48
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/stringsource.h47
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/tag.cpp52
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/tag.h28
-rw-r--r--src/third_party/yaml-cpp-0.5.1/src/token.h85
90 files changed, 0 insertions, 10169 deletions
diff --git a/src/third_party/yaml-cpp-0.5.1/SConscript b/src/third_party/yaml-cpp-0.5.1/SConscript
deleted file mode 100644
index b9feb2e8f3c..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/SConscript
+++ /dev/null
@@ -1,43 +0,0 @@
-Import("env")
-
-# Create a new environment since this one doesn't build without errors when using -Wno-virtual-dtor
-env = env.Clone()
-
-try:
- env['CXXFLAGS'].remove('-Wnon-virtual-dtor')
- env['CCFLAGS'].remove('-Wall')
-except ValueError:
- pass
-
-env.Library("yaml",
- [
- "src/binary.cpp",
- "src/graphbuilder.cpp",
- "src/graphbuilderadapter.cpp",
- "src/convert.cpp",
- "src/directives.cpp",
- "src/emit.cpp",
- "src/emitfromevents.cpp",
- "src/emitter.cpp",
- "src/emitterstate.cpp",
- "src/emitterutils.cpp",
- "src/exp.cpp",
- "src/memory.cpp",
- "src/node.cpp",
- "src/node_data.cpp",
- "src/nodebuilder.cpp",
- "src/nodeevents.cpp",
- "src/null.cpp",
- "src/ostream_wrapper.cpp",
- "src/parse.cpp",
- "src/parser.cpp",
- "src/regex.cpp",
- "src/scanner.cpp",
- "src/scanscalar.cpp",
- "src/scantag.cpp",
- "src/scantoken.cpp",
- "src/simplekey.cpp",
- "src/singledocparser.cpp",
- "src/stream.cpp",
- "src/tag.cpp",
- ])
diff --git a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/anchor.h b/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/anchor.h
deleted file mode 100644
index 433f2fa5361..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/anchor.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef ANCHOR_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define ANCHOR_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-#include <cstddef>
-
-namespace YAML
-{
- typedef std::size_t anchor_t;
- const anchor_t NullAnchor = 0;
-}
-
-#endif // ANCHOR_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/binary.h b/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/binary.h
deleted file mode 100644
index edc0b2c18d6..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/binary.h
+++ /dev/null
@@ -1,62 +0,0 @@
-#ifndef BASE64_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define BASE64_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-#include <string>
-#include <vector>
-
-namespace YAML
-{
- std::string EncodeBase64(const unsigned char *data, std::size_t size);
- std::vector<unsigned char> DecodeBase64(const std::string& input);
-
- class Binary {
- public:
- Binary(): m_unownedData(0), m_unownedSize(0) {}
- Binary(const unsigned char *data_, std::size_t size_): m_unownedData(data_), m_unownedSize(size_) {}
-
- bool owned() const { return !m_unownedData; }
- std::size_t size() const { return owned() ? m_data.size() : m_unownedSize; }
- const unsigned char *data() const { return owned() ? &m_data[0] : m_unownedData; }
-
- void swap(std::vector<unsigned char>& rhs) {
- if(m_unownedData) {
- m_data.swap(rhs);
- rhs.clear();
- rhs.resize(m_unownedSize);
- std::copy(m_unownedData, m_unownedData + m_unownedSize, &rhs[0]);
- m_unownedData = 0;
- m_unownedSize = 0;
- } else {
- m_data.swap(rhs);
- }
- }
-
- bool operator == (const Binary& rhs) const {
- const std::size_t s = size();
- if(s != rhs.size())
- return false;
- const unsigned char *d1 = data();
- const unsigned char *d2 = rhs.data();
- for(std::size_t i=0;i<s;i++) {
- if(*d1++ != *d2++)
- return false;
- }
- return true;
- }
-
- bool operator != (const Binary& rhs) const {
- return !(*this == rhs);
- }
-
- private:
- std::vector<unsigned char> m_data;
- const unsigned char *m_unownedData;
- std::size_t m_unownedSize;
- };
-}
-
-#endif // BASE64_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/contrib/anchordict.h b/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/contrib/anchordict.h
deleted file mode 100644
index e483dc4b5d9..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/contrib/anchordict.h
+++ /dev/null
@@ -1,42 +0,0 @@
-#ifndef ANCHORDICT_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define ANCHORDICT_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-#include <vector>
-
-#include "../anchor.h"
-
-namespace YAML
-{
- /// AnchorDict
- /// . An object that stores and retrieves values correlating to anchor_t
- /// values.
- /// . Efficient implementation that can make assumptions about how anchor_t
- /// values are assigned by the Parser class.
- template <class T>
- class AnchorDict
- {
- public:
- void Register(anchor_t anchor, T value)
- {
- if (anchor > m_data.size())
- {
- m_data.resize(anchor);
- }
- m_data[anchor - 1] = value;
- }
-
- T Get(anchor_t anchor) const
- {
- return m_data[anchor - 1];
- }
-
- private:
- std::vector<T> m_data;
- };
-}
-
-#endif // ANCHORDICT_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/contrib/graphbuilder.h b/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/contrib/graphbuilder.h
deleted file mode 100644
index 6739a12b5cc..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/contrib/graphbuilder.h
+++ /dev/null
@@ -1,133 +0,0 @@
-#ifndef GRAPHBUILDER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define GRAPHBUILDER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-#include "yaml-cpp/mark.h"
-#include <string>
-
-namespace YAML
-{
- class Parser;
-
- // GraphBuilderInterface
- // . Abstraction of node creation
- // . pParentNode is always NULL or the return value of one of the NewXXX()
- // functions.
- class GraphBuilderInterface
- {
- public:
- // Create and return a new node with a null value.
- virtual void *NewNull(const Mark& mark, void *pParentNode) = 0;
-
- // Create and return a new node with the given tag and value.
- virtual void *NewScalar(const Mark& mark, const std::string& tag, void *pParentNode, const std::string& value) = 0;
-
- // Create and return a new sequence node
- virtual void *NewSequence(const Mark& mark, const std::string& tag, void *pParentNode) = 0;
- // Add pNode to pSequence. pNode was created with one of the NewXxx()
- // functions and pSequence with NewSequence().
- virtual void AppendToSequence(void *pSequence, void *pNode) = 0;
- // Note that no moew entries will be added to pSequence
- virtual void SequenceComplete(void *pSequence) {(void)pSequence;}
-
- // Create and return a new map node
- virtual void *NewMap(const Mark& mark, const std::string& tag, void *pParentNode) = 0;
- // Add the pKeyNode => pValueNode mapping to pMap. pKeyNode and pValueNode
- // were created with one of the NewXxx() methods and pMap with NewMap().
- virtual void AssignInMap(void *pMap, void *pKeyNode, void *pValueNode) = 0;
- // Note that no more assignments will be made in pMap
- virtual void MapComplete(void *pMap) {(void)pMap;}
-
- // Return the node that should be used in place of an alias referencing
- // pNode (pNode by default)
- virtual void *AnchorReference(const Mark& mark, void *pNode) {(void)mark; return pNode;}
- };
-
- // Typesafe wrapper for GraphBuilderInterface. Assumes that Impl defines
- // Node, Sequence, and Map types. Sequence and Map must derive from Node
- // (unless Node is defined as void). Impl must also implement function with
- // all of the same names as the virtual functions in GraphBuilderInterface
- // -- including the ones with default implementations -- but with the
- // prototypes changed to accept an explicit Node*, Sequence*, or Map* where
- // appropriate.
- template <class Impl>
- class GraphBuilder : public GraphBuilderInterface
- {
- public:
- typedef typename Impl::Node Node;
- typedef typename Impl::Sequence Sequence;
- typedef typename Impl::Map Map;
-
- GraphBuilder(Impl& impl) : m_impl(impl)
- {
- Map* pMap = NULL;
- Sequence* pSeq = NULL;
- Node* pNode = NULL;
-
- // Type consistency checks
- pNode = pMap;
- pNode = pSeq;
- }
-
- GraphBuilderInterface& AsBuilderInterface() {return *this;}
-
- virtual void *NewNull(const Mark& mark, void* pParentNode) {
- return CheckType<Node>(m_impl.NewNull(mark, AsNode(pParentNode)));
- }
-
- virtual void *NewScalar(const Mark& mark, const std::string& tag, void *pParentNode, const std::string& value) {
- return CheckType<Node>(m_impl.NewScalar(mark, tag, AsNode(pParentNode), value));
- }
-
- virtual void *NewSequence(const Mark& mark, const std::string& tag, void *pParentNode) {
- return CheckType<Sequence>(m_impl.NewSequence(mark, tag, AsNode(pParentNode)));
- }
- virtual void AppendToSequence(void *pSequence, void *pNode) {
- m_impl.AppendToSequence(AsSequence(pSequence), AsNode(pNode));
- }
- virtual void SequenceComplete(void *pSequence) {
- m_impl.SequenceComplete(AsSequence(pSequence));
- }
-
- virtual void *NewMap(const Mark& mark, const std::string& tag, void *pParentNode) {
- return CheckType<Map>(m_impl.NewMap(mark, tag, AsNode(pParentNode)));
- }
- virtual void AssignInMap(void *pMap, void *pKeyNode, void *pValueNode) {
- m_impl.AssignInMap(AsMap(pMap), AsNode(pKeyNode), AsNode(pValueNode));
- }
- virtual void MapComplete(void *pMap) {
- m_impl.MapComplete(AsMap(pMap));
- }
-
- virtual void *AnchorReference(const Mark& mark, void *pNode) {
- return CheckType<Node>(m_impl.AnchorReference(mark, AsNode(pNode)));
- }
-
- private:
- Impl& m_impl;
-
- // Static check for pointer to T
- template <class T, class U>
- static T* CheckType(U* p) {return p;}
-
- static Node *AsNode(void *pNode) {return static_cast<Node*>(pNode);}
- static Sequence *AsSequence(void *pSeq) {return static_cast<Sequence*>(pSeq);}
- static Map *AsMap(void *pMap) {return static_cast<Map*>(pMap);}
- };
-
- void *BuildGraphOfNextDocument(Parser& parser, GraphBuilderInterface& graphBuilder);
-
- template <class Impl>
- typename Impl::Node *BuildGraphOfNextDocument(Parser& parser, Impl& impl)
- {
- GraphBuilder<Impl> graphBuilder(impl);
- return static_cast<typename Impl::Node *>(BuildGraphOfNextDocument(
- parser, graphBuilder
- ));
- }
-}
-
-#endif // GRAPHBUILDER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/dll.h b/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/dll.h
deleted file mode 100644
index ea138401c6d..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/dll.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef DLL_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define DLL_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-// The following ifdef block is the standard way of creating macros which make exporting
-// from a DLL simpler. All files within this DLL are compiled with the yaml_cpp_EXPORTS
-// symbol defined on the command line. this symbol should not be defined on any project
-// that uses this DLL. This way any other project whose source files include this file see
-// YAML_CPP_API functions as being imported from a DLL, whereas this DLL sees symbols
-// defined with this macro as being exported.
-#undef YAML_CPP_API
-
-#ifdef YAML_CPP_DLL // Using or Building YAML-CPP DLL (definition defined manually)
- #ifdef yaml_cpp_EXPORTS // Building YAML-CPP DLL (definition created by CMake or defined manually)
- // #pragma message( "Defining YAML_CPP_API for DLL export" )
- #define YAML_CPP_API __declspec(dllexport)
- #else // yaml_cpp_EXPORTS
- // #pragma message( "Defining YAML_CPP_API for DLL import" )
- #define YAML_CPP_API __declspec(dllimport)
- #endif // yaml_cpp_EXPORTS
-#else //YAML_CPP_DLL
-#define YAML_CPP_API
-#endif // YAML_CPP_DLL
-
-#endif // DLL_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/emitfromevents.h b/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/emitfromevents.h
deleted file mode 100644
index e11ae640eff..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/emitfromevents.h
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef EMITFROMEVENTS_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define EMITFROMEVENTS_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-#include "yaml-cpp/eventhandler.h"
-#include <stack>
-
-namespace YAML
-{
- class Emitter;
-
- class EmitFromEvents: public EventHandler
- {
- public:
- EmitFromEvents(Emitter& emitter);
-
- virtual void OnDocumentStart(const Mark& mark);
- virtual void OnDocumentEnd();
-
- virtual void OnNull(const Mark& mark, anchor_t anchor);
- virtual void OnAlias(const Mark& mark, anchor_t anchor);
- virtual void OnScalar(const Mark& mark, const std::string& tag, anchor_t anchor, const std::string& value);
-
- virtual void OnSequenceStart(const Mark& mark, const std::string& tag, anchor_t anchor);
- virtual void OnSequenceEnd();
-
- virtual void OnMapStart(const Mark& mark, const std::string& tag, anchor_t anchor);
- virtual void OnMapEnd();
-
- private:
- void BeginNode();
- void EmitProps(const std::string& tag, anchor_t anchor);
-
- private:
- Emitter& m_emitter;
-
- struct State { enum value { WaitingForSequenceEntry, WaitingForKey, WaitingForValue }; };
- std::stack<State::value> m_stateStack;
- };
-}
-
-#endif // EMITFROMEVENTS_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/emitter.h b/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/emitter.h
deleted file mode 100644
index 927fe6c382e..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/emitter.h
+++ /dev/null
@@ -1,209 +0,0 @@
-#ifndef EMITTER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define EMITTER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-
-#include "yaml-cpp/dll.h"
-#include "yaml-cpp/binary.h"
-#include "yaml-cpp/emitterdef.h"
-#include "yaml-cpp/emittermanip.h"
-#include "yaml-cpp/noncopyable.h"
-#include "yaml-cpp/null.h"
-#include "yaml-cpp/ostream_wrapper.h"
-#include <memory>
-#include <string>
-#include <sstream>
-
-namespace YAML
-{
- class EmitterState;
-
- class YAML_CPP_API Emitter: private noncopyable
- {
- public:
- Emitter();
- explicit Emitter(std::ostream& stream);
- ~Emitter();
-
- // output
- const char *c_str() const;
- std::size_t size() const;
-
- // state checking
- bool good() const;
- const std::string GetLastError() const;
-
- // global setters
- bool SetOutputCharset(EMITTER_MANIP value);
- bool SetStringFormat(EMITTER_MANIP value);
- bool SetBoolFormat(EMITTER_MANIP value);
- bool SetIntBase(EMITTER_MANIP value);
- bool SetSeqFormat(EMITTER_MANIP value);
- bool SetMapFormat(EMITTER_MANIP value);
- bool SetIndent(unsigned n);
- bool SetPreCommentIndent(unsigned n);
- bool SetPostCommentIndent(unsigned n);
- bool SetFloatPrecision(unsigned n);
- bool SetDoublePrecision(unsigned n);
-
- // local setters
- Emitter& SetLocalValue(EMITTER_MANIP value);
- Emitter& SetLocalIndent(const _Indent& indent);
- Emitter& SetLocalPrecision(const _Precision& precision);
-
- // overloads of write
- Emitter& Write(const std::string& str);
- Emitter& Write(bool b);
- Emitter& Write(char ch);
- Emitter& Write(const _Alias& alias);
- Emitter& Write(const _Anchor& anchor);
- Emitter& Write(const _Tag& tag);
- Emitter& Write(const _Comment& comment);
- Emitter& Write(const _Null& n);
- Emitter& Write(const Binary& binary);
-
- template <typename T>
- Emitter& WriteIntegralType(T value);
-
- template <typename T>
- Emitter& WriteStreamable(T value);
-
- private:
- template<typename T> void SetStreamablePrecision(std::stringstream&) {}
- unsigned GetFloatPrecision() const;
- unsigned GetDoublePrecision() const;
-
- void PrepareIntegralStream(std::stringstream& stream) const;
- void StartedScalar();
-
- private:
- void EmitBeginDoc();
- void EmitEndDoc();
- void EmitBeginSeq();
- void EmitEndSeq();
- void EmitBeginMap();
- void EmitEndMap();
- void EmitNewline();
- void EmitKindTag();
- void EmitTag(bool verbatim, const _Tag& tag);
-
- void PrepareNode(EmitterNodeType::value child);
- void PrepareTopNode(EmitterNodeType::value child);
- void FlowSeqPrepareNode(EmitterNodeType::value child);
- void BlockSeqPrepareNode(EmitterNodeType::value child);
-
- void FlowMapPrepareNode(EmitterNodeType::value child);
-
- void FlowMapPrepareLongKey(EmitterNodeType::value child);
- void FlowMapPrepareLongKeyValue(EmitterNodeType::value child);
- void FlowMapPrepareSimpleKey(EmitterNodeType::value child);
- void FlowMapPrepareSimpleKeyValue(EmitterNodeType::value child);
-
- void BlockMapPrepareNode(EmitterNodeType::value child);
-
- void BlockMapPrepareLongKey(EmitterNodeType::value child);
- void BlockMapPrepareLongKeyValue(EmitterNodeType::value child);
- void BlockMapPrepareSimpleKey(EmitterNodeType::value child);
- void BlockMapPrepareSimpleKeyValue(EmitterNodeType::value child);
-
- void SpaceOrIndentTo(bool requireSpace, unsigned indent);
-
- const char *ComputeFullBoolName(bool b) const;
- bool CanEmitNewline() const;
-
- private:
- std::auto_ptr<EmitterState> m_pState;
- ostream_wrapper m_stream;
- };
-
- template <typename T>
- inline Emitter& Emitter::WriteIntegralType(T value)
- {
- if(!good())
- return *this;
-
- PrepareNode(EmitterNodeType::Scalar);
-
- std::stringstream stream;
- PrepareIntegralStream(stream);
- stream << value;
- m_stream << stream.str();
-
- StartedScalar();
-
- return *this;
- }
-
- template <typename T>
- inline Emitter& Emitter::WriteStreamable(T value)
- {
- if(!good())
- return *this;
-
- PrepareNode(EmitterNodeType::Scalar);
-
- std::stringstream stream;
- SetStreamablePrecision<T>(stream);
- stream << value;
- m_stream << stream.str();
-
- StartedScalar();
-
- return *this;
- }
-
- template<>
- inline void Emitter::SetStreamablePrecision<float>(std::stringstream& stream)
- {
- stream.precision(GetFloatPrecision());
- }
-
- template<>
- inline void Emitter::SetStreamablePrecision<double>(std::stringstream& stream)
- {
- stream.precision(GetDoublePrecision());
- }
-
- // overloads of insertion
- inline Emitter& operator << (Emitter& emitter, const std::string& v) { return emitter.Write(v); }
- inline Emitter& operator << (Emitter& emitter, bool v) { return emitter.Write(v); }
- inline Emitter& operator << (Emitter& emitter, char v) { return emitter.Write(v); }
- inline Emitter& operator << (Emitter& emitter, unsigned char v) { return emitter.Write(static_cast<char>(v)); }
- inline Emitter& operator << (Emitter& emitter, const _Alias& v) { return emitter.Write(v); }
- inline Emitter& operator << (Emitter& emitter, const _Anchor& v) { return emitter.Write(v); }
- inline Emitter& operator << (Emitter& emitter, const _Tag& v) { return emitter.Write(v); }
- inline Emitter& operator << (Emitter& emitter, const _Comment& v) { return emitter.Write(v); }
- inline Emitter& operator << (Emitter& emitter, const _Null& v) { return emitter.Write(v); }
- inline Emitter& operator << (Emitter& emitter, const Binary& b) { return emitter.Write(b); }
-
- inline Emitter& operator << (Emitter& emitter, const char *v) { return emitter.Write(std::string(v)); }
-
- inline Emitter& operator << (Emitter& emitter, int v) { return emitter.WriteIntegralType(v); }
- inline Emitter& operator << (Emitter& emitter, unsigned int v) { return emitter.WriteIntegralType(v); }
- inline Emitter& operator << (Emitter& emitter, short v) { return emitter.WriteIntegralType(v); }
- inline Emitter& operator << (Emitter& emitter, unsigned short v) { return emitter.WriteIntegralType(v); }
- inline Emitter& operator << (Emitter& emitter, long v) { return emitter.WriteIntegralType(v); }
- inline Emitter& operator << (Emitter& emitter, unsigned long v) { return emitter.WriteIntegralType(v); }
- inline Emitter& operator << (Emitter& emitter, long long v) { return emitter.WriteIntegralType(v); }
- inline Emitter& operator << (Emitter& emitter, unsigned long long v) { return emitter.WriteIntegralType(v); }
-
- inline Emitter& operator << (Emitter& emitter, float v) { return emitter.WriteStreamable(v); }
- inline Emitter& operator << (Emitter& emitter, double v) { return emitter.WriteStreamable(v); }
-
- inline Emitter& operator << (Emitter& emitter, EMITTER_MANIP value) {
- return emitter.SetLocalValue(value);
- }
-
- inline Emitter& operator << (Emitter& emitter, _Indent indent) {
- return emitter.SetLocalIndent(indent);
- }
-
- inline Emitter& operator << (Emitter& emitter, _Precision precision) {
- return emitter.SetLocalPrecision(precision);
- }
-}
-
-#endif // EMITTER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/emitterdef.h b/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/emitterdef.h
deleted file mode 100644
index c5ca00b29eb..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/emitterdef.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#ifndef EMITTERDEF_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define EMITTERDEF_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-namespace YAML
-{
- struct EmitterNodeType { enum value { None, Property, Scalar, FlowSeq, BlockSeq, FlowMap, BlockMap }; };
-}
-
-#endif // EMITTERDEF_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/emittermanip.h b/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/emittermanip.h
deleted file mode 100644
index a8ec64a4116..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/emittermanip.h
+++ /dev/null
@@ -1,149 +0,0 @@
-#ifndef EMITTERMANIP_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define EMITTERMANIP_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-
-#include <string>
-
-namespace YAML
-{
- enum EMITTER_MANIP {
- // general manipulators
- Auto,
- TagByKind,
- Newline,
-
- // output character set
- EmitNonAscii,
- EscapeNonAscii,
-
- // string manipulators
- // Auto, // duplicate
- SingleQuoted,
- DoubleQuoted,
- Literal,
-
- // bool manipulators
- YesNoBool, // yes, no
- TrueFalseBool, // true, false
- OnOffBool, // on, off
- UpperCase, // TRUE, N
- LowerCase, // f, yes
- CamelCase, // No, Off
- LongBool, // yes, On
- ShortBool, // y, t
-
- // int manipulators
- Dec,
- Hex,
- Oct,
-
- // document manipulators
- BeginDoc,
- EndDoc,
-
- // sequence manipulators
- BeginSeq,
- EndSeq,
- Flow,
- Block,
-
- // map manipulators
- BeginMap,
- EndMap,
- Key,
- Value,
- // Flow, // duplicate
- // Block, // duplicate
- // Auto, // duplicate
- LongKey
- };
-
- struct _Indent {
- _Indent(int value_): value(value_) {}
- int value;
- };
-
- inline _Indent Indent(int value) {
- return _Indent(value);
- }
-
- struct _Alias {
- _Alias(const std::string& content_): content(content_) {}
- std::string content;
- };
-
- inline _Alias Alias(const std::string content) {
- return _Alias(content);
- }
-
- struct _Anchor {
- _Anchor(const std::string& content_): content(content_) {}
- std::string content;
- };
-
- inline _Anchor Anchor(const std::string content) {
- return _Anchor(content);
- }
-
- struct _Tag {
- struct Type { enum value { Verbatim, PrimaryHandle, NamedHandle }; };
-
- explicit _Tag(const std::string& prefix_, const std::string& content_, Type::value type_)
- : prefix(prefix_), content(content_), type(type_)
- {
- }
- std::string prefix;
- std::string content;
- Type::value type;
- };
-
- inline _Tag VerbatimTag(const std::string content) {
- return _Tag("", content, _Tag::Type::Verbatim);
- }
-
- inline _Tag LocalTag(const std::string content) {
- return _Tag("", content, _Tag::Type::PrimaryHandle);
- }
-
- inline _Tag LocalTag(const std::string& prefix, const std::string content) {
- return _Tag(prefix, content, _Tag::Type::NamedHandle);
- }
-
- inline _Tag SecondaryTag(const std::string content) {
- return _Tag("", content, _Tag::Type::NamedHandle);
- }
-
- struct _Comment {
- _Comment(const std::string& content_): content(content_) {}
- std::string content;
- };
-
- inline _Comment Comment(const std::string content) {
- return _Comment(content);
- }
-
- struct _Precision {
- _Precision(int floatPrecision_, int doublePrecision_): floatPrecision(floatPrecision_), doublePrecision(doublePrecision_) {}
-
- int floatPrecision;
- int doublePrecision;
- };
-
- inline _Precision FloatPrecision(int n) {
- return _Precision(n, -1);
- }
-
- inline _Precision DoublePrecision(int n) {
- return _Precision(-1, n);
- }
-
- inline _Precision Precision(int n) {
- return _Precision(n, n);
- }
-}
-
-#endif // EMITTERMANIP_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/eventhandler.h b/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/eventhandler.h
deleted file mode 100644
index 3173a1fbb9f..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/eventhandler.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifndef EVENTHANDLER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define EVENTHANDLER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-#include "yaml-cpp/anchor.h"
-#include <string>
-
-namespace YAML
-{
- struct Mark;
-
- class EventHandler
- {
- public:
- virtual ~EventHandler() {}
-
- virtual void OnDocumentStart(const Mark& mark) = 0;
- virtual void OnDocumentEnd() = 0;
-
- virtual void OnNull(const Mark& mark, anchor_t anchor) = 0;
- virtual void OnAlias(const Mark& mark, anchor_t anchor) = 0;
- virtual void OnScalar(const Mark& mark, const std::string& tag, anchor_t anchor, const std::string& value) = 0;
-
- virtual void OnSequenceStart(const Mark& mark, const std::string& tag, anchor_t anchor) = 0;
- virtual void OnSequenceEnd() = 0;
-
- virtual void OnMapStart(const Mark& mark, const std::string& tag, anchor_t anchor) = 0;
- virtual void OnMapEnd() = 0;
- };
-}
-
-#endif // EVENTHANDLER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
diff --git a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/exceptions.h b/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/exceptions.h
deleted file mode 100644
index ffbf7bd16db..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/exceptions.h
+++ /dev/null
@@ -1,208 +0,0 @@
-#ifndef EXCEPTIONS_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define EXCEPTIONS_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-
-#include "yaml-cpp/mark.h"
-#include "yaml-cpp/traits.h"
-#include <stdexcept>
-#include <string>
-#include <sstream>
-
-namespace YAML
-{
- // error messages
- namespace ErrorMsg
- {
- const char * const YAML_DIRECTIVE_ARGS = "YAML directives must have exactly one argument";
- const char * const YAML_VERSION = "bad YAML version: ";
- const char * const YAML_MAJOR_VERSION = "YAML major version too large";
- const char * const REPEATED_YAML_DIRECTIVE= "repeated YAML directive";
- const char * const TAG_DIRECTIVE_ARGS = "TAG directives must have exactly two arguments";
- const char * const REPEATED_TAG_DIRECTIVE = "repeated TAG directive";
- const char * const CHAR_IN_TAG_HANDLE = "illegal character found while scanning tag handle";
- const char * const TAG_WITH_NO_SUFFIX = "tag handle with no suffix";
- const char * const END_OF_VERBATIM_TAG = "end of verbatim tag not found";
- const char * const END_OF_MAP = "end of map not found";
- const char * const END_OF_MAP_FLOW = "end of map flow not found";
- const char * const END_OF_SEQ = "end of sequence not found";
- const char * const END_OF_SEQ_FLOW = "end of sequence flow not found";
- const char * const MULTIPLE_TAGS = "cannot assign multiple tags to the same node";
- const char * const MULTIPLE_ANCHORS = "cannot assign multiple anchors to the same node";
- const char * const MULTIPLE_ALIASES = "cannot assign multiple aliases to the same node";
- const char * const ALIAS_CONTENT = "aliases can't have any content, *including* tags";
- const char * const INVALID_HEX = "bad character found while scanning hex number";
- const char * const INVALID_UNICODE = "invalid unicode: ";
- const char * const INVALID_ESCAPE = "unknown escape character: ";
- const char * const UNKNOWN_TOKEN = "unknown token";
- const char * const DOC_IN_SCALAR = "illegal document indicator in scalar";
- const char * const EOF_IN_SCALAR = "illegal EOF in scalar";
- const char * const CHAR_IN_SCALAR = "illegal character in scalar";
- const char * const TAB_IN_INDENTATION = "illegal tab when looking for indentation";
- const char * const FLOW_END = "illegal flow end";
- const char * const BLOCK_ENTRY = "illegal block entry";
- const char * const MAP_KEY = "illegal map key";
- const char * const MAP_VALUE = "illegal map value";
- const char * const ALIAS_NOT_FOUND = "alias not found after *";
- const char * const ANCHOR_NOT_FOUND = "anchor not found after &";
- const char * const CHAR_IN_ALIAS = "illegal character found while scanning alias";
- const char * const CHAR_IN_ANCHOR = "illegal character found while scanning anchor";
- const char * const ZERO_INDENT_IN_BLOCK = "cannot set zero indentation for a block scalar";
- const char * const CHAR_IN_BLOCK = "unexpected character in block scalar";
- const char * const AMBIGUOUS_ANCHOR = "cannot assign the same alias to multiple nodes";
- const char * const UNKNOWN_ANCHOR = "the referenced anchor is not defined";
-
- const char * const INVALID_NODE = "invalid node; this may result from using a map iterator as a sequence iterator, or vice-versa";
- const char * const INVALID_SCALAR = "invalid scalar";
- const char * const KEY_NOT_FOUND = "key not found";
- const char * const BAD_CONVERSION = "bad conversion";
- const char * const BAD_DEREFERENCE = "bad dereference";
- const char * const BAD_SUBSCRIPT = "operator[] call on a scalar";
- const char * const BAD_PUSHBACK = "appending to a non-sequence";
- const char * const BAD_INSERT = "inserting in a non-convertible-to-map";
-
- const char * const UNMATCHED_GROUP_TAG = "unmatched group tag";
- const char * const UNEXPECTED_END_SEQ = "unexpected end sequence token";
- const char * const UNEXPECTED_END_MAP = "unexpected end map token";
- const char * const SINGLE_QUOTED_CHAR = "invalid character in single-quoted string";
- const char * const INVALID_ANCHOR = "invalid anchor";
- const char * const INVALID_ALIAS = "invalid alias";
- const char * const INVALID_TAG = "invalid tag";
- const char * const BAD_FILE = "bad file";
-
- template <typename T>
- inline const std::string KEY_NOT_FOUND_WITH_KEY(const T&, typename disable_if<is_numeric<T> >::type * = 0) {
- return KEY_NOT_FOUND;
- }
-
- inline const std::string KEY_NOT_FOUND_WITH_KEY(const std::string& key) {
- std::stringstream stream;
- stream << KEY_NOT_FOUND << ": " << key;
- return stream.str();
- }
-
- template <typename T>
- inline const std::string KEY_NOT_FOUND_WITH_KEY(const T& key, typename enable_if<is_numeric<T> >::type * = 0) {
- std::stringstream stream;
- stream << KEY_NOT_FOUND << ": " << key;
- return stream.str();
- }
- }
-
- class Exception: public std::runtime_error {
- public:
- Exception(const Mark& mark_, const std::string& msg_)
- : std::runtime_error(build_what(mark_, msg_)), mark(mark_), msg(msg_) {}
- virtual ~Exception() throw() {}
-
- Mark mark;
- std::string msg;
-
- private:
- static const std::string build_what(const Mark& mark, const std::string& msg) {
- std::stringstream output;
- output << "yaml-cpp: error at line " << mark.line+1 << ", column " << mark.column+1 << ": " << msg;
- return output.str();
- }
- };
-
- class ParserException: public Exception {
- public:
- ParserException(const Mark& mark_, const std::string& msg_)
- : Exception(mark_, msg_) {}
- };
-
- class RepresentationException: public Exception {
- public:
- RepresentationException(const Mark& mark_, const std::string& msg_)
- : Exception(mark_, msg_) {}
- };
-
- // representation exceptions
- class InvalidScalar: public RepresentationException {
- public:
- InvalidScalar(const Mark& mark_)
- : RepresentationException(mark_, ErrorMsg::INVALID_SCALAR) {}
- };
-
- class KeyNotFound: public RepresentationException {
- public:
- template <typename T>
- KeyNotFound(const Mark& mark_, const T& key_)
- : RepresentationException(mark_, ErrorMsg::KEY_NOT_FOUND_WITH_KEY(key_)) {}
- };
-
- template <typename T>
- class TypedKeyNotFound: public KeyNotFound {
- public:
- TypedKeyNotFound(const Mark& mark_, const T& key_)
- : KeyNotFound(mark_, key_), key(key_) {}
- virtual ~TypedKeyNotFound() throw() {}
-
- T key;
- };
-
- template <typename T>
- inline TypedKeyNotFound <T> MakeTypedKeyNotFound(const Mark& mark, const T& key) {
- return TypedKeyNotFound <T> (mark, key);
- }
-
- class InvalidNode: public RepresentationException {
- public:
- InvalidNode()
- : RepresentationException(Mark::null_mark(), ErrorMsg::INVALID_NODE) {}
- };
-
- class BadConversion: public RepresentationException {
- public:
- BadConversion()
- : RepresentationException(Mark::null_mark(), ErrorMsg::BAD_CONVERSION) {}
- };
-
- template<typename T>
- class TypedBadConversion: public BadConversion {
- public:
- TypedBadConversion()
- : BadConversion() {}
- };
-
- class BadDereference: public RepresentationException {
- public:
- BadDereference()
- : RepresentationException(Mark::null_mark(), ErrorMsg::BAD_DEREFERENCE) {}
- };
-
- class BadSubscript: public RepresentationException {
- public:
- BadSubscript()
- : RepresentationException(Mark::null_mark(), ErrorMsg::BAD_SUBSCRIPT) {}
- };
-
- class BadPushback: public RepresentationException {
- public:
- BadPushback()
- : RepresentationException(Mark::null_mark(), ErrorMsg::BAD_PUSHBACK) {}
- };
-
- class BadInsert: public RepresentationException {
- public:
- BadInsert()
- : RepresentationException(Mark::null_mark(), ErrorMsg::BAD_INSERT) {}
- };
-
- class EmitterException: public Exception {
- public:
- EmitterException(const std::string& msg_)
- : Exception(Mark::null_mark(), msg_) {}
- };
-
- class BadFile: public Exception {
- public:
- BadFile(): Exception(Mark::null_mark(), ErrorMsg::BAD_FILE) {}
- };
-}
-
-#endif // EXCEPTIONS_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/mark.h b/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/mark.h
deleted file mode 100644
index e07b317bdcb..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/mark.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef MARK_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define MARK_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-
-#include "yaml-cpp/dll.h"
-
-namespace YAML
-{
- struct YAML_CPP_API Mark {
- Mark(): pos(0), line(0), column(0) {}
-
- static const Mark null_mark() { return Mark(-1, -1, -1); }
-
- int pos;
- int line, column;
-
- private:
- Mark(int pos_, int line_, int column_): pos(pos_), line(line_), column(column_) {}
- };
-}
-
-#endif // MARK_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/convert.h b/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/convert.h
deleted file mode 100644
index d73f2843d9e..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/convert.h
+++ /dev/null
@@ -1,280 +0,0 @@
-#ifndef NODE_CONVERT_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define NODE_CONVERT_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-
-#include "yaml-cpp/binary.h"
-#include "yaml-cpp/node/node.h"
-#include "yaml-cpp/node/iterator.h"
-#include "yaml-cpp/null.h"
-#include <limits>
-#include <list>
-#include <map>
-#include <sstream>
-#include <vector>
-
-namespace YAML
-{
- namespace conversion {
- inline bool IsInfinity(const std::string& input) {
- return input == ".inf" || input == ".Inf" || input == ".INF" || input == "+.inf" || input == "+.Inf" || input == "+.INF";
- }
-
- inline bool IsNegativeInfinity(const std::string& input) {
- return input == "-.inf" || input == "-.Inf" || input == "-.INF";
- }
-
- inline bool IsNaN(const std::string& input) {
- return input == ".nan" || input == ".NaN" || input == ".NAN";
- }
- }
-
- // std::string
- template<>
- struct convert<std::string> {
- static Node encode(const std::string& rhs) {
- return Node(rhs);
- }
-
- static bool decode(const Node& node, std::string& rhs) {
- if(!node.IsScalar())
- return false;
- rhs = node.Scalar();
- return true;
- }
- };
-
- // C-strings can only be encoded
- template<>
- struct convert<const char *> {
- static Node encode(const char *&rhs) {
- return Node(rhs);
- }
- };
-
- template<std::size_t N>
- struct convert<const char[N]> {
- static Node encode(const char (&rhs)[N]) {
- return Node(rhs);
- }
- };
-
- template<>
- struct convert<_Null> {
- static Node encode(const _Null& /* rhs */) {
- return Node();
- }
-
- static bool decode(const Node& node, _Null& /* rhs */) {
- return node.IsNull();
- }
- };
-
-#define YAML_DEFINE_CONVERT_STREAMABLE(type, negative_op)\
- template<>\
- struct convert<type> {\
- static Node encode(const type& rhs) {\
- std::stringstream stream;\
- stream.precision(std::numeric_limits<type>::digits10 + 1);\
- stream << rhs;\
- return Node(stream.str());\
- }\
- \
- static bool decode(const Node& node, type& rhs) {\
- if(node.Type() != NodeType::Scalar)\
- return false;\
- const std::string& input = node.Scalar();\
- std::stringstream stream(input);\
- stream.unsetf(std::ios::dec);\
- if((stream >> rhs) && (stream >> std::ws).eof())\
- return true;\
- if(std::numeric_limits<type>::has_infinity) {\
- if(conversion::IsInfinity(input)) {\
- rhs = std::numeric_limits<type>::infinity();\
- return true;\
- } else if(conversion::IsNegativeInfinity(input)) {\
- rhs = negative_op std::numeric_limits<type>::infinity();\
- return true;\
- }\
- }\
- \
- if(std::numeric_limits<type>::has_quiet_NaN && conversion::IsNaN(input)) {\
- rhs = std::numeric_limits<type>::quiet_NaN();\
- return true;\
- }\
- \
- return false;\
- }\
- }
-
-#define YAML_DEFINE_CONVERT_STREAMABLE_SIGNED(type)\
- YAML_DEFINE_CONVERT_STREAMABLE(type, -)
-
-#define YAML_DEFINE_CONVERT_STREAMABLE_UNSIGNED(type)\
- YAML_DEFINE_CONVERT_STREAMABLE(type, +)
-
- YAML_DEFINE_CONVERT_STREAMABLE_SIGNED(int);
- YAML_DEFINE_CONVERT_STREAMABLE_SIGNED(short);
- YAML_DEFINE_CONVERT_STREAMABLE_SIGNED(long);
- YAML_DEFINE_CONVERT_STREAMABLE_SIGNED(long long);
- YAML_DEFINE_CONVERT_STREAMABLE_UNSIGNED(unsigned);
- YAML_DEFINE_CONVERT_STREAMABLE_UNSIGNED(unsigned short);
- YAML_DEFINE_CONVERT_STREAMABLE_UNSIGNED(unsigned long);
- YAML_DEFINE_CONVERT_STREAMABLE_UNSIGNED(unsigned long long);
-
- YAML_DEFINE_CONVERT_STREAMABLE_SIGNED(char);
- YAML_DEFINE_CONVERT_STREAMABLE_UNSIGNED(unsigned char);
-
- YAML_DEFINE_CONVERT_STREAMABLE_SIGNED(float);
- YAML_DEFINE_CONVERT_STREAMABLE_SIGNED(double);
- YAML_DEFINE_CONVERT_STREAMABLE_SIGNED(long double);
-
-#undef YAML_DEFINE_CONVERT_STREAMABLE_SIGNED
-#undef YAML_DEFINE_CONVERT_STREAMABLE_UNSIGNED
-#undef YAML_DEFINE_CONVERT_STREAMABLE
-
- // bool
- template<>
- struct convert<bool> {
- static Node encode(bool rhs) {
- return rhs ? Node("true") : Node("false");
- }
-
- static bool decode(const Node& node, bool& rhs);
- };
-
- // std::map
- template<typename K, typename V>
- struct convert<std::map<K, V> > {
- static Node encode(const std::map<K, V>& rhs) {
- Node node(NodeType::Map);
- for(typename std::map<K, V>::const_iterator it=rhs.begin();it!=rhs.end();++it)
- node.force_insert(it->first, it->second);
- return node;
- }
-
- static bool decode(const Node& node, std::map<K, V>& rhs) {
- if(!node.IsMap())
- return false;
-
- rhs.clear();
- for(const_iterator it=node.begin();it!=node.end();++it)
-#if defined(__GNUC__) && __GNUC__ < 4
-//workaround for GCC 3:
- rhs[it->first.template as<K>()] = it->second.template as<V>();
-#else
- rhs[it->first.as<K>()] = it->second.as<V>();
-#endif
- return true;
- }
- };
-
- // std::vector
- template<typename T>
- struct convert<std::vector<T> > {
- static Node encode(const std::vector<T>& rhs) {
- Node node(NodeType::Sequence);
- for(typename std::vector<T>::const_iterator it=rhs.begin();it!=rhs.end();++it)
- node.push_back(*it);
- return node;
- }
-
- static bool decode(const Node& node, std::vector<T>& rhs) {
- if(!node.IsSequence())
- return false;
-
- rhs.clear();
- for(const_iterator it=node.begin();it!=node.end();++it)
-#if defined(__GNUC__) && __GNUC__ < 4
-//workaround for GCC 3:
- rhs.push_back(it->template as<T>());
-#else
- rhs.push_back(it->as<T>());
-#endif
- return true;
- }
- };
-
- // std::list
- template<typename T>
- struct convert<std::list<T> > {
- static Node encode(const std::list<T>& rhs) {
- Node node(NodeType::Sequence);
- for(typename std::list<T>::const_iterator it=rhs.begin();it!=rhs.end();++it)
- node.push_back(*it);
- return node;
- }
-
- static bool decode(const Node& node, std::list<T>& rhs) {
- if(!node.IsSequence())
- return false;
-
- rhs.clear();
- for(const_iterator it=node.begin();it!=node.end();++it)
-#if defined(__GNUC__) && __GNUC__ < 4
-//workaround for GCC 3:
- rhs.push_back(it->template as<T>());
-#else
- rhs.push_back(it->as<T>());
-#endif
- return true;
- }
- };
-
- // std::pair
- template<typename T, typename U>
- struct convert<std::pair<T, U> > {
- static Node encode(const std::pair<T, U>& rhs) {
- Node node(NodeType::Sequence);
- node.push_back(rhs.first);
- node.push_back(rhs.second);
- return node;
- }
-
- static bool decode(const Node& node, std::pair<T, U>& rhs) {
- if(!node.IsSequence())
- return false;
- if (node.size() != 2)
- return false;
-
-#if defined(__GNUC__) && __GNUC__ < 4
-//workaround for GCC 3:
- rhs.first = node[0].template as<T>();
-#else
- rhs.first = node[0].as<T>();
-#endif
-#if defined(__GNUC__) && __GNUC__ < 4
-//workaround for GCC 3:
- rhs.second = node[1].template as<U>();
-#else
- rhs.second = node[1].as<U>();
-#endif
- return true;
- }
- };
-
- // binary
- template<>
- struct convert<Binary> {
- static Node encode(const Binary& rhs) {
- return Node(EncodeBase64(rhs.data(), rhs.size()));
- }
-
- static bool decode(const Node& node, Binary& rhs) {
- if(!node.IsScalar())
- return false;
-
- std::vector<unsigned char> data = DecodeBase64(node.Scalar());
- if(data.empty() && !node.Scalar().empty())
- return false;
-
- rhs.swap(data);
- return true;
- }
- };
-}
-
-#endif // NODE_CONVERT_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/detail/bool_type.h b/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/detail/bool_type.h
deleted file mode 100644
index 80ed9a4b37d..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/detail/bool_type.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef NODE_DETAIL_BOOL_TYPE_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define NODE_DETAIL_BOOL_TYPE_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-namespace YAML
-{
- namespace detail
- {
- struct unspecified_bool {
- struct NOT_ALLOWED;
- static void true_value(NOT_ALLOWED*) {}
- };
- typedef void (*unspecified_bool_type)(unspecified_bool::NOT_ALLOWED*);
- }
-}
-
-#define YAML_CPP_OPERATOR_BOOL()\
-operator YAML::detail::unspecified_bool_type() const\
-{\
- return this->operator!() ? 0 : &YAML::detail::unspecified_bool::true_value;\
-}
-
-#endif // NODE_DETAIL_BOOL_TYPE_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/detail/impl.h b/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/detail/impl.h
deleted file mode 100644
index ce5fd573f2c..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/detail/impl.h
+++ /dev/null
@@ -1,168 +0,0 @@
-#ifndef NODE_DETAIL_IMPL_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define NODE_DETAIL_IMPL_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-
-#include "yaml-cpp/node/detail/node.h"
-#include "yaml-cpp/node/detail/node_data.h"
-#include <boost/type_traits.hpp>
-
-namespace YAML
-{
- namespace detail
- {
- template<typename Key, typename Enable = void>
- struct get_idx {
- static node *get(const std::vector<node *>& /* sequence */, const Key& /* key */, shared_memory_holder /* pMemory */) {
- return 0;
- }
- };
-
- template<typename Key>
- struct get_idx<Key, typename boost::enable_if_c<boost::is_unsigned<Key>::value && !boost::is_same<Key, bool>::value>::type> {
- static node *get(const std::vector<node *>& sequence, const Key& key, shared_memory_holder /* pMemory */) {
- return key < sequence.size() ? sequence[key] : 0;
- }
-
- static node *get(std::vector<node *>& sequence, const Key& key, shared_memory_holder pMemory) {
- if(key > sequence.size())
- return 0;
- if(key == sequence.size())
- sequence.push_back(&pMemory->create_node());
- return sequence[key];
- }
- };
-
- template<typename Key>
- struct get_idx<Key, typename boost::enable_if<boost::is_signed<Key> >::type> {
- static node *get(const std::vector<node *>& sequence, const Key& key, shared_memory_holder pMemory) {
- return key >= 0 ? get_idx<std::size_t>::get(sequence, static_cast<std::size_t>(key), pMemory) : 0;
- }
- static node *get(std::vector<node *>& sequence, const Key& key, shared_memory_holder pMemory) {
- return key >= 0 ? get_idx<std::size_t>::get(sequence, static_cast<std::size_t>(key), pMemory) : 0;
- }
- };
-
- // indexing
- template<typename Key>
- inline node& node_data::get(const Key& key, shared_memory_holder pMemory) const
- {
- switch(m_type) {
- case NodeType::Map:
- break;
- case NodeType::Undefined:
- case NodeType::Null:
- return pMemory->create_node();
- case NodeType::Sequence:
- if(node *pNode = get_idx<Key>::get(m_sequence, key, pMemory))
- return *pNode;
- return pMemory->create_node();
- case NodeType::Scalar:
- throw BadSubscript();
- }
-
- for(node_map::const_iterator it=m_map.begin();it!=m_map.end();++it) {
- if(equals(*it->first, key, pMemory))
- return *it->second;
- }
-
- return pMemory->create_node();
- }
-
- template<typename Key>
- inline node& node_data::get(const Key& key, shared_memory_holder pMemory)
- {
- switch(m_type) {
- case NodeType::Map:
- break;
- case NodeType::Undefined:
- case NodeType::Null:
- case NodeType::Sequence:
- if(node *pNode = get_idx<Key>::get(m_sequence, key, pMemory)) {
- m_type = NodeType::Sequence;
- return *pNode;
- }
-
- convert_to_map(pMemory);
- break;
- case NodeType::Scalar:
- throw BadSubscript();
- }
-
- for(node_map::const_iterator it=m_map.begin();it!=m_map.end();++it) {
- if(equals(*it->first, key, pMemory))
- return *it->second;
- }
-
- node& k = convert_to_node(key, pMemory);
- node& v = pMemory->create_node();
- insert_map_pair(k, v);
- return v;
- }
-
- template<typename Key>
- inline bool node_data::remove(const Key& key, shared_memory_holder pMemory)
- {
- if(m_type != NodeType::Map)
- return false;
-
- for(node_map::iterator it=m_map.begin();it!=m_map.end();++it) {
- if(equals(*it->first, key, pMemory)) {
- m_map.erase(it);
- return true;
- }
- }
-
- return false;
- }
-
- // map
- template<typename Key, typename Value>
- inline void node_data::force_insert(const Key& key, const Value& value, shared_memory_holder pMemory)
- {
- switch(m_type) {
- case NodeType::Map:
- break;
- case NodeType::Undefined:
- case NodeType::Null:
- case NodeType::Sequence:
- convert_to_map(pMemory);
- break;
- case NodeType::Scalar:
- throw BadInsert();
- }
-
- node& k = convert_to_node(key, pMemory);
- node& v = convert_to_node(value, pMemory);
- insert_map_pair(k, v);
- }
-
- template<typename T>
- inline bool node_data::equals(node& node, const T& rhs, shared_memory_holder pMemory)
- {
- T lhs;
- if(convert<T>::decode(Node(node, pMemory), lhs))
- return lhs == rhs;
- return false;
- }
-
- inline bool node_data::equals(node& node, const char *rhs, shared_memory_holder pMemory)
- {
- return equals<std::string>(node, rhs, pMemory);
- }
-
- template<typename T>
- inline node& node_data::convert_to_node(const T& rhs, shared_memory_holder pMemory)
- {
- Node value = convert<T>::encode(rhs);
- value.EnsureNodeExists();
- pMemory->merge(*value.m_pMemory);
- return *value.m_pNode;
- }
- }
-}
-
-#endif // NODE_DETAIL_IMPL_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/detail/iterator.h b/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/detail/iterator.h
deleted file mode 100644
index dc699f4761d..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/detail/iterator.h
+++ /dev/null
@@ -1,64 +0,0 @@
-#ifndef VALUE_DETAIL_ITERATOR_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define VALUE_DETAIL_ITERATOR_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-
-#include "yaml-cpp/dll.h"
-#include "yaml-cpp/node/ptr.h"
-#include "yaml-cpp/node/detail/node_iterator.h"
-#include <boost/iterator/iterator_adaptor.hpp>
-#include <boost/utility.hpp>
-
-namespace YAML
-{
- namespace detail
- {
- struct iterator_value;
-
- template<typename V>
- class iterator_base: public boost::iterator_adaptor<
- iterator_base<V>,
- node_iterator,
- V,
- std::forward_iterator_tag,
- V>
- {
- private:
- template<typename> friend class iterator_base;
- struct enabler {};
- typedef typename iterator_base::base_type base_type;
-
- public:
- typedef typename iterator_base::value_type value_type;
-
- public:
- iterator_base() {}
- explicit iterator_base(base_type rhs, shared_memory_holder pMemory): iterator_base::iterator_adaptor_(rhs), m_pMemory(pMemory) {}
-
- template<class W>
- iterator_base(const iterator_base<W>& rhs, typename boost::enable_if<boost::is_convertible<W*, V*>, enabler>::type = enabler()): iterator_base::iterator_adaptor_(rhs.base()), m_pMemory(rhs.m_pMemory) {}
-
- private:
- friend class boost::iterator_core_access;
-
- void increment() { this->base_reference() = boost::next(this->base()); }
-
- value_type dereference() const {
- const typename base_type::value_type& v = *this->base();
- if(v.pNode)
- return value_type(Node(*v, m_pMemory));
- if(v.first && v.second)
- return value_type(Node(*v.first, m_pMemory), Node(*v.second, m_pMemory));
- return value_type();
- }
-
- private:
- shared_memory_holder m_pMemory;
- };
- }
-}
-
-#endif // VALUE_DETAIL_ITERATOR_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/detail/iterator_fwd.h b/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/detail/iterator_fwd.h
deleted file mode 100644
index c4efb2c1fa6..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/detail/iterator_fwd.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef VALUE_DETAIL_ITERATOR_FWD_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define VALUE_DETAIL_ITERATOR_FWD_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-
-#include "yaml-cpp/dll.h"
-#include <list>
-#include <utility>
-#include <vector>
-
-namespace YAML
-{
- class node;
-
- namespace detail {
- struct iterator_value;
- template<typename V> class iterator_base;
- }
-
- typedef detail::iterator_base<detail::iterator_value> iterator;
- typedef detail::iterator_base<const detail::iterator_value> const_iterator;
-}
-
-#endif // VALUE_DETAIL_ITERATOR_FWD_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/detail/memory.h b/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/detail/memory.h
deleted file mode 100644
index 243a81a9661..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/detail/memory.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef VALUE_DETAIL_MEMORY_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define VALUE_DETAIL_MEMORY_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-#include "yaml-cpp/node/ptr.h"
-#include <set>
-#include <boost/shared_ptr.hpp>
-
-namespace YAML
-{
- namespace detail
- {
- class memory {
- public:
- node& create_node();
- void merge(const memory& rhs);
-
- private:
- typedef std::set<shared_node> Nodes;
- Nodes m_nodes;
- };
-
- class memory_holder {
- public:
- memory_holder(): m_pMemory(new memory) {}
-
- node& create_node() { return m_pMemory->create_node(); }
- void merge(memory_holder& rhs);
-
- private:
- boost::shared_ptr<memory> m_pMemory;
- };
- }
-}
-
-#endif // VALUE_DETAIL_MEMORY_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/detail/node.h b/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/detail/node.h
deleted file mode 100644
index ce3a76d30ae..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/detail/node.h
+++ /dev/null
@@ -1,130 +0,0 @@
-#ifndef NODE_DETAIL_NODE_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define NODE_DETAIL_NODE_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-
-#include "yaml-cpp/dll.h"
-#include "yaml-cpp/node/type.h"
-#include "yaml-cpp/node/ptr.h"
-#include "yaml-cpp/node/detail/node_ref.h"
-#include <set>
-#include <boost/utility.hpp>
-
-namespace YAML
-{
- namespace detail
- {
- class node: private boost::noncopyable
- {
- public:
- node(): m_pRef(new node_ref) {}
-
- bool is(const node& rhs) const { return m_pRef == rhs.m_pRef; }
- const node_ref *ref() const { return m_pRef.get(); }
-
- bool is_defined() const { return m_pRef->is_defined(); }
- NodeType::value type() const { return m_pRef->type(); }
-
- const std::string& scalar() const { return m_pRef->scalar(); }
- const std::string& tag() const { return m_pRef->tag(); }
-
- void mark_defined() {
- if(is_defined())
- return;
-
- m_pRef->mark_defined();
- for(nodes::iterator it=m_dependencies.begin();it!=m_dependencies.end();++it)
- (*it)->mark_defined();
- m_dependencies.clear();
- }
-
- void add_dependency(node& rhs) {
- if(is_defined())
- rhs.mark_defined();
- else
- m_dependencies.insert(&rhs);
- }
-
- void set_ref(const node& rhs) {
- if(rhs.is_defined())
- mark_defined();
- m_pRef = rhs.m_pRef;
- }
- void set_data(const node& rhs) {
- if(rhs.is_defined())
- mark_defined();
- m_pRef->set_data(*rhs.m_pRef);
- }
-
- void set_type(NodeType::value type) {
- if(type != NodeType::Undefined)
- mark_defined();
- m_pRef->set_type(type);
- }
- void set_null() {
- mark_defined();
- m_pRef->set_null();
- }
- void set_scalar(const std::string& scalar) {
- mark_defined();
- m_pRef->set_scalar(scalar);
- }
- void set_tag(const std::string& tag) {
- mark_defined();
- m_pRef->set_tag(tag);
- }
-
- // size/iterator
- std::size_t size() const { return m_pRef->size(); }
-
- const_node_iterator begin() const { return static_cast<const node_ref&>(*m_pRef).begin(); }
- node_iterator begin() { return m_pRef->begin(); }
-
- const_node_iterator end() const { return static_cast<const node_ref&>(*m_pRef).end(); }
- node_iterator end() { return m_pRef->end(); }
-
- // sequence
- void push_back(node& node, shared_memory_holder pMemory) {
- m_pRef->push_back(node, pMemory);
- node.add_dependency(*this);
- }
- void insert(node& key, node& value, shared_memory_holder pMemory) {
- m_pRef->insert(key, value, pMemory);
- key.add_dependency(*this);
- value.add_dependency(*this);
- }
-
- // indexing
- template<typename Key> node& get(const Key& key, shared_memory_holder pMemory) const { return static_cast<const node_ref&>(*m_pRef).get(key, pMemory); }
- template<typename Key> node& get(const Key& key, shared_memory_holder pMemory) {
- node& value = m_pRef->get(key, pMemory);
- value.add_dependency(*this);
- return value;
- }
- template<typename Key> bool remove(const Key& key, shared_memory_holder pMemory) { return m_pRef->remove(key, pMemory); }
-
- node& get(node& key, shared_memory_holder pMemory) const { return static_cast<const node_ref&>(*m_pRef).get(key, pMemory); }
- node& get(node& key, shared_memory_holder pMemory) {
- node& value = m_pRef->get(key, pMemory);
- key.add_dependency(*this);
- value.add_dependency(*this);
- return value;
- }
- bool remove(node& key, shared_memory_holder pMemory) { return m_pRef->remove(key, pMemory); }
-
- // map
- template<typename Key, typename Value>
- void force_insert(const Key& key, const Value& value, shared_memory_holder pMemory){ m_pRef->force_insert(key, value, pMemory); }
-
- private:
- shared_node_ref m_pRef;
- typedef std::set<node *> nodes;
- nodes m_dependencies;
- };
- }
-}
-
-#endif // NODE_DETAIL_NODE_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/detail/node_data.h b/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/detail/node_data.h
deleted file mode 100644
index 413da5fb1d9..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/detail/node_data.h
+++ /dev/null
@@ -1,110 +0,0 @@
-#ifndef VALUE_DETAIL_NODE_DATA_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define VALUE_DETAIL_NODE_DATA_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-
-#include "yaml-cpp/dll.h"
-#include "yaml-cpp/node/iterator.h"
-#include "yaml-cpp/node/ptr.h"
-#include "yaml-cpp/node/type.h"
-#include <boost/utility.hpp>
-#include <list>
-#include <utility>
-#include <vector>
-
-namespace YAML
-{
- namespace detail
- {
- class node_data: private boost::noncopyable
- {
- public:
- node_data();
-
- void mark_defined();
- void set_type(NodeType::value type);
- void set_tag(const std::string& tag);
- void set_null();
- void set_scalar(const std::string& scalar);
-
- bool is_defined() const { return m_isDefined; }
- NodeType::value type() const { return m_isDefined ? m_type : NodeType::Undefined; }
- const std::string& scalar() const { return m_scalar; }
- const std::string& tag() const { return m_tag; }
-
- // size/iterator
- std::size_t size() const;
-
- const_node_iterator begin() const;
- node_iterator begin();
-
- const_node_iterator end() const;
- node_iterator end();
-
- // sequence
- void push_back(node& node, shared_memory_holder pMemory);
- void insert(node& key, node& value, shared_memory_holder pMemory);
-
- // indexing
- template<typename Key> node& get(const Key& key, shared_memory_holder pMemory) const;
- template<typename Key> node& get(const Key& key, shared_memory_holder pMemory);
- template<typename Key> bool remove(const Key& key, shared_memory_holder pMemory);
-
- node& get(node& key, shared_memory_holder pMemory) const;
- node& get(node& key, shared_memory_holder pMemory);
- bool remove(node& key, shared_memory_holder pMemory);
-
- // map
- template<typename Key, typename Value>
- void force_insert(const Key& key, const Value& value, shared_memory_holder pMemory);
-
- public:
- static std::string empty_scalar;
-
- private:
- void compute_seq_size() const;
- void compute_map_size() const;
-
- void reset_sequence();
- void reset_map();
-
- void insert_map_pair(node& key, node& value);
- void convert_to_map(shared_memory_holder pMemory);
- void convert_sequence_to_map(shared_memory_holder pMemory);
-
- template<typename T>
- static bool equals(node& node, const T& rhs, shared_memory_holder pMemory);
- static bool equals(node& node, const char *rhs, shared_memory_holder pMemory);
-
- template<typename T>
- static node& convert_to_node(const T& rhs, shared_memory_holder pMemory);
-
- private:
- bool m_isDefined;
- NodeType::value m_type;
- std::string m_tag;
-
- // scalar
- std::string m_scalar;
-
- // sequence
- typedef std::vector<node *> node_seq;
- node_seq m_sequence;
-
- mutable std::size_t m_seqSize;
-
- // map
- typedef std::map<node *, node *> node_map;
- node_map m_map;
-
- typedef std::pair<node *, node *> kv_pair;
- typedef std::list<kv_pair> kv_pairs;
- mutable kv_pairs m_undefinedPairs;
- };
- }
-}
-
-#endif // VALUE_DETAIL_NODE_DATA_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/detail/node_iterator.h b/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/detail/node_iterator.h
deleted file mode 100644
index 294921b34aa..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/detail/node_iterator.h
+++ /dev/null
@@ -1,139 +0,0 @@
-#ifndef VALUE_DETAIL_NODE_ITERATOR_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define VALUE_DETAIL_NODE_ITERATOR_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-
-#include "yaml-cpp/dll.h"
-#include "yaml-cpp/node/ptr.h"
-#include <boost/iterator/iterator_facade.hpp>
-#include <boost/utility/enable_if.hpp>
-#include <map>
-#include <utility>
-#include <vector>
-
-namespace YAML
-{
- namespace detail
- {
- struct iterator_type { enum value { None, Sequence, Map }; };
-
- template<typename V>
- struct node_iterator_value: public std::pair<V*, V*> {
- typedef std::pair<V*, V*> kv;
-
- node_iterator_value(): kv(), pNode(0) {}
- explicit node_iterator_value(V& rhs): kv(), pNode(&rhs) {}
- explicit node_iterator_value(V& key, V& value): kv(&key, &value), pNode(0) {}
-
- V& operator *() const { return *pNode; }
- V& operator ->() const { return *pNode; }
-
- V *pNode;
- };
-
- typedef std::vector<node *> node_seq;
- typedef std::map<node *, node *> node_map;
-
- template<typename V>
- struct node_iterator_type {
- typedef node_seq::iterator seq;
- typedef node_map::iterator map;
- };
-
- template<typename V>
- struct node_iterator_type<const V> {
- typedef node_seq::const_iterator seq;
- typedef node_map::const_iterator map;
- };
-
-
- template<typename V>
- class node_iterator_base: public boost::iterator_facade<
- node_iterator_base<V>,
- node_iterator_value<V>,
- std::forward_iterator_tag,
- node_iterator_value<V> >
- {
- private:
- struct enabler {};
-
- public:
- typedef typename node_iterator_type<V>::seq SeqIter;
- typedef typename node_iterator_type<V>::map MapIter;
- typedef node_iterator_value<V> value_type;
-
- node_iterator_base(): m_type(iterator_type::None) {}
- explicit node_iterator_base(SeqIter seqIt): m_type(iterator_type::Sequence), m_seqIt(seqIt) {}
- explicit node_iterator_base(MapIter mapIt, MapIter mapEnd): m_type(iterator_type::Map), m_mapIt(mapIt), m_mapEnd(mapEnd) {
- m_mapIt = increment_until_defined(m_mapIt);
- }
-
- template<typename W>
- node_iterator_base(const node_iterator_base<W>& rhs, typename boost::enable_if<boost::is_convertible<W*, V*>, enabler>::type = enabler())
- : m_type(rhs.m_type), m_seqIt(rhs.m_seqIt), m_mapIt(rhs.m_mapIt), m_mapEnd(rhs.m_mapEnd) {}
-
- private:
- friend class boost::iterator_core_access;
- template<typename> friend class node_iterator_base;
-
- template<typename W>
- bool equal(const node_iterator_base<W>& rhs) const {
- if(m_type != rhs.m_type)
- return false;
-
- switch(m_type) {
- case iterator_type::None: return true;
- case iterator_type::Sequence: return m_seqIt == rhs.m_seqIt;
- case iterator_type::Map: return m_mapIt == rhs.m_mapIt;
- }
- return true;
- }
-
- void increment() {
- switch(m_type) {
- case iterator_type::None: break;
- case iterator_type::Sequence:
- ++m_seqIt;
- break;
- case iterator_type::Map:
- ++m_mapIt;
- m_mapIt = increment_until_defined(m_mapIt);
- break;
- }
- }
-
- value_type dereference() const {
- switch(m_type) {
- case iterator_type::None: return value_type();
- case iterator_type::Sequence: return value_type(**m_seqIt);
- case iterator_type::Map: return value_type(*m_mapIt->first, *m_mapIt->second);
- }
- return value_type();
- }
-
- MapIter increment_until_defined(MapIter it) {
- while(it != m_mapEnd && !is_defined(it))
- ++it;
- return it;
- }
-
- bool is_defined(MapIter it) const {
- return it->first->is_defined() && it->second->is_defined();
- }
-
- private:
- typename iterator_type::value m_type;
-
- SeqIter m_seqIt;
- MapIter m_mapIt, m_mapEnd;
- };
-
- typedef node_iterator_base<node> node_iterator;
- typedef node_iterator_base<const node> const_node_iterator;
- }
-}
-
-#endif // VALUE_DETAIL_NODE_ITERATOR_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/detail/node_ref.h b/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/detail/node_ref.h
deleted file mode 100644
index 64cdb9868ca..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/detail/node_ref.h
+++ /dev/null
@@ -1,69 +0,0 @@
-#ifndef VALUE_DETAIL_NODE_REF_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define VALUE_DETAIL_NODE_REF_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-
-#include "yaml-cpp/dll.h"
-#include "yaml-cpp/node/type.h"
-#include "yaml-cpp/node/ptr.h"
-#include "yaml-cpp/node/detail/node_data.h"
-#include <boost/utility.hpp>
-
-namespace YAML
-{
- namespace detail
- {
- class node_ref: private boost::noncopyable
- {
- public:
- node_ref(): m_pData(new node_data) {}
-
- bool is_defined() const { return m_pData->is_defined(); }
- NodeType::value type() const { return m_pData->type(); }
- const std::string& scalar() const { return m_pData->scalar(); }
- const std::string& tag() const { return m_pData->tag(); }
-
- void mark_defined() { m_pData->mark_defined(); }
- void set_data(const node_ref& rhs) { m_pData = rhs.m_pData; }
-
- void set_type(NodeType::value type) { m_pData->set_type(type); }
- void set_tag(const std::string& tag) { m_pData->set_tag(tag); }
- void set_null() { m_pData->set_null(); }
- void set_scalar(const std::string& scalar) { m_pData->set_scalar(scalar); }
-
- // size/iterator
- std::size_t size() const { return m_pData->size(); }
-
- const_node_iterator begin() const { return static_cast<const node_data&>(*m_pData).begin(); }
- node_iterator begin() {return m_pData->begin(); }
-
- const_node_iterator end() const { return static_cast<const node_data&>(*m_pData).end(); }
- node_iterator end() {return m_pData->end(); }
-
- // sequence
- void push_back(node& node, shared_memory_holder pMemory) { m_pData->push_back(node, pMemory); }
- void insert(node& key, node& value, shared_memory_holder pMemory) { m_pData->insert(key, value, pMemory); }
-
- // indexing
- template<typename Key> node& get(const Key& key, shared_memory_holder pMemory) const { return static_cast<const node_data&>(*m_pData).get(key, pMemory); }
- template<typename Key> node& get(const Key& key, shared_memory_holder pMemory) { return m_pData->get(key, pMemory); }
- template<typename Key> bool remove(const Key& key, shared_memory_holder pMemory) { return m_pData->remove(key, pMemory); }
-
- node& get(node& key, shared_memory_holder pMemory) const { return static_cast<const node_data&>(*m_pData).get(key, pMemory); }
- node& get(node& key, shared_memory_holder pMemory) { return m_pData->get(key, pMemory); }
- bool remove(node& key, shared_memory_holder pMemory) { return m_pData->remove(key, pMemory); }
-
- // map
- template<typename Key, typename Value>
- void force_insert(const Key& key, const Value& value, shared_memory_holder pMemory) { m_pData->force_insert(key, value, pMemory); }
-
- private:
- shared_node_data m_pData;
- };
- }
-}
-
-#endif // VALUE_DETAIL_NODE_REF_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/emit.h b/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/emit.h
deleted file mode 100644
index 7abf80b12c3..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/emit.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef NODE_EMIT_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define NODE_EMIT_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-#include <string>
-#include <iosfwd>
-
-namespace YAML
-{
- class Emitter;
- class Node;
-
- Emitter& operator << (Emitter& out, const Node& node);
- std::ostream& operator << (std::ostream& out, const Node& node);
-
- std::string Dump(const Node& node);
-}
-
-#endif // NODE_EMIT_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
diff --git a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/impl.h b/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/impl.h
deleted file mode 100644
index 41c2fcd3105..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/impl.h
+++ /dev/null
@@ -1,451 +0,0 @@
-#ifndef NODE_IMPL_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define NODE_IMPL_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-
-#include "yaml-cpp/node/node.h"
-#include "yaml-cpp/node/iterator.h"
-#include "yaml-cpp/node/detail/memory.h"
-#include "yaml-cpp/node/detail/node.h"
-#include "yaml-cpp/exceptions.h"
-#include <string>
-
-namespace YAML
-{
- inline Node::Node(): m_isValid(true), m_pNode(NULL)
- {
- }
-
- inline Node::Node(NodeType::value type): m_isValid(true), m_pMemory(new detail::memory_holder), m_pNode(&m_pMemory->create_node())
- {
- m_pNode->set_type(type);
- }
-
- template<typename T>
- inline Node::Node(const T& rhs): m_isValid(true), m_pMemory(new detail::memory_holder), m_pNode(&m_pMemory->create_node())
- {
- Assign(rhs);
- }
-
- inline Node::Node(const detail::iterator_value& rhs): m_isValid(rhs.m_isValid), m_pMemory(rhs.m_pMemory), m_pNode(rhs.m_pNode)
- {
- }
-
- inline Node::Node(const Node& rhs): m_isValid(rhs.m_isValid), m_pMemory(rhs.m_pMemory), m_pNode(rhs.m_pNode)
- {
- }
-
- inline Node::Node(Zombie): m_isValid(false), m_pNode(NULL)
- {
- }
-
- inline Node::Node(detail::node& node, detail::shared_memory_holder pMemory): m_isValid(true), m_pMemory(pMemory), m_pNode(&node)
- {
- }
-
- inline Node::~Node()
- {
- }
-
- inline void Node::EnsureNodeExists() const
- {
- if(!m_isValid)
- throw InvalidNode();
- if(!m_pNode) {
- m_pMemory.reset(new detail::memory_holder);
- m_pNode = &m_pMemory->create_node();
- m_pNode->set_null();
- }
- }
-
- inline bool Node::IsDefined() const
- {
- if(!m_isValid)
- throw InvalidNode();
- return m_pNode ? m_pNode->is_defined() : true;
- }
-
- inline NodeType::value Node::Type() const
- {
- if(!m_isValid)
- throw InvalidNode();
- return m_pNode ? m_pNode->type() : NodeType::Null;
- }
-
- // access
-
- // template helpers
- template<typename T, typename S>
- struct as_if {
- explicit as_if(const Node& node_): node(node_) {}
- const Node& node;
-
- const T operator()(const S& fallback) const {
- if(!node.m_pNode)
- return fallback;
-
- T t;
- if(convert<T>::decode(node, t))
- return t;
- return fallback;
- }
- };
-
- template<typename S>
- struct as_if<std::string, S> {
- explicit as_if(const Node& node_): node(node_) {}
- const Node& node;
-
- const std::string operator()(const S& fallback) const {
- if(node.Type() != NodeType::Scalar)
- return fallback;
- return node.Scalar();
- }
- };
-
- template<typename T>
- struct as_if<T, void> {
- explicit as_if(const Node& node_): node(node_) {}
- const Node& node;
-
- const T operator()() const {
- if(!node.m_pNode)
- throw TypedBadConversion<T>();
-
- T t;
- if(convert<T>::decode(node, t))
- return t;
- throw TypedBadConversion<T>();
- }
- };
-
- template<>
- struct as_if<std::string, void> {
- explicit as_if(const Node& node_): node(node_) {}
- const Node& node;
-
- const std::string operator()() const {
- if(node.Type() != NodeType::Scalar)
- throw TypedBadConversion<std::string>();
- return node.Scalar();
- }
- };
-
- // access functions
- template<typename T>
- inline const T Node::as() const
- {
- if(!m_isValid)
- throw InvalidNode();
- return as_if<T, void>(*this)();
- }
-
- template<typename T, typename S>
- inline const T Node::as(const S& fallback) const
- {
- if(!m_isValid)
- throw InvalidNode();
- return as_if<T, S>(*this)(fallback);
- }
-
- inline const std::string& Node::Scalar() const
- {
- if(!m_isValid)
- throw InvalidNode();
- return m_pNode ? m_pNode->scalar() : detail::node_data::empty_scalar;
- }
-
- inline const std::string& Node::Tag() const
- {
- if(!m_isValid)
- throw InvalidNode();
- return m_pNode ? m_pNode->tag() : detail::node_data::empty_scalar;
- }
-
- inline void Node::SetTag(const std::string& tag)
- {
- if(!m_isValid)
- throw InvalidNode();
- EnsureNodeExists();
- m_pNode->set_tag(tag);
- }
-
- // assignment
- inline bool Node::is(const Node& rhs) const
- {
- if(!m_isValid || !rhs.m_isValid)
- throw InvalidNode();
- if(!m_pNode || !rhs.m_pNode)
- return false;
- return m_pNode->is(*rhs.m_pNode);
- }
-
- template<typename T>
- inline Node& Node::operator=(const T& rhs)
- {
- if(!m_isValid)
- throw InvalidNode();
- Assign(rhs);
- return *this;
- }
-
- inline void Node::reset(const YAML::Node& rhs)
- {
- if(!m_isValid || !rhs.m_isValid)
- throw InvalidNode();
- m_pMemory = rhs.m_pMemory;
- m_pNode = rhs.m_pNode;
- }
-
- template<typename T>
- inline void Node::Assign(const T& rhs)
- {
- if(!m_isValid)
- throw InvalidNode();
- AssignData(convert<T>::encode(rhs));
- }
-
- template<>
- inline void Node::Assign(const std::string& rhs)
- {
- if(!m_isValid)
- throw InvalidNode();
- EnsureNodeExists();
- m_pNode->set_scalar(rhs);
- }
-
- inline void Node::Assign(const char *rhs)
- {
- if(!m_isValid)
- throw InvalidNode();
- EnsureNodeExists();
- m_pNode->set_scalar(rhs);
- }
-
- inline void Node::Assign(char *rhs)
- {
- if(!m_isValid)
- throw InvalidNode();
- EnsureNodeExists();
- m_pNode->set_scalar(rhs);
- }
-
- inline Node& Node::operator=(const Node& rhs)
- {
- if(!m_isValid || !rhs.m_isValid)
- throw InvalidNode();
- if(is(rhs))
- return *this;
- AssignNode(rhs);
- return *this;
- }
-
- inline void Node::AssignData(const Node& rhs)
- {
- if(!m_isValid || !rhs.m_isValid)
- throw InvalidNode();
- EnsureNodeExists();
- rhs.EnsureNodeExists();
-
- m_pNode->set_data(*rhs.m_pNode);
- m_pMemory->merge(*rhs.m_pMemory);
- }
-
- inline void Node::AssignNode(const Node& rhs)
- {
- if(!m_isValid || !rhs.m_isValid)
- throw InvalidNode();
- rhs.EnsureNodeExists();
-
- if(!m_pNode) {
- m_pNode = rhs.m_pNode;
- m_pMemory = rhs.m_pMemory;
- return;
- }
-
- m_pNode->set_ref(*rhs.m_pNode);
- m_pMemory->merge(*rhs.m_pMemory);
- m_pNode = rhs.m_pNode;
- }
-
- // size/iterator
- inline std::size_t Node::size() const
- {
- if(!m_isValid)
- throw InvalidNode();
- return m_pNode ? m_pNode->size() : 0;
- }
-
- inline const_iterator Node::begin() const
- {
- if(!m_isValid)
- throw InvalidNode();
- return m_pNode ? const_iterator(m_pNode->begin(), m_pMemory) : const_iterator();
- }
-
- inline iterator Node::begin()
- {
- if(!m_isValid)
- throw InvalidNode();
- return m_pNode ? iterator(m_pNode->begin(), m_pMemory) : iterator();
- }
-
- inline const_iterator Node::end() const
- {
- if(!m_isValid)
- throw InvalidNode();
- return m_pNode ? const_iterator(m_pNode->end(), m_pMemory) : const_iterator();
- }
-
- inline iterator Node::end()
- {
- if(!m_isValid)
- throw InvalidNode();
- return m_pNode ? iterator(m_pNode->end(), m_pMemory) : iterator();
- }
-
- // sequence
- template<typename T>
- inline void Node::push_back(const T& rhs)
- {
- if(!m_isValid)
- throw InvalidNode();
- push_back(Node(rhs));
- }
-
- inline void Node::push_back(const Node& rhs)
- {
- if(!m_isValid || !rhs.m_isValid)
- throw InvalidNode();
- EnsureNodeExists();
- rhs.EnsureNodeExists();
-
- m_pNode->push_back(*rhs.m_pNode, m_pMemory);
- m_pMemory->merge(*rhs.m_pMemory);
- }
-
- // helpers for indexing
- namespace detail {
- template<typename T>
- struct to_value_t {
- explicit to_value_t(const T& t_): t(t_) {}
- const T& t;
- typedef const T& return_type;
-
- const T& operator()() const { return t; }
- };
-
- template<>
- struct to_value_t<const char*> {
- explicit to_value_t(const char *t_): t(t_) {}
- const char *t;
- typedef std::string return_type;
-
- const std::string operator()() const { return t; }
- };
-
- template<>
- struct to_value_t<char*> {
- explicit to_value_t(char *t_): t(t_) {}
- const char *t;
- typedef std::string return_type;
-
- const std::string operator()() const { return t; }
- };
-
- template<std::size_t N>
- struct to_value_t<char [N]> {
- explicit to_value_t(const char *t_): t(t_) {}
- const char *t;
- typedef std::string return_type;
-
- const std::string operator()() const { return t; }
- };
-
- // converts C-strings to std::strings so they can be copied
- template<typename T>
- inline typename to_value_t<T>::return_type to_value(const T& t) {
- return to_value_t<T>(t)();
- }
- }
-
- // indexing
- template<typename Key>
- inline const Node Node::operator[](const Key& key) const
- {
- if(!m_isValid)
- throw InvalidNode();
- EnsureNodeExists();
- detail::node& value = static_cast<const detail::node&>(*m_pNode).get(detail::to_value(key), m_pMemory);
- return Node(value, m_pMemory);
- }
-
- template<typename Key>
- inline Node Node::operator[](const Key& key)
- {
- if(!m_isValid)
- throw InvalidNode();
- EnsureNodeExists();
- detail::node& value = m_pNode->get(detail::to_value(key), m_pMemory);
- return Node(value, m_pMemory);
- }
-
- template<typename Key>
- inline bool Node::remove(const Key& key)
- {
- if(!m_isValid)
- throw InvalidNode();
- EnsureNodeExists();
- return m_pNode->remove(detail::to_value(key), m_pMemory);
- }
-
- inline const Node Node::operator[](const Node& key) const
- {
- if(!m_isValid || !key.m_isValid)
- throw InvalidNode();
- EnsureNodeExists();
- key.EnsureNodeExists();
- detail::node& value = static_cast<const detail::node&>(*m_pNode).get(*key.m_pNode, m_pMemory);
- return Node(value, m_pMemory);
- }
-
- inline Node Node::operator[](const Node& key)
- {
- if(!m_isValid || !key.m_isValid)
- throw InvalidNode();
- EnsureNodeExists();
- key.EnsureNodeExists();
- detail::node& value = m_pNode->get(*key.m_pNode, m_pMemory);
- return Node(value, m_pMemory);
- }
-
- inline bool Node::remove(const Node& key)
- {
- if(!m_isValid || !key.m_isValid)
- throw InvalidNode();
- EnsureNodeExists();
- key.EnsureNodeExists();
- return m_pNode->remove(*key.m_pNode, m_pMemory);
- }
-
- // map
- template<typename Key, typename Value>
- inline void Node::force_insert(const Key& key, const Value& value)
- {
- if(!m_isValid)
- throw InvalidNode();
- EnsureNodeExists();
- m_pNode->force_insert(detail::to_value(key), detail::to_value(value), m_pMemory);
- }
-
- // free functions
- inline bool operator==(const Node& lhs, const Node& rhs)
- {
- return lhs.is(rhs);
- }
-}
-
-#endif // NODE_IMPL_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/iterator.h b/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/iterator.h
deleted file mode 100644
index 98c8851cfcd..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/iterator.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef VALUE_ITERATOR_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define VALUE_ITERATOR_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-
-#include "yaml-cpp/dll.h"
-#include "yaml-cpp/node/node.h"
-#include "yaml-cpp/node/detail/iterator_fwd.h"
-#include "yaml-cpp/node/detail/iterator.h"
-#include <list>
-#include <utility>
-#include <vector>
-
-namespace YAML
-{
- namespace detail {
- struct iterator_value: public Node, std::pair<Node, Node> {
- iterator_value() {}
- explicit iterator_value(const Node& rhs): Node(rhs), std::pair<Node, Node>(Node(Node::ZombieNode), Node(Node::ZombieNode)) {}
- explicit iterator_value(const Node& key, const Node& value): Node(Node::ZombieNode), std::pair<Node, Node>(key, value) {}
- };
- }
-}
-
-#endif // VALUE_ITERATOR_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/node.h b/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/node.h
deleted file mode 100644
index b9498509c0e..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/node.h
+++ /dev/null
@@ -1,116 +0,0 @@
-#ifndef NODE_NODE_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define NODE_NODE_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-
-#include "yaml-cpp/dll.h"
-#include "yaml-cpp/node/ptr.h"
-#include "yaml-cpp/node/type.h"
-#include "yaml-cpp/node/detail/iterator_fwd.h"
-#include "yaml-cpp/node/detail/bool_type.h"
-#include <stdexcept>
-
-namespace YAML
-{
- class Node
- {
- public:
- friend class NodeBuilder;
- friend class NodeEvents;
- friend struct detail::iterator_value;
- friend class detail::node_data;
- template<typename> friend class detail::iterator_base;
- template<typename T, typename S> friend struct as_if;
-
- typedef YAML::iterator iterator;
- typedef YAML::const_iterator const_iterator;
-
- Node();
- explicit Node(NodeType::value type);
- template<typename T> explicit Node(const T& rhs);
- explicit Node(const detail::iterator_value& rhs);
- Node(const Node& rhs);
- ~Node();
-
- NodeType::value Type() const;
- bool IsDefined() const;
- bool IsNull() const { return Type() == NodeType::Null; }
- bool IsScalar() const { return Type() == NodeType::Scalar; }
- bool IsSequence() const { return Type() == NodeType::Sequence; }
- bool IsMap() const { return Type() == NodeType::Map; }
-
- // bool conversions
- YAML_CPP_OPERATOR_BOOL();
- bool operator!() const { return !IsDefined(); }
-
- // access
- template<typename T> const T as() const;
- template<typename T, typename S> const T as(const S& fallback) const;
- const std::string& Scalar() const;
- const std::string& Tag() const;
- void SetTag(const std::string& tag);
-
- // assignment
- bool is(const Node& rhs) const;
- template<typename T> Node& operator=(const T& rhs);
- Node& operator=(const Node& rhs);
- void reset(const Node& rhs = Node());
-
- // size/iterator
- std::size_t size() const;
-
- const_iterator begin() const;
- iterator begin();
-
- const_iterator end() const;
- iterator end();
-
- // sequence
- template<typename T> void push_back(const T& rhs);
- void push_back(const Node& rhs);
-
- // indexing
- template<typename Key> const Node operator[](const Key& key) const;
- template<typename Key> Node operator[](const Key& key);
- template<typename Key> bool remove(const Key& key);
-
- const Node operator[](const Node& key) const;
- Node operator[](const Node& key);
- bool remove(const Node& key);
-
- // map
- template<typename Key, typename Value>
- void force_insert(const Key& key, const Value& value);
-
- private:
- enum Zombie { ZombieNode };
- explicit Node(Zombie);
- explicit Node(detail::node& node, detail::shared_memory_holder pMemory);
-
- void EnsureNodeExists() const;
-
- template<typename T> void Assign(const T& rhs);
- void Assign(const char *rhs);
- void Assign(char *rhs);
-
- void AssignData(const Node& rhs);
- void AssignNode(const Node& rhs);
-
- private:
- bool m_isValid;
- mutable detail::shared_memory_holder m_pMemory;
- mutable detail::node *m_pNode;
- };
-
- bool operator==(const Node& lhs, const Node& rhs);
-
- Node Clone(const Node& node);
-
- template<typename T>
- struct convert;
-}
-
-#endif // NODE_NODE_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/parse.h b/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/parse.h
deleted file mode 100644
index 82dbdc1bb21..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/parse.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef VALUE_PARSE_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define VALUE_PARSE_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-#include <iosfwd>
-#include <string>
-#include <vector>
-
-namespace YAML
-{
- class Node;
-
- Node Load(const std::string& input);
- Node Load(const char *input);
- Node Load(std::istream& input);
- Node LoadFile(const std::string& filename);
-
- std::vector<Node> LoadAll(const std::string& input);
- std::vector<Node> LoadAll(const char *input);
- std::vector<Node> LoadAll(std::istream& input);
- std::vector<Node> LoadAllFromFile(const std::string& filename);
-}
-
-#endif // VALUE_PARSE_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
diff --git a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/ptr.h b/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/ptr.h
deleted file mode 100644
index 316dbd26b6a..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/ptr.h
+++ /dev/null
@@ -1,29 +0,0 @@
-#ifndef VALUE_PTR_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define VALUE_PTR_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-
-#include "yaml-cpp/dll.h"
-#include <boost/shared_ptr.hpp>
-
-namespace YAML
-{
- namespace detail {
- class node;
- class node_ref;
- class node_data;
- class memory;
- class memory_holder;
-
- typedef boost::shared_ptr<node> shared_node;
- typedef boost::shared_ptr<node_ref> shared_node_ref;
- typedef boost::shared_ptr<node_data> shared_node_data;
- typedef boost::shared_ptr<memory_holder> shared_memory_holder;
- typedef boost::shared_ptr<memory> shared_memory;
- }
-}
-
-#endif // VALUE_PTR_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/type.h b/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/type.h
deleted file mode 100644
index 5ac8041c852..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/node/type.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef VALUE_TYPE_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define VALUE_TYPE_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-
-namespace YAML
-{
- struct NodeType { enum value { Undefined, Null, Scalar, Sequence, Map }; };
-}
-
-#endif // VALUE_TYPE_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/noncopyable.h b/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/noncopyable.h
deleted file mode 100644
index 8e61e4338f8..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/noncopyable.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef NONCOPYABLE_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define NONCOPYABLE_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-#include "yaml-cpp/dll.h"
-
-namespace YAML
-{
- // this is basically boost::noncopyable
- class YAML_CPP_API noncopyable
- {
- protected:
- noncopyable() {}
- ~noncopyable() {}
-
- private:
- noncopyable(const noncopyable&);
- const noncopyable& operator = (const noncopyable&);
- };
-}
-
-#endif // NONCOPYABLE_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/null.h b/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/null.h
deleted file mode 100644
index 711f18c3359..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/null.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef NULL_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define NULL_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-
-#include "yaml-cpp/dll.h"
-
-namespace YAML
-{
- class Node;
-
- struct YAML_CPP_API _Null {};
- inline bool operator == (const _Null&, const _Null&) { return true; }
- inline bool operator != (const _Null&, const _Null&) { return false; }
-
- YAML_CPP_API bool IsNull(const Node& node); // old API only
-
- extern YAML_CPP_API _Null Null;
-}
-
-#endif // NULL_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
diff --git a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/ostream_wrapper.h b/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/ostream_wrapper.h
deleted file mode 100644
index a6d96c57023..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/ostream_wrapper.h
+++ /dev/null
@@ -1,69 +0,0 @@
-#ifndef OSTREAM_WRAPPER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define OSTREAM_WRAPPER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-
-#include <string>
-#include <vector>
-
-namespace YAML
-{
- class ostream_wrapper
- {
- public:
- ostream_wrapper();
- explicit ostream_wrapper(std::ostream& stream);
- ~ostream_wrapper();
-
- void write(const std::string& str);
- void write(const char *str, std::size_t size);
-
- void set_comment() { m_comment = true; }
-
- const char *str() const {
- if(m_pStream) {
- return 0;
- } else {
- m_buffer[m_pos] = '\0';
- return &m_buffer[0];
- }
- }
-
- std::size_t row() const { return m_row; }
- std::size_t col() const { return m_col; }
- std::size_t pos() const { return m_pos; }
- bool comment() const { return m_comment; }
-
- private:
- void update_pos(char ch);
-
- private:
- mutable std::vector<char> m_buffer;
- std::ostream *m_pStream;
-
- std::size_t m_pos;
- std::size_t m_row, m_col;
- bool m_comment;
- };
-
- template<std::size_t N>
- inline ostream_wrapper& operator << (ostream_wrapper& stream, const char (&str)[N]) {
- stream.write(str, N-1);
- return stream;
- }
-
- inline ostream_wrapper& operator << (ostream_wrapper& stream, const std::string& str) {
- stream.write(str);
- return stream;
- }
-
- inline ostream_wrapper& operator << (ostream_wrapper& stream, char ch) {
- stream.write(&ch, 1);
- return stream;
- }
-}
-
-#endif // OSTREAM_WRAPPER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/parser.h b/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/parser.h
deleted file mode 100644
index 8ec926be188..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/parser.h
+++ /dev/null
@@ -1,47 +0,0 @@
-#ifndef PARSER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define PARSER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-
-#include "yaml-cpp/dll.h"
-#include "yaml-cpp/noncopyable.h"
-#include <ios>
-#include <memory>
-
-namespace YAML
-{
- struct Directives;
- struct Token;
- class EventHandler;
- class Scanner;
-
- class YAML_CPP_API Parser: private noncopyable
- {
- public:
- Parser();
- Parser(std::istream& in);
- ~Parser();
-
- operator bool() const;
-
- void Load(std::istream& in);
- bool HandleNextDocument(EventHandler& eventHandler);
-
- void PrintTokens(std::ostream& out);
-
- private:
- void ParseDirectives();
- void HandleDirective(const Token& token);
- void HandleYamlDirective(const Token& token);
- void HandleTagDirective(const Token& token);
-
- private:
- std::auto_ptr<Scanner> m_pScanner;
- std::auto_ptr<Directives> m_pDirectives;
- };
-}
-
-#endif // PARSER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/stlemitter.h b/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/stlemitter.h
deleted file mode 100644
index f8ff20ea873..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/stlemitter.h
+++ /dev/null
@@ -1,51 +0,0 @@
-#ifndef STLEMITTER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define STLEMITTER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-
-#include <vector>
-#include <list>
-#include <set>
-#include <map>
-
-namespace YAML
-{
- template<typename Seq>
- inline Emitter& EmitSeq(Emitter& emitter, const Seq& seq) {
- emitter << BeginSeq;
- for(typename Seq::const_iterator it=seq.begin();it!=seq.end();++it)
- emitter << *it;
- emitter << EndSeq;
- return emitter;
- }
-
- template<typename T>
- inline Emitter& operator << (Emitter& emitter, const std::vector<T>& v) {
- return EmitSeq(emitter, v);
- }
-
- template<typename T>
- inline Emitter& operator << (Emitter& emitter, const std::list<T>& v) {
- return EmitSeq(emitter, v);
- }
-
- template<typename T>
- inline Emitter& operator << (Emitter& emitter, const std::set<T>& v) {
- return EmitSeq(emitter, v);
- }
-
- template <typename K, typename V>
- inline Emitter& operator << (Emitter& emitter, const std::map<K, V>& m) {
- typedef typename std::map <K, V> map;
- emitter << BeginMap;
- for(typename map::const_iterator it=m.begin();it!=m.end();++it)
- emitter << Key << it->first << Value << it->second;
- emitter << EndMap;
- return emitter;
- }
-}
-
-#endif // STLEMITTER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/traits.h b/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/traits.h
deleted file mode 100644
index 09eead44075..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/traits.h
+++ /dev/null
@@ -1,57 +0,0 @@
-#ifndef TRAITS_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define TRAITS_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-
-namespace YAML
-{
- template <typename>
- struct is_numeric { enum { value = false }; };
-
- template <> struct is_numeric <char> { enum { value = true }; };
- template <> struct is_numeric <unsigned char> { enum { value = true }; };
- template <> struct is_numeric <int> { enum { value = true }; };
- template <> struct is_numeric <unsigned int> { enum { value = true }; };
- template <> struct is_numeric <long int> { enum { value = true }; };
- template <> struct is_numeric <unsigned long int> { enum { value = true }; };
- template <> struct is_numeric <short int> { enum { value = true }; };
- template <> struct is_numeric <unsigned short int> { enum { value = true }; };
-#if defined(_MSC_VER) && (_MSC_VER < 1310)
- template <> struct is_numeric <__int64> { enum { value = true }; };
- template <> struct is_numeric <unsigned __int64> { enum { value = true }; };
-#else
- template <> struct is_numeric <long long> { enum { value = true }; };
- template <> struct is_numeric <unsigned long long> { enum { value = true }; };
-#endif
- template <> struct is_numeric <float> { enum { value = true }; };
- template <> struct is_numeric <double> { enum { value = true }; };
- template <> struct is_numeric <long double> { enum { value = true }; };
-
- template <bool, class T = void>
- struct enable_if_c {
- typedef T type;
- };
-
- template <class T>
- struct enable_if_c<false, T> {};
-
- template <class Cond, class T = void>
- struct enable_if : public enable_if_c<Cond::value, T> {};
-
- template <bool, class T = void>
- struct disable_if_c {
- typedef T type;
- };
-
- template <class T>
- struct disable_if_c<true, T> {};
-
- template <class Cond, class T = void>
- struct disable_if : public disable_if_c<Cond::value, T> {};
-}
-
-#endif // TRAITS_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
diff --git a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/yaml.h b/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/yaml.h
deleted file mode 100644
index 4e634087ed8..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/include/yaml-cpp/yaml.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#ifndef YAML_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define YAML_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-#include "yaml-cpp/parser.h"
-#include "yaml-cpp/emitter.h"
-#include "yaml-cpp/stlemitter.h"
-#include "yaml-cpp/exceptions.h"
-
-#include "yaml-cpp/node/node.h"
-#include "yaml-cpp/node/impl.h"
-#include "yaml-cpp/node/convert.h"
-#include "yaml-cpp/node/iterator.h"
-#include "yaml-cpp/node/detail/impl.h"
-#include "yaml-cpp/node/parse.h"
-#include "yaml-cpp/node/emit.h"
-
-#endif // YAML_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/license.txt b/src/third_party/yaml-cpp-0.5.1/license.txt
deleted file mode 100644
index 5bd9e1a12e1..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/license.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2008 Jesse Beder.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
diff --git a/src/third_party/yaml-cpp-0.5.1/src/binary.cpp b/src/third_party/yaml-cpp-0.5.1/src/binary.cpp
deleted file mode 100644
index 62a60324c8c..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/binary.cpp
+++ /dev/null
@@ -1,93 +0,0 @@
-#include "yaml-cpp/binary.h"
-
-namespace YAML
-{
- static const char encoding[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-
- std::string EncodeBase64(const unsigned char *data, std::size_t size)
- {
- const char PAD = '=';
-
- std::string ret;
- ret.resize(4 * size / 3 + 3);
- char *out = &ret[0];
-
- std::size_t chunks = size / 3;
- std::size_t remainder = size % 3;
-
- for(std::size_t i=0;i<chunks;i++, data += 3) {
- *out++ = encoding[data[0] >> 2];
- *out++ = encoding[((data[0] & 0x3) << 4) | (data[1] >> 4)];
- *out++ = encoding[((data[1] & 0xf) << 2) | (data[2] >> 6)];
- *out++ = encoding[data[2] & 0x3f];
- }
-
- switch(remainder) {
- case 0:
- break;
- case 1:
- *out++ = encoding[data[0] >> 2];
- *out++ = encoding[((data[0] & 0x3) << 4)];
- *out++ = PAD;
- *out++ = PAD;
- break;
- case 2:
- *out++ = encoding[data[0] >> 2];
- *out++ = encoding[((data[0] & 0x3) << 4) | (data[1] >> 4)];
- *out++ = encoding[((data[1] & 0xf) << 2)];
- *out++ = PAD;
- break;
- }
-
- ret.resize(out - &ret[0]);
- return ret;
- }
-
- static const unsigned char decoding[] = {
- 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
- 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
- 255,255,255,255,255,255,255,255,255,255,255, 62,255,255,255, 63,
- 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,255,255,255, 0,255,255,
- 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
- 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,255,255,255,255,255,
- 255, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,255,255,255,255,255,
- 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
- 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
- 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
- 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
- 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
- 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
- 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
- 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
- };
-
- std::vector<unsigned char> DecodeBase64(const std::string& input)
- {
- typedef std::vector<unsigned char> ret_type;
- if(input.empty())
- return ret_type();
-
- ret_type ret(3 * input.size() / 4 + 1);
- unsigned char *out = &ret[0];
-
- unsigned value = 0;
- for(std::size_t i=0;i<input.size();i++) {
- unsigned char d = decoding[static_cast<unsigned>(input[i])];
- if(d == 255)
- return ret_type();
-
- value = (value << 6) | d;
- if(i % 4 == 3) {
- *out++ = value >> 16;
- if(i > 0 && input[i - 1] != '=')
- *out++ = value >> 8;
- if(input[i] != '=')
- *out++ = value;
- }
- }
-
- ret.resize(out - &ret[0]);
- return ret;
- }
-}
diff --git a/src/third_party/yaml-cpp-0.5.1/src/collectionstack.h b/src/third_party/yaml-cpp-0.5.1/src/collectionstack.h
deleted file mode 100644
index 4a986bc9826..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/collectionstack.h
+++ /dev/null
@@ -1,35 +0,0 @@
-#ifndef COLLECTIONSTACK_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define COLLECTIONSTACK_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-
-#include <stack>
-#include <cassert>
-
-namespace YAML
-{
- struct CollectionType {
- enum value { None, BlockMap, BlockSeq, FlowMap, FlowSeq, CompactMap };
- };
-
- class CollectionStack
- {
- public:
- CollectionType::value GetCurCollectionType() const {
- if(collectionStack.empty())
- return CollectionType::None;
- return collectionStack.top();
- }
-
- void PushCollectionType(CollectionType::value type) { collectionStack.push(type); }
- void PopCollectionType(CollectionType::value type) { assert(type == GetCurCollectionType()); collectionStack.pop(); }
-
- private:
- std::stack<CollectionType::value> collectionStack;
- };
-}
-
-#endif // COLLECTIONSTACK_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/src/convert.cpp b/src/third_party/yaml-cpp-0.5.1/src/convert.cpp
deleted file mode 100644
index dc715f71489..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/convert.cpp
+++ /dev/null
@@ -1,83 +0,0 @@
-#include "yaml-cpp/node/convert.h"
-#include "yaml-cpp/node/impl.h"
-#include <algorithm>
-
-namespace
-{
- // we're not gonna mess with the mess that is all the isupper/etc. functions
- bool IsLower(char ch) { return 'a' <= ch && ch <= 'z'; }
- bool IsUpper(char ch) { return 'A' <= ch && ch <= 'Z'; }
- char ToLower(char ch) { return IsUpper(ch) ? ch + 'a' - 'A' : ch; }
-
- std::string tolower(const std::string& str)
- {
- std::string s(str);
- std::transform(s.begin(), s.end(), s.begin(), ToLower);
- return s;
- }
-
- template <typename T>
- bool IsEntirely(const std::string& str, T func)
- {
- for(std::size_t i=0;i<str.size();i++)
- if(!func(str[i]))
- return false;
-
- return true;
- }
-
- // IsFlexibleCase
- // . Returns true if 'str' is:
- // . UPPERCASE
- // . lowercase
- // . Capitalized
- bool IsFlexibleCase(const std::string& str)
- {
- if(str.empty())
- return true;
-
- if(IsEntirely(str, IsLower))
- return true;
-
- bool firstcaps = IsUpper(str[0]);
- std::string rest = str.substr(1);
- return firstcaps && (IsEntirely(rest, IsLower) || IsEntirely(rest, IsUpper));
- }
-}
-
-namespace YAML
-{
- bool convert<bool>::decode(const Node& node, bool& rhs) {
- if(!node.IsScalar())
- return false;
-
- // we can't use iostream bool extraction operators as they don't
- // recognize all possible values in the table below (taken from
- // http://yaml.org/type/bool.html)
- static const struct {
- std::string truename, falsename;
- } names[] = {
- { "y", "n" },
- { "yes", "no" },
- { "true", "false" },
- { "on", "off" },
- };
-
- if(!IsFlexibleCase(node.Scalar()))
- return false;
-
- for(unsigned i=0;i<sizeof(names)/sizeof(names[0]);i++) {
- if(names[i].truename == tolower(node.Scalar())) {
- rhs = true;
- return true;
- }
-
- if(names[i].falsename == tolower(node.Scalar())) {
- rhs = false;
- return true;
- }
- }
-
- return false;
- }
-}
diff --git a/src/third_party/yaml-cpp-0.5.1/src/directives.cpp b/src/third_party/yaml-cpp-0.5.1/src/directives.cpp
deleted file mode 100644
index faf1483bd2e..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/directives.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
-#include "directives.h"
-
-namespace YAML
-{
- Directives::Directives()
- {
- // version
- version.isDefault = true;
- version.major = 1;
- version.minor = 2;
- }
-
- const std::string Directives::TranslateTagHandle(const std::string& handle) const
- {
- std::map <std::string, std::string>::const_iterator it = tags.find(handle);
- if(it == tags.end()) {
- if(handle == "!!")
- return "tag:yaml.org,2002:";
- return handle;
- }
-
- return it->second;
- }
-}
diff --git a/src/third_party/yaml-cpp-0.5.1/src/directives.h b/src/third_party/yaml-cpp-0.5.1/src/directives.h
deleted file mode 100644
index a3308f72e59..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/directives.h
+++ /dev/null
@@ -1,29 +0,0 @@
-#ifndef DIRECTIVES_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define DIRECTIVES_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-
-#include <string>
-#include <map>
-
-namespace YAML
-{
- struct Version {
- bool isDefault;
- int major, minor;
- };
-
- struct Directives {
- Directives();
-
- const std::string TranslateTagHandle(const std::string& handle) const;
-
- Version version;
- std::map<std::string, std::string> tags;
- };
-}
-
-#endif // DIRECTIVES_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/src/emit.cpp b/src/third_party/yaml-cpp-0.5.1/src/emit.cpp
deleted file mode 100644
index 1f0a647d627..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/emit.cpp
+++ /dev/null
@@ -1,29 +0,0 @@
-#include "yaml-cpp/node/emit.h"
-#include "yaml-cpp/emitfromevents.h"
-#include "yaml-cpp/emitter.h"
-#include "nodeevents.h"
-
-namespace YAML
-{
- Emitter& operator << (Emitter& out, const Node& node)
- {
- EmitFromEvents emitFromEvents(out);
- NodeEvents events(node);
- events.Emit(emitFromEvents);
- return out;
- }
-
- std::ostream& operator << (std::ostream& out, const Node& node)
- {
- Emitter emitter(out);
- emitter << node;
- return out;
- }
-
- std::string Dump(const Node& node)
- {
- Emitter emitter;
- emitter << node;
- return emitter.c_str();
- }
-}
diff --git a/src/third_party/yaml-cpp-0.5.1/src/emitfromevents.cpp b/src/third_party/yaml-cpp-0.5.1/src/emitfromevents.cpp
deleted file mode 100644
index 49fc10b29e3..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/emitfromevents.cpp
+++ /dev/null
@@ -1,105 +0,0 @@
-#include "yaml-cpp/emitfromevents.h"
-#include "yaml-cpp/emitter.h"
-#include "yaml-cpp/null.h"
-#include <cassert>
-#include <sstream>
-
-namespace {
- std::string ToString(YAML::anchor_t anchor) {
- std::stringstream stream;
- stream << anchor;
- return stream.str();
- }
-}
-
-namespace YAML
-{
- EmitFromEvents::EmitFromEvents(Emitter& emitter): m_emitter(emitter)
- {
- }
-
- void EmitFromEvents::OnDocumentStart(const Mark&)
- {
- }
-
- void EmitFromEvents::OnDocumentEnd()
- {
- }
-
- void EmitFromEvents::OnNull(const Mark&, anchor_t anchor)
- {
- BeginNode();
- EmitProps("", anchor);
- m_emitter << Null;
- }
-
- void EmitFromEvents::OnAlias(const Mark&, anchor_t anchor)
- {
- BeginNode();
- m_emitter << Alias(ToString(anchor));
- }
-
- void EmitFromEvents::OnScalar(const Mark&, const std::string& tag, anchor_t anchor, const std::string& value)
- {
- BeginNode();
- EmitProps(tag, anchor);
- m_emitter << value;
- }
-
- void EmitFromEvents::OnSequenceStart(const Mark&, const std::string& tag, anchor_t anchor)
- {
- BeginNode();
- EmitProps(tag, anchor);
- m_emitter << BeginSeq;
- m_stateStack.push(State::WaitingForSequenceEntry);
- }
-
- void EmitFromEvents::OnSequenceEnd()
- {
- m_emitter << EndSeq;
- assert(m_stateStack.top() == State::WaitingForSequenceEntry);
- m_stateStack.pop();
- }
-
- void EmitFromEvents::OnMapStart(const Mark&, const std::string& tag, anchor_t anchor)
- {
- BeginNode();
- EmitProps(tag, anchor);
- m_emitter << BeginMap;
- m_stateStack.push(State::WaitingForKey);
- }
-
- void EmitFromEvents::OnMapEnd()
- {
- m_emitter << EndMap;
- assert(m_stateStack.top() == State::WaitingForKey);
- m_stateStack.pop();
- }
-
- void EmitFromEvents::BeginNode()
- {
- if(m_stateStack.empty())
- return;
-
- switch(m_stateStack.top()) {
- case State::WaitingForKey:
- m_emitter << Key;
- m_stateStack.top() = State::WaitingForValue;
- break;
- case State::WaitingForValue:
- m_emitter << Value;
- m_stateStack.top() = State::WaitingForKey;
- break;
- default:
- break;
- }
- }
-
- void EmitFromEvents::EmitProps(const std::string& tag, anchor_t anchor)
- {
- if(!tag.empty() && tag != "?")
- m_emitter << VerbatimTag(tag);
- if(anchor)
- m_emitter << Anchor(ToString(anchor));
- }
-}
diff --git a/src/third_party/yaml-cpp-0.5.1/src/emitter.cpp b/src/third_party/yaml-cpp-0.5.1/src/emitter.cpp
deleted file mode 100644
index 8a5a7069c85..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/emitter.cpp
+++ /dev/null
@@ -1,951 +0,0 @@
-#include "yaml-cpp/emitter.h"
-#include "emitterstate.h"
-#include "emitterutils.h"
-#include "indentation.h"
-#include "yaml-cpp/exceptions.h"
-#include <sstream>
-
-namespace YAML
-{
- Emitter::Emitter(): m_pState(new EmitterState)
- {
- }
-
- Emitter::Emitter(std::ostream& stream): m_pState(new EmitterState), m_stream(stream)
- {
- }
-
- Emitter::~Emitter()
- {
- }
-
- const char *Emitter::c_str() const
- {
- return m_stream.str();
- }
-
- std::size_t Emitter::size() const
- {
- return m_stream.pos();
- }
-
- // state checking
- bool Emitter::good() const
- {
- return m_pState->good();
- }
-
- const std::string Emitter::GetLastError() const
- {
- return m_pState->GetLastError();
- }
-
- // global setters
- bool Emitter::SetOutputCharset(EMITTER_MANIP value)
- {
- return m_pState->SetOutputCharset(value, FmtScope::Global);
- }
-
- bool Emitter::SetStringFormat(EMITTER_MANIP value)
- {
- return m_pState->SetStringFormat(value, FmtScope::Global);
- }
-
- bool Emitter::SetBoolFormat(EMITTER_MANIP value)
- {
- bool ok = false;
- if(m_pState->SetBoolFormat(value, FmtScope::Global))
- ok = true;
- if(m_pState->SetBoolCaseFormat(value, FmtScope::Global))
- ok = true;
- if(m_pState->SetBoolLengthFormat(value, FmtScope::Global))
- ok = true;
- return ok;
- }
-
- bool Emitter::SetIntBase(EMITTER_MANIP value)
- {
- return m_pState->SetIntFormat(value, FmtScope::Global);
- }
-
- bool Emitter::SetSeqFormat(EMITTER_MANIP value)
- {
- return m_pState->SetFlowType(GroupType::Seq, value, FmtScope::Global);
- }
-
- bool Emitter::SetMapFormat(EMITTER_MANIP value)
- {
- bool ok = false;
- if(m_pState->SetFlowType(GroupType::Map, value, FmtScope::Global))
- ok = true;
- if(m_pState->SetMapKeyFormat(value, FmtScope::Global))
- ok = true;
- return ok;
- }
-
- bool Emitter::SetIndent(unsigned n)
- {
- return m_pState->SetIndent(n, FmtScope::Global);
- }
-
- bool Emitter::SetPreCommentIndent(unsigned n)
- {
- return m_pState->SetPreCommentIndent(n, FmtScope::Global);
- }
-
- bool Emitter::SetPostCommentIndent(unsigned n)
- {
- return m_pState->SetPostCommentIndent(n, FmtScope::Global);
- }
-
- bool Emitter::SetFloatPrecision(unsigned n)
- {
- return m_pState->SetFloatPrecision(n, FmtScope::Global);
- }
-
- bool Emitter::SetDoublePrecision(unsigned n)
- {
- return m_pState->SetDoublePrecision(n, FmtScope::Global);
- }
-
- // SetLocalValue
- // . Either start/end a group, or set a modifier locally
- Emitter& Emitter::SetLocalValue(EMITTER_MANIP value)
- {
- if(!good())
- return *this;
-
- switch(value) {
- case BeginDoc:
- EmitBeginDoc();
- break;
- case EndDoc:
- EmitEndDoc();
- break;
- case BeginSeq:
- EmitBeginSeq();
- break;
- case EndSeq:
- EmitEndSeq();
- break;
- case BeginMap:
- EmitBeginMap();
- break;
- case EndMap:
- EmitEndMap();
- break;
- case Key:
- case Value:
- // deprecated (these can be deduced by the parity of nodes in a map)
- break;
- case TagByKind:
- EmitKindTag();
- break;
- case Newline:
- EmitNewline();
- break;
- default:
- m_pState->SetLocalValue(value);
- break;
- }
- return *this;
- }
-
- Emitter& Emitter::SetLocalIndent(const _Indent& indent)
- {
- m_pState->SetIndent(indent.value, FmtScope::Local);
- return *this;
- }
-
- Emitter& Emitter::SetLocalPrecision(const _Precision& precision)
- {
- if(precision.floatPrecision >= 0)
- m_pState->SetFloatPrecision(precision.floatPrecision, FmtScope::Local);
- if(precision.doublePrecision >= 0)
- m_pState->SetDoublePrecision(precision.doublePrecision, FmtScope::Local);
- return *this;
- }
-
- // EmitBeginDoc
- void Emitter::EmitBeginDoc()
- {
- if(!good())
- return;
-
- if(m_pState->CurGroupType() != GroupType::None) {
- m_pState->SetError("Unexpected begin document");
- return;
- }
-
- if(m_pState->HasAnchor() || m_pState->HasTag()) {
- m_pState->SetError("Unexpected begin document");
- return;
- }
-
- if(m_stream.col() > 0)
- m_stream << "\n";
- m_stream << "---\n";
-
- m_pState->StartedDoc();
- }
-
- // EmitEndDoc
- void Emitter::EmitEndDoc()
- {
- if(!good())
- return;
-
- if(m_pState->CurGroupType() != GroupType::None) {
- m_pState->SetError("Unexpected begin document");
- return;
- }
-
- if(m_pState->HasAnchor() || m_pState->HasTag()) {
- m_pState->SetError("Unexpected begin document");
- return;
- }
-
- if(m_stream.col() > 0)
- m_stream << "\n";
- m_stream << "...\n";
- }
-
- // EmitBeginSeq
- void Emitter::EmitBeginSeq()
- {
- if(!good())
- return;
-
- PrepareNode(m_pState->NextGroupType(GroupType::Seq));
-
- m_pState->StartedGroup(GroupType::Seq);
- }
-
- // EmitEndSeq
- void Emitter::EmitEndSeq()
- {
- if(!good())
- return;
-
- if(m_pState->CurGroupChildCount() == 0)
- m_pState->ForceFlow();
-
- if(m_pState->CurGroupFlowType() == FlowType::Flow) {
- if(m_stream.comment())
- m_stream << "\n";
- m_stream << IndentTo(m_pState->CurIndent());
- if(m_pState->CurGroupChildCount() == 0)
- m_stream << "[";
- m_stream << "]";
- }
-
- m_pState->EndedGroup(GroupType::Seq);
- }
-
- // EmitBeginMap
- void Emitter::EmitBeginMap()
- {
- if(!good())
- return;
-
- PrepareNode(m_pState->NextGroupType(GroupType::Map));
-
- m_pState->StartedGroup(GroupType::Map);
- }
-
- // EmitEndMap
- void Emitter::EmitEndMap()
- {
- if(!good())
- return;
-
- if(m_pState->CurGroupChildCount() == 0)
- m_pState->ForceFlow();
-
- if(m_pState->CurGroupFlowType() == FlowType::Flow) {
- if(m_stream.comment())
- m_stream << "\n";
- m_stream << IndentTo(m_pState->CurIndent());
- if(m_pState->CurGroupChildCount() == 0)
- m_stream << "{";
- m_stream << "}";
- }
-
- m_pState->EndedGroup(GroupType::Map);
- }
-
- // EmitNewline
- void Emitter::EmitNewline()
- {
- if(!good())
- return;
-
- PrepareNode(EmitterNodeType::None);
- m_stream << "\n";
- m_pState->SetNonContent();
- }
-
- bool Emitter::CanEmitNewline() const
- {
- return true;
- }
-
- // Put the stream in a state so we can simply write the next node
- // E.g., if we're in a sequence, write the "- "
- void Emitter::PrepareNode(EmitterNodeType::value child)
- {
- switch(m_pState->CurGroupNodeType()) {
- case EmitterNodeType::None:
- PrepareTopNode(child);
- break;
- case EmitterNodeType::FlowSeq:
- FlowSeqPrepareNode(child);
- break;
- case EmitterNodeType::BlockSeq:
- BlockSeqPrepareNode(child);
- break;
- case EmitterNodeType::FlowMap:
- FlowMapPrepareNode(child);
- break;
- case EmitterNodeType::BlockMap:
- BlockMapPrepareNode(child);
- break;
- case EmitterNodeType::Property:
- case EmitterNodeType::Scalar:
- assert(false);
- break;
- }
- }
-
- void Emitter::PrepareTopNode(EmitterNodeType::value child)
- {
- if(child == EmitterNodeType::None)
- return;
-
- if(m_pState->CurGroupChildCount() > 0 && m_stream.col() > 0) {
- if(child != EmitterNodeType::None)
- EmitBeginDoc();
- }
-
- switch(child) {
- case EmitterNodeType::None:
- break;
- case EmitterNodeType::Property:
- case EmitterNodeType::Scalar:
- case EmitterNodeType::FlowSeq:
- case EmitterNodeType::FlowMap:
- // TODO: if we were writing null, and
- // we wanted it blank, we wouldn't want a space
- SpaceOrIndentTo(m_pState->HasBegunContent(), 0);
- break;
- case EmitterNodeType::BlockSeq:
- case EmitterNodeType::BlockMap:
- if(m_pState->HasBegunNode())
- m_stream << "\n";
- break;
- }
- }
-
- void Emitter::FlowSeqPrepareNode(EmitterNodeType::value child)
- {
- const unsigned lastIndent = m_pState->LastIndent();
-
- if(!m_pState->HasBegunNode()) {
- if(m_stream.comment())
- m_stream << "\n";
- m_stream << IndentTo(lastIndent);
- if(m_pState->CurGroupChildCount() == 0)
- m_stream << "[";
- else
- m_stream << ",";
- }
-
- switch(child) {
- case EmitterNodeType::None:
- break;
- case EmitterNodeType::Property:
- case EmitterNodeType::Scalar:
- case EmitterNodeType::FlowSeq:
- case EmitterNodeType::FlowMap:
- SpaceOrIndentTo(m_pState->HasBegunContent() || m_pState->CurGroupChildCount() > 0, lastIndent);
- break;
- case EmitterNodeType::BlockSeq:
- case EmitterNodeType::BlockMap:
- assert(false);
- break;
- }
- }
-
- void Emitter::BlockSeqPrepareNode(EmitterNodeType::value child)
- {
- const unsigned curIndent = m_pState->CurIndent();
- const unsigned nextIndent = curIndent + m_pState->CurGroupIndent();
-
- if(child == EmitterNodeType::None)
- return;
-
- if(!m_pState->HasBegunContent()) {
- if(m_pState->CurGroupChildCount() > 0 || m_stream.comment()) {
- m_stream << "\n";
- }
- m_stream << IndentTo(curIndent);
- m_stream << "-";
- }
-
- switch(child) {
- case EmitterNodeType::None:
- break;
- case EmitterNodeType::Property:
- case EmitterNodeType::Scalar:
- case EmitterNodeType::FlowSeq:
- case EmitterNodeType::FlowMap:
- SpaceOrIndentTo(m_pState->HasBegunContent(), nextIndent);
- break;
- case EmitterNodeType::BlockSeq:
- m_stream << "\n";
- break;
- case EmitterNodeType::BlockMap:
- if(m_pState->HasBegunContent() || m_stream.comment())
- m_stream << "\n";
- break;
- }
- }
-
- void Emitter::FlowMapPrepareNode(EmitterNodeType::value child)
- {
- if(m_pState->CurGroupChildCount() % 2 == 0) {
- if(m_pState->GetMapKeyFormat() == LongKey)
- m_pState->SetLongKey();
-
- if(m_pState->CurGroupLongKey())
- FlowMapPrepareLongKey(child);
- else
- FlowMapPrepareSimpleKey(child);
- } else {
- if(m_pState->CurGroupLongKey())
- FlowMapPrepareLongKeyValue(child);
- else
- FlowMapPrepareSimpleKeyValue(child);
- }
- }
-
- void Emitter::FlowMapPrepareLongKey(EmitterNodeType::value child)
- {
- const unsigned lastIndent = m_pState->LastIndent();
-
- if(!m_pState->HasBegunNode()) {
- if(m_stream.comment())
- m_stream << "\n";
- m_stream << IndentTo(lastIndent);
- if(m_pState->CurGroupChildCount() == 0)
- m_stream << "{ ?";
- else
- m_stream << ", ?";
- }
-
- switch(child) {
- case EmitterNodeType::None:
- break;
- case EmitterNodeType::Property:
- case EmitterNodeType::Scalar:
- case EmitterNodeType::FlowSeq:
- case EmitterNodeType::FlowMap:
- SpaceOrIndentTo(m_pState->HasBegunContent() || m_pState->CurGroupChildCount() > 0, lastIndent);
- break;
- case EmitterNodeType::BlockSeq:
- case EmitterNodeType::BlockMap:
- assert(false);
- break;
- }
- }
-
- void Emitter::FlowMapPrepareLongKeyValue(EmitterNodeType::value child)
- {
- const unsigned lastIndent = m_pState->LastIndent();
-
- if(!m_pState->HasBegunNode()) {
- if(m_stream.comment())
- m_stream << "\n";
- m_stream << IndentTo(lastIndent);
- m_stream << ":";
- }
-
- switch(child) {
- case EmitterNodeType::None:
- break;
- case EmitterNodeType::Property:
- case EmitterNodeType::Scalar:
- case EmitterNodeType::FlowSeq:
- case EmitterNodeType::FlowMap:
- SpaceOrIndentTo(m_pState->HasBegunContent() || m_pState->CurGroupChildCount() > 0, lastIndent);
- break;
- case EmitterNodeType::BlockSeq:
- case EmitterNodeType::BlockMap:
- assert(false);
- break;
- }
- }
-
- void Emitter::FlowMapPrepareSimpleKey(EmitterNodeType::value child)
- {
- const unsigned lastIndent = m_pState->LastIndent();
-
- if(!m_pState->HasBegunNode()) {
- if(m_stream.comment())
- m_stream << "\n";
- m_stream << IndentTo(lastIndent);
- if(m_pState->CurGroupChildCount() == 0)
- m_stream << "{";
- else
- m_stream << ",";
- }
-
- switch(child) {
- case EmitterNodeType::None:
- break;
- case EmitterNodeType::Property:
- case EmitterNodeType::Scalar:
- case EmitterNodeType::FlowSeq:
- case EmitterNodeType::FlowMap:
- SpaceOrIndentTo(m_pState->HasBegunContent() || m_pState->CurGroupChildCount() > 0, lastIndent);
- break;
- case EmitterNodeType::BlockSeq:
- case EmitterNodeType::BlockMap:
- assert(false);
- break;
- }
- }
-
- void Emitter::FlowMapPrepareSimpleKeyValue(EmitterNodeType::value child)
- {
- const unsigned lastIndent = m_pState->LastIndent();
-
- if(!m_pState->HasBegunNode()) {
- if(m_stream.comment())
- m_stream << "\n";
- m_stream << IndentTo(lastIndent);
- m_stream << ":";
- }
-
- switch(child) {
- case EmitterNodeType::None:
- break;
- case EmitterNodeType::Property:
- case EmitterNodeType::Scalar:
- case EmitterNodeType::FlowSeq:
- case EmitterNodeType::FlowMap:
- SpaceOrIndentTo(m_pState->HasBegunContent() || m_pState->CurGroupChildCount() > 0, lastIndent);
- break;
- case EmitterNodeType::BlockSeq:
- case EmitterNodeType::BlockMap:
- assert(false);
- break;
- }
- }
-
- void Emitter::BlockMapPrepareNode(EmitterNodeType::value child)
- {
- if(m_pState->CurGroupChildCount() % 2 == 0) {
- if(m_pState->GetMapKeyFormat() == LongKey)
- m_pState->SetLongKey();
- if(child == EmitterNodeType::BlockSeq || child == EmitterNodeType::BlockMap)
- m_pState->SetLongKey();
-
- if(m_pState->CurGroupLongKey())
- BlockMapPrepareLongKey(child);
- else
- BlockMapPrepareSimpleKey(child);
- } else {
- if(m_pState->CurGroupLongKey())
- BlockMapPrepareLongKeyValue(child);
- else
- BlockMapPrepareSimpleKeyValue(child);
- }
- }
-
- void Emitter::BlockMapPrepareLongKey(EmitterNodeType::value child)
- {
- const unsigned curIndent = m_pState->CurIndent();
- const std::size_t childCount = m_pState->CurGroupChildCount();
-
- if(child == EmitterNodeType::None)
- return;
-
- if(!m_pState->HasBegunContent()) {
- if(childCount > 0) {
- m_stream << "\n";
- }
- if(m_stream.comment()) {
- m_stream << "\n";
- }
- m_stream << IndentTo(curIndent);
- m_stream << "?";
- }
-
- switch(child) {
- case EmitterNodeType::None:
- break;
- case EmitterNodeType::Property:
- case EmitterNodeType::Scalar:
- case EmitterNodeType::FlowSeq:
- case EmitterNodeType::FlowMap:
- SpaceOrIndentTo(true, curIndent + 1);
- break;
- case EmitterNodeType::BlockSeq:
- case EmitterNodeType::BlockMap:
- break;
- }
- }
-
- void Emitter::BlockMapPrepareLongKeyValue(EmitterNodeType::value child)
- {
- const unsigned curIndent = m_pState->CurIndent();
-
- if(child == EmitterNodeType::None)
- return;
-
- if(!m_pState->HasBegunContent()) {
- m_stream << "\n";
- m_stream << IndentTo(curIndent);
- m_stream << ":";
- }
-
- switch(child) {
- case EmitterNodeType::None:
- break;
- case EmitterNodeType::Property:
- case EmitterNodeType::Scalar:
- case EmitterNodeType::FlowSeq:
- case EmitterNodeType::FlowMap:
- case EmitterNodeType::BlockSeq:
- case EmitterNodeType::BlockMap:
- SpaceOrIndentTo(true, curIndent + 1);
- break;
- }
- }
-
- void Emitter::BlockMapPrepareSimpleKey(EmitterNodeType::value child)
- {
- const unsigned curIndent = m_pState->CurIndent();
- const std::size_t childCount = m_pState->CurGroupChildCount();
-
- if(child == EmitterNodeType::None)
- return;
-
- if(!m_pState->HasBegunNode()) {
- if(childCount > 0) {
- m_stream << "\n";
- }
- }
-
- switch(child) {
- case EmitterNodeType::None:
- break;
- case EmitterNodeType::Property:
- case EmitterNodeType::Scalar:
- case EmitterNodeType::FlowSeq:
- case EmitterNodeType::FlowMap:
- SpaceOrIndentTo(m_pState->HasBegunContent(), curIndent);
- break;
- case EmitterNodeType::BlockSeq:
- case EmitterNodeType::BlockMap:
- break;
- }
- }
-
- void Emitter::BlockMapPrepareSimpleKeyValue(EmitterNodeType::value child)
- {
- const unsigned curIndent = m_pState->CurIndent();
- const unsigned nextIndent = curIndent + m_pState->CurGroupIndent();
-
- if(!m_pState->HasBegunNode()) {
- m_stream << ":";
- }
-
- switch(child) {
- case EmitterNodeType::None:
- break;
- case EmitterNodeType::Property:
- case EmitterNodeType::Scalar:
- case EmitterNodeType::FlowSeq:
- case EmitterNodeType::FlowMap:
- SpaceOrIndentTo(true, nextIndent);
- break;
- case EmitterNodeType::BlockSeq:
- case EmitterNodeType::BlockMap:
- m_stream << "\n";
- break;
- }
- }
-
- // SpaceOrIndentTo
- // . Prepares for some more content by proper spacing
- void Emitter::SpaceOrIndentTo(bool requireSpace, unsigned indent)
- {
- if(m_stream.comment())
- m_stream << "\n";
- if(m_stream.col() > 0 && requireSpace)
- m_stream << " ";
- m_stream << IndentTo(indent);
- }
-
- void Emitter::PrepareIntegralStream(std::stringstream& stream) const
- {
-
- switch(m_pState->GetIntFormat()) {
- case Dec:
- stream << std::dec;
- break;
- case Hex:
- stream << "0x";
- stream << std::hex;
- break;
- case Oct:
- stream << "0";
- stream << std::oct;
- break;
- default:
- assert(false);
- }
- }
-
- void Emitter::StartedScalar()
- {
- m_pState->StartedScalar();
- }
-
- // *******************************************************************************************
- // overloads of Write
-
- Emitter& Emitter::Write(const std::string& str)
- {
- if(!good())
- return *this;
-
- const bool escapeNonAscii = m_pState->GetOutputCharset() == EscapeNonAscii;
- const StringFormat::value strFormat = Utils::ComputeStringFormat(str, m_pState->GetStringFormat(), m_pState->CurGroupFlowType(), escapeNonAscii);
-
- if(strFormat == StringFormat::Literal)
- m_pState->SetMapKeyFormat(YAML::LongKey, FmtScope::Local);
-
- PrepareNode(EmitterNodeType::Scalar);
-
- switch(strFormat) {
- case StringFormat::Plain:
- m_stream << str;
- break;
- case StringFormat::SingleQuoted:
- Utils::WriteSingleQuotedString(m_stream, str);
- break;
- case StringFormat::DoubleQuoted:
- Utils::WriteDoubleQuotedString(m_stream, str, escapeNonAscii);
- break;
- case StringFormat::Literal:
- Utils::WriteLiteralString(m_stream, str, m_pState->CurIndent() + m_pState->GetIndent());
- break;
- }
-
- StartedScalar();
-
- return *this;
- }
-
- unsigned Emitter::GetFloatPrecision() const
- {
- return m_pState->GetFloatPrecision();
- }
-
- unsigned Emitter::GetDoublePrecision() const
- {
- return m_pState->GetDoublePrecision();
- }
-
- const char *Emitter::ComputeFullBoolName(bool b) const
- {
- const EMITTER_MANIP mainFmt = (m_pState->GetBoolLengthFormat() == ShortBool ? YesNoBool : m_pState->GetBoolFormat());
- const EMITTER_MANIP caseFmt = m_pState->GetBoolCaseFormat();
- switch(mainFmt) {
- case YesNoBool:
- switch(caseFmt) {
- case UpperCase: return b ? "YES" : "NO";
- case CamelCase: return b ? "Yes" : "No";
- case LowerCase: return b ? "yes" : "no";
- default: break;
- }
- break;
- case OnOffBool:
- switch(caseFmt) {
- case UpperCase: return b ? "ON" : "OFF";
- case CamelCase: return b ? "On" : "Off";
- case LowerCase: return b ? "on" : "off";
- default: break;
- }
- break;
- case TrueFalseBool:
- switch(caseFmt) {
- case UpperCase: return b ? "TRUE" : "FALSE";
- case CamelCase: return b ? "True" : "False";
- case LowerCase: return b ? "true" : "false";
- default: break;
- }
- break;
- default:
- break;
- }
- return b ? "y" : "n"; // should never get here, but it can't hurt to give these answers
- }
-
- Emitter& Emitter::Write(bool b)
- {
- if(!good())
- return *this;
-
- PrepareNode(EmitterNodeType::Scalar);
-
- const char *name = ComputeFullBoolName(b);
- if(m_pState->GetBoolLengthFormat() == ShortBool)
- m_stream << name[0];
- else
- m_stream << name;
-
- StartedScalar();
-
- return *this;
- }
-
- Emitter& Emitter::Write(char ch)
- {
- if(!good())
- return *this;
-
- PrepareNode(EmitterNodeType::Scalar);
- Utils::WriteChar(m_stream, ch);
- StartedScalar();
-
- return *this;
- }
-
- Emitter& Emitter::Write(const _Alias& alias)
- {
- if(!good())
- return *this;
-
- if(m_pState->HasAnchor() || m_pState->HasTag()) {
- m_pState->SetError(ErrorMsg::INVALID_ALIAS);
- return *this;
- }
-
- PrepareNode(EmitterNodeType::Scalar);
-
- if(!Utils::WriteAlias(m_stream, alias.content)) {
- m_pState->SetError(ErrorMsg::INVALID_ALIAS);
- return *this;
- }
-
- StartedScalar();
-
- return *this;
- }
-
- Emitter& Emitter::Write(const _Anchor& anchor)
- {
- if(!good())
- return *this;
-
- if(m_pState->HasAnchor()) {
- m_pState->SetError(ErrorMsg::INVALID_ANCHOR);
- return *this;
- }
-
- PrepareNode(EmitterNodeType::Property);
-
- if(!Utils::WriteAnchor(m_stream, anchor.content)) {
- m_pState->SetError(ErrorMsg::INVALID_ANCHOR);
- return *this;
- }
-
- m_pState->SetAnchor();
-
- return *this;
- }
-
- Emitter& Emitter::Write(const _Tag& tag)
- {
- if(!good())
- return *this;
-
- if(m_pState->HasTag()) {
- m_pState->SetError(ErrorMsg::INVALID_TAG);
- return *this;
- }
-
- PrepareNode(EmitterNodeType::Property);
-
- bool success = false;
- if(tag.type == _Tag::Type::Verbatim)
- success = Utils::WriteTag(m_stream, tag.content, true);
- else if(tag.type == _Tag::Type::PrimaryHandle)
- success = Utils::WriteTag(m_stream, tag.content, false);
- else
- success = Utils::WriteTagWithPrefix(m_stream, tag.prefix, tag.content);
-
- if(!success) {
- m_pState->SetError(ErrorMsg::INVALID_TAG);
- return *this;
- }
-
- m_pState->SetTag();
-
- return *this;
- }
-
- void Emitter::EmitKindTag()
- {
- Write(LocalTag(""));
- }
-
- Emitter& Emitter::Write(const _Comment& comment)
- {
- if(!good())
- return *this;
-
- PrepareNode(EmitterNodeType::None);
-
- if(m_stream.col() > 0)
- m_stream << Indentation(m_pState->GetPreCommentIndent());
- Utils::WriteComment(m_stream, comment.content, m_pState->GetPostCommentIndent());
-
- m_pState->SetNonContent();
-
- return *this;
- }
-
- Emitter& Emitter::Write(const _Null& /*null*/)
- {
- if(!good())
- return *this;
-
- PrepareNode(EmitterNodeType::Scalar);
-
- m_stream << "~";
-
- StartedScalar();
-
- return *this;
- }
-
- Emitter& Emitter::Write(const Binary& binary)
- {
- Write(SecondaryTag("binary"));
-
- if(!good())
- return *this;
-
- PrepareNode(EmitterNodeType::Scalar);
- Utils::WriteBinary(m_stream, binary);
- StartedScalar();
-
- return *this;
- }
-}
-
diff --git a/src/third_party/yaml-cpp-0.5.1/src/emitterstate.cpp b/src/third_party/yaml-cpp-0.5.1/src/emitterstate.cpp
deleted file mode 100644
index 10c3976d1ca..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/emitterstate.cpp
+++ /dev/null
@@ -1,384 +0,0 @@
-#include "emitterstate.h"
-#include "yaml-cpp/exceptions.h"
-#include <limits>
-
-namespace YAML
-{
- EmitterState::EmitterState(): m_isGood(true), m_curIndent(0), m_hasAnchor(false), m_hasTag(false), m_hasNonContent(false), m_docCount(0)
- {
- // set default global manipulators
- m_charset.set(EmitNonAscii);
- m_strFmt.set(Auto);
- m_boolFmt.set(TrueFalseBool);
- m_boolLengthFmt.set(LongBool);
- m_boolCaseFmt.set(LowerCase);
- m_intFmt.set(Dec);
- m_indent.set(2);
- m_preCommentIndent.set(2);
- m_postCommentIndent.set(1);
- m_seqFmt.set(Block);
- m_mapFmt.set(Block);
- m_mapKeyFmt.set(Auto);
- m_floatPrecision.set(std::numeric_limits<float>::digits10 + 1);
- m_doublePrecision.set(std::numeric_limits<double>::digits10 + 1);
- }
-
- EmitterState::~EmitterState()
- {
- }
-
- // SetLocalValue
- // . We blindly tries to set all possible formatters to this value
- // . Only the ones that make sense will be accepted
- void EmitterState::SetLocalValue(EMITTER_MANIP value)
- {
- SetOutputCharset(value, FmtScope::Local);
- SetStringFormat(value, FmtScope::Local);
- SetBoolFormat(value, FmtScope::Local);
- SetBoolCaseFormat(value, FmtScope::Local);
- SetBoolLengthFormat(value, FmtScope::Local);
- SetIntFormat(value, FmtScope::Local);
- SetFlowType(GroupType::Seq, value, FmtScope::Local);
- SetFlowType(GroupType::Map, value, FmtScope::Local);
- SetMapKeyFormat(value, FmtScope::Local);
- }
-
- void EmitterState::SetAnchor()
- {
- m_hasAnchor = true;
- }
-
- void EmitterState::SetTag()
- {
- m_hasTag = true;
- }
-
- void EmitterState::SetNonContent()
- {
- m_hasNonContent = true;
- }
-
- void EmitterState::SetLongKey()
- {
- assert(!m_groups.empty());
- if(m_groups.empty())
- return;
-
- assert(m_groups.top().type == GroupType::Map);
- m_groups.top().longKey = true;
- }
-
- void EmitterState::ForceFlow()
- {
- assert(!m_groups.empty());
- if(m_groups.empty())
- return;
-
- m_groups.top().flowType = FlowType::Flow;
- }
-
- void EmitterState::StartedNode()
- {
- if(m_groups.empty()) {
- m_docCount++;
- } else {
- m_groups.top().childCount++;
- if(m_groups.top().childCount % 2 == 0)
- m_groups.top().longKey = false;
- }
-
- m_hasAnchor = false;
- m_hasTag = false;
- m_hasNonContent = false;
- }
-
- EmitterNodeType::value EmitterState::NextGroupType(GroupType::value type) const
- {
- if(type == GroupType::Seq) {
- if(GetFlowType(type) == Block)
- return EmitterNodeType::BlockSeq;
- else
- return EmitterNodeType::FlowSeq;
- } else {
- if(GetFlowType(type) == Block)
- return EmitterNodeType::BlockMap;
- else
- return EmitterNodeType::FlowMap;
- }
-
- // can't happen
- assert(false);
- return EmitterNodeType::None;
- }
-
- void EmitterState::StartedDoc()
- {
- m_hasAnchor = false;
- m_hasTag = false;
- m_hasNonContent = false;
- }
-
- void EmitterState::EndedDoc()
- {
- m_hasAnchor = false;
- m_hasTag = false;
- m_hasNonContent = false;
- }
-
- void EmitterState::StartedScalar()
- {
- StartedNode();
- ClearModifiedSettings();
- }
-
- void EmitterState::StartedGroup(GroupType::value type)
- {
- StartedNode();
-
- const int lastGroupIndent = (m_groups.empty() ? 0 : m_groups.top().indent);
- m_curIndent += lastGroupIndent;
-
- std::auto_ptr<Group> pGroup(new Group(type));
-
- // transfer settings (which last until this group is done)
- pGroup->modifiedSettings = m_modifiedSettings;
-
- // set up group
- if(GetFlowType(type) == Block)
- pGroup->flowType = FlowType::Block;
- else
- pGroup->flowType = FlowType::Flow;
- pGroup->indent = GetIndent();
-
- m_groups.push(pGroup);
- }
-
- void EmitterState::EndedGroup(GroupType::value type)
- {
- if(m_groups.empty()) {
- if(type == GroupType::Seq)
- return SetError(ErrorMsg::UNEXPECTED_END_SEQ);
- else
- return SetError(ErrorMsg::UNEXPECTED_END_MAP);
- }
-
- // get rid of the current group
- {
- std::auto_ptr<Group> pFinishedGroup = m_groups.pop();
- if(pFinishedGroup->type != type)
- return SetError(ErrorMsg::UNMATCHED_GROUP_TAG);
- }
-
- // reset old settings
- unsigned lastIndent = (m_groups.empty() ? 0 : m_groups.top().indent);
- assert(m_curIndent >= lastIndent);
- m_curIndent -= lastIndent;
-
- // some global settings that we changed may have been overridden
- // by a local setting we just popped, so we need to restore them
- m_globalModifiedSettings.restore();
-
- ClearModifiedSettings();
- }
-
- EmitterNodeType::value EmitterState::CurGroupNodeType() const
- {
- if(m_groups.empty())
- return EmitterNodeType::None;
-
- return m_groups.top().NodeType();
- }
-
- GroupType::value EmitterState::CurGroupType() const
- {
- return m_groups.empty() ? GroupType::None : m_groups.top().type;
- }
-
- FlowType::value EmitterState::CurGroupFlowType() const
- {
- return m_groups.empty() ? FlowType::None : m_groups.top().flowType;
- }
-
- int EmitterState::CurGroupIndent() const
- {
- return m_groups.empty() ? 0 : m_groups.top().indent;
- }
-
- std::size_t EmitterState::CurGroupChildCount() const
- {
- return m_groups.empty() ? m_docCount : m_groups.top().childCount;
- }
-
- bool EmitterState::CurGroupLongKey() const
- {
- return m_groups.empty() ? false : m_groups.top().longKey;
- }
-
- int EmitterState::LastIndent() const
- {
- if(m_groups.size() <= 1)
- return 0;
-
- return m_curIndent - m_groups.top(-1).indent;
- }
-
- void EmitterState::ClearModifiedSettings()
- {
- m_modifiedSettings.clear();
- }
-
- bool EmitterState::SetOutputCharset(EMITTER_MANIP value, FmtScope::value scope)
- {
- switch(value) {
- case EmitNonAscii:
- case EscapeNonAscii:
- _Set(m_charset, value, scope);
- return true;
- default:
- return false;
- }
- }
-
- bool EmitterState::SetStringFormat(EMITTER_MANIP value, FmtScope::value scope)
- {
- switch(value) {
- case Auto:
- case SingleQuoted:
- case DoubleQuoted:
- case Literal:
- _Set(m_strFmt, value, scope);
- return true;
- default:
- return false;
- }
- }
-
- bool EmitterState::SetBoolFormat(EMITTER_MANIP value, FmtScope::value scope)
- {
- switch(value) {
- case OnOffBool:
- case TrueFalseBool:
- case YesNoBool:
- _Set(m_boolFmt, value, scope);
- return true;
- default:
- return false;
- }
- }
-
- bool EmitterState::SetBoolLengthFormat(EMITTER_MANIP value, FmtScope::value scope)
- {
- switch(value) {
- case LongBool:
- case ShortBool:
- _Set(m_boolLengthFmt, value, scope);
- return true;
- default:
- return false;
- }
- }
-
- bool EmitterState::SetBoolCaseFormat(EMITTER_MANIP value, FmtScope::value scope)
- {
- switch(value) {
- case UpperCase:
- case LowerCase:
- case CamelCase:
- _Set(m_boolCaseFmt, value, scope);
- return true;
- default:
- return false;
- }
- }
-
- bool EmitterState::SetIntFormat(EMITTER_MANIP value, FmtScope::value scope)
- {
- switch(value) {
- case Dec:
- case Hex:
- case Oct:
- _Set(m_intFmt, value, scope);
- return true;
- default:
- return false;
- }
- }
-
- bool EmitterState::SetIndent(unsigned value, FmtScope::value scope)
- {
- if(value <= 1)
- return false;
-
- _Set(m_indent, value, scope);
- return true;
- }
-
- bool EmitterState::SetPreCommentIndent(unsigned value, FmtScope::value scope)
- {
- if(value == 0)
- return false;
-
- _Set(m_preCommentIndent, value, scope);
- return true;
- }
-
- bool EmitterState::SetPostCommentIndent(unsigned value, FmtScope::value scope)
- {
- if(value == 0)
- return false;
-
- _Set(m_postCommentIndent, value, scope);
- return true;
- }
-
- bool EmitterState::SetFlowType(GroupType::value groupType, EMITTER_MANIP value, FmtScope::value scope)
- {
- switch(value) {
- case Block:
- case Flow:
- _Set(groupType == GroupType::Seq ? m_seqFmt : m_mapFmt, value, scope);
- return true;
- default:
- return false;
- }
- }
-
- EMITTER_MANIP EmitterState::GetFlowType(GroupType::value groupType) const
- {
- // force flow style if we're currently in a flow
- if(CurGroupFlowType() == FlowType::Flow)
- return Flow;
-
- // otherwise, go with what's asked of us
- return (groupType == GroupType::Seq ? m_seqFmt.get() : m_mapFmt.get());
- }
-
- bool EmitterState::SetMapKeyFormat(EMITTER_MANIP value, FmtScope::value scope)
- {
- switch(value) {
- case Auto:
- case LongKey:
- _Set(m_mapKeyFmt, value, scope);
- return true;
- default:
- return false;
- }
- }
-
- bool EmitterState::SetFloatPrecision(int value, FmtScope::value scope)
- {
- if(value < 0 || value > std::numeric_limits<float>::digits10 + 1)
- return false;
- _Set(m_floatPrecision, value, scope);
- return true;
- }
-
- bool EmitterState::SetDoublePrecision(int value, FmtScope::value scope)
- {
- if(value < 0 || value > std::numeric_limits<double>::digits10 + 1)
- return false;
- _Set(m_doublePrecision, value, scope);
- return true;
- }
-}
-
diff --git a/src/third_party/yaml-cpp-0.5.1/src/emitterstate.h b/src/third_party/yaml-cpp-0.5.1/src/emitterstate.h
deleted file mode 100644
index f43f471345f..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/emitterstate.h
+++ /dev/null
@@ -1,190 +0,0 @@
-#ifndef EMITTERSTATE_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define EMITTERSTATE_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-
-#include "ptr_stack.h"
-#include "setting.h"
-#include "yaml-cpp/emitterdef.h"
-#include "yaml-cpp/emittermanip.h"
-#include <cassert>
-#include <vector>
-#include <stack>
-#include <memory>
-#include <stdexcept>
-
-namespace YAML
-{
- struct FmtScope { enum value { Local, Global }; };
- struct GroupType { enum value { None, Seq, Map }; };
- struct FlowType { enum value { None, Flow, Block }; };
-
- class EmitterState
- {
- public:
- EmitterState();
- ~EmitterState();
-
- // basic state checking
- bool good() const { return m_isGood; }
- const std::string GetLastError() const { return m_lastError; }
- void SetError(const std::string& error) { m_isGood = false; m_lastError = error; }
-
- // node handling
- void SetAnchor();
- void SetTag();
- void SetNonContent();
- void SetLongKey();
- void ForceFlow();
- void StartedDoc();
- void EndedDoc();
- void StartedScalar();
- void StartedGroup(GroupType::value type);
- void EndedGroup(GroupType::value type);
-
- EmitterNodeType::value NextGroupType(GroupType::value type) const;
- EmitterNodeType::value CurGroupNodeType() const;
-
- GroupType::value CurGroupType() const;
- FlowType::value CurGroupFlowType() const;
- int CurGroupIndent() const;
- std::size_t CurGroupChildCount() const;
- bool CurGroupLongKey() const;
-
- int LastIndent() const;
- int CurIndent() const { return m_curIndent; }
- bool HasAnchor() const { return m_hasAnchor; }
- bool HasTag() const { return m_hasTag; }
- bool HasBegunNode() const { return m_hasAnchor || m_hasTag || m_hasNonContent; }
- bool HasBegunContent() const { return m_hasAnchor || m_hasTag; }
-
- void ClearModifiedSettings();
-
- // formatters
- void SetLocalValue(EMITTER_MANIP value);
-
- bool SetOutputCharset(EMITTER_MANIP value, FmtScope::value scope);
- EMITTER_MANIP GetOutputCharset() const { return m_charset.get(); }
-
- bool SetStringFormat(EMITTER_MANIP value, FmtScope::value scope);
- EMITTER_MANIP GetStringFormat() const { return m_strFmt.get(); }
-
- bool SetBoolFormat(EMITTER_MANIP value, FmtScope::value scope);
- EMITTER_MANIP GetBoolFormat() const { return m_boolFmt.get(); }
-
- bool SetBoolLengthFormat(EMITTER_MANIP value, FmtScope::value scope);
- EMITTER_MANIP GetBoolLengthFormat() const { return m_boolLengthFmt.get(); }
-
- bool SetBoolCaseFormat(EMITTER_MANIP value, FmtScope::value scope);
- EMITTER_MANIP GetBoolCaseFormat() const { return m_boolCaseFmt.get(); }
-
- bool SetIntFormat(EMITTER_MANIP value, FmtScope::value scope);
- EMITTER_MANIP GetIntFormat() const { return m_intFmt.get(); }
-
- bool SetIndent(unsigned value, FmtScope::value scope);
- int GetIndent() const { return m_indent.get(); }
-
- bool SetPreCommentIndent(unsigned value, FmtScope::value scope);
- int GetPreCommentIndent() const { return m_preCommentIndent.get(); }
- bool SetPostCommentIndent(unsigned value, FmtScope::value scope);
- int GetPostCommentIndent() const { return m_postCommentIndent.get(); }
-
- bool SetFlowType(GroupType::value groupType, EMITTER_MANIP value, FmtScope::value scope);
- EMITTER_MANIP GetFlowType(GroupType::value groupType) const;
-
- bool SetMapKeyFormat(EMITTER_MANIP value, FmtScope::value scope);
- EMITTER_MANIP GetMapKeyFormat() const { return m_mapKeyFmt.get(); }
-
- bool SetFloatPrecision(int value, FmtScope::value scope);
- unsigned GetFloatPrecision() const { return m_floatPrecision.get(); }
- bool SetDoublePrecision(int value, FmtScope::value scope);
- unsigned GetDoublePrecision() const { return m_doublePrecision.get(); }
-
- private:
- template <typename T>
- void _Set(Setting<T>& fmt, T value, FmtScope::value scope);
-
- void StartedNode();
-
- private:
- // basic state ok?
- bool m_isGood;
- std::string m_lastError;
-
- // other state
- Setting<EMITTER_MANIP> m_charset;
- Setting<EMITTER_MANIP> m_strFmt;
- Setting<EMITTER_MANIP> m_boolFmt;
- Setting<EMITTER_MANIP> m_boolLengthFmt;
- Setting<EMITTER_MANIP> m_boolCaseFmt;
- Setting<EMITTER_MANIP> m_intFmt;
- Setting<unsigned> m_indent;
- Setting<unsigned> m_preCommentIndent, m_postCommentIndent;
- Setting<EMITTER_MANIP> m_seqFmt;
- Setting<EMITTER_MANIP> m_mapFmt;
- Setting<EMITTER_MANIP> m_mapKeyFmt;
- Setting<int> m_floatPrecision;
- Setting<int> m_doublePrecision;
-
- SettingChanges m_modifiedSettings;
- SettingChanges m_globalModifiedSettings;
-
- struct Group {
- explicit Group(GroupType::value type_): type(type_), indent(0), childCount(0), longKey(false) {}
-
- GroupType::value type;
- FlowType::value flowType;
- int indent;
- std::size_t childCount;
- bool longKey;
-
- SettingChanges modifiedSettings;
-
- EmitterNodeType::value NodeType() const {
- if(type == GroupType::Seq) {
- if(flowType == FlowType::Flow)
- return EmitterNodeType::FlowSeq;
- else
- return EmitterNodeType::BlockSeq;
- } else {
- if(flowType == FlowType::Flow)
- return EmitterNodeType::FlowMap;
- else
- return EmitterNodeType::BlockMap;
- }
-
- // can't get here
- assert(false);
- return EmitterNodeType::None;
- }
- };
-
- ptr_stack<Group> m_groups;
- unsigned m_curIndent;
- bool m_hasAnchor;
- bool m_hasTag;
- bool m_hasNonContent;
- std::size_t m_docCount;
- };
-
- template <typename T>
- void EmitterState::_Set(Setting<T>& fmt, T value, FmtScope::value scope) {
- switch(scope) {
- case FmtScope::Local:
- m_modifiedSettings.push(fmt.set(value));
- break;
- case FmtScope::Global:
- fmt.set(value);
- m_globalModifiedSettings.push(fmt.set(value)); // this pushes an identity set, so when we restore,
- // it restores to the value here, and not the previous one
- break;
- default:
- assert(false);
- }
- }
-}
-
-#endif // EMITTERSTATE_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/src/emitterutils.cpp b/src/third_party/yaml-cpp-0.5.1/src/emitterutils.cpp
deleted file mode 100644
index 09780d00b06..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/emitterutils.cpp
+++ /dev/null
@@ -1,424 +0,0 @@
-#include "emitterutils.h"
-#include "exp.h"
-#include "indentation.h"
-#include "yaml-cpp/binary.h"
-#include "yaml-cpp/exceptions.h"
-#include "stringsource.h"
-#include <sstream>
-#include <iomanip>
-
-namespace YAML
-{
- namespace Utils
- {
- namespace {
- enum {REPLACEMENT_CHARACTER = 0xFFFD};
-
- bool IsAnchorChar(int ch) { // test for ns-anchor-char
- switch (ch) {
- case ',': case '[': case ']': case '{': case '}': // c-flow-indicator
- case ' ': case '\t': // s-white
- case 0xFEFF: // c-byte-order-mark
- case 0xA: case 0xD: // b-char
- return false;
- case 0x85:
- return true;
- }
-
- if (ch < 0x20)
- return false;
-
- if (ch < 0x7E)
- return true;
-
- if (ch < 0xA0)
- return false;
- if (ch >= 0xD800 && ch <= 0xDFFF)
- return false;
- if ((ch & 0xFFFE) == 0xFFFE)
- return false;
- if ((ch >= 0xFDD0) && (ch <= 0xFDEF))
- return false;
- if (ch > 0x10FFFF)
- return false;
-
- return true;
- }
-
- int Utf8BytesIndicated(char ch) {
- int byteVal = static_cast<unsigned char>(ch);
- switch (byteVal >> 4) {
- case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7:
- return 1;
- case 12: case 13:
- return 2;
- case 14:
- return 3;
- case 15:
- return 4;
- default:
- return -1;
- }
- }
-
- bool IsTrailingByte(char ch) {
- return (ch & 0xC0) == 0x80;
- }
-
- bool GetNextCodePointAndAdvance(int& codePoint, std::string::const_iterator& first, std::string::const_iterator last) {
- if (first == last)
- return false;
-
- int nBytes = Utf8BytesIndicated(*first);
- if (nBytes < 1) {
- // Bad lead byte
- ++first;
- codePoint = REPLACEMENT_CHARACTER;
- return true;
- }
-
- if (nBytes == 1) {
- codePoint = *first++;
- return true;
- }
-
- // Gather bits from trailing bytes
- codePoint = static_cast<unsigned char>(*first) & ~(0xFF << (7 - nBytes));
- ++first;
- --nBytes;
- for (; nBytes > 0; ++first, --nBytes) {
- if ((first == last) || !IsTrailingByte(*first)) {
- codePoint = REPLACEMENT_CHARACTER;
- break;
- }
- codePoint <<= 6;
- codePoint |= *first & 0x3F;
- }
-
- // Check for illegal code points
- if (codePoint > 0x10FFFF)
- codePoint = REPLACEMENT_CHARACTER;
- else if (codePoint >= 0xD800 && codePoint <= 0xDFFF)
- codePoint = REPLACEMENT_CHARACTER;
- else if ((codePoint & 0xFFFE) == 0xFFFE)
- codePoint = REPLACEMENT_CHARACTER;
- else if (codePoint >= 0xFDD0 && codePoint <= 0xFDEF)
- codePoint = REPLACEMENT_CHARACTER;
- return true;
- }
-
- void WriteCodePoint(ostream_wrapper& out, int codePoint) {
- if (codePoint < 0 || codePoint > 0x10FFFF) {
- codePoint = REPLACEMENT_CHARACTER;
- }
- if (codePoint < 0x7F) {
- out << static_cast<char>(codePoint);
- } else if (codePoint < 0x7FF) {
- out << static_cast<char>(0xC0 | (codePoint >> 6))
- << static_cast<char>(0x80 | (codePoint & 0x3F));
- } else if (codePoint < 0xFFFF) {
- out << static_cast<char>(0xE0 | (codePoint >> 12))
- << static_cast<char>(0x80 | ((codePoint >> 6) & 0x3F))
- << static_cast<char>(0x80 | (codePoint & 0x3F));
- } else {
- out << static_cast<char>(0xF0 | (codePoint >> 18))
- << static_cast<char>(0x80 | ((codePoint >> 12) & 0x3F))
- << static_cast<char>(0x80 | ((codePoint >> 6) & 0x3F))
- << static_cast<char>(0x80 | (codePoint & 0x3F));
- }
- }
-
- bool IsValidPlainScalar(const std::string& str, FlowType::value flowType, bool allowOnlyAscii) {
- if(str.empty())
- return false;
-
- // first check the start
- const RegEx& start = (flowType == FlowType::Flow ? Exp::PlainScalarInFlow() : Exp::PlainScalar());
- if(!start.Matches(str))
- return false;
-
- // and check the end for plain whitespace (which can't be faithfully kept in a plain scalar)
- if(!str.empty() && *str.rbegin() == ' ')
- return false;
-
- // then check until something is disallowed
- const RegEx& disallowed = (flowType == FlowType::Flow ? Exp::EndScalarInFlow() : Exp::EndScalar())
- || (Exp::BlankOrBreak() + Exp::Comment())
- || Exp::NotPrintable()
- || Exp::Utf8_ByteOrderMark()
- || Exp::Break()
- || Exp::Tab();
- StringCharSource buffer(str.c_str(), str.size());
- while(buffer) {
- if(disallowed.Matches(buffer))
- return false;
- if(allowOnlyAscii && (0x80 <= static_cast<unsigned char>(buffer[0])))
- return false;
- ++buffer;
- }
-
- return true;
- }
-
- bool IsValidSingleQuotedScalar(const std::string& str, bool escapeNonAscii)
- {
- // TODO: check for non-printable characters?
- for(std::size_t i=0;i<str.size();i++) {
- if(escapeNonAscii && (0x80 <= static_cast<unsigned char>(str[i])))
- return false;
- if(str[i] == '\n')
- return false;
- }
- return true;
- }
-
- bool IsValidLiteralScalar(const std::string& str, FlowType::value flowType, bool escapeNonAscii)
- {
- if(flowType == FlowType::Flow)
- return false;
-
- // TODO: check for non-printable characters?
- for(std::size_t i=0;i<str.size();i++) {
- if(escapeNonAscii && (0x80 <= static_cast<unsigned char>(str[i])))
- return false;
- }
- return true;
- }
-
- void WriteDoubleQuoteEscapeSequence(ostream_wrapper& out, int codePoint) {
- static const char hexDigits[] = "0123456789abcdef";
-
- out << "\\";
- int digits = 8;
- if(codePoint < 0xFF) {
- out << "x";
- digits = 2;
- } else if(codePoint < 0xFFFF) {
- out << "u";
- digits = 4;
- } else {
- out << "U";
- digits = 8;
- }
-
- // Write digits into the escape sequence
- for (; digits > 0; --digits)
- out << hexDigits[(codePoint >> (4 * (digits - 1))) & 0xF];
- }
-
- bool WriteAliasName(ostream_wrapper& out, const std::string& str) {
- int codePoint;
- for(std::string::const_iterator i = str.begin();
- GetNextCodePointAndAdvance(codePoint, i, str.end());
- )
- {
- if (!IsAnchorChar(codePoint))
- return false;
-
- WriteCodePoint(out, codePoint);
- }
- return true;
- }
- }
-
- StringFormat::value ComputeStringFormat(const std::string& str, EMITTER_MANIP strFormat, FlowType::value flowType, bool escapeNonAscii)
- {
- switch(strFormat) {
- case Auto:
- if(IsValidPlainScalar(str, flowType, escapeNonAscii))
- return StringFormat::Plain;
- return StringFormat::DoubleQuoted;
- case SingleQuoted:
- if(IsValidSingleQuotedScalar(str, escapeNonAscii))
- return StringFormat::SingleQuoted;
- return StringFormat::DoubleQuoted;
- case DoubleQuoted:
- return StringFormat::DoubleQuoted;
- case Literal:
- if(IsValidLiteralScalar(str, flowType, escapeNonAscii))
- return StringFormat::Literal;
- return StringFormat::DoubleQuoted;
- default:
- break;
- }
-
- return StringFormat::DoubleQuoted;
- }
-
- bool WriteSingleQuotedString(ostream_wrapper& out, const std::string& str)
- {
- out << "'";
- int codePoint;
- for(std::string::const_iterator i = str.begin();
- GetNextCodePointAndAdvance(codePoint, i, str.end());
- )
- {
- if (codePoint == '\n')
- return false; // We can't handle a new line and the attendant indentation yet
-
- if (codePoint == '\'')
- out << "''";
- else
- WriteCodePoint(out, codePoint);
- }
- out << "'";
- return true;
- }
-
- bool WriteDoubleQuotedString(ostream_wrapper& out, const std::string& str, bool escapeNonAscii)
- {
- out << "\"";
- int codePoint;
- for(std::string::const_iterator i = str.begin();
- GetNextCodePointAndAdvance(codePoint, i, str.end());
- )
- {
- switch(codePoint) {
- case '\"': out << "\\\""; break;
- case '\\': out << "\\\\"; break;
- case '\n': out << "\\n"; break;
- case '\t': out << "\\t"; break;
- case '\r': out << "\\r"; break;
- case '\b': out << "\\b"; break;
- default:
- if(codePoint < 0x20 || (codePoint >= 0x80 && codePoint <= 0xA0)) // Control characters and non-breaking space
- WriteDoubleQuoteEscapeSequence(out, codePoint);
- else if (codePoint == 0xFEFF) // Byte order marks (ZWNS) should be escaped (YAML 1.2, sec. 5.2)
- WriteDoubleQuoteEscapeSequence(out, codePoint);
- else if (escapeNonAscii && codePoint > 0x7E)
- WriteDoubleQuoteEscapeSequence(out, codePoint);
- else
- WriteCodePoint(out, codePoint);
- }
- }
- out << "\"";
- return true;
- }
-
- bool WriteLiteralString(ostream_wrapper& out, const std::string& str, int indent)
- {
- out << "|\n";
- out << IndentTo(indent);
- int codePoint;
- for(std::string::const_iterator i = str.begin();
- GetNextCodePointAndAdvance(codePoint, i, str.end());
- )
- {
- if (codePoint == '\n')
- out << "\n" << IndentTo(indent);
- else
- WriteCodePoint(out, codePoint);
- }
- return true;
- }
-
- bool WriteChar(ostream_wrapper& out, char ch)
- {
- if(('a' <= ch && ch <= 'z') || ('A' <= ch && ch <= 'Z'))
- out << ch;
- else if((0x20 <= ch && ch <= 0x7e) || ch == ' ')
- out << "\"" << ch << "\"";
- else if(ch == '\t')
- out << "\"\\t\"";
- else if(ch == '\n')
- out << "\"\\n\"";
- else if(ch == '\b')
- out << "\"\\b\"";
- else {
- out << "\"";
- WriteDoubleQuoteEscapeSequence(out, ch);
- out << "\"";
- }
- return true;
- }
-
- bool WriteComment(ostream_wrapper& out, const std::string& str, int postCommentIndent)
- {
- const unsigned curIndent = out.col();
- out << "#" << Indentation(postCommentIndent);
- out.set_comment();
- int codePoint;
- for(std::string::const_iterator i = str.begin();
- GetNextCodePointAndAdvance(codePoint, i, str.end());
- )
- {
- if(codePoint == '\n') {
- out << "\n" << IndentTo(curIndent) << "#" << Indentation(postCommentIndent);
- out.set_comment();
- } else {
- WriteCodePoint(out, codePoint);
- }
- }
- return true;
- }
-
- bool WriteAlias(ostream_wrapper& out, const std::string& str)
- {
- out << "*";
- return WriteAliasName(out, str);
- }
-
- bool WriteAnchor(ostream_wrapper& out, const std::string& str)
- {
- out << "&";
- return WriteAliasName(out, str);
- }
-
- bool WriteTag(ostream_wrapper& out, const std::string& str, bool verbatim)
- {
- out << (verbatim ? "!<" : "!");
- StringCharSource buffer(str.c_str(), str.size());
- const RegEx& reValid = verbatim ? Exp::URI() : Exp::Tag();
- while(buffer) {
- int n = reValid.Match(buffer);
- if(n <= 0)
- return false;
-
- while(--n >= 0) {
- out << buffer[0];
- ++buffer;
- }
- }
- if (verbatim)
- out << ">";
- return true;
- }
-
- bool WriteTagWithPrefix(ostream_wrapper& out, const std::string& prefix, const std::string& tag)
- {
- out << "!";
- StringCharSource prefixBuffer(prefix.c_str(), prefix.size());
- while(prefixBuffer) {
- int n = Exp::URI().Match(prefixBuffer);
- if(n <= 0)
- return false;
-
- while(--n >= 0) {
- out << prefixBuffer[0];
- ++prefixBuffer;
- }
- }
-
- out << "!";
- StringCharSource tagBuffer(tag.c_str(), tag.size());
- while(tagBuffer) {
- int n = Exp::Tag().Match(tagBuffer);
- if(n <= 0)
- return false;
-
- while(--n >= 0) {
- out << tagBuffer[0];
- ++tagBuffer;
- }
- }
- return true;
- }
-
- bool WriteBinary(ostream_wrapper& out, const Binary& binary)
- {
- WriteDoubleQuotedString(out, EncodeBase64(binary.data(), binary.size()), false);
- return true;
- }
- }
-}
-
diff --git a/src/third_party/yaml-cpp-0.5.1/src/emitterutils.h b/src/third_party/yaml-cpp-0.5.1/src/emitterutils.h
deleted file mode 100644
index 50b37f0477a..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/emitterutils.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifndef EMITTERUTILS_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define EMITTERUTILS_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-
-#include "emitterstate.h"
-#include "yaml-cpp/ostream_wrapper.h"
-#include <string>
-
-namespace YAML
-{
- class Binary;
-
- struct StringFormat { enum value { Plain, SingleQuoted, DoubleQuoted, Literal }; };
-
- namespace Utils
- {
- StringFormat::value ComputeStringFormat(const std::string& str, EMITTER_MANIP strFormat, FlowType::value flowType, bool escapeNonAscii);
-
- bool WriteSingleQuotedString(ostream_wrapper& out, const std::string& str);
- bool WriteDoubleQuotedString(ostream_wrapper& out, const std::string& str, bool escapeNonAscii);
- bool WriteLiteralString(ostream_wrapper& out, const std::string& str, int indent);
- bool WriteChar(ostream_wrapper& out, char ch);
- bool WriteComment(ostream_wrapper& out, const std::string& str, int postCommentIndent);
- bool WriteAlias(ostream_wrapper& out, const std::string& str);
- bool WriteAnchor(ostream_wrapper& out, const std::string& str);
- bool WriteTag(ostream_wrapper& out, const std::string& str, bool verbatim);
- bool WriteTagWithPrefix(ostream_wrapper& out, const std::string& prefix, const std::string& tag);
- bool WriteBinary(ostream_wrapper& out, const Binary& binary);
- }
-}
-
-#endif // EMITTERUTILS_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/src/exp.cpp b/src/third_party/yaml-cpp-0.5.1/src/exp.cpp
deleted file mode 100644
index 7bc545466fa..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/exp.cpp
+++ /dev/null
@@ -1,113 +0,0 @@
-#include "exp.h"
-#include "yaml-cpp/exceptions.h"
-#include <sstream>
-
-namespace YAML
-{
- namespace Exp
- {
- unsigned ParseHex(const std::string& str, const Mark& mark)
- {
- unsigned value = 0;
- for(std::size_t i=0;i<str.size();i++) {
- char ch = str[i];
- int digit = 0;
- if('a' <= ch && ch <= 'f')
- digit = ch - 'a' + 10;
- else if('A' <= ch && ch <= 'F')
- digit = ch - 'A' + 10;
- else if('0' <= ch && ch <= '9')
- digit = ch - '0';
- else
- throw ParserException(mark, ErrorMsg::INVALID_HEX);
-
- value = (value << 4) + digit;
- }
-
- return value;
- }
-
- std::string Str(unsigned ch)
- {
- return std::string(1, static_cast<char>(ch));
- }
-
- // Escape
- // . Translates the next 'codeLength' characters into a hex number and returns the result.
- // . Throws if it's not actually hex.
- std::string Escape(Stream& in, int codeLength)
- {
- // grab string
- std::string str;
- for(int i=0;i<codeLength;i++)
- str += in.get();
-
- // get the value
- unsigned value = ParseHex(str, in.mark());
-
- // legal unicode?
- if((value >= 0xD800 && value <= 0xDFFF) || value > 0x10FFFF) {
- std::stringstream msg;
- msg << ErrorMsg::INVALID_UNICODE << value;
- throw ParserException(in.mark(), msg.str());
- }
-
- // now break it up into chars
- if(value <= 0x7F)
- return Str(value);
- else if(value <= 0x7FF)
- return Str(0xC0 + (value >> 6)) + Str(0x80 + (value & 0x3F));
- else if(value <= 0xFFFF)
- return Str(0xE0 + (value >> 12)) + Str(0x80 + ((value >> 6) & 0x3F)) + Str(0x80 + (value & 0x3F));
- else
- return Str(0xF0 + (value >> 18)) + Str(0x80 + ((value >> 12) & 0x3F)) +
- Str(0x80 + ((value >> 6) & 0x3F)) + Str(0x80 + (value & 0x3F));
- }
-
- // Escape
- // . Escapes the sequence starting 'in' (it must begin with a '\' or single quote)
- // and returns the result.
- // . Throws if it's an unknown escape character.
- std::string Escape(Stream& in)
- {
- // eat slash
- char escape = in.get();
-
- // switch on escape character
- char ch = in.get();
-
- // first do single quote, since it's easier
- if(escape == '\'' && ch == '\'')
- return "\'";
-
- // now do the slash (we're not gonna check if it's a slash - you better pass one!)
- switch(ch) {
- case '0': return std::string(1, '\x00');
- case 'a': return "\x07";
- case 'b': return "\x08";
- case 't':
- case '\t': return "\x09";
- case 'n': return "\x0A";
- case 'v': return "\x0B";
- case 'f': return "\x0C";
- case 'r': return "\x0D";
- case 'e': return "\x1B";
- case ' ': return "\x20";
- case '\"': return "\"";
- case '\'': return "\'";
- case '\\': return "\\";
- case '/': return "/";
- case 'N': return "\x85";
- case '_': return "\xA0";
- case 'L': return "\xE2\x80\xA8"; // LS (#x2028)
- case 'P': return "\xE2\x80\xA9"; // PS (#x2029)
- case 'x': return Escape(in, 2);
- case 'u': return Escape(in, 4);
- case 'U': return Escape(in, 8);
- }
-
- std::stringstream msg;
- throw ParserException(in.mark(), std::string(ErrorMsg::INVALID_ESCAPE) + ch);
- }
- }
-}
diff --git a/src/third_party/yaml-cpp-0.5.1/src/exp.h b/src/third_party/yaml-cpp-0.5.1/src/exp.h
deleted file mode 100644
index 52bfd0a011f..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/exp.h
+++ /dev/null
@@ -1,196 +0,0 @@
-#ifndef EXP_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define EXP_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-
-#include "regex.h"
-#include <string>
-#include <ios>
-#include "stream.h"
-
-namespace YAML
-{
- ////////////////////////////////////////////////////////////////////////////////
- // Here we store a bunch of expressions for matching different parts of the file.
-
- namespace Exp
- {
- // misc
- inline const RegEx& Space() {
- static const RegEx e = RegEx(' ');
- return e;
- }
- inline const RegEx& Tab() {
- static const RegEx e = RegEx('\t');
- return e;
- }
- inline const RegEx& Blank() {
- static const RegEx e = Space() || Tab();
- return e;
- }
- inline const RegEx& Break() {
- static const RegEx e = RegEx('\n') || RegEx("\r\n");
- return e;
- }
- inline const RegEx& BlankOrBreak() {
- static const RegEx e = Blank() || Break();
- return e;
- }
- inline const RegEx& Digit() {
- static const RegEx e = RegEx('0', '9');
- return e;
- }
- inline const RegEx& Alpha() {
- static const RegEx e = RegEx('a', 'z') || RegEx('A', 'Z');
- return e;
- }
- inline const RegEx& AlphaNumeric() {
- static const RegEx e = Alpha() || Digit();
- return e;
- }
- inline const RegEx& Word() {
- static const RegEx e = AlphaNumeric() || RegEx('-');
- return e;
- }
- inline const RegEx& Hex() {
- static const RegEx e = Digit() || RegEx('A', 'F') || RegEx('a', 'f');
- return e;
- }
- // Valid Unicode code points that are not part of c-printable (YAML 1.2, sec. 5.1)
- inline const RegEx& NotPrintable() {
- static const RegEx e = RegEx(0) ||
- RegEx("\x01\x02\x03\x04\x05\x06\x07\x08\x0B\x0C\x7F", REGEX_OR) ||
- RegEx(0x0E, 0x1F) ||
- (RegEx('\xC2') + (RegEx('\x80', '\x84') || RegEx('\x86', '\x9F')));
- return e;
- }
- inline const RegEx& Utf8_ByteOrderMark() {
- static const RegEx e = RegEx("\xEF\xBB\xBF");
- return e;
- }
-
- // actual tags
-
- inline const RegEx& DocStart() {
- static const RegEx e = RegEx("---") + (BlankOrBreak() || RegEx());
- return e;
- }
- inline const RegEx& DocEnd() {
- static const RegEx e = RegEx("...") + (BlankOrBreak() || RegEx());
- return e;
- }
- inline const RegEx& DocIndicator() {
- static const RegEx e = DocStart() || DocEnd();
- return e;
- }
- inline const RegEx& BlockEntry() {
- static const RegEx e = RegEx('-') + (BlankOrBreak() || RegEx());
- return e;
- }
- inline const RegEx& Key() {
- static const RegEx e = RegEx('?') + BlankOrBreak();
- return e;
- }
- inline const RegEx& KeyInFlow() {
- static const RegEx e = RegEx('?') + BlankOrBreak();
- return e;
- }
- inline const RegEx& Value() {
- static const RegEx e = RegEx(':') + (BlankOrBreak() || RegEx());
- return e;
- }
- inline const RegEx& ValueInFlow() {
- static const RegEx e = RegEx(':') + (BlankOrBreak() || RegEx(",}", REGEX_OR));
- return e;
- }
- inline const RegEx& ValueInJSONFlow() {
- static const RegEx e = RegEx(':');
- return e;
- }
- inline const RegEx Comment() {
- static const RegEx e = RegEx('#');
- return e;
- }
- inline const RegEx& Anchor() {
- static const RegEx e = !(RegEx("[]{},", REGEX_OR) || BlankOrBreak());
- return e;
- }
- inline const RegEx& AnchorEnd() {
- static const RegEx e = RegEx("?:,]}%@`", REGEX_OR) || BlankOrBreak();
- return e;
- }
- inline const RegEx& URI() {
- static const RegEx e = Word() || RegEx("#;/?:@&=+$,_.!~*'()[]", REGEX_OR) || (RegEx('%') + Hex() + Hex());
- return e;
- }
- inline const RegEx& Tag() {
- static const RegEx e = Word() || RegEx("#;/?:@&=+$_.~*'", REGEX_OR) || (RegEx('%') + Hex() + Hex());
- return e;
- }
-
- // Plain scalar rules:
- // . Cannot start with a blank.
- // . Can never start with any of , [ ] { } # & * ! | > \' \" % @ `
- // . In the block context - ? : must be not be followed with a space.
- // . In the flow context ? is illegal and : and - must not be followed with a space.
- inline const RegEx& PlainScalar() {
- static const RegEx e = !(BlankOrBreak() || RegEx(",[]{}#&*!|>\'\"%@`", REGEX_OR) || (RegEx("-?:", REGEX_OR) + (BlankOrBreak() || RegEx())));
- return e;
- }
- inline const RegEx& PlainScalarInFlow() {
- static const RegEx e = !(BlankOrBreak() || RegEx("?,[]{}#&*!|>\'\"%@`", REGEX_OR) || (RegEx("-:", REGEX_OR) + Blank()));
- return e;
- }
- inline const RegEx& EndScalar() {
- static const RegEx e = RegEx(':') + (BlankOrBreak() || RegEx());
- return e;
- }
- inline const RegEx& EndScalarInFlow() {
- static const RegEx e = (RegEx(':') + (BlankOrBreak() || RegEx() || RegEx(",]}", REGEX_OR))) || RegEx(",?[]{}", REGEX_OR);
- return e;
- }
-
- inline const RegEx& EscSingleQuote() {
- static const RegEx e = RegEx("\'\'");
- return e;
- }
- inline const RegEx& EscBreak() {
- static const RegEx e = RegEx('\\') + Break();
- return e;
- }
-
- inline const RegEx& ChompIndicator() {
- static const RegEx e = RegEx("+-", REGEX_OR);
- return e;
- }
- inline const RegEx& Chomp() {
- static const RegEx e = (ChompIndicator() + Digit()) || (Digit() + ChompIndicator()) || ChompIndicator() || Digit();
- return e;
- }
-
- // and some functions
- std::string Escape(Stream& in);
- }
-
- namespace Keys
- {
- const char Directive = '%';
- const char FlowSeqStart = '[';
- const char FlowSeqEnd = ']';
- const char FlowMapStart = '{';
- const char FlowMapEnd = '}';
- const char FlowEntry = ',';
- const char Alias = '*';
- const char Anchor = '&';
- const char Tag = '!';
- const char LiteralScalar = '|';
- const char FoldedScalar = '>';
- const char VerbatimTagStart = '<';
- const char VerbatimTagEnd = '>';
- }
-}
-
-#endif // EXP_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/src/graphbuilder.cpp b/src/third_party/yaml-cpp-0.5.1/src/graphbuilder.cpp
deleted file mode 100644
index ab5159cca1d..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/graphbuilder.cpp
+++ /dev/null
@@ -1,16 +0,0 @@
-#include "yaml-cpp/parser.h"
-#include "yaml-cpp/contrib/graphbuilder.h"
-#include "graphbuilderadapter.h"
-
-namespace YAML
-{
- void *BuildGraphOfNextDocument(Parser& parser, GraphBuilderInterface& graphBuilder)
- {
- GraphBuilderAdapter eventHandler(graphBuilder);
- if (parser.HandleNextDocument(eventHandler)) {
- return eventHandler.RootNode();
- } else {
- return NULL;
- }
- }
-}
diff --git a/src/third_party/yaml-cpp-0.5.1/src/graphbuilderadapter.cpp b/src/third_party/yaml-cpp-0.5.1/src/graphbuilderadapter.cpp
deleted file mode 100644
index 557e97c8929..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/graphbuilderadapter.cpp
+++ /dev/null
@@ -1,96 +0,0 @@
-#include "graphbuilderadapter.h"
-
-namespace YAML
-{
- int GraphBuilderAdapter::ContainerFrame::sequenceMarker;
-
- void GraphBuilderAdapter::OnNull(const Mark& mark, anchor_t anchor)
- {
- void *pParent = GetCurrentParent();
- void *pNode = m_builder.NewNull(mark, pParent);
- RegisterAnchor(anchor, pNode);
-
- DispositionNode(pNode);
- }
-
- void GraphBuilderAdapter::OnAlias(const Mark& mark, anchor_t anchor)
- {
- void *pReffedNode = m_anchors.Get(anchor);
- DispositionNode(m_builder.AnchorReference(mark, pReffedNode));
- }
-
- void GraphBuilderAdapter::OnScalar(const Mark& mark, const std::string& tag, anchor_t anchor, const std::string& value)
- {
- void *pParent = GetCurrentParent();
- void *pNode = m_builder.NewScalar(mark, tag, pParent, value);
- RegisterAnchor(anchor, pNode);
-
- DispositionNode(pNode);
- }
-
- void GraphBuilderAdapter::OnSequenceStart(const Mark& mark, const std::string& tag, anchor_t anchor)
- {
- void *pNode = m_builder.NewSequence(mark, tag, GetCurrentParent());
- m_containers.push(ContainerFrame(pNode));
- RegisterAnchor(anchor, pNode);
- }
-
- void GraphBuilderAdapter::OnSequenceEnd()
- {
- void *pSequence = m_containers.top().pContainer;
- m_containers.pop();
-
- DispositionNode(pSequence);
- }
-
- void GraphBuilderAdapter::OnMapStart(const Mark& mark, const std::string& tag, anchor_t anchor)
- {
- void *pNode = m_builder.NewMap(mark, tag, GetCurrentParent());
- m_containers.push(ContainerFrame(pNode, m_pKeyNode));
- m_pKeyNode = NULL;
- RegisterAnchor(anchor, pNode);
- }
-
- void GraphBuilderAdapter::OnMapEnd()
- {
- void *pMap = m_containers.top().pContainer;
- m_pKeyNode = m_containers.top().pPrevKeyNode;
- m_containers.pop();
- DispositionNode(pMap);
- }
-
- void *GraphBuilderAdapter::GetCurrentParent() const
- {
- if (m_containers.empty()) {
- return NULL;
- }
- return m_containers.top().pContainer;
- }
-
- void GraphBuilderAdapter::RegisterAnchor(anchor_t anchor, void *pNode)
- {
- if (anchor) {
- m_anchors.Register(anchor, pNode);
- }
- }
-
- void GraphBuilderAdapter::DispositionNode(void *pNode)
- {
- if (m_containers.empty()) {
- m_pRootNode = pNode;
- return;
- }
-
- void *pContainer = m_containers.top().pContainer;
- if (m_containers.top().isMap()) {
- if (m_pKeyNode) {
- m_builder.AssignInMap(pContainer, m_pKeyNode, pNode);
- m_pKeyNode = NULL;
- } else {
- m_pKeyNode = pNode;
- }
- } else {
- m_builder.AppendToSequence(pContainer, pNode);
- }
- }
-}
diff --git a/src/third_party/yaml-cpp-0.5.1/src/graphbuilderadapter.h b/src/third_party/yaml-cpp-0.5.1/src/graphbuilderadapter.h
deleted file mode 100644
index 3ef8ab6c68d..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/graphbuilderadapter.h
+++ /dev/null
@@ -1,73 +0,0 @@
-#ifndef GRAPHBUILDERADAPTER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define GRAPHBUILDERADAPTER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-#include <cstdlib>
-#include <map>
-#include <stack>
-#include "yaml-cpp/eventhandler.h"
-#include "yaml-cpp/contrib/anchordict.h"
-#include "yaml-cpp/contrib/graphbuilder.h"
-
-namespace YAML
-{
- class GraphBuilderAdapter : public EventHandler
- {
- public:
- GraphBuilderAdapter(GraphBuilderInterface& builder)
- : m_builder(builder), m_pRootNode(NULL), m_pKeyNode(NULL)
- {
- }
-
- virtual void OnDocumentStart(const Mark& mark) {(void)mark;}
- virtual void OnDocumentEnd() {}
-
- virtual void OnNull(const Mark& mark, anchor_t anchor);
- virtual void OnAlias(const Mark& mark, anchor_t anchor);
- virtual void OnScalar(const Mark& mark, const std::string& tag, anchor_t anchor, const std::string& value);
-
- virtual void OnSequenceStart(const Mark& mark, const std::string& tag, anchor_t anchor);
- virtual void OnSequenceEnd();
-
- virtual void OnMapStart(const Mark& mark, const std::string& tag, anchor_t anchor);
- virtual void OnMapEnd();
-
- void *RootNode() const {return m_pRootNode;}
-
- private:
- struct ContainerFrame
- {
- ContainerFrame(void *pSequence)
- : pContainer(pSequence), pPrevKeyNode(&sequenceMarker)
- {}
- ContainerFrame(void *pMap, void* pPrevKeyNode)
- : pContainer(pMap), pPrevKeyNode(pPrevKeyNode)
- {}
-
- void *pContainer;
- void *pPrevKeyNode;
-
- bool isMap() const {return pPrevKeyNode != &sequenceMarker;}
-
- private:
- static int sequenceMarker;
- };
- typedef std::stack<ContainerFrame> ContainerStack;
- typedef AnchorDict<void*> AnchorMap;
-
- GraphBuilderInterface& m_builder;
- ContainerStack m_containers;
- AnchorMap m_anchors;
- void *m_pRootNode;
- void *m_pKeyNode;
-
- void *GetCurrentParent() const;
- void RegisterAnchor(anchor_t anchor, void *pNode);
- void DispositionNode(void *pNode);
- };
-}
-
-#endif // GRAPHBUILDERADAPTER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/src/indentation.h b/src/third_party/yaml-cpp-0.5.1/src/indentation.h
deleted file mode 100644
index 426fcb53848..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/indentation.h
+++ /dev/null
@@ -1,38 +0,0 @@
-#ifndef INDENTATION_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define INDENTATION_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-
-#include "yaml-cpp/ostream_wrapper.h"
-#include <iostream>
-
-namespace YAML
-{
- struct Indentation {
- Indentation(unsigned n_): n(n_) {}
- unsigned n;
- };
-
- inline ostream_wrapper& operator << (ostream_wrapper& out, const Indentation& indent) {
- for(unsigned i=0;i<indent.n;i++)
- out << ' ';
- return out;
- }
-
- struct IndentTo {
- IndentTo(unsigned n_): n(n_) {}
- unsigned n;
- };
-
- inline ostream_wrapper& operator << (ostream_wrapper& out, const IndentTo& indent) {
- while(out.col() < indent.n)
- out << ' ';
- return out;
- }
-}
-
-
-#endif // INDENTATION_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/src/memory.cpp b/src/third_party/yaml-cpp-0.5.1/src/memory.cpp
deleted file mode 100644
index 98d0dfb0caa..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/memory.cpp
+++ /dev/null
@@ -1,29 +0,0 @@
-#include "yaml-cpp/node/detail/memory.h"
-#include "yaml-cpp/node/detail/node.h"
-
-namespace YAML
-{
- namespace detail
- {
- void memory_holder::merge(memory_holder& rhs)
- {
- if(m_pMemory == rhs.m_pMemory)
- return;
-
- m_pMemory->merge(*rhs.m_pMemory);
- rhs.m_pMemory = m_pMemory;
- }
-
- node& memory::create_node()
- {
- shared_node pNode(new node);
- m_nodes.insert(pNode);
- return *pNode;
- }
-
- void memory::merge(const memory& rhs)
- {
- m_nodes.insert(rhs.m_nodes.begin(), rhs.m_nodes.end());
- }
- }
-}
diff --git a/src/third_party/yaml-cpp-0.5.1/src/node.cpp b/src/third_party/yaml-cpp-0.5.1/src/node.cpp
deleted file mode 100644
index 2d21aa9598c..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/node.cpp
+++ /dev/null
@@ -1,14 +0,0 @@
-#include "yaml-cpp/node/node.h"
-#include "nodebuilder.h"
-#include "nodeevents.h"
-
-namespace YAML
-{
- Node Clone(const Node& node)
- {
- NodeEvents events(node);
- NodeBuilder builder;
- events.Emit(builder);
- return builder.Root();
- }
-}
diff --git a/src/third_party/yaml-cpp-0.5.1/src/node_data.cpp b/src/third_party/yaml-cpp-0.5.1/src/node_data.cpp
deleted file mode 100644
index 6f82f7b4bf8..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/node_data.cpp
+++ /dev/null
@@ -1,295 +0,0 @@
-#include "yaml-cpp/node/detail/node_data.h"
-#include "yaml-cpp/node/detail/memory.h"
-#include "yaml-cpp/node/detail/node.h"
-#include "yaml-cpp/exceptions.h"
-#include <sstream>
-
-namespace YAML
-{
- namespace detail
- {
- std::string node_data::empty_scalar;
-
- node_data::node_data(): m_isDefined(false), m_type(NodeType::Null), m_seqSize(0)
- {
- }
-
- void node_data::mark_defined()
- {
- if(m_type == NodeType::Undefined)
- m_type = NodeType::Null;
- m_isDefined = true;
- }
-
- void node_data::set_type(NodeType::value type)
- {
- if(type == NodeType::Undefined) {
- m_type = type;
- m_isDefined = false;
- return;
- }
-
-
- m_isDefined = true;
- if(type == m_type)
- return;
-
- m_type = type;
-
- switch(m_type) {
- case NodeType::Null:
- break;
- case NodeType::Scalar:
- m_scalar.clear();
- break;
- case NodeType::Sequence:
- reset_sequence();
- break;
- case NodeType::Map:
- reset_map();
- break;
- case NodeType::Undefined:
- assert(false);
- break;
- }
- }
-
- void node_data::set_tag(const std::string& tag)
- {
- m_tag = tag;
- }
-
- void node_data::set_null()
- {
- m_isDefined = true;
- m_type = NodeType::Null;
- }
-
- void node_data::set_scalar(const std::string& scalar)
- {
- m_isDefined = true;
- m_type = NodeType::Scalar;
- m_scalar = scalar;
- }
-
- // size/iterator
- std::size_t node_data::size() const
- {
- if(!m_isDefined)
- return 0;
-
- switch(m_type) {
- case NodeType::Sequence: compute_seq_size(); return m_seqSize;
- case NodeType::Map: compute_map_size(); return m_map.size() - m_undefinedPairs.size();
- default:
- return 0;
- }
- return 0;
- }
-
- void node_data::compute_seq_size() const
- {
- while(m_seqSize < m_sequence.size() && m_sequence[m_seqSize]->is_defined())
- m_seqSize++;
- }
-
- void node_data::compute_map_size() const
- {
- kv_pairs::iterator it = m_undefinedPairs.begin();
- while(it != m_undefinedPairs.end()) {
- kv_pairs::iterator jt = boost::next(it);
- if(it->first->is_defined() && it->second->is_defined())
- m_undefinedPairs.erase(it);
- it = jt;
- }
- }
-
- const_node_iterator node_data::begin() const
- {
- if(!m_isDefined)
- return const_node_iterator();
-
- switch(m_type) {
- case NodeType::Sequence: return const_node_iterator(m_sequence.begin());
- case NodeType::Map: return const_node_iterator(m_map.begin(), m_map.end());
- default: return const_node_iterator();
- }
- }
-
- node_iterator node_data::begin()
- {
- if(!m_isDefined)
- return node_iterator();
-
- switch(m_type) {
- case NodeType::Sequence: return node_iterator(m_sequence.begin());
- case NodeType::Map: return node_iterator(m_map.begin(), m_map.end());
- default: return node_iterator();
- }
- }
-
- const_node_iterator node_data::end() const
- {
- if(!m_isDefined)
- return const_node_iterator();
-
- switch(m_type) {
- case NodeType::Sequence: return const_node_iterator(m_sequence.end());
- case NodeType::Map: return const_node_iterator(m_map.end(), m_map.end());
- default: return const_node_iterator();
- }
- }
-
- node_iterator node_data::end()
- {
- if(!m_isDefined)
- return node_iterator();
-
- switch(m_type) {
- case NodeType::Sequence: return node_iterator(m_sequence.end());
- case NodeType::Map: return node_iterator(m_map.end(), m_map.end());
- default: return node_iterator();
- }
- }
-
- // sequence
- void node_data::push_back(node& node, shared_memory_holder /* pMemory */)
- {
- if(m_type == NodeType::Undefined || m_type == NodeType::Null) {
- m_type = NodeType::Sequence;
- reset_sequence();
- }
-
- if(m_type != NodeType::Sequence)
- throw BadPushback();
-
- m_sequence.push_back(&node);
- }
-
- void node_data::insert(node& key, node& value, shared_memory_holder pMemory)
- {
- switch(m_type) {
- case NodeType::Map:
- break;
- case NodeType::Undefined:
- case NodeType::Null:
- case NodeType::Sequence:
- convert_to_map(pMemory);
- break;
- case NodeType::Scalar:
- throw BadSubscript();
- }
-
- insert_map_pair(key, value);
- }
-
- // indexing
- node& node_data::get(node& key, shared_memory_holder pMemory) const
- {
- if(m_type != NodeType::Map)
- return pMemory->create_node();
-
- for(node_map::const_iterator it=m_map.begin();it!=m_map.end();++it) {
- if(it->first->is(key))
- return *it->second;
- }
-
- return pMemory->create_node();
- }
-
- node& node_data::get(node& key, shared_memory_holder pMemory)
- {
- switch(m_type) {
- case NodeType::Map:
- break;
- case NodeType::Undefined:
- case NodeType::Null:
- case NodeType::Sequence:
- convert_to_map(pMemory);
- break;
- case NodeType::Scalar:
- throw BadSubscript();
- }
-
- for(node_map::const_iterator it=m_map.begin();it!=m_map.end();++it) {
- if(it->first->is(key))
- return *it->second;
- }
-
- node& value = pMemory->create_node();
- insert_map_pair(key, value);
- return value;
- }
-
- bool node_data::remove(node& key, shared_memory_holder /* pMemory */)
- {
- if(m_type != NodeType::Map)
- return false;
-
- for(node_map::iterator it=m_map.begin();it!=m_map.end();++it) {
- if(it->first->is(key)) {
- m_map.erase(it);
- return true;
- }
- }
-
- return false;
- }
-
- void node_data::reset_sequence()
- {
- m_sequence.clear();
- m_seqSize = 0;
- }
-
- void node_data::reset_map()
- {
- m_map.clear();
- m_undefinedPairs.clear();
- }
-
- void node_data::insert_map_pair(node& key, node& value)
- {
- m_map[&key] = &value;
- if(!key.is_defined() || !value.is_defined())
- m_undefinedPairs.push_back(kv_pair(&key, &value));
- }
-
- void node_data::convert_to_map(shared_memory_holder pMemory)
- {
- switch(m_type) {
- case NodeType::Undefined:
- case NodeType::Null:
- reset_map();
- m_type = NodeType::Map;
- break;
- case NodeType::Sequence:
- convert_sequence_to_map(pMemory);
- break;
- case NodeType::Map:
- break;
- case NodeType::Scalar:
- assert(false);
- break;
- }
- }
-
- void node_data::convert_sequence_to_map(shared_memory_holder pMemory)
- {
- assert(m_type == NodeType::Sequence);
-
- reset_map();
- for(std::size_t i=0;i<m_sequence.size();i++) {
- std::stringstream stream;
- stream << i;
-
- node& key = pMemory->create_node();
- key.set_scalar(stream.str());
- insert_map_pair(key, *m_sequence[i]);
- }
-
- reset_sequence();
- m_type = NodeType::Map;
- }
- }
-}
diff --git a/src/third_party/yaml-cpp-0.5.1/src/nodebuilder.cpp b/src/third_party/yaml-cpp-0.5.1/src/nodebuilder.cpp
deleted file mode 100644
index 6735f733e7e..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/nodebuilder.cpp
+++ /dev/null
@@ -1,138 +0,0 @@
-#include "nodebuilder.h"
-#include "yaml-cpp/mark.h"
-#include "yaml-cpp/node/node.h"
-#include "yaml-cpp/node/impl.h"
-#include <cassert>
-
-namespace YAML
-{
- NodeBuilder::NodeBuilder(): m_pMemory(new detail::memory_holder), m_pRoot(0), m_mapDepth(0)
- {
- m_anchors.push_back(0); // since the anchors start at 1
- }
-
- NodeBuilder::~NodeBuilder()
- {
- }
-
- Node NodeBuilder::Root()
- {
- if(!m_pRoot)
- return Node();
-
- return Node(*m_pRoot, m_pMemory);
- }
-
- void NodeBuilder::OnDocumentStart(const Mark&)
- {
- }
-
- void NodeBuilder::OnDocumentEnd()
- {
- }
-
- void NodeBuilder::OnNull(const Mark& /* mark */, anchor_t anchor)
- {
- detail::node& node = Push(anchor);
- node.set_null();
- Pop();
- }
-
- void NodeBuilder::OnAlias(const Mark& /* mark */, anchor_t anchor)
- {
- detail::node& node = *m_anchors[anchor];
- Push(node);
- Pop();
- }
-
- void NodeBuilder::OnScalar(const Mark& /* mark */, const std::string& tag, anchor_t anchor, const std::string& value)
- {
- detail::node& node = Push(anchor);
- node.set_scalar(value);
- node.set_tag(tag);
- Pop();
- }
-
- void NodeBuilder::OnSequenceStart(const Mark& /* mark */, const std::string& tag, anchor_t anchor)
- {
- detail::node& node = Push(anchor);
- node.set_tag(tag);
- node.set_type(NodeType::Sequence);
- }
-
- void NodeBuilder::OnSequenceEnd()
- {
- Pop();
- }
-
- void NodeBuilder::OnMapStart(const Mark& /* mark */, const std::string& tag, anchor_t anchor)
- {
- detail::node& node = Push(anchor);
- node.set_type(NodeType::Map);
- node.set_tag(tag);
- m_mapDepth++;
- }
-
- void NodeBuilder::OnMapEnd()
- {
- assert(m_mapDepth > 0);
- m_mapDepth--;
- Pop();
- }
-
- detail::node& NodeBuilder::Push(anchor_t anchor)
- {
- detail::node& node = m_pMemory->create_node();
- RegisterAnchor(anchor, node);
- Push(node);
- return node;
- }
-
- void NodeBuilder::Push(detail::node& node)
- {
- const bool needsKey = (!m_stack.empty() && m_stack.back()->type() == NodeType::Map && m_keys.size() < m_mapDepth);
-
- m_stack.push_back(&node);
- if(needsKey)
- m_keys.push_back(PushedKey(&node, false));
- }
-
- void NodeBuilder::Pop()
- {
- assert(!m_stack.empty());
- if(m_stack.size() == 1) {
- m_pRoot = m_stack[0];
- m_stack.pop_back();
- return;
- }
-
- detail::node& node = *m_stack.back();
- m_stack.pop_back();
-
- detail::node& collection = *m_stack.back();
-
- if(collection.type() == NodeType::Sequence) {
- collection.push_back(node, m_pMemory);
- } else if(collection.type() == NodeType::Map) {
- assert(!m_keys.empty());
- PushedKey& key = m_keys.back();
- if(key.second) {
- collection.insert(*key.first, node, m_pMemory);
- m_keys.pop_back();
- } else {
- key.second = true;
- }
- } else {
- assert(false);
- m_stack.clear();
- }
- }
-
- void NodeBuilder::RegisterAnchor(anchor_t anchor, detail::node& node)
- {
- if(anchor) {
- assert(anchor == m_anchors.size());
- m_anchors.push_back(&node);
- }
- }
-}
diff --git a/src/third_party/yaml-cpp-0.5.1/src/nodebuilder.h b/src/third_party/yaml-cpp-0.5.1/src/nodebuilder.h
deleted file mode 100644
index cce91d359b6..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/nodebuilder.h
+++ /dev/null
@@ -1,58 +0,0 @@
-#ifndef NODE_NODEBUILDER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define NODE_NODEBUILDER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-#include "yaml-cpp/eventhandler.h"
-#include "yaml-cpp/node/ptr.h"
-#include <vector>
-
-namespace YAML
-{
- class Node;
-
- class NodeBuilder: public EventHandler
- {
- public:
- NodeBuilder();
- virtual ~NodeBuilder();
-
- Node Root();
-
- virtual void OnDocumentStart(const Mark& mark);
- virtual void OnDocumentEnd();
-
- virtual void OnNull(const Mark& mark, anchor_t anchor);
- virtual void OnAlias(const Mark& mark, anchor_t anchor);
- virtual void OnScalar(const Mark& mark, const std::string& tag, anchor_t anchor, const std::string& value);
-
- virtual void OnSequenceStart(const Mark& mark, const std::string& tag, anchor_t anchor);
- virtual void OnSequenceEnd();
-
- virtual void OnMapStart(const Mark& mark, const std::string& tag, anchor_t anchor);
- virtual void OnMapEnd();
-
- private:
- detail::node& Push(anchor_t anchor);
- void Push(detail::node& node);
- void Pop();
- void RegisterAnchor(anchor_t anchor, detail::node& node);
-
- private:
- detail::shared_memory_holder m_pMemory;
- detail::node *m_pRoot;
-
- typedef std::vector<detail::node *> Nodes;
- Nodes m_stack;
- Nodes m_anchors;
-
- typedef std::pair<detail::node *, bool> PushedKey;
- std::vector<PushedKey> m_keys;
- std::size_t m_mapDepth;
- };
-}
-
-#endif // NODE_NODEBUILDER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
diff --git a/src/third_party/yaml-cpp-0.5.1/src/nodeevents.cpp b/src/third_party/yaml-cpp-0.5.1/src/nodeevents.cpp
deleted file mode 100644
index 721f9c6f4f6..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/nodeevents.cpp
+++ /dev/null
@@ -1,99 +0,0 @@
-#include "nodeevents.h"
-#include "yaml-cpp/node/node.h"
-#include "yaml-cpp/node/impl.h"
-#include "yaml-cpp/eventhandler.h"
-#include "yaml-cpp/mark.h"
-
-namespace YAML
-{
- void NodeEvents::AliasManager::RegisterReference(const detail::node& node)
- {
- m_anchorByIdentity.insert(std::make_pair(node.ref(), _CreateNewAnchor()));
- }
-
- anchor_t NodeEvents::AliasManager::LookupAnchor(const detail::node& node) const
- {
- AnchorByIdentity::const_iterator it = m_anchorByIdentity.find(node.ref());
- if(it == m_anchorByIdentity.end())
- return 0;
- return it->second;
- }
-
- NodeEvents::NodeEvents(const Node& node): m_pMemory(node.m_pMemory), m_root(*node.m_pNode)
- {
- Setup(m_root);
- }
-
- void NodeEvents::Setup(const detail::node& node)
- {
- int& refCount = m_refCount[node.ref()];
- refCount++;
- if(refCount > 1)
- return;
-
- if(node.type() == NodeType::Sequence) {
- for(detail::const_node_iterator it=node.begin();it!=node.end();++it)
- Setup(**it);
- } else if(node.type() == NodeType::Map) {
- for(detail::const_node_iterator it=node.begin();it!=node.end();++it) {
- Setup(*it->first);
- Setup(*it->second);
- }
- }
- }
-
- void NodeEvents::Emit(EventHandler& handler)
- {
- AliasManager am;
-
- handler.OnDocumentStart(Mark());
- Emit(m_root, handler, am);
- handler.OnDocumentEnd();
- }
-
- void NodeEvents::Emit(const detail::node& node, EventHandler& handler, AliasManager& am) const
- {
- anchor_t anchor = NullAnchor;
- if(IsAliased(node)) {
- anchor = am.LookupAnchor(node);
- if(anchor) {
- handler.OnAlias(Mark(), anchor);
- return;
- }
-
- am.RegisterReference(node);
- anchor = am.LookupAnchor(node);
- }
-
- switch(node.type()) {
- case NodeType::Undefined:
- break;
- case NodeType::Null:
- handler.OnNull(Mark(), anchor);
- break;
- case NodeType::Scalar:
- handler.OnScalar(Mark(), node.tag(), anchor, node.scalar());
- break;
- case NodeType::Sequence:
- handler.OnSequenceStart(Mark(), node.tag(), anchor);
- for(detail::const_node_iterator it=node.begin();it!=node.end();++it)
- Emit(**it, handler, am);
- handler.OnSequenceEnd();
- break;
- case NodeType::Map:
- handler.OnMapStart(Mark(), node.tag(), anchor);
- for(detail::const_node_iterator it=node.begin();it!=node.end();++it) {
- Emit(*it->first, handler, am);
- Emit(*it->second, handler, am);
- }
- handler.OnMapEnd();
- break;
- }
- }
-
- bool NodeEvents::IsAliased(const detail::node& node) const
- {
- RefCount::const_iterator it = m_refCount.find(node.ref());
- return it != m_refCount.end() && it->second > 1;
- }
-}
diff --git a/src/third_party/yaml-cpp-0.5.1/src/nodeevents.h b/src/third_party/yaml-cpp-0.5.1/src/nodeevents.h
deleted file mode 100644
index d1421155312..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/nodeevents.h
+++ /dev/null
@@ -1,57 +0,0 @@
-#ifndef NODE_NODEEVENTS_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define NODE_NODEEVENTS_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-#include "yaml-cpp/anchor.h"
-#include "yaml-cpp/node/ptr.h"
-#include <map>
-#include <vector>
-
-namespace YAML
-{
- class EventHandler;
- class Node;
-
- class NodeEvents
- {
- public:
- explicit NodeEvents(const Node& node);
-
- void Emit(EventHandler& handler);
-
- private:
- class AliasManager {
- public:
- AliasManager(): m_curAnchor(0) {}
-
- void RegisterReference(const detail::node& node);
- anchor_t LookupAnchor(const detail::node& node) const;
-
- private:
- anchor_t _CreateNewAnchor() { return ++m_curAnchor; }
-
- private:
- typedef std::map<const detail::node_ref*, anchor_t> AnchorByIdentity;
- AnchorByIdentity m_anchorByIdentity;
-
- anchor_t m_curAnchor;
- };
-
- void Setup(const detail::node& node);
- void Emit(const detail::node& node, EventHandler& handler, AliasManager& am) const;
- bool IsAliased(const detail::node& node) const;
-
- private:
- detail::shared_memory_holder m_pMemory;
- detail::node& m_root;
-
- typedef std::map<const detail::node_ref *, int> RefCount;
- RefCount m_refCount;
- };
-}
-
-#endif // NODE_NODEEVENTS_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
diff --git a/src/third_party/yaml-cpp-0.5.1/src/null.cpp b/src/third_party/yaml-cpp-0.5.1/src/null.cpp
deleted file mode 100644
index 37f319735c5..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/null.cpp
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "yaml-cpp/null.h"
-
-namespace YAML
-{
- _Null Null;
-}
diff --git a/src/third_party/yaml-cpp-0.5.1/src/ostream_wrapper.cpp b/src/third_party/yaml-cpp-0.5.1/src/ostream_wrapper.cpp
deleted file mode 100644
index b81b7c3701d..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/ostream_wrapper.cpp
+++ /dev/null
@@ -1,57 +0,0 @@
-#include "yaml-cpp/ostream_wrapper.h"
-#include <cstring>
-#include <iostream>
-#include <algorithm>
-
-namespace YAML
-{
- ostream_wrapper::ostream_wrapper(): m_pStream(0), m_pos(0), m_row(0), m_col(0), m_comment(false)
- {
- }
-
- ostream_wrapper::ostream_wrapper(std::ostream& stream): m_pStream(&stream), m_pos(0), m_row(0), m_col(0), m_comment(false)
- {
- }
-
- ostream_wrapper::~ostream_wrapper()
- {
- }
-
- void ostream_wrapper::write(const std::string& str)
- {
- if(m_pStream) {
- m_pStream->write(str.c_str(), str.size());
- } else {
- m_buffer.resize(std::max(m_buffer.size(), m_pos + str.size() + 1));
- std::copy(str.begin(), str.end(), &m_buffer[m_pos]);
- }
-
- for(std::size_t i=0;i<str.size();i++)
- update_pos(str[i]);
- }
-
- void ostream_wrapper::write(const char *str, std::size_t size)
- {
- if(m_pStream) {
- m_pStream->write(str, size);
- } else {
- m_buffer.resize(std::max(m_buffer.size(), m_pos + size + 1));
- std::copy(str, str + size, &m_buffer[m_pos]);
- }
-
- for(std::size_t i=0;i<size;i++)
- update_pos(str[i]);
- }
-
- void ostream_wrapper::update_pos(char ch)
- {
- m_pos++;
- m_col++;
-
- if(ch == '\n') {
- m_row++;
- m_col = 0;
- m_comment = false;
- }
- }
-}
diff --git a/src/third_party/yaml-cpp-0.5.1/src/parse.cpp b/src/third_party/yaml-cpp-0.5.1/src/parse.cpp
deleted file mode 100644
index 1537d55788a..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/parse.cpp
+++ /dev/null
@@ -1,68 +0,0 @@
-#include "yaml-cpp/node/parse.h"
-#include "yaml-cpp/node/node.h"
-#include "yaml-cpp/node/impl.h"
-#include "yaml-cpp/parser.h"
-#include "nodebuilder.h"
-
-#include <fstream>
-#include <sstream>
-
-namespace YAML
-{
- Node Load(const std::string& input) {
- std::stringstream stream(input);
- return Load(stream);
- }
-
- Node Load(const char *input) {
- std::stringstream stream(input);
- return Load(stream);
- }
-
- Node Load(std::istream& input) {
- Parser parser(input);
- NodeBuilder builder;
- if(!parser.HandleNextDocument(builder))
- return Node();
-
- return builder.Root();
- }
-
- Node LoadFile(const std::string& filename) {
- std::ifstream fin(filename.c_str());
- if(!fin)
- throw BadFile();
- return Load(fin);
- }
-
- std::vector<Node> LoadAll(const std::string& input) {
- std::stringstream stream(input);
- return LoadAll(stream);
- }
-
- std::vector<Node> LoadAll(const char *input) {
- std::stringstream stream(input);
- return LoadAll(stream);
- }
-
- std::vector<Node> LoadAll(std::istream& input) {
- std::vector<Node> docs;
-
- Parser parser(input);
- while(1) {
- NodeBuilder builder;
- if(!parser.HandleNextDocument(builder))
- break;
- docs.push_back(builder.Root());
- }
-
- return docs;
- }
-
- std::vector<Node> LoadAllFromFile(const std::string& filename) {
- std::ifstream fin(filename.c_str());
- if(!fin)
- throw BadFile();
- return LoadAll(fin);
- }
-}
diff --git a/src/third_party/yaml-cpp-0.5.1/src/parser.cpp b/src/third_party/yaml-cpp-0.5.1/src/parser.cpp
deleted file mode 100644
index 7861ec17fb8..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/parser.cpp
+++ /dev/null
@@ -1,141 +0,0 @@
-#include "yaml-cpp/parser.h"
-#include "yaml-cpp/eventhandler.h"
-#include "yaml-cpp/exceptions.h"
-#include "directives.h"
-#include "scanner.h"
-#include "singledocparser.h"
-#include "tag.h"
-#include "token.h"
-#include <sstream>
-#include <cstdio>
-
-namespace YAML
-{
- Parser::Parser()
- {
- }
-
- Parser::Parser(std::istream& in)
- {
- Load(in);
- }
-
- Parser::~Parser()
- {
- }
-
- Parser::operator bool() const
- {
- return m_pScanner.get() && !m_pScanner->empty();
- }
-
- void Parser::Load(std::istream& in)
- {
- m_pScanner.reset(new Scanner(in));
- m_pDirectives.reset(new Directives);
- }
-
- // HandleNextDocument
- // . Handles the next document
- // . Throws a ParserException on error.
- // . Returns false if there are no more documents
- bool Parser::HandleNextDocument(EventHandler& eventHandler)
- {
- if(!m_pScanner.get())
- return false;
-
- ParseDirectives();
- if(m_pScanner->empty())
- return false;
-
- SingleDocParser sdp(*m_pScanner, *m_pDirectives);
- sdp.HandleDocument(eventHandler);
- return true;
- }
-
- // ParseDirectives
- // . Reads any directives that are next in the queue.
- void Parser::ParseDirectives()
- {
- bool readDirective = false;
-
- while(1) {
- if(m_pScanner->empty())
- break;
-
- Token& token = m_pScanner->peek();
- if(token.type != Token::DIRECTIVE)
- break;
-
- // we keep the directives from the last document if none are specified;
- // but if any directives are specific, then we reset them
- if(!readDirective)
- m_pDirectives.reset(new Directives);
-
- readDirective = true;
- HandleDirective(token);
- m_pScanner->pop();
- }
- }
-
- void Parser::HandleDirective(const Token& token)
- {
- if(token.value == "YAML")
- HandleYamlDirective(token);
- else if(token.value == "TAG")
- HandleTagDirective(token);
- }
-
- // HandleYamlDirective
- // . Should be of the form 'major.minor' (like a version number)
- void Parser::HandleYamlDirective(const Token& token)
- {
- if(token.params.size() != 1)
- throw ParserException(token.mark, ErrorMsg::YAML_DIRECTIVE_ARGS);
-
- if(!m_pDirectives->version.isDefault)
- throw ParserException(token.mark, ErrorMsg::REPEATED_YAML_DIRECTIVE);
-
- std::stringstream str(token.params[0]);
- str >> m_pDirectives->version.major;
- str.get();
- str >> m_pDirectives->version.minor;
- if(!str || str.peek() != EOF)
- throw ParserException(token.mark, std::string(ErrorMsg::YAML_VERSION) + token.params[0]);
-
- if(m_pDirectives->version.major > 1)
- throw ParserException(token.mark, ErrorMsg::YAML_MAJOR_VERSION);
-
- m_pDirectives->version.isDefault = false;
- // TODO: warning on major == 1, minor > 2?
- }
-
- // HandleTagDirective
- // . Should be of the form 'handle prefix', where 'handle' is converted to 'prefix' in the file.
- void Parser::HandleTagDirective(const Token& token)
- {
- if(token.params.size() != 2)
- throw ParserException(token.mark, ErrorMsg::TAG_DIRECTIVE_ARGS);
-
- const std::string& handle = token.params[0];
- const std::string& prefix = token.params[1];
- if(m_pDirectives->tags.find(handle) != m_pDirectives->tags.end())
- throw ParserException(token.mark, ErrorMsg::REPEATED_TAG_DIRECTIVE);
-
- m_pDirectives->tags[handle] = prefix;
- }
-
- void Parser::PrintTokens(std::ostream& out)
- {
- if(!m_pScanner.get())
- return;
-
- while(1) {
- if(m_pScanner->empty())
- break;
-
- out << m_pScanner->peek() << "\n";
- m_pScanner->pop();
- }
- }
-}
diff --git a/src/third_party/yaml-cpp-0.5.1/src/ptr_stack.h b/src/third_party/yaml-cpp-0.5.1/src/ptr_stack.h
deleted file mode 100644
index eec0fb89d38..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/ptr_stack.h
+++ /dev/null
@@ -1,49 +0,0 @@
-#ifndef PTR_STACK_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define PTR_STACK_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-#include "yaml-cpp/noncopyable.h"
-#include <cstddef>
-#include <cstdlib>
-#include <memory>
-#include <vector>
-
-template <typename T>
-class ptr_stack: private YAML::noncopyable
-{
-public:
- ptr_stack() {}
- ~ptr_stack() { clear(); }
-
- void clear() {
- for(unsigned i=0;i<m_data.size();i++)
- delete m_data[i];
- m_data.clear();
- }
-
- std::size_t size() const { return m_data.size(); }
- bool empty() const { return m_data.empty(); }
-
- void push(std::auto_ptr<T> t) {
- m_data.push_back(NULL);
- m_data.back() = t.release();
- }
- std::auto_ptr<T> pop() {
- std::auto_ptr<T> t(m_data.back());
- m_data.pop_back();
- return t;
- }
- T& top() { return *m_data.back(); }
- const T& top() const { return *m_data.back(); }
-
- T& top(std::ptrdiff_t diff) { return **(m_data.end() - 1 + diff); }
- const T& top(std::ptrdiff_t diff) const { return **(m_data.end() - 1 + diff); }
-
-private:
- std::vector<T*> m_data;
-};
-
-#endif // PTR_STACK_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/src/ptr_vector.h b/src/third_party/yaml-cpp-0.5.1/src/ptr_vector.h
deleted file mode 100644
index 7b936cb5fed..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/ptr_vector.h
+++ /dev/null
@@ -1,47 +0,0 @@
-#ifndef PTR_VECTOR_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define PTR_VECTOR_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-#include "yaml-cpp/noncopyable.h"
-#include <cstddef>
-#include <cstdlib>
-#include <memory>
-#include <vector>
-
-namespace YAML {
-
- template <typename T>
- class ptr_vector: private YAML::noncopyable
- {
- public:
- ptr_vector() {}
- ~ptr_vector() { clear(); }
-
- void clear() {
- for(unsigned i=0;i<m_data.size();i++)
- delete m_data[i];
- m_data.clear();
- }
-
- std::size_t size() const { return m_data.size(); }
- bool empty() const { return m_data.empty(); }
-
- void push_back(std::auto_ptr<T> t) {
- m_data.push_back(NULL);
- m_data.back() = t.release();
- }
- T& operator[](std::size_t i) { return *m_data[i]; }
- const T& operator[](std::size_t i) const { return *m_data[i]; }
-
- T& back() { return *m_data.back(); }
- const T& back() const { return *m_data.back(); }
-
- private:
- std::vector<T*> m_data;
- };
-}
-
-#endif // PTR_VECTOR_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/src/regex.cpp b/src/third_party/yaml-cpp-0.5.1/src/regex.cpp
deleted file mode 100644
index b35b1f43354..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/regex.cpp
+++ /dev/null
@@ -1,60 +0,0 @@
-#include "regex.h"
-
-namespace YAML
-{
- // constructors
- RegEx::RegEx(): m_op(REGEX_EMPTY)
- {
- }
-
- RegEx::RegEx(REGEX_OP op): m_op(op)
- {
- }
-
- RegEx::RegEx(char ch): m_op(REGEX_MATCH), m_a(ch)
- {
- }
-
- RegEx::RegEx(char a, char z): m_op(REGEX_RANGE), m_a(a), m_z(z)
- {
- }
-
- RegEx::RegEx(const std::string& str, REGEX_OP op): m_op(op)
- {
- for(std::size_t i=0;i<str.size();i++)
- m_params.push_back(RegEx(str[i]));
- }
-
- // combination constructors
- RegEx operator ! (const RegEx& ex)
- {
- RegEx ret(REGEX_NOT);
- ret.m_params.push_back(ex);
- return ret;
- }
-
- RegEx operator || (const RegEx& ex1, const RegEx& ex2)
- {
- RegEx ret(REGEX_OR);
- ret.m_params.push_back(ex1);
- ret.m_params.push_back(ex2);
- return ret;
- }
-
- RegEx operator && (const RegEx& ex1, const RegEx& ex2)
- {
- RegEx ret(REGEX_AND);
- ret.m_params.push_back(ex1);
- ret.m_params.push_back(ex2);
- return ret;
- }
-
- RegEx operator + (const RegEx& ex1, const RegEx& ex2)
- {
- RegEx ret(REGEX_SEQ);
- ret.m_params.push_back(ex1);
- ret.m_params.push_back(ex2);
- return ret;
- }
-}
-
diff --git a/src/third_party/yaml-cpp-0.5.1/src/regex.h b/src/third_party/yaml-cpp-0.5.1/src/regex.h
deleted file mode 100644
index 8722e62666b..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/regex.h
+++ /dev/null
@@ -1,67 +0,0 @@
-#ifndef REGEX_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define REGEX_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-
-#include <vector>
-#include <string>
-
-namespace YAML
-{
- class Stream;
-
- enum REGEX_OP { REGEX_EMPTY, REGEX_MATCH, REGEX_RANGE, REGEX_OR, REGEX_AND, REGEX_NOT, REGEX_SEQ };
-
- // simplified regular expressions
- // . Only straightforward matches (no repeated characters)
- // . Only matches from start of string
- class RegEx
- {
- public:
- RegEx();
- RegEx(char ch);
- RegEx(char a, char z);
- RegEx(const std::string& str, REGEX_OP op = REGEX_SEQ);
- ~RegEx() {}
-
- friend RegEx operator ! (const RegEx& ex);
- friend RegEx operator || (const RegEx& ex1, const RegEx& ex2);
- friend RegEx operator && (const RegEx& ex1, const RegEx& ex2);
- friend RegEx operator + (const RegEx& ex1, const RegEx& ex2);
-
- bool Matches(char ch) const;
- bool Matches(const std::string& str) const;
- bool Matches(const Stream& in) const;
- template <typename Source> bool Matches(const Source& source) const;
-
- int Match(const std::string& str) const;
- int Match(const Stream& in) const;
- template <typename Source> int Match(const Source& source) const;
-
- private:
- RegEx(REGEX_OP op);
-
- template <typename Source> bool IsValidSource(const Source& source) const;
- template <typename Source> int MatchUnchecked(const Source& source) const;
-
- template <typename Source> int MatchOpEmpty(const Source& source) const;
- template <typename Source> int MatchOpMatch(const Source& source) const;
- template <typename Source> int MatchOpRange(const Source& source) const;
- template <typename Source> int MatchOpOr(const Source& source) const;
- template <typename Source> int MatchOpAnd(const Source& source) const;
- template <typename Source> int MatchOpNot(const Source& source) const;
- template <typename Source> int MatchOpSeq(const Source& source) const;
-
- private:
- REGEX_OP m_op;
- char m_a, m_z;
- std::vector <RegEx> m_params;
- };
-}
-
-#include "regeximpl.h"
-
-#endif // REGEX_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/src/regeximpl.h b/src/third_party/yaml-cpp-0.5.1/src/regeximpl.h
deleted file mode 100644
index d5c20d74c8e..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/regeximpl.h
+++ /dev/null
@@ -1,186 +0,0 @@
-#ifndef REGEXIMPL_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define REGEXIMPL_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-
-#include "stream.h"
-#include "stringsource.h"
-#include "streamcharsource.h"
-
-namespace YAML
-{
- // query matches
- inline bool RegEx::Matches(char ch) const {
- std::string str;
- str += ch;
- return Matches(str);
- }
-
- inline bool RegEx::Matches(const std::string& str) const {
- return Match(str) >= 0;
- }
-
- inline bool RegEx::Matches(const Stream& in) const {
- return Match(in) >= 0;
- }
-
- template <typename Source>
- inline bool RegEx::Matches(const Source& source) const {
- return Match(source) >= 0;
- }
-
- // Match
- // . Matches the given string against this regular expression.
- // . Returns the number of characters matched.
- // . Returns -1 if no characters were matched (the reason for
- // not returning zero is that we may have an empty regex
- // which is ALWAYS successful at matching zero characters).
- // . REMEMBER that we only match from the start of the buffer!
- inline int RegEx::Match(const std::string& str) const
- {
- StringCharSource source(str.c_str(), str.size());
- return Match(source);
- }
-
- inline int RegEx::Match(const Stream& in) const
- {
- StreamCharSource source(in);
- return Match(source);
- }
-
- template <typename Source>
- inline bool RegEx::IsValidSource(const Source& source) const
- {
- return source;
- }
-
- template<>
- inline bool RegEx::IsValidSource<StringCharSource>(const StringCharSource&source) const
- {
- switch(m_op) {
- case REGEX_MATCH:
- case REGEX_RANGE:
- return source;
- default:
- return true;
- }
- }
-
- template <typename Source>
- inline int RegEx::Match(const Source& source) const
- {
- return IsValidSource(source) ? MatchUnchecked(source) : -1;
- }
-
- template <typename Source>
- inline int RegEx::MatchUnchecked(const Source& source) const
- {
- switch(m_op) {
- case REGEX_EMPTY:
- return MatchOpEmpty(source);
- case REGEX_MATCH:
- return MatchOpMatch(source);
- case REGEX_RANGE:
- return MatchOpRange(source);
- case REGEX_OR:
- return MatchOpOr(source);
- case REGEX_AND:
- return MatchOpAnd(source);
- case REGEX_NOT:
- return MatchOpNot(source);
- case REGEX_SEQ:
- return MatchOpSeq(source);
- }
-
- return -1;
- }
-
- //////////////////////////////////////////////////////////////////////////////
- // Operators
- // Note: the convention MatchOp*<Source> is that we can assume IsSourceValid(source).
- // So we do all our checks *before* we call these functions
-
- // EmptyOperator
- template <typename Source>
- inline int RegEx::MatchOpEmpty(const Source& source) const {
- return source[0] == Stream::eof() ? 0 : -1;
- }
-
- template <>
- inline int RegEx::MatchOpEmpty<StringCharSource>(const StringCharSource& source) const {
- return !source ? 0 : -1; // the empty regex only is successful on the empty string
- }
-
- // MatchOperator
- template <typename Source>
- inline int RegEx::MatchOpMatch(const Source& source) const {
- if(source[0] != m_a)
- return -1;
- return 1;
- }
-
- // RangeOperator
- template <typename Source>
- inline int RegEx::MatchOpRange(const Source& source) const {
- if(m_a > source[0] || m_z < source[0])
- return -1;
- return 1;
- }
-
- // OrOperator
- template <typename Source>
- inline int RegEx::MatchOpOr(const Source& source) const {
- for(std::size_t i=0;i<m_params.size();i++) {
- int n = m_params[i].MatchUnchecked(source);
- if(n >= 0)
- return n;
- }
- return -1;
- }
-
- // AndOperator
- // Note: 'AND' is a little funny, since we may be required to match things
- // of different lengths. If we find a match, we return the length of
- // the FIRST entry on the list.
- template <typename Source>
- inline int RegEx::MatchOpAnd(const Source& source) const {
- int first = -1;
- for(std::size_t i=0;i<m_params.size();i++) {
- int n = m_params[i].MatchUnchecked(source);
- if(n == -1)
- return -1;
- if(i == 0)
- first = n;
- }
- return first;
- }
-
- // NotOperator
- template <typename Source>
- inline int RegEx::MatchOpNot(const Source& source) const {
- if(m_params.empty())
- return -1;
- if(m_params[0].MatchUnchecked(source) >= 0)
- return -1;
- return 1;
- }
-
- // SeqOperator
- template <typename Source>
- inline int RegEx::MatchOpSeq(const Source& source) const {
- int offset = 0;
- for(std::size_t i=0;i<m_params.size();i++) {
- int n = m_params[i].Match(source + offset); // note Match, not MatchUnchecked because we need to check validity after the offset
- if(n == -1)
- return -1;
- offset += n;
- }
-
- return offset;
- }
-}
-
-#endif // REGEXIMPL_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/src/scanner.cpp b/src/third_party/yaml-cpp-0.5.1/src/scanner.cpp
deleted file mode 100644
index 66cce0af9e8..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/scanner.cpp
+++ /dev/null
@@ -1,394 +0,0 @@
-#include "scanner.h"
-#include "token.h"
-#include "yaml-cpp/exceptions.h"
-#include "exp.h"
-#include <cassert>
-#include <memory>
-
-namespace YAML
-{
- Scanner::Scanner(std::istream& in)
- : INPUT(in), m_startedStream(false), m_endedStream(false), m_simpleKeyAllowed(false), m_canBeJSONFlow(false)
- {
- }
-
- Scanner::~Scanner()
- {
- }
-
- // empty
- // . Returns true if there are no more tokens to be read
- bool Scanner::empty()
- {
- EnsureTokensInQueue();
- return m_tokens.empty();
- }
-
- // pop
- // . Simply removes the next token on the queue.
- void Scanner::pop()
- {
- EnsureTokensInQueue();
- if(!m_tokens.empty())
- m_tokens.pop();
- }
-
- // peek
- // . Returns (but does not remove) the next token on the queue.
- Token& Scanner::peek()
- {
- EnsureTokensInQueue();
- assert(!m_tokens.empty()); // should we be asserting here? I mean, we really just be checking
- // if it's empty before peeking.
-
-#if 0
- static Token *pLast = 0;
- if(pLast != &m_tokens.front())
- std::cerr << "peek: " << m_tokens.front() << "\n";
- pLast = &m_tokens.front();
-#endif
-
- return m_tokens.front();
- }
-
- // mark
- // . Returns the current mark in the stream
- Mark Scanner::mark() const
- {
- return INPUT.mark();
- }
-
- // EnsureTokensInQueue
- // . Scan until there's a valid token at the front of the queue,
- // or we're sure the queue is empty.
- void Scanner::EnsureTokensInQueue()
- {
- while(1) {
- if(!m_tokens.empty()) {
- Token& token = m_tokens.front();
-
- // if this guy's valid, then we're done
- if(token.status == Token::VALID)
- return;
-
- // here's where we clean up the impossible tokens
- if(token.status == Token::INVALID) {
- m_tokens.pop();
- continue;
- }
-
- // note: what's left are the unverified tokens
- }
-
- // no token? maybe we've actually finished
- if(m_endedStream)
- return;
-
- // no? then scan...
- ScanNextToken();
- }
- }
-
- // ScanNextToken
- // . The main scanning function; here we branch out and
- // scan whatever the next token should be.
- void Scanner::ScanNextToken()
- {
- if(m_endedStream)
- return;
-
- if(!m_startedStream)
- return StartStream();
-
- // get rid of whitespace, etc. (in between tokens it should be irrelevent)
- ScanToNextToken();
-
- // maybe need to end some blocks
- PopIndentToHere();
-
- // *****
- // And now branch based on the next few characters!
- // *****
-
- // end of stream
- if(!INPUT)
- return EndStream();
-
- if(INPUT.column() == 0 && INPUT.peek() == Keys::Directive)
- return ScanDirective();
-
- // document token
- if(INPUT.column() == 0 && Exp::DocStart().Matches(INPUT))
- return ScanDocStart();
-
- if(INPUT.column() == 0 && Exp::DocEnd().Matches(INPUT))
- return ScanDocEnd();
-
- // flow start/end/entry
- if(INPUT.peek() == Keys::FlowSeqStart || INPUT.peek() == Keys::FlowMapStart)
- return ScanFlowStart();
-
- if(INPUT.peek() == Keys::FlowSeqEnd || INPUT.peek() == Keys::FlowMapEnd)
- return ScanFlowEnd();
-
- if(INPUT.peek() == Keys::FlowEntry)
- return ScanFlowEntry();
-
- // block/map stuff
- if(Exp::BlockEntry().Matches(INPUT))
- return ScanBlockEntry();
-
- if((InBlockContext() ? Exp::Key() : Exp::KeyInFlow()).Matches(INPUT))
- return ScanKey();
-
- if(GetValueRegex().Matches(INPUT))
- return ScanValue();
-
- // alias/anchor
- if(INPUT.peek() == Keys::Alias || INPUT.peek() == Keys::Anchor)
- return ScanAnchorOrAlias();
-
- // tag
- if(INPUT.peek() == Keys::Tag)
- return ScanTag();
-
- // special scalars
- if(InBlockContext() && (INPUT.peek() == Keys::LiteralScalar || INPUT.peek() == Keys::FoldedScalar))
- return ScanBlockScalar();
-
- if(INPUT.peek() == '\'' || INPUT.peek() == '\"')
- return ScanQuotedScalar();
-
- // plain scalars
- if((InBlockContext() ? Exp::PlainScalar() : Exp::PlainScalarInFlow()).Matches(INPUT))
- return ScanPlainScalar();
-
- // don't know what it is!
- throw ParserException(INPUT.mark(), ErrorMsg::UNKNOWN_TOKEN);
- }
-
- // ScanToNextToken
- // . Eats input until we reach the next token-like thing.
- void Scanner::ScanToNextToken()
- {
- while(1) {
- // first eat whitespace
- while(INPUT && IsWhitespaceToBeEaten(INPUT.peek())) {
- if(InBlockContext() && Exp::Tab().Matches(INPUT))
- m_simpleKeyAllowed = false;
- INPUT.eat(1);
- }
-
- // then eat a comment
- if(Exp::Comment().Matches(INPUT)) {
- // eat until line break
- while(INPUT && !Exp::Break().Matches(INPUT))
- INPUT.eat(1);
- }
-
- // if it's NOT a line break, then we're done!
- if(!Exp::Break().Matches(INPUT))
- break;
-
- // otherwise, let's eat the line break and keep going
- int n = Exp::Break().Match(INPUT);
- INPUT.eat(n);
-
- // oh yeah, and let's get rid of that simple key
- InvalidateSimpleKey();
-
- // new line - we may be able to accept a simple key now
- if(InBlockContext())
- m_simpleKeyAllowed = true;
- }
- }
-
- ///////////////////////////////////////////////////////////////////////
- // Misc. helpers
-
- // IsWhitespaceToBeEaten
- // . We can eat whitespace if it's a space or tab
- // . Note: originally tabs in block context couldn't be eaten
- // "where a simple key could be allowed
- // (i.e., not at the beginning of a line, or following '-', '?', or ':')"
- // I think this is wrong, since tabs can be non-content whitespace; it's just
- // that they can't contribute to indentation, so once you've seen a tab in a
- // line, you can't start a simple key
- bool Scanner::IsWhitespaceToBeEaten(char ch)
- {
- if(ch == ' ')
- return true;
-
- if(ch == '\t')
- return true;
-
- return false;
- }
-
- // GetValueRegex
- // . Get the appropriate regex to check if it's a value token
- const RegEx& Scanner::GetValueRegex() const
- {
- if(InBlockContext())
- return Exp::Value();
-
- return m_canBeJSONFlow ? Exp::ValueInJSONFlow() : Exp::ValueInFlow();
- }
-
- // StartStream
- // . Set the initial conditions for starting a stream.
- void Scanner::StartStream()
- {
- m_startedStream = true;
- m_simpleKeyAllowed = true;
- std::auto_ptr<IndentMarker> pIndent(new IndentMarker(-1, IndentMarker::NONE));
- m_indentRefs.push_back(pIndent);
- m_indents.push(&m_indentRefs.back());
- }
-
- // EndStream
- // . Close out the stream, finish up, etc.
- void Scanner::EndStream()
- {
- // force newline
- if(INPUT.column() > 0)
- INPUT.ResetColumn();
-
- PopAllIndents();
- PopAllSimpleKeys();
-
- m_simpleKeyAllowed = false;
- m_endedStream = true;
- }
-
- Token *Scanner::PushToken(Token::TYPE type)
- {
- m_tokens.push(Token(type, INPUT.mark()));
- return &m_tokens.back();
- }
-
- Token::TYPE Scanner::GetStartTokenFor(IndentMarker::INDENT_TYPE type) const
- {
- switch(type) {
- case IndentMarker::SEQ: return Token::BLOCK_SEQ_START;
- case IndentMarker::MAP: return Token::BLOCK_MAP_START;
- case IndentMarker::NONE: assert(false); break;
- }
- assert(false);
- throw std::runtime_error("yaml-cpp: internal error, invalid indent type");
- }
-
- // PushIndentTo
- // . Pushes an indentation onto the stack, and enqueues the
- // proper token (sequence start or mapping start).
- // . Returns the indent marker it generates (if any).
- Scanner::IndentMarker *Scanner::PushIndentTo(int column, IndentMarker::INDENT_TYPE type)
- {
- // are we in flow?
- if(InFlowContext())
- return 0;
-
- std::auto_ptr<IndentMarker> pIndent(new IndentMarker(column, type));
- IndentMarker& indent = *pIndent;
- const IndentMarker& lastIndent = *m_indents.top();
-
- // is this actually an indentation?
- if(indent.column < lastIndent.column)
- return 0;
- if(indent.column == lastIndent.column && !(indent.type == IndentMarker::SEQ && lastIndent.type == IndentMarker::MAP))
- return 0;
-
- // push a start token
- indent.pStartToken = PushToken(GetStartTokenFor(type));
-
- // and then the indent
- m_indents.push(&indent);
- m_indentRefs.push_back(pIndent);
- return &m_indentRefs.back();
- }
-
- // PopIndentToHere
- // . Pops indentations off the stack until we reach the current indentation level,
- // and enqueues the proper token each time.
- // . Then pops all invalid indentations off.
- void Scanner::PopIndentToHere()
- {
- // are we in flow?
- if(InFlowContext())
- return;
-
- // now pop away
- while(!m_indents.empty()) {
- const IndentMarker& indent = *m_indents.top();
- if(indent.column < INPUT.column())
- break;
- if(indent.column == INPUT.column() && !(indent.type == IndentMarker::SEQ && !Exp::BlockEntry().Matches(INPUT)))
- break;
-
- PopIndent();
- }
-
- while(!m_indents.empty() && m_indents.top()->status == IndentMarker::INVALID)
- PopIndent();
- }
-
- // PopAllIndents
- // . Pops all indentations (except for the base empty one) off the stack,
- // and enqueues the proper token each time.
- void Scanner::PopAllIndents()
- {
- // are we in flow?
- if(InFlowContext())
- return;
-
- // now pop away
- while(!m_indents.empty()) {
- const IndentMarker& indent = *m_indents.top();
- if(indent.type == IndentMarker::NONE)
- break;
-
- PopIndent();
- }
- }
-
- // PopIndent
- // . Pops a single indent, pushing the proper token
- void Scanner::PopIndent()
- {
- const IndentMarker& indent = *m_indents.top();
- m_indents.pop();
-
- if(indent.status != IndentMarker::VALID) {
- InvalidateSimpleKey();
- return;
- }
-
- if(indent.type == IndentMarker::SEQ)
- m_tokens.push(Token(Token::BLOCK_SEQ_END, INPUT.mark()));
- else if(indent.type == IndentMarker::MAP)
- m_tokens.push(Token(Token::BLOCK_MAP_END, INPUT.mark()));
- }
-
- // GetTopIndent
- int Scanner::GetTopIndent() const
- {
- if(m_indents.empty())
- return 0;
- return m_indents.top()->column;
- }
-
- // ThrowParserException
- // . Throws a ParserException with the current token location
- // (if available).
- // . Does not parse any more tokens.
- void Scanner::ThrowParserException(const std::string& msg) const
- {
- Mark mark = Mark::null_mark();
- if(!m_tokens.empty()) {
- const Token& token = m_tokens.front();
- mark = token.mark;
- }
- throw ParserException(mark, msg);
- }
-}
-
diff --git a/src/third_party/yaml-cpp-0.5.1/src/scanner.h b/src/third_party/yaml-cpp-0.5.1/src/scanner.h
deleted file mode 100644
index fe71124c5c6..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/scanner.h
+++ /dev/null
@@ -1,133 +0,0 @@
-#ifndef SCANNER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define SCANNER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-
-#include <ios>
-#include <string>
-#include <queue>
-#include <stack>
-#include <set>
-#include <map>
-#include "ptr_vector.h"
-#include "stream.h"
-#include "token.h"
-
-namespace YAML
-{
- class Node;
- class RegEx;
-
- class Scanner
- {
- public:
- Scanner(std::istream& in);
- ~Scanner();
-
- // token queue management (hopefully this looks kinda stl-ish)
- bool empty();
- void pop();
- Token& peek();
- Mark mark() const;
-
- private:
- struct IndentMarker {
- enum INDENT_TYPE { MAP, SEQ, NONE };
- enum STATUS { VALID, INVALID, UNKNOWN };
- IndentMarker(int column_, INDENT_TYPE type_): column(column_), type(type_), status(VALID), pStartToken(0) {}
-
- int column;
- INDENT_TYPE type;
- STATUS status;
- Token *pStartToken;
- };
-
- enum FLOW_MARKER { FLOW_MAP, FLOW_SEQ };
-
- private:
- // scanning
- void EnsureTokensInQueue();
- void ScanNextToken();
- void ScanToNextToken();
- void StartStream();
- void EndStream();
- Token *PushToken(Token::TYPE type);
-
- bool InFlowContext() const { return !m_flows.empty(); }
- bool InBlockContext() const { return m_flows.empty(); }
- int GetFlowLevel() const { return m_flows.size(); }
-
- Token::TYPE GetStartTokenFor(IndentMarker::INDENT_TYPE type) const;
- IndentMarker *PushIndentTo(int column, IndentMarker::INDENT_TYPE type);
- void PopIndentToHere();
- void PopAllIndents();
- void PopIndent();
- int GetTopIndent() const;
-
- // checking input
- bool CanInsertPotentialSimpleKey() const;
- bool ExistsActiveSimpleKey() const;
- void InsertPotentialSimpleKey();
- void InvalidateSimpleKey();
- bool VerifySimpleKey();
- void PopAllSimpleKeys();
-
- void ThrowParserException(const std::string& msg) const;
-
- bool IsWhitespaceToBeEaten(char ch);
- const RegEx& GetValueRegex() const;
-
- struct SimpleKey {
- SimpleKey(const Mark& mark_, int flowLevel_);
-
- void Validate();
- void Invalidate();
-
- Mark mark;
- int flowLevel;
- IndentMarker *pIndent;
- Token *pMapStart, *pKey;
- };
-
- // and the tokens
- void ScanDirective();
- void ScanDocStart();
- void ScanDocEnd();
- void ScanBlockSeqStart();
- void ScanBlockMapSTart();
- void ScanBlockEnd();
- void ScanBlockEntry();
- void ScanFlowStart();
- void ScanFlowEnd();
- void ScanFlowEntry();
- void ScanKey();
- void ScanValue();
- void ScanAnchorOrAlias();
- void ScanTag();
- void ScanPlainScalar();
- void ScanQuotedScalar();
- void ScanBlockScalar();
-
- private:
- // the stream
- Stream INPUT;
-
- // the output (tokens)
- std::queue<Token> m_tokens;
-
- // state info
- bool m_startedStream, m_endedStream;
- bool m_simpleKeyAllowed;
- bool m_canBeJSONFlow;
- std::stack<SimpleKey> m_simpleKeys;
- std::stack<IndentMarker *> m_indents;
- ptr_vector<IndentMarker> m_indentRefs; // for "garbage collection"
- std::stack<FLOW_MARKER> m_flows;
- };
-}
-
-#endif // SCANNER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
diff --git a/src/third_party/yaml-cpp-0.5.1/src/scanscalar.cpp b/src/third_party/yaml-cpp-0.5.1/src/scanscalar.cpp
deleted file mode 100644
index 064c0867a59..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/scanscalar.cpp
+++ /dev/null
@@ -1,214 +0,0 @@
-#include "scanscalar.h"
-#include "scanner.h"
-#include "exp.h"
-#include "yaml-cpp/exceptions.h"
-#include "token.h"
-
-namespace YAML
-{
- // ScanScalar
- // . This is where the scalar magic happens.
- //
- // . We do the scanning in three phases:
- // 1. Scan until newline
- // 2. Eat newline
- // 3. Scan leading blanks.
- //
- // . Depending on the parameters given, we store or stop
- // and different places in the above flow.
- std::string ScanScalar(Stream& INPUT, ScanScalarParams& params)
- {
- bool foundNonEmptyLine = false;
- bool pastOpeningBreak = (params.fold == FOLD_FLOW);
- bool emptyLine = false, moreIndented = false;
- int foldedNewlineCount = 0;
- bool foldedNewlineStartedMoreIndented = false;
- std::size_t lastEscapedChar = std::string::npos;
- std::string scalar;
- params.leadingSpaces = false;
-
- while(INPUT) {
- // ********************************
- // Phase #1: scan until line ending
-
- std::size_t lastNonWhitespaceChar = scalar.size();
- bool escapedNewline = false;
- while(!params.end.Matches(INPUT) && !Exp::Break().Matches(INPUT)) {
- if(!INPUT)
- break;
-
- // document indicator?
- if(INPUT.column() == 0 && Exp::DocIndicator().Matches(INPUT)) {
- if(params.onDocIndicator == BREAK)
- break;
- else if(params.onDocIndicator == THROW)
- throw ParserException(INPUT.mark(), ErrorMsg::DOC_IN_SCALAR);
- }
-
- foundNonEmptyLine = true;
- pastOpeningBreak = true;
-
- // escaped newline? (only if we're escaping on slash)
- if(params.escape == '\\' && Exp::EscBreak().Matches(INPUT)) {
- // eat escape character and get out (but preserve trailing whitespace!)
- INPUT.get();
- lastNonWhitespaceChar = scalar.size();
- lastEscapedChar = scalar.size();
- escapedNewline = true;
- break;
- }
-
- // escape this?
- if(INPUT.peek() == params.escape) {
- scalar += Exp::Escape(INPUT);
- lastNonWhitespaceChar = scalar.size();
- lastEscapedChar = scalar.size();
- continue;
- }
-
- // otherwise, just add the damn character
- char ch = INPUT.get();
- scalar += ch;
- if(ch != ' ' && ch != '\t')
- lastNonWhitespaceChar = scalar.size();
- }
-
- // eof? if we're looking to eat something, then we throw
- if(!INPUT) {
- if(params.eatEnd)
- throw ParserException(INPUT.mark(), ErrorMsg::EOF_IN_SCALAR);
- break;
- }
-
- // doc indicator?
- if(params.onDocIndicator == BREAK && INPUT.column() == 0 && Exp::DocIndicator().Matches(INPUT))
- break;
-
- // are we done via character match?
- int n = params.end.Match(INPUT);
- if(n >= 0) {
- if(params.eatEnd)
- INPUT.eat(n);
- break;
- }
-
- // do we remove trailing whitespace?
- if(params.fold == FOLD_FLOW)
- scalar.erase(lastNonWhitespaceChar);
-
- // ********************************
- // Phase #2: eat line ending
- n = Exp::Break().Match(INPUT);
- INPUT.eat(n);
-
- // ********************************
- // Phase #3: scan initial spaces
-
- // first the required indentation
- while(INPUT.peek() == ' ' && (INPUT.column() < params.indent || (params.detectIndent && !foundNonEmptyLine)))
- INPUT.eat(1);
-
- // update indent if we're auto-detecting
- if(params.detectIndent && !foundNonEmptyLine)
- params.indent = std::max(params.indent, INPUT.column());
-
- // and then the rest of the whitespace
- while(Exp::Blank().Matches(INPUT)) {
- // we check for tabs that masquerade as indentation
- if(INPUT.peek() == '\t'&& INPUT.column() < params.indent && params.onTabInIndentation == THROW)
- throw ParserException(INPUT.mark(), ErrorMsg::TAB_IN_INDENTATION);
-
- if(!params.eatLeadingWhitespace)
- break;
-
- INPUT.eat(1);
- }
-
- // was this an empty line?
- bool nextEmptyLine = Exp::Break().Matches(INPUT);
- bool nextMoreIndented = Exp::Blank().Matches(INPUT);
- if(params.fold == FOLD_BLOCK && foldedNewlineCount == 0 && nextEmptyLine)
- foldedNewlineStartedMoreIndented = moreIndented;
-
- // for block scalars, we always start with a newline, so we should ignore it (not fold or keep)
- if(pastOpeningBreak) {
- switch(params.fold) {
- case DONT_FOLD:
- scalar += "\n";
- break;
- case FOLD_BLOCK:
- if(!emptyLine && !nextEmptyLine && !moreIndented && !nextMoreIndented && INPUT.column() >= params.indent)
- scalar += " ";
- else if(nextEmptyLine)
- foldedNewlineCount++;
- else
- scalar += "\n";
-
- if(!nextEmptyLine && foldedNewlineCount > 0) {
- scalar += std::string(foldedNewlineCount - 1, '\n');
- if(foldedNewlineStartedMoreIndented || nextMoreIndented | !foundNonEmptyLine)
- scalar += "\n";
- foldedNewlineCount = 0;
- }
- break;
- case FOLD_FLOW:
- if(nextEmptyLine)
- scalar += "\n";
- else if(!emptyLine && !nextEmptyLine && !escapedNewline)
- scalar += " ";
- break;
- }
- }
-
- emptyLine = nextEmptyLine;
- moreIndented = nextMoreIndented;
- pastOpeningBreak = true;
-
- // are we done via indentation?
- if(!emptyLine && INPUT.column() < params.indent) {
- params.leadingSpaces = true;
- break;
- }
- }
-
- // post-processing
- if(params.trimTrailingSpaces) {
- std::size_t pos = scalar.find_last_not_of(' ');
- if(lastEscapedChar != std::string::npos) {
- if(pos < lastEscapedChar || pos == std::string::npos)
- pos = lastEscapedChar;
- }
- if(pos < scalar.size())
- scalar.erase(pos + 1);
- }
-
- switch(params.chomp) {
- case CLIP: {
- std::size_t pos = scalar.find_last_not_of('\n');
- if(lastEscapedChar != std::string::npos) {
- if(pos < lastEscapedChar || pos == std::string::npos)
- pos = lastEscapedChar;
- }
- if(pos == std::string::npos)
- scalar.erase();
- else if(pos + 1 < scalar.size())
- scalar.erase(pos + 2);
- } break;
- case STRIP: {
- std::size_t pos = scalar.find_last_not_of('\n');
- if(lastEscapedChar != std::string::npos) {
- if(pos < lastEscapedChar || pos == std::string::npos)
- pos = lastEscapedChar;
- }
- if(pos == std::string::npos)
- scalar.erase();
- else if(pos < scalar.size())
- scalar.erase(pos + 1);
- } break;
- default:
- break;
- }
-
- return scalar;
- }
-}
diff --git a/src/third_party/yaml-cpp-0.5.1/src/scanscalar.h b/src/third_party/yaml-cpp-0.5.1/src/scanscalar.h
deleted file mode 100644
index c198cb18b4b..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/scanscalar.h
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef SCANSCALAR_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define SCANSCALAR_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-
-#include <string>
-#include "regex.h"
-#include "stream.h"
-
-namespace YAML
-{
- enum CHOMP { STRIP = -1, CLIP, KEEP };
- enum ACTION { NONE, BREAK, THROW };
- enum FOLD { DONT_FOLD, FOLD_BLOCK, FOLD_FLOW };
-
- struct ScanScalarParams {
- ScanScalarParams(): eatEnd(false), indent(0), detectIndent(false), eatLeadingWhitespace(0), escape(0), fold(DONT_FOLD),
- trimTrailingSpaces(0), chomp(CLIP), onDocIndicator(NONE), onTabInIndentation(NONE), leadingSpaces(false) {}
-
- // input:
- RegEx end; // what condition ends this scalar?
- bool eatEnd; // should we eat that condition when we see it?
- int indent; // what level of indentation should be eaten and ignored?
- bool detectIndent; // should we try to autodetect the indent?
- bool eatLeadingWhitespace; // should we continue eating this delicious indentation after 'indent' spaces?
- char escape; // what character do we escape on (i.e., slash or single quote) (0 for none)
- FOLD fold; // how do we fold line ends?
- bool trimTrailingSpaces; // do we remove all trailing spaces (at the very end)
- CHOMP chomp; // do we strip, clip, or keep trailing newlines (at the very end)
- // Note: strip means kill all, clip means keep at most one, keep means keep all
- ACTION onDocIndicator; // what do we do if we see a document indicator?
- ACTION onTabInIndentation; // what do we do if we see a tab where we should be seeing indentation spaces
-
- // output:
- bool leadingSpaces;
- };
-
- std::string ScanScalar(Stream& INPUT, ScanScalarParams& info);
-}
-
-#endif // SCANSCALAR_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
diff --git a/src/third_party/yaml-cpp-0.5.1/src/scantag.cpp b/src/third_party/yaml-cpp-0.5.1/src/scantag.cpp
deleted file mode 100644
index b71cbcc49f4..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/scantag.cpp
+++ /dev/null
@@ -1,84 +0,0 @@
-#include "scanner.h"
-#include "regex.h"
-#include "exp.h"
-#include "yaml-cpp/exceptions.h"
-
-namespace YAML
-{
- const std::string ScanVerbatimTag(Stream& INPUT)
- {
- std::string tag;
-
- // eat the start character
- INPUT.get();
-
- while(INPUT) {
- if(INPUT.peek() == Keys::VerbatimTagEnd) {
- // eat the end character
- INPUT.get();
- return tag;
- }
-
- int n = Exp::URI().Match(INPUT);
- if(n <= 0)
- break;
-
- tag += INPUT.get(n);
- }
-
- throw ParserException(INPUT.mark(), ErrorMsg::END_OF_VERBATIM_TAG);
- }
-
- const std::string ScanTagHandle(Stream& INPUT, bool& canBeHandle)
- {
- std::string tag;
- canBeHandle = true;
- Mark firstNonWordChar;
-
- while(INPUT) {
- if(INPUT.peek() == Keys::Tag) {
- if(!canBeHandle)
- throw ParserException(firstNonWordChar, ErrorMsg::CHAR_IN_TAG_HANDLE);
- break;
- }
-
- int n = 0;
- if(canBeHandle) {
- n = Exp::Word().Match(INPUT);
- if(n <= 0) {
- canBeHandle = false;
- firstNonWordChar = INPUT.mark();
- }
- }
-
- if(!canBeHandle)
- n = Exp::Tag().Match(INPUT);
-
- if(n <= 0)
- break;
-
- tag += INPUT.get(n);
- }
-
- return tag;
- }
-
- const std::string ScanTagSuffix(Stream& INPUT)
- {
- std::string tag;
-
- while(INPUT) {
- int n = Exp::Tag().Match(INPUT);
- if(n <= 0)
- break;
-
- tag += INPUT.get(n);
- }
-
- if(tag.empty())
- throw ParserException(INPUT.mark(), ErrorMsg::TAG_WITH_NO_SUFFIX);
-
- return tag;
- }
-}
-
diff --git a/src/third_party/yaml-cpp-0.5.1/src/scantag.h b/src/third_party/yaml-cpp-0.5.1/src/scantag.h
deleted file mode 100644
index 38437c039df..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/scantag.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef SCANTAG_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define SCANTAG_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-
-#include <string>
-#include "stream.h"
-
-namespace YAML
-{
- const std::string ScanVerbatimTag(Stream& INPUT);
- const std::string ScanTagHandle(Stream& INPUT, bool& canBeHandle);
- const std::string ScanTagSuffix(Stream& INPUT);
-}
-
-#endif // SCANTAG_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
diff --git a/src/third_party/yaml-cpp-0.5.1/src/scantoken.cpp b/src/third_party/yaml-cpp-0.5.1/src/scantoken.cpp
deleted file mode 100644
index 06d9cd623d6..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/scantoken.cpp
+++ /dev/null
@@ -1,439 +0,0 @@
-#include "scanner.h"
-#include "token.h"
-#include "yaml-cpp/exceptions.h"
-#include "exp.h"
-#include "scanscalar.h"
-#include "scantag.h"
-#include "tag.h"
-#include <sstream>
-
-namespace YAML
-{
- ///////////////////////////////////////////////////////////////////////
- // Specialization for scanning specific tokens
-
- // Directive
- // . Note: no semantic checking is done here (that's for the parser to do)
- void Scanner::ScanDirective()
- {
- std::string name;
- std::vector <std::string> params;
-
- // pop indents and simple keys
- PopAllIndents();
- PopAllSimpleKeys();
-
- m_simpleKeyAllowed = false;
- m_canBeJSONFlow = false;
-
- // store pos and eat indicator
- Token token(Token::DIRECTIVE, INPUT.mark());
- INPUT.eat(1);
-
- // read name
- while(INPUT && !Exp::BlankOrBreak().Matches(INPUT))
- token.value += INPUT.get();
-
- // read parameters
- while(1) {
- // first get rid of whitespace
- while(Exp::Blank().Matches(INPUT))
- INPUT.eat(1);
-
- // break on newline or comment
- if(!INPUT || Exp::Break().Matches(INPUT) || Exp::Comment().Matches(INPUT))
- break;
-
- // now read parameter
- std::string param;
- while(INPUT && !Exp::BlankOrBreak().Matches(INPUT))
- param += INPUT.get();
-
- token.params.push_back(param);
- }
-
- m_tokens.push(token);
- }
-
- // DocStart
- void Scanner::ScanDocStart()
- {
- PopAllIndents();
- PopAllSimpleKeys();
- m_simpleKeyAllowed = false;
- m_canBeJSONFlow = false;
-
- // eat
- Mark mark = INPUT.mark();
- INPUT.eat(3);
- m_tokens.push(Token(Token::DOC_START, mark));
- }
-
- // DocEnd
- void Scanner::ScanDocEnd()
- {
- PopAllIndents();
- PopAllSimpleKeys();
- m_simpleKeyAllowed = false;
- m_canBeJSONFlow = false;
-
- // eat
- Mark mark = INPUT.mark();
- INPUT.eat(3);
- m_tokens.push(Token(Token::DOC_END, mark));
- }
-
- // FlowStart
- void Scanner::ScanFlowStart()
- {
- // flows can be simple keys
- InsertPotentialSimpleKey();
- m_simpleKeyAllowed = true;
- m_canBeJSONFlow = false;
-
- // eat
- Mark mark = INPUT.mark();
- char ch = INPUT.get();
- FLOW_MARKER flowType = (ch == Keys::FlowSeqStart ? FLOW_SEQ : FLOW_MAP);
- m_flows.push(flowType);
- Token::TYPE type = (flowType == FLOW_SEQ ? Token::FLOW_SEQ_START : Token::FLOW_MAP_START);
- m_tokens.push(Token(type, mark));
- }
-
- // FlowEnd
- void Scanner::ScanFlowEnd()
- {
- if(InBlockContext())
- throw ParserException(INPUT.mark(), ErrorMsg::FLOW_END);
-
- // we might have a solo entry in the flow context
- if(InFlowContext()) {
- if(m_flows.top() == FLOW_MAP && VerifySimpleKey())
- m_tokens.push(Token(Token::VALUE, INPUT.mark()));
- else if(m_flows.top() == FLOW_SEQ)
- InvalidateSimpleKey();
- }
-
- m_simpleKeyAllowed = false;
- m_canBeJSONFlow = true;
-
- // eat
- Mark mark = INPUT.mark();
- char ch = INPUT.get();
-
- // check that it matches the start
- FLOW_MARKER flowType = (ch == Keys::FlowSeqEnd ? FLOW_SEQ : FLOW_MAP);
- if(m_flows.top() != flowType)
- throw ParserException(mark, ErrorMsg::FLOW_END);
- m_flows.pop();
-
- Token::TYPE type = (flowType ? Token::FLOW_SEQ_END : Token::FLOW_MAP_END);
- m_tokens.push(Token(type, mark));
- }
-
- // FlowEntry
- void Scanner::ScanFlowEntry()
- {
- // we might have a solo entry in the flow context
- if(InFlowContext()) {
- if(m_flows.top() == FLOW_MAP && VerifySimpleKey())
- m_tokens.push(Token(Token::VALUE, INPUT.mark()));
- else if(m_flows.top() == FLOW_SEQ)
- InvalidateSimpleKey();
- }
-
- m_simpleKeyAllowed = true;
- m_canBeJSONFlow = false;
-
- // eat
- Mark mark = INPUT.mark();
- INPUT.eat(1);
- m_tokens.push(Token(Token::FLOW_ENTRY, mark));
- }
-
- // BlockEntry
- void Scanner::ScanBlockEntry()
- {
- // we better be in the block context!
- if(InFlowContext())
- throw ParserException(INPUT.mark(), ErrorMsg::BLOCK_ENTRY);
-
- // can we put it here?
- if(!m_simpleKeyAllowed)
- throw ParserException(INPUT.mark(), ErrorMsg::BLOCK_ENTRY);
-
- PushIndentTo(INPUT.column(), IndentMarker::SEQ);
- m_simpleKeyAllowed = true;
- m_canBeJSONFlow = false;
-
- // eat
- Mark mark = INPUT.mark();
- INPUT.eat(1);
- m_tokens.push(Token(Token::BLOCK_ENTRY, mark));
- }
-
- // Key
- void Scanner::ScanKey()
- {
- // handle keys diffently in the block context (and manage indents)
- if(InBlockContext()) {
- if(!m_simpleKeyAllowed)
- throw ParserException(INPUT.mark(), ErrorMsg::MAP_KEY);
-
- PushIndentTo(INPUT.column(), IndentMarker::MAP);
- }
-
- // can only put a simple key here if we're in block context
- m_simpleKeyAllowed = InBlockContext();
-
- // eat
- Mark mark = INPUT.mark();
- INPUT.eat(1);
- m_tokens.push(Token(Token::KEY, mark));
- }
-
- // Value
- void Scanner::ScanValue()
- {
- // and check that simple key
- bool isSimpleKey = VerifySimpleKey();
- m_canBeJSONFlow = false;
-
- if(isSimpleKey) {
- // can't follow a simple key with another simple key (dunno why, though - it seems fine)
- m_simpleKeyAllowed = false;
- } else {
- // handle values diffently in the block context (and manage indents)
- if(InBlockContext()) {
- if(!m_simpleKeyAllowed)
- throw ParserException(INPUT.mark(), ErrorMsg::MAP_VALUE);
-
- PushIndentTo(INPUT.column(), IndentMarker::MAP);
- }
-
- // can only put a simple key here if we're in block context
- m_simpleKeyAllowed = InBlockContext();
- }
-
- // eat
- Mark mark = INPUT.mark();
- INPUT.eat(1);
- m_tokens.push(Token(Token::VALUE, mark));
- }
-
- // AnchorOrAlias
- void Scanner::ScanAnchorOrAlias()
- {
- bool alias;
- std::string name;
-
- // insert a potential simple key
- InsertPotentialSimpleKey();
- m_simpleKeyAllowed = false;
- m_canBeJSONFlow = false;
-
- // eat the indicator
- Mark mark = INPUT.mark();
- char indicator = INPUT.get();
- alias = (indicator == Keys::Alias);
-
- // now eat the content
- while(INPUT && Exp::Anchor().Matches(INPUT))
- name += INPUT.get();
-
- // we need to have read SOMETHING!
- if(name.empty())
- throw ParserException(INPUT.mark(), alias ? ErrorMsg::ALIAS_NOT_FOUND : ErrorMsg::ANCHOR_NOT_FOUND);
-
- // and needs to end correctly
- if(INPUT && !Exp::AnchorEnd().Matches(INPUT))
- throw ParserException(INPUT.mark(), alias ? ErrorMsg::CHAR_IN_ALIAS : ErrorMsg::CHAR_IN_ANCHOR);
-
- // and we're done
- Token token(alias ? Token::ALIAS : Token::ANCHOR, mark);
- token.value = name;
- m_tokens.push(token);
- }
-
- // Tag
- void Scanner::ScanTag()
- {
- // insert a potential simple key
- InsertPotentialSimpleKey();
- m_simpleKeyAllowed = false;
- m_canBeJSONFlow = false;
-
- Token token(Token::TAG, INPUT.mark());
-
- // eat the indicator
- INPUT.get();
-
- if(INPUT && INPUT.peek() == Keys::VerbatimTagStart){
- std::string tag = ScanVerbatimTag(INPUT);
-
- token.value = tag;
- token.data = Tag::VERBATIM;
- } else {
- bool canBeHandle;
- token.value = ScanTagHandle(INPUT, canBeHandle);
- if(!canBeHandle && token.value.empty())
- token.data = Tag::NON_SPECIFIC;
- else if(token.value.empty())
- token.data = Tag::SECONDARY_HANDLE;
- else
- token.data = Tag::PRIMARY_HANDLE;
-
- // is there a suffix?
- if(canBeHandle && INPUT.peek() == Keys::Tag) {
- // eat the indicator
- INPUT.get();
- token.params.push_back(ScanTagSuffix(INPUT));
- token.data = Tag::NAMED_HANDLE;
- }
- }
-
- m_tokens.push(token);
- }
-
- // PlainScalar
- void Scanner::ScanPlainScalar()
- {
- std::string scalar;
-
- // set up the scanning parameters
- ScanScalarParams params;
- params.end = (InFlowContext() ? Exp::EndScalarInFlow() : Exp::EndScalar()) || (Exp::BlankOrBreak() + Exp::Comment());
- params.eatEnd = false;
- params.indent = (InFlowContext() ? 0 : GetTopIndent() + 1);
- params.fold = FOLD_FLOW;
- params.eatLeadingWhitespace = true;
- params.trimTrailingSpaces = true;
- params.chomp = STRIP;
- params.onDocIndicator = BREAK;
- params.onTabInIndentation = THROW;
-
- // insert a potential simple key
- InsertPotentialSimpleKey();
-
- Mark mark = INPUT.mark();
- scalar = ScanScalar(INPUT, params);
-
- // can have a simple key only if we ended the scalar by starting a new line
- m_simpleKeyAllowed = params.leadingSpaces;
- m_canBeJSONFlow = false;
-
- // finally, check and see if we ended on an illegal character
- //if(Exp::IllegalCharInScalar.Matches(INPUT))
- // throw ParserException(INPUT.mark(), ErrorMsg::CHAR_IN_SCALAR);
-
- Token token(Token::PLAIN_SCALAR, mark);
- token.value = scalar;
- m_tokens.push(token);
- }
-
- // QuotedScalar
- void Scanner::ScanQuotedScalar()
- {
- std::string scalar;
-
- // peek at single or double quote (don't eat because we need to preserve (for the time being) the input position)
- char quote = INPUT.peek();
- bool single = (quote == '\'');
-
- // setup the scanning parameters
- ScanScalarParams params;
- params.end = (single ? RegEx(quote) && !Exp::EscSingleQuote() : RegEx(quote));
- params.eatEnd = true;
- params.escape = (single ? '\'' : '\\');
- params.indent = 0;
- params.fold = FOLD_FLOW;
- params.eatLeadingWhitespace = true;
- params.trimTrailingSpaces = false;
- params.chomp = CLIP;
- params.onDocIndicator = THROW;
-
- // insert a potential simple key
- InsertPotentialSimpleKey();
-
- Mark mark = INPUT.mark();
-
- // now eat that opening quote
- INPUT.get();
-
- // and scan
- scalar = ScanScalar(INPUT, params);
- m_simpleKeyAllowed = false;
- m_canBeJSONFlow = true;
-
- Token token(Token::NON_PLAIN_SCALAR, mark);
- token.value = scalar;
- m_tokens.push(token);
- }
-
- // BlockScalarToken
- // . These need a little extra processing beforehand.
- // . We need to scan the line where the indicator is (this doesn't count as part of the scalar),
- // and then we need to figure out what level of indentation we'll be using.
- void Scanner::ScanBlockScalar()
- {
- std::string scalar;
-
- ScanScalarParams params;
- params.indent = 1;
- params.detectIndent = true;
-
- // eat block indicator ('|' or '>')
- Mark mark = INPUT.mark();
- char indicator = INPUT.get();
- params.fold = (indicator == Keys::FoldedScalar ? FOLD_BLOCK : DONT_FOLD);
-
- // eat chomping/indentation indicators
- params.chomp = CLIP;
- int n = Exp::Chomp().Match(INPUT);
- for(int i=0;i<n;i++) {
- char ch = INPUT.get();
- if(ch == '+')
- params.chomp = KEEP;
- else if(ch == '-')
- params.chomp = STRIP;
- else if(Exp::Digit().Matches(ch)) {
- if(ch == '0')
- throw ParserException(INPUT.mark(), ErrorMsg::ZERO_INDENT_IN_BLOCK);
-
- params.indent = ch - '0';
- params.detectIndent = false;
- }
- }
-
- // now eat whitespace
- while(Exp::Blank().Matches(INPUT))
- INPUT.eat(1);
-
- // and comments to the end of the line
- if(Exp::Comment().Matches(INPUT))
- while(INPUT && !Exp::Break().Matches(INPUT))
- INPUT.eat(1);
-
- // if it's not a line break, then we ran into a bad character inline
- if(INPUT && !Exp::Break().Matches(INPUT))
- throw ParserException(INPUT.mark(), ErrorMsg::CHAR_IN_BLOCK);
-
- // set the initial indentation
- if(GetTopIndent() >= 0)
- params.indent += GetTopIndent();
-
- params.eatLeadingWhitespace = false;
- params.trimTrailingSpaces = false;
- params.onTabInIndentation = THROW;
-
- scalar = ScanScalar(INPUT, params);
-
- // simple keys always ok after block scalars (since we're gonna start a new line anyways)
- m_simpleKeyAllowed = true;
- m_canBeJSONFlow = false;
-
- Token token(Token::NON_PLAIN_SCALAR, mark);
- token.value = scalar;
- m_tokens.push(token);
- }
-}
diff --git a/src/third_party/yaml-cpp-0.5.1/src/setting.h b/src/third_party/yaml-cpp-0.5.1/src/setting.h
deleted file mode 100644
index 806ccdae96d..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/setting.h
+++ /dev/null
@@ -1,105 +0,0 @@
-#ifndef SETTING_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define SETTING_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-
-#include <memory>
-#include <vector>
-#include "yaml-cpp/noncopyable.h"
-
-namespace YAML
-{
- class SettingChangeBase;
-
- template <typename T>
- class Setting
- {
- public:
- Setting(): m_value() {}
-
- const T get() const { return m_value; }
- std::auto_ptr <SettingChangeBase> set(const T& value);
- void restore(const Setting<T>& oldSetting) {
- m_value = oldSetting.get();
- }
-
- private:
- T m_value;
- };
-
- class SettingChangeBase
- {
- public:
- virtual ~SettingChangeBase() {}
- virtual void pop() = 0;
- };
-
- template <typename T>
- class SettingChange: public SettingChangeBase
- {
- public:
- SettingChange(Setting<T> *pSetting): m_pCurSetting(pSetting) {
- // copy old setting to save its state
- m_oldSetting = *pSetting;
- }
-
- virtual void pop() {
- m_pCurSetting->restore(m_oldSetting);
- }
-
- private:
- Setting<T> *m_pCurSetting;
- Setting<T> m_oldSetting;
- };
-
- template <typename T>
- inline std::auto_ptr <SettingChangeBase> Setting<T>::set(const T& value) {
- std::auto_ptr <SettingChangeBase> pChange(new SettingChange<T> (this));
- m_value = value;
- return pChange;
- }
-
- class SettingChanges: private noncopyable
- {
- public:
- SettingChanges() {}
- ~SettingChanges() { clear(); }
-
- void clear() {
- restore();
-
- for(setting_changes::const_iterator it=m_settingChanges.begin();it!=m_settingChanges.end();++it)
- delete *it;
- m_settingChanges.clear();
- }
-
- void restore() {
- for(setting_changes::const_iterator it=m_settingChanges.begin();it!=m_settingChanges.end();++it)
- (*it)->pop();
- }
-
- void push(std::auto_ptr <SettingChangeBase> pSettingChange) {
- m_settingChanges.push_back(pSettingChange.release());
- }
-
- // like std::auto_ptr - assignment is transfer of ownership
- SettingChanges& operator = (SettingChanges& rhs) {
- if(this == &rhs)
- return *this;
-
- clear();
- m_settingChanges = rhs.m_settingChanges;
- rhs.m_settingChanges.clear();
- return *this;
- }
-
- private:
- typedef std::vector <SettingChangeBase *> setting_changes;
- setting_changes m_settingChanges;
- };
-}
-
-#endif // SETTING_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/src/simplekey.cpp b/src/third_party/yaml-cpp-0.5.1/src/simplekey.cpp
deleted file mode 100644
index 857a9e0b8d7..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/simplekey.cpp
+++ /dev/null
@@ -1,139 +0,0 @@
-#include "scanner.h"
-#include "token.h"
-#include "yaml-cpp/exceptions.h"
-#include "exp.h"
-
-namespace YAML
-{
- Scanner::SimpleKey::SimpleKey(const Mark& mark_, int flowLevel_)
- : mark(mark_), flowLevel(flowLevel_), pIndent(0), pMapStart(0), pKey(0)
- {
- }
-
- void Scanner::SimpleKey::Validate()
- {
- // Note: pIndent will *not* be garbage here;
- // we "garbage collect" them so we can
- // always refer to them
- if(pIndent)
- pIndent->status = IndentMarker::VALID;
- if(pMapStart)
- pMapStart->status = Token::VALID;
- if(pKey)
- pKey->status = Token::VALID;
- }
-
- void Scanner::SimpleKey::Invalidate()
- {
- if(pIndent)
- pIndent->status = IndentMarker::INVALID;
- if(pMapStart)
- pMapStart->status = Token::INVALID;
- if(pKey)
- pKey->status = Token::INVALID;
- }
-
- // CanInsertPotentialSimpleKey
- bool Scanner::CanInsertPotentialSimpleKey() const
- {
- if(!m_simpleKeyAllowed)
- return false;
-
- return !ExistsActiveSimpleKey();
- }
-
- // ExistsActiveSimpleKey
- // . Returns true if there's a potential simple key at our flow level
- // (there's allowed at most one per flow level, i.e., at the start of the flow start token)
- bool Scanner::ExistsActiveSimpleKey() const
- {
- if(m_simpleKeys.empty())
- return false;
-
- const SimpleKey& key = m_simpleKeys.top();
- return key.flowLevel == GetFlowLevel();
- }
-
- // InsertPotentialSimpleKey
- // . If we can, add a potential simple key to the queue,
- // and save it on a stack.
- void Scanner::InsertPotentialSimpleKey()
- {
- if(!CanInsertPotentialSimpleKey())
- return;
-
- SimpleKey key(INPUT.mark(), GetFlowLevel());
-
- // first add a map start, if necessary
- if(InBlockContext()) {
- key.pIndent = PushIndentTo(INPUT.column(), IndentMarker::MAP);
- if(key.pIndent) {
- key.pIndent->status = IndentMarker::UNKNOWN;
- key.pMapStart = key.pIndent->pStartToken;
- key.pMapStart->status = Token::UNVERIFIED;
- }
- }
-
- // then add the (now unverified) key
- m_tokens.push(Token(Token::KEY, INPUT.mark()));
- key.pKey = &m_tokens.back();
- key.pKey->status = Token::UNVERIFIED;
-
- m_simpleKeys.push(key);
- }
-
- // InvalidateSimpleKey
- // . Automatically invalidate the simple key in our flow level
- void Scanner::InvalidateSimpleKey()
- {
- if(m_simpleKeys.empty())
- return;
-
- // grab top key
- SimpleKey& key = m_simpleKeys.top();
- if(key.flowLevel != GetFlowLevel())
- return;
-
- key.Invalidate();
- m_simpleKeys.pop();
- }
-
- // VerifySimpleKey
- // . Determines whether the latest simple key to be added is valid,
- // and if so, makes it valid.
- bool Scanner::VerifySimpleKey()
- {
- if(m_simpleKeys.empty())
- return false;
-
- // grab top key
- SimpleKey key = m_simpleKeys.top();
-
- // only validate if we're in the correct flow level
- if(key.flowLevel != GetFlowLevel())
- return false;
-
- m_simpleKeys.pop();
-
- bool isValid = true;
-
- // needs to be less than 1024 characters and inline
- if(INPUT.line() != key.mark.line || INPUT.pos() - key.mark.pos > 1024)
- isValid = false;
-
- // invalidate key
- if(isValid)
- key.Validate();
- else
- key.Invalidate();
-
- return isValid;
- }
-
- void Scanner::PopAllSimpleKeys()
- {
- while(!m_simpleKeys.empty())
- m_simpleKeys.pop();
- }
-}
-
diff --git a/src/third_party/yaml-cpp-0.5.1/src/singledocparser.cpp b/src/third_party/yaml-cpp-0.5.1/src/singledocparser.cpp
deleted file mode 100644
index e9f3222f1ad..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/singledocparser.cpp
+++ /dev/null
@@ -1,394 +0,0 @@
-#include "singledocparser.h"
-#include "collectionstack.h"
-#include "directives.h"
-#include "yaml-cpp/eventhandler.h"
-#include "yaml-cpp/exceptions.h"
-#include "scanner.h"
-#include "tag.h"
-#include "token.h"
-#include <sstream>
-#include <cstdio>
-#include <algorithm>
-
-namespace YAML
-{
- SingleDocParser::SingleDocParser(Scanner& scanner, const Directives& directives): m_scanner(scanner), m_directives(directives), m_pCollectionStack(new CollectionStack), m_curAnchor(0)
- {
- }
-
- SingleDocParser::~SingleDocParser()
- {
- }
-
- // HandleDocument
- // . Handles the next document
- // . Throws a ParserException on error.
- void SingleDocParser::HandleDocument(EventHandler& eventHandler)
- {
- assert(!m_scanner.empty()); // guaranteed that there are tokens
- assert(!m_curAnchor);
-
- eventHandler.OnDocumentStart(m_scanner.peek().mark);
-
- // eat doc start
- if(m_scanner.peek().type == Token::DOC_START)
- m_scanner.pop();
-
- // recurse!
- HandleNode(eventHandler);
-
- eventHandler.OnDocumentEnd();
-
- // and finally eat any doc ends we see
- while(!m_scanner.empty() && m_scanner.peek().type == Token::DOC_END)
- m_scanner.pop();
- }
-
- void SingleDocParser::HandleNode(EventHandler& eventHandler)
- {
- // an empty node *is* a possibility
- if(m_scanner.empty()) {
- eventHandler.OnNull(m_scanner.mark(), NullAnchor);
- return;
- }
-
- // save location
- Mark mark = m_scanner.peek().mark;
-
- // special case: a value node by itself must be a map, with no header
- if(m_scanner.peek().type == Token::VALUE) {
- eventHandler.OnMapStart(mark, "?", NullAnchor);
- HandleMap(eventHandler);
- eventHandler.OnMapEnd();
- return;
- }
-
- // special case: an alias node
- if(m_scanner.peek().type == Token::ALIAS) {
- eventHandler.OnAlias(mark, LookupAnchor(mark, m_scanner.peek().value));
- m_scanner.pop();
- return;
- }
-
- std::string tag;
- anchor_t anchor;
- ParseProperties(tag, anchor);
-
- const Token& token = m_scanner.peek();
-
- if(token.type == Token::PLAIN_SCALAR && token.value == "null") {
- eventHandler.OnNull(mark, anchor);
- m_scanner.pop();
- return;
- }
-
- // add non-specific tags
- if(tag.empty())
- tag = (token.type == Token::NON_PLAIN_SCALAR ? "!" : "?");
-
- // now split based on what kind of node we should be
- switch(token.type) {
- case Token::PLAIN_SCALAR:
- case Token::NON_PLAIN_SCALAR:
- eventHandler.OnScalar(mark, tag, anchor, token.value);
- m_scanner.pop();
- return;
- case Token::FLOW_SEQ_START:
- case Token::BLOCK_SEQ_START:
- eventHandler.OnSequenceStart(mark, tag, anchor);
- HandleSequence(eventHandler);
- eventHandler.OnSequenceEnd();
- return;
- case Token::FLOW_MAP_START:
- case Token::BLOCK_MAP_START:
- eventHandler.OnMapStart(mark, tag, anchor);
- HandleMap(eventHandler);
- eventHandler.OnMapEnd();
- return;
- case Token::KEY:
- // compact maps can only go in a flow sequence
- if(m_pCollectionStack->GetCurCollectionType() == CollectionType::FlowSeq) {
- eventHandler.OnMapStart(mark, tag, anchor);
- HandleMap(eventHandler);
- eventHandler.OnMapEnd();
- return;
- }
- break;
- default:
- break;
- }
-
- if(tag == "?")
- eventHandler.OnNull(mark, anchor);
- else
- eventHandler.OnScalar(mark, tag, anchor, "");
- }
-
- void SingleDocParser::HandleSequence(EventHandler& eventHandler)
- {
- // split based on start token
- switch(m_scanner.peek().type) {
- case Token::BLOCK_SEQ_START: HandleBlockSequence(eventHandler); break;
- case Token::FLOW_SEQ_START: HandleFlowSequence(eventHandler); break;
- default: break;
- }
- }
-
- void SingleDocParser::HandleBlockSequence(EventHandler& eventHandler)
- {
- // eat start token
- m_scanner.pop();
- m_pCollectionStack->PushCollectionType(CollectionType::BlockSeq);
-
- while(1) {
- if(m_scanner.empty())
- throw ParserException(m_scanner.mark(), ErrorMsg::END_OF_SEQ);
-
- Token token = m_scanner.peek();
- if(token.type != Token::BLOCK_ENTRY && token.type != Token::BLOCK_SEQ_END)
- throw ParserException(token.mark, ErrorMsg::END_OF_SEQ);
-
- m_scanner.pop();
- if(token.type == Token::BLOCK_SEQ_END)
- break;
-
- // check for null
- if(!m_scanner.empty()) {
- const Token& token = m_scanner.peek();
- if(token.type == Token::BLOCK_ENTRY || token.type == Token::BLOCK_SEQ_END) {
- eventHandler.OnNull(token.mark, NullAnchor);
- continue;
- }
- }
-
- HandleNode(eventHandler);
- }
-
- m_pCollectionStack->PopCollectionType(CollectionType::BlockSeq);
- }
-
- void SingleDocParser::HandleFlowSequence(EventHandler& eventHandler)
- {
- // eat start token
- m_scanner.pop();
- m_pCollectionStack->PushCollectionType(CollectionType::FlowSeq);
-
- while(1) {
- if(m_scanner.empty())
- throw ParserException(m_scanner.mark(), ErrorMsg::END_OF_SEQ_FLOW);
-
- // first check for end
- if(m_scanner.peek().type == Token::FLOW_SEQ_END) {
- m_scanner.pop();
- break;
- }
-
- // then read the node
- HandleNode(eventHandler);
-
- if(m_scanner.empty())
- throw ParserException(m_scanner.mark(), ErrorMsg::END_OF_SEQ_FLOW);
-
- // now eat the separator (or could be a sequence end, which we ignore - but if it's neither, then it's a bad node)
- Token& token = m_scanner.peek();
- if(token.type == Token::FLOW_ENTRY)
- m_scanner.pop();
- else if(token.type != Token::FLOW_SEQ_END)
- throw ParserException(token.mark, ErrorMsg::END_OF_SEQ_FLOW);
- }
-
- m_pCollectionStack->PopCollectionType(CollectionType::FlowSeq);
- }
-
- void SingleDocParser::HandleMap(EventHandler& eventHandler)
- {
- // split based on start token
- switch(m_scanner.peek().type) {
- case Token::BLOCK_MAP_START: HandleBlockMap(eventHandler); break;
- case Token::FLOW_MAP_START: HandleFlowMap(eventHandler); break;
- case Token::KEY: HandleCompactMap(eventHandler); break;
- case Token::VALUE: HandleCompactMapWithNoKey(eventHandler); break;
- default: break;
- }
- }
-
- void SingleDocParser::HandleBlockMap(EventHandler& eventHandler)
- {
- // eat start token
- m_scanner.pop();
- m_pCollectionStack->PushCollectionType(CollectionType::BlockMap);
-
- while(1) {
- if(m_scanner.empty())
- throw ParserException(m_scanner.mark(), ErrorMsg::END_OF_MAP);
-
- Token token = m_scanner.peek();
- if(token.type != Token::KEY && token.type != Token::VALUE && token.type != Token::BLOCK_MAP_END)
- throw ParserException(token.mark, ErrorMsg::END_OF_MAP);
-
- if(token.type == Token::BLOCK_MAP_END) {
- m_scanner.pop();
- break;
- }
-
- // grab key (if non-null)
- if(token.type == Token::KEY) {
- m_scanner.pop();
- HandleNode(eventHandler);
- } else {
- eventHandler.OnNull(token.mark, NullAnchor);
- }
-
- // now grab value (optional)
- if(!m_scanner.empty() && m_scanner.peek().type == Token::VALUE) {
- m_scanner.pop();
- HandleNode(eventHandler);
- } else {
- eventHandler.OnNull(token.mark, NullAnchor);
- }
- }
-
- m_pCollectionStack->PopCollectionType(CollectionType::BlockMap);
- }
-
- void SingleDocParser::HandleFlowMap(EventHandler& eventHandler)
- {
- // eat start token
- m_scanner.pop();
- m_pCollectionStack->PushCollectionType(CollectionType::FlowMap);
-
- while(1) {
- if(m_scanner.empty())
- throw ParserException(m_scanner.mark(), ErrorMsg::END_OF_MAP_FLOW);
-
- Token& token = m_scanner.peek();
- const Mark mark = token.mark;
- // first check for end
- if(token.type == Token::FLOW_MAP_END) {
- m_scanner.pop();
- break;
- }
-
- // grab key (if non-null)
- if(token.type == Token::KEY) {
- m_scanner.pop();
- HandleNode(eventHandler);
- } else {
- eventHandler.OnNull(mark, NullAnchor);
- }
-
- // now grab value (optional)
- if(!m_scanner.empty() && m_scanner.peek().type == Token::VALUE) {
- m_scanner.pop();
- HandleNode(eventHandler);
- } else {
- eventHandler.OnNull(mark, NullAnchor);
- }
-
- if(m_scanner.empty())
- throw ParserException(m_scanner.mark(), ErrorMsg::END_OF_MAP_FLOW);
-
- // now eat the separator (or could be a map end, which we ignore - but if it's neither, then it's a bad node)
- Token& nextToken = m_scanner.peek();
- if(nextToken.type == Token::FLOW_ENTRY)
- m_scanner.pop();
- else if(nextToken.type != Token::FLOW_MAP_END)
- throw ParserException(nextToken.mark, ErrorMsg::END_OF_MAP_FLOW);
- }
-
- m_pCollectionStack->PopCollectionType(CollectionType::FlowMap);
- }
-
- // . Single "key: value" pair in a flow sequence
- void SingleDocParser::HandleCompactMap(EventHandler& eventHandler)
- {
- m_pCollectionStack->PushCollectionType(CollectionType::CompactMap);
-
- // grab key
- Mark mark = m_scanner.peek().mark;
- m_scanner.pop();
- HandleNode(eventHandler);
-
- // now grab value (optional)
- if(!m_scanner.empty() && m_scanner.peek().type == Token::VALUE) {
- m_scanner.pop();
- HandleNode(eventHandler);
- } else {
- eventHandler.OnNull(mark, NullAnchor);
- }
-
- m_pCollectionStack->PopCollectionType(CollectionType::CompactMap);
- }
-
- // . Single ": value" pair in a flow sequence
- void SingleDocParser::HandleCompactMapWithNoKey(EventHandler& eventHandler)
- {
- m_pCollectionStack->PushCollectionType(CollectionType::CompactMap);
-
- // null key
- eventHandler.OnNull(m_scanner.peek().mark, NullAnchor);
-
- // grab value
- m_scanner.pop();
- HandleNode(eventHandler);
-
- m_pCollectionStack->PopCollectionType(CollectionType::CompactMap);
- }
-
- // ParseProperties
- // . Grabs any tag or anchor tokens and deals with them.
- void SingleDocParser::ParseProperties(std::string& tag, anchor_t& anchor)
- {
- tag.clear();
- anchor = NullAnchor;
-
- while(1) {
- if(m_scanner.empty())
- return;
-
- switch(m_scanner.peek().type) {
- case Token::TAG: ParseTag(tag); break;
- case Token::ANCHOR: ParseAnchor(anchor); break;
- default: return;
- }
- }
- }
-
- void SingleDocParser::ParseTag(std::string& tag)
- {
- Token& token = m_scanner.peek();
- if(!tag.empty())
- throw ParserException(token.mark, ErrorMsg::MULTIPLE_TAGS);
-
- Tag tagInfo(token);
- tag = tagInfo.Translate(m_directives);
- m_scanner.pop();
- }
-
- void SingleDocParser::ParseAnchor(anchor_t& anchor)
- {
- Token& token = m_scanner.peek();
- if(anchor)
- throw ParserException(token.mark, ErrorMsg::MULTIPLE_ANCHORS);
-
- anchor = RegisterAnchor(token.value);
- m_scanner.pop();
- }
-
- anchor_t SingleDocParser::RegisterAnchor(const std::string& name)
- {
- if(name.empty())
- return NullAnchor;
-
- return m_anchors[name] = ++m_curAnchor;
- }
-
- anchor_t SingleDocParser::LookupAnchor(const Mark& mark, const std::string& name) const
- {
- Anchors::const_iterator it = m_anchors.find(name);
- if(it == m_anchors.end())
- throw ParserException(mark, ErrorMsg::UNKNOWN_ANCHOR);
-
- return it->second;
- }
-}
diff --git a/src/third_party/yaml-cpp-0.5.1/src/singledocparser.h b/src/third_party/yaml-cpp-0.5.1/src/singledocparser.h
deleted file mode 100644
index 3798dccf25d..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/singledocparser.h
+++ /dev/null
@@ -1,65 +0,0 @@
-#ifndef SINGLEDOCPARSER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define SINGLEDOCPARSER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-
-#include "yaml-cpp/anchor.h"
-#include "yaml-cpp/noncopyable.h"
-#include <string>
-#include <map>
-#include <memory>
-
-namespace YAML
-{
- struct Directives;
- struct Mark;
- struct Token;
- class CollectionStack;
- class EventHandler;
- class Node;
- class Scanner;
-
- class SingleDocParser: private noncopyable
- {
- public:
- SingleDocParser(Scanner& scanner, const Directives& directives);
- ~SingleDocParser();
-
- void HandleDocument(EventHandler& eventHandler);
-
- private:
- void HandleNode(EventHandler& eventHandler);
-
- void HandleSequence(EventHandler& eventHandler);
- void HandleBlockSequence(EventHandler& eventHandler);
- void HandleFlowSequence(EventHandler& eventHandler);
-
- void HandleMap(EventHandler& eventHandler);
- void HandleBlockMap(EventHandler& eventHandler);
- void HandleFlowMap(EventHandler& eventHandler);
- void HandleCompactMap(EventHandler& eventHandler);
- void HandleCompactMapWithNoKey(EventHandler& eventHandler);
-
- void ParseProperties(std::string& tag, anchor_t& anchor);
- void ParseTag(std::string& tag);
- void ParseAnchor(anchor_t& anchor);
-
- anchor_t RegisterAnchor(const std::string& name);
- anchor_t LookupAnchor(const Mark& mark, const std::string& name) const;
-
- private:
- Scanner& m_scanner;
- const Directives& m_directives;
- std::auto_ptr<CollectionStack> m_pCollectionStack;
-
- typedef std::map<std::string, anchor_t> Anchors;
- Anchors m_anchors;
-
- anchor_t m_curAnchor;
- };
-}
-
-#endif // SINGLEDOCPARSER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/src/stream.cpp b/src/third_party/yaml-cpp-0.5.1/src/stream.cpp
deleted file mode 100644
index efab7e2bcc7..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/stream.cpp
+++ /dev/null
@@ -1,447 +0,0 @@
-#include "stream.h"
-#include <iostream>
-#include "exp.h"
-
-#ifndef YAML_PREFETCH_SIZE
-#define YAML_PREFETCH_SIZE 2048
-#endif
-
-#define S_ARRAY_SIZE( A ) (sizeof(A)/sizeof(*(A)))
-#define S_ARRAY_END( A ) ((A) + S_ARRAY_SIZE(A))
-
-#define CP_REPLACEMENT_CHARACTER (0xFFFD)
-
-namespace YAML
-{
- enum UtfIntroState {
- uis_start,
- uis_utfbe_b1,
- uis_utf32be_b2,
- uis_utf32be_bom3,
- uis_utf32be,
- uis_utf16be,
- uis_utf16be_bom1,
- uis_utfle_bom1,
- uis_utf16le_bom2,
- uis_utf32le_bom3,
- uis_utf16le,
- uis_utf32le,
- uis_utf8_imp,
- uis_utf16le_imp,
- uis_utf32le_imp3,
- uis_utf8_bom1,
- uis_utf8_bom2,
- uis_utf8,
- uis_error
- };
-
- enum UtfIntroCharType {
- uict00,
- uictBB,
- uictBF,
- uictEF,
- uictFE,
- uictFF,
- uictAscii,
- uictOther,
- uictMax
- };
-
- static bool s_introFinalState[] = {
- false, //uis_start
- false, //uis_utfbe_b1
- false, //uis_utf32be_b2
- false, //uis_utf32be_bom3
- true, //uis_utf32be
- true, //uis_utf16be
- false, //uis_utf16be_bom1
- false, //uis_utfle_bom1
- false, //uis_utf16le_bom2
- false, //uis_utf32le_bom3
- true, //uis_utf16le
- true, //uis_utf32le
- false, //uis_utf8_imp
- false, //uis_utf16le_imp
- false, //uis_utf32le_imp3
- false, //uis_utf8_bom1
- false, //uis_utf8_bom2
- true, //uis_utf8
- true, //uis_error
- };
-
- static UtfIntroState s_introTransitions[][uictMax] = {
- // uict00, uictBB, uictBF, uictEF, uictFE, uictFF, uictAscii, uictOther
- {uis_utfbe_b1, uis_utf8, uis_utf8, uis_utf8_bom1, uis_utf16be_bom1, uis_utfle_bom1, uis_utf8_imp, uis_utf8},
- {uis_utf32be_b2, uis_utf8, uis_utf8, uis_utf8, uis_utf8, uis_utf8, uis_utf16be, uis_utf8},
- {uis_utf32be, uis_utf8, uis_utf8, uis_utf8, uis_utf32be_bom3, uis_utf8, uis_utf8, uis_utf8},
- {uis_utf8, uis_utf8, uis_utf8, uis_utf8, uis_utf8, uis_utf32be, uis_utf8, uis_utf8},
- {uis_utf32be, uis_utf32be, uis_utf32be, uis_utf32be, uis_utf32be, uis_utf32be, uis_utf32be, uis_utf32be},
- {uis_utf16be, uis_utf16be, uis_utf16be, uis_utf16be, uis_utf16be, uis_utf16be, uis_utf16be, uis_utf16be},
- {uis_utf8, uis_utf8, uis_utf8, uis_utf8, uis_utf8, uis_utf16be, uis_utf8, uis_utf8},
- {uis_utf8, uis_utf8, uis_utf8, uis_utf8, uis_utf16le_bom2, uis_utf8, uis_utf8, uis_utf8},
- {uis_utf32le_bom3, uis_utf16le, uis_utf16le, uis_utf16le, uis_utf16le, uis_utf16le, uis_utf16le, uis_utf16le},
- {uis_utf32le, uis_utf16le, uis_utf16le, uis_utf16le, uis_utf16le, uis_utf16le, uis_utf16le, uis_utf16le},
- {uis_utf16le, uis_utf16le, uis_utf16le, uis_utf16le, uis_utf16le, uis_utf16le, uis_utf16le, uis_utf16le},
- {uis_utf32le, uis_utf32le, uis_utf32le, uis_utf32le, uis_utf32le, uis_utf32le, uis_utf32le, uis_utf32le},
- {uis_utf16le_imp, uis_utf8, uis_utf8, uis_utf8, uis_utf8, uis_utf8, uis_utf8, uis_utf8},
- {uis_utf32le_imp3, uis_utf16le, uis_utf16le, uis_utf16le, uis_utf16le, uis_utf16le, uis_utf16le, uis_utf16le},
- {uis_utf32le, uis_utf16le, uis_utf16le, uis_utf16le, uis_utf16le, uis_utf16le, uis_utf16le, uis_utf16le},
- {uis_utf8, uis_utf8_bom2, uis_utf8, uis_utf8, uis_utf8, uis_utf8, uis_utf8, uis_utf8},
- {uis_utf8, uis_utf8, uis_utf8, uis_utf8, uis_utf8, uis_utf8, uis_utf8, uis_utf8},
- {uis_utf8, uis_utf8, uis_utf8, uis_utf8, uis_utf8, uis_utf8, uis_utf8, uis_utf8},
- };
-
- static char s_introUngetCount[][uictMax] = {
- // uict00, uictBB, uictBF, uictEF, uictFE, uictFF, uictAscii, uictOther
- {0, 1, 1, 0, 0, 0, 0, 1},
- {0, 2, 2, 2, 2, 2, 2, 2},
- {3, 3, 3, 3, 0, 3, 3, 3},
- {4, 4, 4, 4, 4, 0, 4, 4},
- {1, 1, 1, 1, 1, 1, 1, 1},
- {1, 1, 1, 1, 1, 1, 1, 1},
- {2, 2, 2, 2, 2, 0, 2, 2},
- {2, 2, 2, 2, 0, 2, 2, 2},
- {0, 1, 1, 1, 1, 1, 1, 1},
- {0, 2, 2, 2, 2, 2, 2, 2},
- {1, 1, 1, 1, 1, 1, 1, 1},
- {1, 1, 1, 1, 1, 1, 1, 1},
- {0, 2, 2, 2, 2, 2, 2, 2},
- {0, 3, 3, 3, 3, 3, 3, 3},
- {4, 4, 4, 4, 4, 4, 4, 4},
- {2, 0, 2, 2, 2, 2, 2, 2},
- {3, 3, 0, 3, 3, 3, 3, 3},
- {1, 1, 1, 1, 1, 1, 1, 1},
- };
-
- inline UtfIntroCharType IntroCharTypeOf(std::istream::int_type ch)
- {
- if (std::istream::traits_type::eof() == ch) {
- return uictOther;
- }
-
- switch (ch) {
- case 0: return uict00;
- case 0xBB: return uictBB;
- case 0xBF: return uictBF;
- case 0xEF: return uictEF;
- case 0xFE: return uictFE;
- case 0xFF: return uictFF;
- }
-
- if ((ch > 0) && (ch < 0xFF)) {
- return uictAscii;
- }
-
- return uictOther;
- }
-
- inline char Utf8Adjust(unsigned long ch, unsigned char lead_bits, unsigned char rshift)
- {
- const unsigned char header = ((1 << lead_bits) - 1) << (8 - lead_bits);
- const unsigned char mask = (0xFF >> (lead_bits + 1));
- return static_cast<char>(static_cast<unsigned char>(
- header | ((ch >> rshift) & mask)
- ));
- }
-
- inline void QueueUnicodeCodepoint(std::deque<char>& q, unsigned long ch)
- {
- // We are not allowed to queue the Stream::eof() codepoint, so
- // replace it with CP_REPLACEMENT_CHARACTER
- if (static_cast<unsigned long>(Stream::eof()) == ch)
- {
- ch = CP_REPLACEMENT_CHARACTER;
- }
-
- if (ch < 0x80)
- {
- q.push_back(Utf8Adjust(ch, 0, 0));
- }
- else if (ch < 0x800)
- {
- q.push_back(Utf8Adjust(ch, 2, 6));
- q.push_back(Utf8Adjust(ch, 1, 0));
- }
- else if (ch < 0x10000)
- {
- q.push_back(Utf8Adjust(ch, 3, 12));
- q.push_back(Utf8Adjust(ch, 1, 6));
- q.push_back(Utf8Adjust(ch, 1, 0));
- }
- else
- {
- q.push_back(Utf8Adjust(ch, 4, 18));
- q.push_back(Utf8Adjust(ch, 1, 12));
- q.push_back(Utf8Adjust(ch, 1, 6));
- q.push_back(Utf8Adjust(ch, 1, 0));
- }
- }
-
- Stream::Stream(std::istream& input)
- : m_input(input),
- m_pPrefetched(new unsigned char[YAML_PREFETCH_SIZE]),
- m_nPrefetchedAvailable(0), m_nPrefetchedUsed(0)
- {
- typedef std::istream::traits_type char_traits;
-
- if(!input)
- return;
-
- // Determine (or guess) the character-set by reading the BOM, if any. See
- // the YAML specification for the determination algorithm.
- char_traits::int_type intro[4];
- int nIntroUsed = 0;
- UtfIntroState state = uis_start;
- for(; !s_introFinalState[state]; ) {
- std::istream::int_type ch = input.get();
- intro[nIntroUsed++] = ch;
- UtfIntroCharType charType = IntroCharTypeOf(ch);
- UtfIntroState newState = s_introTransitions[state][charType];
- int nUngets = s_introUngetCount[state][charType];
- if(nUngets > 0) {
- input.clear();
- for(; nUngets > 0; --nUngets) {
- if(char_traits::eof() != intro[--nIntroUsed])
- input.putback(char_traits::to_char_type(intro[nIntroUsed]));
- }
- }
- state = newState;
- }
-
- switch (state) {
- case uis_utf8: m_charSet = utf8; break;
- case uis_utf16le: m_charSet = utf16le; break;
- case uis_utf16be: m_charSet = utf16be; break;
- case uis_utf32le: m_charSet = utf32le; break;
- case uis_utf32be: m_charSet = utf32be; break;
- default: m_charSet = utf8; break;
- }
-
- ReadAheadTo(0);
- }
-
- Stream::~Stream()
- {
- delete[] m_pPrefetched;
- }
-
- char Stream::peek() const
- {
- if (m_readahead.empty())
- {
- return Stream::eof();
- }
-
- return m_readahead[0];
- }
-
- Stream::operator bool() const
- {
- return m_input.good() || (!m_readahead.empty() && m_readahead[0] != Stream::eof());
- }
-
- // get
- // . Extracts a character from the stream and updates our position
- char Stream::get()
- {
- char ch = peek();
- AdvanceCurrent();
- m_mark.column++;
-
- if(ch == '\n') {
- m_mark.column = 0;
- m_mark.line++;
- }
-
- return ch;
- }
-
- // get
- // . Extracts 'n' characters from the stream and updates our position
- std::string Stream::get(int n)
- {
- std::string ret;
- ret.reserve(n);
- for(int i=0;i<n;i++)
- ret += get();
- return ret;
- }
-
- // eat
- // . Eats 'n' characters and updates our position.
- void Stream::eat(int n)
- {
- for(int i=0;i<n;i++)
- get();
- }
-
- void Stream::AdvanceCurrent()
- {
- if (!m_readahead.empty())
- {
- m_readahead.pop_front();
- m_mark.pos++;
- }
-
- ReadAheadTo(0);
- }
-
- bool Stream::_ReadAheadTo(size_t i) const
- {
- while (m_input.good() && (m_readahead.size() <= i))
- {
- switch (m_charSet)
- {
- case utf8: StreamInUtf8(); break;
- case utf16le: StreamInUtf16(); break;
- case utf16be: StreamInUtf16(); break;
- case utf32le: StreamInUtf32(); break;
- case utf32be: StreamInUtf32(); break;
- }
- }
-
- // signal end of stream
- if(!m_input.good())
- m_readahead.push_back(Stream::eof());
-
- return m_readahead.size() > i;
- }
-
- void Stream::StreamInUtf8() const
- {
- unsigned char b = GetNextByte();
- if (m_input.good())
- {
- m_readahead.push_back(b);
- }
- }
-
- void Stream::StreamInUtf16() const
- {
- unsigned long ch = 0;
- unsigned char bytes[2];
- int nBigEnd = (m_charSet == utf16be) ? 0 : 1;
-
- bytes[0] = GetNextByte();
- bytes[1] = GetNextByte();
- if (!m_input.good())
- {
- return;
- }
- ch = (static_cast<unsigned long>(bytes[nBigEnd]) << 8) |
- static_cast<unsigned long>(bytes[1 ^ nBigEnd]);
-
- if (ch >= 0xDC00 && ch < 0xE000)
- {
- // Trailing (low) surrogate...ugh, wrong order
- QueueUnicodeCodepoint(m_readahead, CP_REPLACEMENT_CHARACTER);
- return;
- }
- else if (ch >= 0xD800 && ch < 0xDC00)
- {
- // ch is a leading (high) surrogate
-
- // Four byte UTF-8 code point
-
- // Read the trailing (low) surrogate
- for (;;)
- {
- bytes[0] = GetNextByte();
- bytes[1] = GetNextByte();
- if (!m_input.good())
- {
- QueueUnicodeCodepoint(m_readahead, CP_REPLACEMENT_CHARACTER);
- return;
- }
- unsigned long chLow = (static_cast<unsigned long>(bytes[nBigEnd]) << 8) |
- static_cast<unsigned long>(bytes[1 ^ nBigEnd]);
- if (chLow < 0xDC00 || ch >= 0xE000)
- {
- // Trouble...not a low surrogate. Dump a REPLACEMENT CHARACTER into the stream.
- QueueUnicodeCodepoint(m_readahead, CP_REPLACEMENT_CHARACTER);
-
- // Deal with the next UTF-16 unit
- if (chLow < 0xD800 || ch >= 0xE000)
- {
- // Easiest case: queue the codepoint and return
- QueueUnicodeCodepoint(m_readahead, ch);
- return;
- }
- else
- {
- // Start the loop over with the new high surrogate
- ch = chLow;
- continue;
- }
- }
-
- // Select the payload bits from the high surrogate
- ch &= 0x3FF;
- ch <<= 10;
-
- // Include bits from low surrogate
- ch |= (chLow & 0x3FF);
-
- // Add the surrogacy offset
- ch += 0x10000;
- }
- }
-
- QueueUnicodeCodepoint(m_readahead, ch);
- }
-
- inline char* ReadBuffer(unsigned char* pBuffer)
- {
- return reinterpret_cast<char*>(pBuffer);
- }
-
- unsigned char Stream::GetNextByte() const
- {
- if (m_nPrefetchedUsed >= m_nPrefetchedAvailable)
- {
- std::streambuf *pBuf = m_input.rdbuf();
- m_nPrefetchedAvailable = static_cast<std::size_t>(pBuf->sgetn(ReadBuffer(m_pPrefetched), YAML_PREFETCH_SIZE));
- m_nPrefetchedUsed = 0;
- if (!m_nPrefetchedAvailable)
- {
- m_input.setstate(std::ios_base::eofbit);
- }
-
- if (0 == m_nPrefetchedAvailable)
- {
- return 0;
- }
- }
-
- return m_pPrefetched[m_nPrefetchedUsed++];
- }
-
- void Stream::StreamInUtf32() const
- {
- static int indexes[2][4] = {
- {3, 2, 1, 0},
- {0, 1, 2, 3}
- };
-
- unsigned long ch = 0;
- unsigned char bytes[4];
- int* pIndexes = (m_charSet == utf32be) ? indexes[1] : indexes[0];
-
- bytes[0] = GetNextByte();
- bytes[1] = GetNextByte();
- bytes[2] = GetNextByte();
- bytes[3] = GetNextByte();
- if (!m_input.good())
- {
- return;
- }
-
- for (int i = 0; i < 4; ++i)
- {
- ch <<= 8;
- ch |= bytes[pIndexes[i]];
- }
-
- QueueUnicodeCodepoint(m_readahead, ch);
- }
-}
diff --git a/src/third_party/yaml-cpp-0.5.1/src/stream.h b/src/third_party/yaml-cpp-0.5.1/src/stream.h
deleted file mode 100644
index 87f48dc890e..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/stream.h
+++ /dev/null
@@ -1,79 +0,0 @@
-#ifndef STREAM_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define STREAM_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-
-#include "yaml-cpp/noncopyable.h"
-#include "yaml-cpp/mark.h"
-#include <cstddef>
-#include <deque>
-#include <ios>
-#include <iostream>
-#include <set>
-#include <string>
-
-namespace YAML
-{
- class Stream: private noncopyable
- {
- public:
- friend class StreamCharSource;
-
- Stream(std::istream& input);
- ~Stream();
-
- operator bool() const;
- bool operator !() const { return !static_cast <bool>(*this); }
-
- char peek() const;
- char get();
- std::string get(int n);
- void eat(int n = 1);
-
- static char eof() { return 0x04; }
-
- const Mark mark() const { return m_mark; }
- int pos() const { return m_mark.pos; }
- int line() const { return m_mark.line; }
- int column() const { return m_mark.column; }
- void ResetColumn() { m_mark.column = 0; }
-
- private:
- enum CharacterSet {utf8, utf16le, utf16be, utf32le, utf32be};
-
- std::istream& m_input;
- Mark m_mark;
-
- CharacterSet m_charSet;
- mutable std::deque<char> m_readahead;
- unsigned char* const m_pPrefetched;
- mutable size_t m_nPrefetchedAvailable;
- mutable size_t m_nPrefetchedUsed;
-
- void AdvanceCurrent();
- char CharAt(size_t i) const;
- bool ReadAheadTo(size_t i) const;
- bool _ReadAheadTo(size_t i) const;
- void StreamInUtf8() const;
- void StreamInUtf16() const;
- void StreamInUtf32() const;
- unsigned char GetNextByte() const;
- };
-
- // CharAt
- // . Unchecked access
- inline char Stream::CharAt(size_t i) const {
- return m_readahead[i];
- }
-
- inline bool Stream::ReadAheadTo(size_t i) const {
- if(m_readahead.size() > i)
- return true;
- return _ReadAheadTo(i);
- }
-}
-
-#endif // STREAM_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/src/streamcharsource.h b/src/third_party/yaml-cpp-0.5.1/src/streamcharsource.h
deleted file mode 100644
index 21fae4e1f56..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/streamcharsource.h
+++ /dev/null
@@ -1,48 +0,0 @@
-#ifndef STREAMCHARSOURCE_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define STREAMCHARSOURCE_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-
-#include "yaml-cpp/noncopyable.h"
-#include <cstddef>
-
-namespace YAML
-{
- class StreamCharSource
- {
- public:
- StreamCharSource(const Stream& stream): m_offset(0), m_stream(stream) {}
- StreamCharSource(const StreamCharSource& source): m_offset(source.m_offset), m_stream(source.m_stream) {}
- ~StreamCharSource() {}
-
- operator bool() const;
- char operator [] (std::size_t i) const { return m_stream.CharAt(m_offset + i); }
- bool operator !() const { return !static_cast<bool>(*this); }
-
- const StreamCharSource operator + (int i) const;
-
- private:
- std::size_t m_offset;
- const Stream& m_stream;
-
- StreamCharSource& operator = (const StreamCharSource&); // non-assignable
- };
-
- inline StreamCharSource::operator bool() const {
- return m_stream.ReadAheadTo(m_offset);
- }
-
- inline const StreamCharSource StreamCharSource::operator + (int i) const {
- StreamCharSource source(*this);
- if(static_cast<int> (source.m_offset) + i >= 0)
- source.m_offset += i;
- else
- source.m_offset = 0;
- return source;
- }
-}
-
-#endif // STREAMCHARSOURCE_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/src/stringsource.h b/src/third_party/yaml-cpp-0.5.1/src/stringsource.h
deleted file mode 100644
index 21be3c9a499..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/stringsource.h
+++ /dev/null
@@ -1,47 +0,0 @@
-#ifndef STRINGSOURCE_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define STRINGSOURCE_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-
-#include <cstddef>
-
-namespace YAML
-{
- class StringCharSource
- {
- public:
- StringCharSource(const char *str, std::size_t size): m_str(str), m_size(size), m_offset(0) {}
-
- operator bool() const { return m_offset < m_size; }
- char operator [] (std::size_t i) const { return m_str[m_offset + i]; }
- bool operator !() const { return !static_cast<bool>(*this); }
-
- const StringCharSource operator + (int i) const {
- StringCharSource source(*this);
- if(static_cast<int> (source.m_offset) + i >= 0)
- source.m_offset += i;
- else
- source.m_offset = 0;
- return source;
- }
-
- StringCharSource& operator ++ () {
- ++m_offset;
- return *this;
- }
-
- StringCharSource& operator += (std::size_t offset) {
- m_offset += offset;
- return *this;
- }
- private:
- const char *m_str;
- std::size_t m_size;
- std::size_t m_offset;
- };
-}
-
-#endif // STRINGSOURCE_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/src/tag.cpp b/src/third_party/yaml-cpp-0.5.1/src/tag.cpp
deleted file mode 100644
index 82a47047768..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/tag.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-#include "tag.h"
-#include "directives.h"
-#include "token.h"
-#include <cassert>
-#include <stdexcept>
-
-namespace YAML
-{
- Tag::Tag(const Token& token): type(static_cast<TYPE>(token.data))
- {
- switch(type) {
- case VERBATIM:
- value = token.value;
- break;
- case PRIMARY_HANDLE:
- value = token.value;
- break;
- case SECONDARY_HANDLE:
- value = token.value;
- break;
- case NAMED_HANDLE:
- handle = token.value;
- value = token.params[0];
- break;
- case NON_SPECIFIC:
- break;
- default:
- assert(false);
- }
- }
-
- const std::string Tag::Translate(const Directives& directives)
- {
- switch(type) {
- case VERBATIM:
- return value;
- case PRIMARY_HANDLE:
- return directives.TranslateTagHandle("!") + value;
- case SECONDARY_HANDLE:
- return directives.TranslateTagHandle("!!") + value;
- case NAMED_HANDLE:
- return directives.TranslateTagHandle("!" + handle + "!") + value;
- case NON_SPECIFIC:
- // TODO:
- return "!";
- default:
- assert(false);
- }
- throw std::runtime_error("yaml-cpp: internal error, bad tag type");
- }
-}
-
diff --git a/src/third_party/yaml-cpp-0.5.1/src/tag.h b/src/third_party/yaml-cpp-0.5.1/src/tag.h
deleted file mode 100644
index 5f77548d8b7..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/tag.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef TAG_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define TAG_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-#include <string>
-
-namespace YAML
-{
- struct Token;
- struct Directives;
-
- struct Tag {
- enum TYPE {
- VERBATIM, PRIMARY_HANDLE, SECONDARY_HANDLE, NAMED_HANDLE, NON_SPECIFIC
- };
-
- Tag(const Token& token);
- const std::string Translate(const Directives& directives);
-
- TYPE type;
- std::string handle, value;
- };
-}
-
-#endif // TAG_H_62B23520_7C8E_11DE_8A39_0800200C9A66
diff --git a/src/third_party/yaml-cpp-0.5.1/src/token.h b/src/third_party/yaml-cpp-0.5.1/src/token.h
deleted file mode 100644
index 9807e25879b..00000000000
--- a/src/third_party/yaml-cpp-0.5.1/src/token.h
+++ /dev/null
@@ -1,85 +0,0 @@
-#ifndef TOKEN_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-#define TOKEN_H_62B23520_7C8E_11DE_8A39_0800200C9A66
-
-#if defined(_MSC_VER) || (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
-#pragma once
-#endif
-
-
-#include "yaml-cpp/mark.h"
-#include <iostream>
-#include <string>
-#include <vector>
-
-namespace YAML
-{
- const std::string TokenNames[] = {
- "DIRECTIVE",
- "DOC_START",
- "DOC_END",
- "BLOCK_SEQ_START",
- "BLOCK_MAP_START",
- "BLOCK_SEQ_END",
- "BLOCK_MAP_END",
- "BLOCK_ENTRY",
- "FLOW_SEQ_START",
- "FLOW_MAP_START",
- "FLOW_SEQ_END",
- "FLOW_MAP_END",
- "FLOW_MAP_COMPACT",
- "FLOW_ENTRY",
- "KEY",
- "VALUE",
- "ANCHOR",
- "ALIAS",
- "TAG",
- "SCALAR"
- };
-
- struct Token {
- // enums
- enum STATUS { VALID, INVALID, UNVERIFIED };
- enum TYPE {
- DIRECTIVE,
- DOC_START,
- DOC_END,
- BLOCK_SEQ_START,
- BLOCK_MAP_START,
- BLOCK_SEQ_END,
- BLOCK_MAP_END,
- BLOCK_ENTRY,
- FLOW_SEQ_START,
- FLOW_MAP_START,
- FLOW_SEQ_END,
- FLOW_MAP_END,
- FLOW_MAP_COMPACT,
- FLOW_ENTRY,
- KEY,
- VALUE,
- ANCHOR,
- ALIAS,
- TAG,
- PLAIN_SCALAR,
- NON_PLAIN_SCALAR
- };
-
- // data
- Token(TYPE type_, const Mark& mark_): status(VALID), type(type_), mark(mark_), data(0) {}
-
- friend std::ostream& operator << (std::ostream& out, const Token& token) {
- out << TokenNames[token.type] << std::string(": ") << token.value;
- for(std::size_t i=0;i<token.params.size();i++)
- out << std::string(" ") << token.params[i];
- return out;
- }
-
- STATUS status;
- TYPE type;
- Mark mark;
- std::string value;
- std::vector <std::string> params;
- int data;
- };
-}
-
-#endif // TOKEN_H_62B23520_7C8E_11DE_8A39_0800200C9A66