Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
gaoqiong
yaml-cpp
Commits
3355bbb3
Commit
3355bbb3
authored
Mar 22, 2014
by
Jesse Beder
Browse files
Merge clang-format from core
parents
5b889311
9b4db068
Changes
72
Show whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
1156 additions
and
1002 deletions
+1156
-1002
include/yaml-cpp/anchor.h
include/yaml-cpp/anchor.h
+7
-6
include/yaml-cpp/binary.h
include/yaml-cpp/binary.h
+53
-51
include/yaml-cpp/contrib/anchordict.h
include/yaml-cpp/contrib/anchordict.h
+24
-29
include/yaml-cpp/contrib/graphbuilder.h
include/yaml-cpp/contrib/graphbuilder.h
+135
-121
include/yaml-cpp/dll.h
include/yaml-cpp/dll.h
+26
-17
include/yaml-cpp/emitfromevents.h
include/yaml-cpp/emitfromevents.h
+43
-34
include/yaml-cpp/emitter.h
include/yaml-cpp/emitter.h
+230
-192
include/yaml-cpp/emitterdef.h
include/yaml-cpp/emitterdef.h
+16
-5
include/yaml-cpp/emittermanip.h
include/yaml-cpp/emittermanip.h
+130
-138
include/yaml-cpp/eventhandler.h
include/yaml-cpp/eventhandler.h
+27
-25
include/yaml-cpp/mark.h
include/yaml-cpp/mark.h
+17
-16
include/yaml-cpp/noncopyable.h
include/yaml-cpp/noncopyable.h
+15
-15
include/yaml-cpp/null.h
include/yaml-cpp/null.h
+14
-15
include/yaml-cpp/ostream_wrapper.h
include/yaml-cpp/ostream_wrapper.h
+56
-55
include/yaml-cpp/stlemitter.h
include/yaml-cpp/stlemitter.h
+38
-38
include/yaml-cpp/traits.h
include/yaml-cpp/traits.h
+117
-39
src/binary.cpp
src/binary.cpp
+85
-86
src/collectionstack.h
src/collectionstack.h
+34
-23
src/contrib/graphbuilder.cpp
src/contrib/graphbuilder.cpp
+9
-10
src/contrib/graphbuilderadapter.cpp
src/contrib/graphbuilderadapter.cpp
+80
-87
No files found.
include/yaml-cpp/anchor.h
View file @
3355bbb3
#ifndef ANCHOR_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#ifndef ANCHOR_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#define 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
#if defined(_MSC_VER) || \
(defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \
(__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
#pragma once
#pragma once
#endif
#endif
#include <cstddef>
#include <cstddef>
namespace
YAML
namespace
YAML
{
{
typedef
std
::
size_t
anchor_t
;
typedef
std
::
size_t
anchor_t
;
const
anchor_t
NullAnchor
=
0
;
const
anchor_t
NullAnchor
=
0
;
}
}
#endif // ANCHOR_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#endif // ANCHOR_H_62B23520_7C8E_11DE_8A39_0800200C9A66
include/yaml-cpp/binary.h
View file @
3355bbb3
#ifndef BASE64_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#ifndef BASE64_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#define 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
#if defined(_MSC_VER) || \
(defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \
(__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
#pragma once
#pragma once
#endif
#endif
#include <string>
#include <string>
#include <vector>
#include <vector>
namespace
YAML
namespace
YAML
{
{
std
::
string
EncodeBase64
(
const
unsigned
char
*
data
,
std
::
size_t
size
);
std
::
string
EncodeBase64
(
const
unsigned
char
*
data
,
std
::
size_t
size
);
std
::
vector
<
unsigned
char
>
DecodeBase64
(
const
std
::
string
&
input
);
std
::
vector
<
unsigned
char
>
DecodeBase64
(
const
std
::
string
&
input
);
class
Binary
{
class
Binary
{
public:
public:
Binary
()
:
m_unownedData
(
0
),
m_unownedSize
(
0
)
{}
Binary
()
:
m_unownedData
(
0
),
m_unownedSize
(
0
)
{}
Binary
(
const
unsigned
char
*
data_
,
std
::
size_t
size_
)
:
m_unownedData
(
data_
),
m_unownedSize
(
size_
)
{}
Binary
(
const
unsigned
char
*
data_
,
std
::
size_t
size_
)
:
m_unownedData
(
data_
),
m_unownedSize
(
size_
)
{}
bool
owned
()
const
{
return
!
m_unownedData
;
}
bool
owned
()
const
{
return
!
m_unownedData
;
}
std
::
size_t
size
()
const
{
return
owned
()
?
m_data
.
size
()
:
m_unownedSize
;
}
std
::
size_t
size
()
const
{
return
owned
()
?
m_data
.
size
()
:
m_unownedSize
;
}
const
unsigned
char
*
data
()
const
{
return
owned
()
?
&
m_data
[
0
]
:
m_unownedData
;
}
const
unsigned
char
*
data
()
const
{
return
owned
()
?
&
m_data
[
0
]
:
m_unownedData
;
}
void
swap
(
std
::
vector
<
unsigned
char
>
&
rhs
)
{
void
swap
(
std
::
vector
<
unsigned
char
>
&
rhs
)
{
if
(
m_unownedData
)
{
if
(
m_unownedData
)
{
m_data
.
swap
(
rhs
);
m_data
.
swap
(
rhs
);
rhs
.
clear
();
rhs
.
clear
();
rhs
.
resize
(
m_unownedSize
);
rhs
.
resize
(
m_unownedSize
);
...
@@ -35,28 +39,26 @@ namespace YAML
...
@@ -35,28 +39,26 @@ namespace YAML
}
}
}
}
bool
operator
==
(
const
Binary
&
rhs
)
const
{
bool
operator
==
(
const
Binary
&
rhs
)
const
{
const
std
::
size_t
s
=
size
();
const
std
::
size_t
s
=
size
();
if
(
s
!=
rhs
.
size
())
if
(
s
!=
rhs
.
size
())
return
false
;
return
false
;
const
unsigned
char
*
d1
=
data
();
const
unsigned
char
*
d1
=
data
();
const
unsigned
char
*
d2
=
rhs
.
data
();
const
unsigned
char
*
d2
=
rhs
.
data
();
for
(
std
::
size_t
i
=
0
;
i
<
s
;
i
++
)
{
for
(
std
::
size_t
i
=
0
;
i
<
s
;
i
++
)
{
if
(
*
d1
++
!=
*
d2
++
)
if
(
*
d1
++
!=
*
d2
++
)
return
false
;
return
false
;
}
}
return
true
;
return
true
;
}
}
bool
operator
!=
(
const
Binary
&
rhs
)
const
{
bool
operator
!=
(
const
Binary
&
rhs
)
const
{
return
!
(
*
this
==
rhs
);
}
return
!
(
*
this
==
rhs
);
}
private:
private:
std
::
vector
<
unsigned
char
>
m_data
;
std
::
vector
<
unsigned
char
>
m_data
;
const
unsigned
char
*
m_unownedData
;
const
unsigned
char
*
m_unownedData
;
std
::
size_t
m_unownedSize
;
std
::
size_t
m_unownedSize
;
};
};
}
}
#endif // BASE64_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#endif // BASE64_H_62B23520_7C8E_11DE_8A39_0800200C9A66
include/yaml-cpp/contrib/anchordict.h
View file @
3355bbb3
#ifndef ANCHORDICT_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#ifndef ANCHORDICT_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#define 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
#if defined(_MSC_VER) || \
(defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \
(__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
#pragma once
#pragma once
#endif
#endif
...
@@ -9,34 +11,27 @@
...
@@ -9,34 +11,27 @@
#include "../anchor.h"
#include "../anchor.h"
namespace
YAML
namespace
YAML
{
{
/// AnchorDict
/// AnchorDict
/// . An object that stores and retrieves values correlating to anchor_t
/// . An object that stores and retrieves values correlating to anchor_t
/// values.
/// values.
/// . Efficient implementation that can make assumptions about how anchor_t
/// . Efficient implementation that can make assumptions about how anchor_t
/// values are assigned by the Parser class.
/// values are assigned by the Parser class.
template
<
class
T
>
template
<
class
T
>
class
AnchorDict
{
class
AnchorDict
{
public:
public:
void
Register
(
anchor_t
anchor
,
T
value
)
void
Register
(
anchor_t
anchor
,
T
value
)
{
{
if
(
anchor
>
m_data
.
size
())
{
if
(
anchor
>
m_data
.
size
())
{
m_data
.
resize
(
anchor
);
m_data
.
resize
(
anchor
);
}
}
m_data
[
anchor
-
1
]
=
value
;
m_data
[
anchor
-
1
]
=
value
;
}
}
T
Get
(
anchor_t
anchor
)
const
T
Get
(
anchor_t
anchor
)
const
{
return
m_data
[
anchor
-
1
];
}
{
return
m_data
[
anchor
-
1
];
}
private:
private:
std
::
vector
<
T
>
m_data
;
std
::
vector
<
T
>
m_data
;
};
};
}
}
#endif // ANCHORDICT_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#endif // ANCHORDICT_H_62B23520_7C8E_11DE_8A39_0800200C9A66
include/yaml-cpp/contrib/graphbuilder.h
View file @
3355bbb3
#ifndef GRAPHBUILDER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#ifndef GRAPHBUILDER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#define 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
#if defined(_MSC_VER) || \
(defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \
(__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
#pragma once
#pragma once
#endif
#endif
#include "yaml-cpp/mark.h"
#include "yaml-cpp/mark.h"
#include <string>
#include <string>
namespace
YAML
namespace
YAML
{
{
class
Parser
;
class
Parser
;
// GraphBuilderInterface
// GraphBuilderInterface
// . Abstraction of node creation
// . Abstraction of node creation
// . pParentNode is always NULL or the return value of one of the NewXXX()
// . pParentNode is always NULL or the return value of one of the NewXXX()
// functions.
// functions.
class
GraphBuilderInterface
class
GraphBuilderInterface
{
{
public:
public:
// Create and return a new node with a null value.
// Create and return a new node with a null value.
virtual
void
*
NewNull
(
const
Mark
&
mark
,
void
*
pParentNode
)
=
0
;
virtual
void
*
NewNull
(
const
Mark
&
mark
,
void
*
pParentNode
)
=
0
;
// Create and return a new node with the given tag and value.
// 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
;
virtual
void
*
NewScalar
(
const
Mark
&
mark
,
const
std
::
string
&
tag
,
void
*
pParentNode
,
const
std
::
string
&
value
)
=
0
;
// Create and return a new sequence node
// Create and return a new sequence node
virtual
void
*
NewSequence
(
const
Mark
&
mark
,
const
std
::
string
&
tag
,
void
*
pParentNode
)
=
0
;
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()
// Add pNode to pSequence. pNode was created with one of the NewXxx()
// functions and pSequence with NewSequence().
// functions and pSequence with NewSequence().
virtual
void
AppendToSequence
(
void
*
pSequence
,
void
*
pNode
)
=
0
;
virtual
void
AppendToSequence
(
void
*
pSequence
,
void
*
pNode
)
=
0
;
// Note that no moew entries will be added to pSequence
// Note that no moew entries will be added to pSequence
virtual
void
SequenceComplete
(
void
*
pSequence
)
{(
void
)
pSequence
;}
virtual
void
SequenceComplete
(
void
*
pSequence
)
{
(
void
)
pSequence
;
}
// Create and return a new map node
// Create and return a new map node
virtual
void
*
NewMap
(
const
Mark
&
mark
,
const
std
::
string
&
tag
,
void
*
pParentNode
)
=
0
;
virtual
void
*
NewMap
(
const
Mark
&
mark
,
const
std
::
string
&
tag
,
void
*
pParentNode
)
=
0
;
// Add the pKeyNode => pValueNode mapping to pMap. pKeyNode and pValueNode
// Add the pKeyNode => pValueNode mapping to pMap. pKeyNode and pValueNode
// were created with one of the NewXxx() methods and pMap with NewMap().
// were created with one of the NewXxx() methods and pMap with NewMap().
virtual
void
AssignInMap
(
void
*
pMap
,
void
*
pKeyNode
,
void
*
pValueNode
)
=
0
;
virtual
void
AssignInMap
(
void
*
pMap
,
void
*
pKeyNode
,
void
*
pValueNode
)
=
0
;
// Note that no more assignments will be made in pMap
// Note that no more assignments will be made in pMap
virtual
void
MapComplete
(
void
*
pMap
)
{(
void
)
pMap
;}
virtual
void
MapComplete
(
void
*
pMap
)
{
(
void
)
pMap
;
}
// Return the node that should be used in place of an alias referencing
// Return the node that should be used in place of an alias referencing
// pNode (pNode by default)
// pNode (pNode by default)
virtual
void
*
AnchorReference
(
const
Mark
&
mark
,
void
*
pNode
)
{(
void
)
mark
;
return
pNode
;}
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
// Typesafe wrapper for GraphBuilderInterface. Assumes that Impl defines
// -- including the ones with default implementations -- but with the
// Node, Sequence, and Map types. Sequence and Map must derive from Node
// prototypes changed to accept an explicit Node*, Sequence*, or Map* where
// (unless Node is defined as void). Impl must also implement function with
// appropriate.
// all of the same names as the virtual functions in GraphBuilderInterface
template
<
class
Impl
>
// -- including the ones with default implementations -- but with the
class
GraphBuilder
:
public
GraphBuilderInterface
// prototypes changed to accept an explicit Node*, Sequence*, or Map* where
{
// appropriate.
template
<
class
Impl
>
class
GraphBuilder
:
public
GraphBuilderInterface
{
public:
public:
typedef
typename
Impl
::
Node
Node
;
typedef
typename
Impl
::
Node
Node
;
typedef
typename
Impl
::
Sequence
Sequence
;
typedef
typename
Impl
::
Sequence
Sequence
;
typedef
typename
Impl
::
Map
Map
;
typedef
typename
Impl
::
Map
Map
;
GraphBuilder
(
Impl
&
impl
)
:
m_impl
(
impl
)
GraphBuilder
(
Impl
&
impl
)
:
m_impl
(
impl
)
{
{
Map
*
pMap
=
NULL
;
Map
*
pMap
=
NULL
;
Sequence
*
pSeq
=
NULL
;
Sequence
*
pSeq
=
NULL
;
Node
*
pNode
=
NULL
;
Node
*
pNode
=
NULL
;
// Type consistency checks
// Type consistency checks
pNode
=
pMap
;
pNode
=
pMap
;
pNode
=
pSeq
;
pNode
=
pSeq
;
}
}
GraphBuilderInterface
&
AsBuilderInterface
()
{
return
*
this
;}
GraphBuilderInterface
&
AsBuilderInterface
()
{
return
*
this
;
}
virtual
void
*
NewNull
(
const
Mark
&
mark
,
void
*
pParentNode
)
{
virtual
void
*
NewNull
(
const
Mark
&
mark
,
void
*
pParentNode
)
{
return
CheckType
<
Node
>
(
m_impl
.
NewNull
(
mark
,
AsNode
(
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
)
{
virtual
void
*
NewScalar
(
const
Mark
&
mark
,
const
std
::
string
&
tag
,
return
CheckType
<
Node
>
(
m_impl
.
NewScalar
(
mark
,
tag
,
AsNode
(
pParentNode
),
value
));
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
)
{
virtual
void
*
NewSequence
(
const
Mark
&
mark
,
const
std
::
string
&
tag
,
return
CheckType
<
Sequence
>
(
m_impl
.
NewSequence
(
mark
,
tag
,
AsNode
(
pParentNode
)));
void
*
pParentNode
)
{
return
CheckType
<
Sequence
>
(
m_impl
.
NewSequence
(
mark
,
tag
,
AsNode
(
pParentNode
)));
}
}
virtual
void
AppendToSequence
(
void
*
pSequence
,
void
*
pNode
)
{
virtual
void
AppendToSequence
(
void
*
pSequence
,
void
*
pNode
)
{
m_impl
.
AppendToSequence
(
AsSequence
(
pSequence
),
AsNode
(
pNode
));
m_impl
.
AppendToSequence
(
AsSequence
(
pSequence
),
AsNode
(
pNode
));
...
@@ -92,42 +104,44 @@ namespace YAML
...
@@ -92,42 +104,44 @@ namespace YAML
m_impl
.
SequenceComplete
(
AsSequence
(
pSequence
));
m_impl
.
SequenceComplete
(
AsSequence
(
pSequence
));
}
}
virtual
void
*
NewMap
(
const
Mark
&
mark
,
const
std
::
string
&
tag
,
void
*
pParentNode
)
{
virtual
void
*
NewMap
(
const
Mark
&
mark
,
const
std
::
string
&
tag
,
void
*
pParentNode
)
{
return
CheckType
<
Map
>
(
m_impl
.
NewMap
(
mark
,
tag
,
AsNode
(
pParentNode
)));
return
CheckType
<
Map
>
(
m_impl
.
NewMap
(
mark
,
tag
,
AsNode
(
pParentNode
)));
}
}
virtual
void
AssignInMap
(
void
*
pMap
,
void
*
pKeyNode
,
void
*
pValueNode
)
{
virtual
void
AssignInMap
(
void
*
pMap
,
void
*
pKeyNode
,
void
*
pValueNode
)
{
m_impl
.
AssignInMap
(
AsMap
(
pMap
),
AsNode
(
pKeyNode
),
AsNode
(
pValueNode
));
m_impl
.
AssignInMap
(
AsMap
(
pMap
),
AsNode
(
pKeyNode
),
AsNode
(
pValueNode
));
}
}
virtual
void
MapComplete
(
void
*
pMap
)
{
virtual
void
MapComplete
(
void
*
pMap
)
{
m_impl
.
MapComplete
(
AsMap
(
pMap
));
}
m_impl
.
MapComplete
(
AsMap
(
pMap
));
}
virtual
void
*
AnchorReference
(
const
Mark
&
mark
,
void
*
pNode
)
{
virtual
void
*
AnchorReference
(
const
Mark
&
mark
,
void
*
pNode
)
{
return
CheckType
<
Node
>
(
m_impl
.
AnchorReference
(
mark
,
AsNode
(
pNode
)));
return
CheckType
<
Node
>
(
m_impl
.
AnchorReference
(
mark
,
AsNode
(
pNode
)));
}
}
private:
private:
Impl
&
m_impl
;
Impl
&
m_impl
;
// Static check for pointer to T
// Static check for pointer to T
template
<
class
T
,
class
U
>
template
<
class
T
,
class
U
>
static
T
*
CheckType
(
U
*
p
)
{
return
p
;}
static
T
*
CheckType
(
U
*
p
)
{
return
p
;
}
static
Node
*
AsNode
(
void
*
pNode
)
{
return
static_cast
<
Node
*>
(
pNode
);}
static
Node
*
AsNode
(
void
*
pNode
)
{
return
static_cast
<
Node
*>
(
pNode
);
}
static
Sequence
*
AsSequence
(
void
*
pSeq
)
{
return
static_cast
<
Sequence
*>
(
pSeq
);}
static
Sequence
*
AsSequence
(
void
*
pSeq
)
{
static
Map
*
AsMap
(
void
*
pMap
)
{
return
static_cast
<
Map
*>
(
pMap
);}
return
static_cast
<
Sequence
*>
(
pSeq
);
};
}
static
Map
*
AsMap
(
void
*
pMap
)
{
return
static_cast
<
Map
*>
(
pMap
);
}
};
void
*
BuildGraphOfNextDocument
(
Parser
&
parser
,
GraphBuilderInterface
&
graphBuilder
);
void
*
BuildGraphOfNextDocument
(
Parser
&
parser
,
GraphBuilderInterface
&
graphBuilder
);
template
<
class
Impl
>
template
<
class
Impl
>
typename
Impl
::
Node
*
BuildGraphOfNextDocument
(
Parser
&
parser
,
Impl
&
impl
)
typename
Impl
::
Node
*
BuildGraphOfNextDocument
(
Parser
&
parser
,
Impl
&
impl
)
{
{
GraphBuilder
<
Impl
>
graphBuilder
(
impl
);
GraphBuilder
<
Impl
>
graphBuilder
(
impl
);
return
static_cast
<
typename
Impl
::
Node
*>
(
BuildGraphOfNextDocument
(
return
static_cast
<
typename
Impl
::
Node
*>
(
parser
,
graphBuilder
BuildGraphOfNextDocument
(
parser
,
graphBuilder
));
));
}
}
}
}
#endif // GRAPHBUILDER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#endif // GRAPHBUILDER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
include/yaml-cpp/dll.h
View file @
3355bbb3
#ifndef DLL_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#ifndef DLL_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#define 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
#if defined(_MSC_VER) || \
(defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \
(__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
#pragma once
#pragma once
#endif
#endif
// The following ifdef block is the standard way of creating macros which make exporting
// The following ifdef block is the standard way of creating macros which make
// from a DLL simpler. All files within this DLL are compiled with the yaml_cpp_EXPORTS
// exporting
// symbol defined on the command line. this symbol should not be defined on any project
// from a DLL simpler. All files within this DLL are compiled with the
// that uses this DLL. This way any other project whose source files include this file see
// yaml_cpp_EXPORTS
// YAML_CPP_API functions as being imported from a DLL, whereas this DLL sees symbols
// 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.
// defined with this macro as being exported.
#undef YAML_CPP_API
#undef YAML_CPP_API
#ifdef YAML_CPP_DLL // Using or Building YAML-CPP DLL (definition defined manually)
#ifdef YAML_CPP_DLL // Using or Building YAML-CPP DLL (definition defined
#ifdef yaml_cpp_EXPORTS // Building YAML-CPP DLL (definition created by CMake or defined manually)
// manually)
// #pragma message( "Defining YAML_CPP_API for DLL export" )
#ifdef yaml_cpp_EXPORTS // Building YAML-CPP DLL (definition created by CMake
#define YAML_CPP_API __declspec(dllexport)
// or defined manually)
#else // yaml_cpp_EXPORTS
// #pragma message( "Defining YAML_CPP_API for DLL export" )
// #pragma message( "Defining YAML_CPP_API for DLL import" )
#define YAML_CPP_API __declspec(dllexport)
#define YAML_CPP_API __declspec(dllimport)
#else // yaml_cpp_EXPORTS
#endif // yaml_cpp_EXPORTS
// #pragma message( "Defining YAML_CPP_API for DLL import" )
#else //YAML_CPP_DLL
#define YAML_CPP_API __declspec(dllimport)
#endif // yaml_cpp_EXPORTS
#else // YAML_CPP_DLL
#define YAML_CPP_API
#define YAML_CPP_API
#endif // YAML_CPP_DLL
#endif // YAML_CPP_DLL
...
...
include/yaml-cpp/emitfromevents.h
View file @
3355bbb3
#ifndef EMITFROMEVENTS_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#ifndef EMITFROMEVENTS_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#define 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
#if defined(_MSC_VER) || \
(defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \
(__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
#pragma once
#pragma once
#endif
#endif
#include "yaml-cpp/eventhandler.h"
#include "yaml-cpp/eventhandler.h"
#include <stack>
#include <stack>
namespace
YAML
namespace
YAML
{
{
class
Emitter
;
class
Emitter
;
class
EmitFromEvents
:
public
EventHandler
class
EmitFromEvents
:
public
EventHandler
{
{
public:
public:
EmitFromEvents
(
Emitter
&
emitter
);
EmitFromEvents
(
Emitter
&
emitter
);
...
@@ -22,12 +22,15 @@ namespace YAML
...
@@ -22,12 +22,15 @@ namespace YAML
virtual
void
OnNull
(
const
Mark
&
mark
,
anchor_t
anchor
);
virtual
void
OnNull
(
const
Mark
&
mark
,
anchor_t
anchor
);
virtual
void
OnAlias
(
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
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
OnSequenceStart
(
const
Mark
&
mark
,
const
std
::
string
&
tag
,
anchor_t
anchor
);
virtual
void
OnSequenceEnd
();
virtual
void
OnSequenceEnd
();
virtual
void
OnMapStart
(
const
Mark
&
mark
,
const
std
::
string
&
tag
,
anchor_t
anchor
);
virtual
void
OnMapStart
(
const
Mark
&
mark
,
const
std
::
string
&
tag
,
anchor_t
anchor
);
virtual
void
OnMapEnd
();
virtual
void
OnMapEnd
();
private:
private:
...
@@ -37,9 +40,15 @@ namespace YAML
...
@@ -37,9 +40,15 @@ namespace YAML
private:
private:
Emitter
&
m_emitter
;
Emitter
&
m_emitter
;
struct
State
{
enum
value
{
WaitingForSequenceEntry
,
WaitingForKey
,
WaitingForValue
};
};
struct
State
{
std
::
stack
<
State
::
value
>
m_stateStack
;
enum
value
{
WaitingForSequenceEntry
,
WaitingForKey
,
WaitingForValue
};
};
};
std
::
stack
<
State
::
value
>
m_stateStack
;
};
}
}
#endif // EMITFROMEVENTS_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#endif // EMITFROMEVENTS_H_62B23520_7C8E_11DE_8A39_0800200C9A66
include/yaml-cpp/emitter.h
View file @
3355bbb3
#ifndef EMITTER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#ifndef EMITTER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#define 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
#if defined(_MSC_VER) || \
(defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \
(__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
#pragma once
#pragma once
#endif
#endif
#include "yaml-cpp/dll.h"
#include "yaml-cpp/dll.h"
#include "yaml-cpp/binary.h"
#include "yaml-cpp/binary.h"
#include "yaml-cpp/emitterdef.h"
#include "yaml-cpp/emitterdef.h"
...
@@ -17,19 +18,17 @@
...
@@ -17,19 +18,17 @@
#include <string>
#include <string>
#include <sstream>
#include <sstream>
namespace
YAML
namespace
YAML
{
{
class
EmitterState
;
class
EmitterState
;
class
YAML_CPP_API
Emitter
:
private
noncopyable
class
YAML_CPP_API
Emitter
:
private
noncopyable
{
{
public:
public:
Emitter
();
Emitter
();
explicit
Emitter
(
std
::
ostream
&
stream
);
explicit
Emitter
(
std
::
ostream
&
stream
);
~
Emitter
();
~
Emitter
();
// output
// output
const
char
*
c_str
()
const
;
const
char
*
c_str
()
const
;
std
::
size_t
size
()
const
;
std
::
size_t
size
()
const
;
// state checking
// state checking
...
@@ -72,7 +71,8 @@ namespace YAML
...
@@ -72,7 +71,8 @@ namespace YAML
Emitter
&
WriteStreamable
(
T
value
);
Emitter
&
WriteStreamable
(
T
value
);
private:
private:
template
<
typename
T
>
void
SetStreamablePrecision
(
std
::
stringstream
&
)
{}
template
<
typename
T
>
void
SetStreamablePrecision
(
std
::
stringstream
&
)
{}
unsigned
GetFloatPrecision
()
const
;
unsigned
GetFloatPrecision
()
const
;
unsigned
GetDoublePrecision
()
const
;
unsigned
GetDoublePrecision
()
const
;
...
@@ -111,18 +111,17 @@ namespace YAML
...
@@ -111,18 +111,17 @@ namespace YAML
void
SpaceOrIndentTo
(
bool
requireSpace
,
unsigned
indent
);
void
SpaceOrIndentTo
(
bool
requireSpace
,
unsigned
indent
);
const
char
*
ComputeFullBoolName
(
bool
b
)
const
;
const
char
*
ComputeFullBoolName
(
bool
b
)
const
;
bool
CanEmitNewline
()
const
;
bool
CanEmitNewline
()
const
;
private:
private:
std
::
auto_ptr
<
EmitterState
>
m_pState
;
std
::
auto_ptr
<
EmitterState
>
m_pState
;
ostream_wrapper
m_stream
;
ostream_wrapper
m_stream
;
};
};
template
<
typename
T
>
template
<
typename
T
>
inline
Emitter
&
Emitter
::
WriteIntegralType
(
T
value
)
inline
Emitter
&
Emitter
::
WriteIntegralType
(
T
value
)
{
{
if
(
!
good
())
if
(
!
good
())
return
*
this
;
return
*
this
;
PrepareNode
(
EmitterNodeType
::
Scalar
);
PrepareNode
(
EmitterNodeType
::
Scalar
);
...
@@ -135,12 +134,11 @@ namespace YAML
...
@@ -135,12 +134,11 @@ namespace YAML
StartedScalar
();
StartedScalar
();
return
*
this
;
return
*
this
;
}
}
template
<
typename
T
>
template
<
typename
T
>
inline
Emitter
&
Emitter
::
WriteStreamable
(
T
value
)
inline
Emitter
&
Emitter
::
WriteStreamable
(
T
value
)
{
{
if
(
!
good
())
if
(
!
good
())
return
*
this
;
return
*
this
;
PrepareNode
(
EmitterNodeType
::
Scalar
);
PrepareNode
(
EmitterNodeType
::
Scalar
);
...
@@ -153,57 +151,97 @@ namespace YAML
...
@@ -153,57 +151,97 @@ namespace YAML
StartedScalar
();
StartedScalar
();
return
*
this
;
return
*
this
;
}
}
template
<
>
template
<
>
inline
void
Emitter
::
SetStreamablePrecision
<
float
>
(
std
::
stringstream
&
stream
)
inline
void
Emitter
::
SetStreamablePrecision
<
float
>
(
std
::
stringstream
&
stream
)
{
{
stream
.
precision
(
GetFloatPrecision
());
stream
.
precision
(
GetFloatPrecision
());
}
}
template
<
>
template
<
>
inline
void
Emitter
::
SetStreamablePrecision
<
double
>
(
std
::
stringstream
&
stream
)
inline
void
Emitter
::
SetStreamablePrecision
<
double
>
(
std
::
stringstream
&
stream
)
{
{
stream
.
precision
(
GetDoublePrecision
());
stream
.
precision
(
GetDoublePrecision
());
}
}
// overloads of insertion
// overloads of insertion
inline
Emitter
&
operator
<<
(
Emitter
&
emitter
,
const
std
::
string
&
v
)
{
return
emitter
.
Write
(
v
);
}
inline
Emitter
&
operator
<<
(
Emitter
&
emitter
,
const
std
::
string
&
v
)
{
inline
Emitter
&
operator
<<
(
Emitter
&
emitter
,
bool
v
)
{
return
emitter
.
Write
(
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
,
bool
v
)
{
inline
Emitter
&
operator
<<
(
Emitter
&
emitter
,
const
_Alias
&
v
)
{
return
emitter
.
Write
(
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
,
char
v
)
{
inline
Emitter
&
operator
<<
(
Emitter
&
emitter
,
const
_Comment
&
v
)
{
return
emitter
.
Write
(
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
,
unsigned
char
v
)
{
return
emitter
.
Write
(
static_cast
<
char
>
(
v
));
inline
Emitter
&
operator
<<
(
Emitter
&
emitter
,
const
char
*
v
)
{
return
emitter
.
Write
(
std
::
string
(
v
));
}
}
inline
Emitter
&
operator
<<
(
Emitter
&
emitter
,
const
_Alias
&
v
)
{
inline
Emitter
&
operator
<<
(
Emitter
&
emitter
,
int
v
)
{
return
emitter
.
WriteIntegralType
(
v
);
}
return
emitter
.
Write
(
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
,
const
_Anchor
&
v
)
{
inline
Emitter
&
operator
<<
(
Emitter
&
emitter
,
unsigned
short
v
)
{
return
emitter
.
WriteIntegralType
(
v
);
}
return
emitter
.
Write
(
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
,
const
_Tag
&
v
)
{
inline
Emitter
&
operator
<<
(
Emitter
&
emitter
,
long
long
v
)
{
return
emitter
.
WriteIntegralType
(
v
);
}
return
emitter
.
Write
(
v
);
inline
Emitter
&
operator
<<
(
Emitter
&
emitter
,
unsigned
long
long
v
)
{
return
emitter
.
WriteIntegralType
(
v
);
}
}
inline
Emitter
&
operator
<<
(
Emitter
&
emitter
,
const
_Comment
&
v
)
{
inline
Emitter
&
operator
<<
(
Emitter
&
emitter
,
float
v
)
{
return
emitter
.
WriteStreamable
(
v
);
}
return
emitter
.
Write
(
v
);
inline
Emitter
&
operator
<<
(
Emitter
&
emitter
,
double
v
)
{
return
emitter
.
WriteStreamable
(
v
);
}
}
inline
Emitter
&
operator
<<
(
Emitter
&
emitter
,
const
_Null
&
v
)
{
inline
Emitter
&
operator
<<
(
Emitter
&
emitter
,
EMITTER_MANIP
value
)
{
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
);
return
emitter
.
SetLocalValue
(
value
);
}
}
inline
Emitter
&
operator
<<
(
Emitter
&
emitter
,
_Indent
indent
)
{
inline
Emitter
&
operator
<<
(
Emitter
&
emitter
,
_Indent
indent
)
{
return
emitter
.
SetLocalIndent
(
indent
);
return
emitter
.
SetLocalIndent
(
indent
);
}
}
inline
Emitter
&
operator
<<
(
Emitter
&
emitter
,
_Precision
precision
)
{
inline
Emitter
&
operator
<<
(
Emitter
&
emitter
,
_Precision
precision
)
{
return
emitter
.
SetLocalPrecision
(
precision
);
return
emitter
.
SetLocalPrecision
(
precision
);
}
}
}
}
#endif // EMITTER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#endif // EMITTER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
include/yaml-cpp/emitterdef.h
View file @
3355bbb3
#ifndef EMITTERDEF_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#ifndef EMITTERDEF_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#define 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
#if defined(_MSC_VER) || \
(defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \
(__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
#pragma once
#pragma once
#endif
#endif
namespace
YAML
namespace
YAML
{
{
struct
EmitterNodeType
{
struct
EmitterNodeType
{
enum
value
{
None
,
Property
,
Scalar
,
FlowSeq
,
BlockSeq
,
FlowMap
,
BlockMap
};
};
enum
value
{
None
,
Property
,
Scalar
,
FlowSeq
,
BlockSeq
,
FlowMap
,
BlockMap
};
};
}
}
#endif // EMITTERDEF_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#endif // EMITTERDEF_H_62B23520_7C8E_11DE_8A39_0800200C9A66
include/yaml-cpp/emittermanip.h
View file @
3355bbb3
#ifndef EMITTERMANIP_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#ifndef EMITTERMANIP_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#define 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
#if defined(_MSC_VER) || \
(defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \
(__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
#pragma once
#pragma once
#endif
#endif
#include <string>
#include <string>
namespace
YAML
namespace
YAML
{
{
enum
EMITTER_MANIP
{
enum
EMITTER_MANIP
{
// general manipulators
// general manipulators
Auto
,
Auto
,
TagByKind
,
TagByKind
,
...
@@ -60,90 +60,82 @@ namespace YAML
...
@@ -60,90 +60,82 @@ namespace YAML
// Block, // duplicate
// Block, // duplicate
// Auto, // duplicate
// Auto, // duplicate
LongKey
LongKey
};
};
struct
_Indent
{
struct
_Indent
{
_Indent
(
int
value_
)
:
value
(
value_
)
{}
_Indent
(
int
value_
)
:
value
(
value_
)
{}
int
value
;
int
value
;
};
};
inline
_Indent
Indent
(
int
value
)
{
inline
_Indent
Indent
(
int
value
)
{
return
_Indent
(
value
);
}
return
_Indent
(
value
);
}
struct
_Alias
{
struct
_Alias
{
_Alias
(
const
std
::
string
&
content_
)
:
content
(
content_
)
{}
_Alias
(
const
std
::
string
&
content_
)
:
content
(
content_
)
{}
std
::
string
content
;
std
::
string
content
;
};
};
inline
_Alias
Alias
(
const
std
::
string
content
)
{
inline
_Alias
Alias
(
const
std
::
string
content
)
{
return
_Alias
(
content
);
}
return
_Alias
(
content
);
}
struct
_Anchor
{
struct
_Anchor
{
_Anchor
(
const
std
::
string
&
content_
)
:
content
(
content_
)
{}
_Anchor
(
const
std
::
string
&
content_
)
:
content
(
content_
)
{}
std
::
string
content
;
std
::
string
content
;
};
};
inline
_Anchor
Anchor
(
const
std
::
string
content
)
{
inline
_Anchor
Anchor
(
const
std
::
string
content
)
{
return
_Anchor
(
content
);
}
return
_Anchor
(
content
);
}
struct
_Tag
{
struct
_Tag
{
struct
Type
{
enum
value
{
Verbatim
,
PrimaryHandle
,
NamedHandle
};
};
struct
Type
{
enum
value
{
Verbatim
,
PrimaryHandle
,
NamedHandle
};
};
explicit
_Tag
(
const
std
::
string
&
prefix_
,
const
std
::
string
&
content_
,
Type
::
value
type_
)
explicit
_Tag
(
const
std
::
string
&
prefix_
,
const
std
::
string
&
content_
,
:
prefix
(
prefix_
),
content
(
content_
),
type
(
type_
)
Type
::
value
type_
)
{
:
prefix
(
prefix_
),
content
(
content_
),
type
(
type_
)
{}
}
std
::
string
prefix
;
std
::
string
prefix
;
std
::
string
content
;
std
::
string
content
;
Type
::
value
type
;
Type
::
value
type
;
};
};
inline
_Tag
VerbatimTag
(
const
std
::
string
content
)
{
inline
_Tag
VerbatimTag
(
const
std
::
string
content
)
{
return
_Tag
(
""
,
content
,
_Tag
::
Type
::
Verbatim
);
return
_Tag
(
""
,
content
,
_Tag
::
Type
::
Verbatim
);
}
}
inline
_Tag
LocalTag
(
const
std
::
string
content
)
{
inline
_Tag
LocalTag
(
const
std
::
string
content
)
{
return
_Tag
(
""
,
content
,
_Tag
::
Type
::
PrimaryHandle
);
return
_Tag
(
""
,
content
,
_Tag
::
Type
::
PrimaryHandle
);
}
}
inline
_Tag
LocalTag
(
const
std
::
string
&
prefix
,
const
std
::
string
content
)
{
inline
_Tag
LocalTag
(
const
std
::
string
&
prefix
,
const
std
::
string
content
)
{
return
_Tag
(
prefix
,
content
,
_Tag
::
Type
::
NamedHandle
);
return
_Tag
(
prefix
,
content
,
_Tag
::
Type
::
NamedHandle
);
}
}
inline
_Tag
SecondaryTag
(
const
std
::
string
content
)
{
inline
_Tag
SecondaryTag
(
const
std
::
string
content
)
{
return
_Tag
(
""
,
content
,
_Tag
::
Type
::
NamedHandle
);
return
_Tag
(
""
,
content
,
_Tag
::
Type
::
NamedHandle
);
}
}
struct
_Comment
{
struct
_Comment
{
_Comment
(
const
std
::
string
&
content_
)
:
content
(
content_
)
{}
_Comment
(
const
std
::
string
&
content_
)
:
content
(
content_
)
{}
std
::
string
content
;
std
::
string
content
;
};
};
inline
_Comment
Comment
(
const
std
::
string
content
)
{
inline
_Comment
Comment
(
const
std
::
string
content
)
{
return
_Comment
(
content
);
}
return
_Comment
(
content
);
}
struct
_Precision
{
struct
_Precision
{
_Precision
(
int
floatPrecision_
,
int
doublePrecision_
)
:
floatPrecision
(
floatPrecision_
),
doublePrecision
(
doublePrecision_
)
{}
_Precision
(
int
floatPrecision_
,
int
doublePrecision_
)
:
floatPrecision
(
floatPrecision_
),
doublePrecision
(
doublePrecision_
)
{}
int
floatPrecision
;
int
floatPrecision
;
int
doublePrecision
;
int
doublePrecision
;
};
};
inline
_Precision
FloatPrecision
(
int
n
)
{
inline
_Precision
FloatPrecision
(
int
n
)
{
return
_Precision
(
n
,
-
1
);
}
return
_Precision
(
n
,
-
1
);
}
inline
_Precision
DoublePrecision
(
int
n
)
{
inline
_Precision
DoublePrecision
(
int
n
)
{
return
_Precision
(
-
1
,
n
);
}
return
_Precision
(
-
1
,
n
);
}
inline
_Precision
Precision
(
int
n
)
{
inline
_Precision
Precision
(
int
n
)
{
return
_Precision
(
n
,
n
);
}
return
_Precision
(
n
,
n
);
}
}
}
#endif // EMITTERMANIP_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#endif // EMITTERMANIP_H_62B23520_7C8E_11DE_8A39_0800200C9A66
include/yaml-cpp/eventhandler.h
View file @
3355bbb3
#ifndef EVENTHANDLER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#ifndef EVENTHANDLER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#define 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
#if defined(_MSC_VER) || \
(defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \
(__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
#pragma once
#pragma once
#endif
#endif
#include "yaml-cpp/anchor.h"
#include "yaml-cpp/anchor.h"
#include <string>
#include <string>
namespace
YAML
namespace
YAML
{
{
struct
Mark
;
struct
Mark
;
class
EventHandler
class
EventHandler
{
{
public:
public:
virtual
~
EventHandler
()
{}
virtual
~
EventHandler
()
{}
...
@@ -22,15 +22,17 @@ namespace YAML
...
@@ -22,15 +22,17 @@ namespace YAML
virtual
void
OnNull
(
const
Mark
&
mark
,
anchor_t
anchor
)
=
0
;
virtual
void
OnNull
(
const
Mark
&
mark
,
anchor_t
anchor
)
=
0
;
virtual
void
OnAlias
(
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
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
OnSequenceStart
(
const
Mark
&
mark
,
const
std
::
string
&
tag
,
anchor_t
anchor
)
=
0
;
virtual
void
OnSequenceEnd
()
=
0
;
virtual
void
OnSequenceEnd
()
=
0
;
virtual
void
OnMapStart
(
const
Mark
&
mark
,
const
std
::
string
&
tag
,
anchor_t
anchor
)
=
0
;
virtual
void
OnMapStart
(
const
Mark
&
mark
,
const
std
::
string
&
tag
,
anchor_t
anchor
)
=
0
;
virtual
void
OnMapEnd
()
=
0
;
virtual
void
OnMapEnd
()
=
0
;
};
};
}
}
#endif // EVENTHANDLER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#endif // EVENTHANDLER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
include/yaml-cpp/mark.h
View file @
3355bbb3
#ifndef MARK_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#ifndef MARK_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#define 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
#if defined(_MSC_VER) || \
(defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \
(__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
#pragma once
#pragma once
#endif
#endif
#include "yaml-cpp/dll.h"
#include "yaml-cpp/dll.h"
namespace
YAML
namespace
YAML
{
{
struct
YAML_CPP_API
Mark
{
struct
YAML_CPP_API
Mark
{
Mark
()
:
pos
(
0
),
line
(
0
),
column
(
0
)
{}
Mark
()
:
pos
(
0
),
line
(
0
),
column
(
0
)
{}
static
const
Mark
null_mark
()
{
return
Mark
(
-
1
,
-
1
,
-
1
);
}
static
const
Mark
null_mark
()
{
return
Mark
(
-
1
,
-
1
,
-
1
);
}
...
@@ -19,8 +19,9 @@ namespace YAML
...
@@ -19,8 +19,9 @@ namespace YAML
int
line
,
column
;
int
line
,
column
;
private:
private:
Mark
(
int
pos_
,
int
line_
,
int
column_
)
:
pos
(
pos_
),
line
(
line_
),
column
(
column_
)
{}
Mark
(
int
pos_
,
int
line_
,
int
column_
)
};
:
pos
(
pos_
),
line
(
line_
),
column
(
column_
)
{}
};
}
}
#endif // MARK_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#endif // MARK_H_62B23520_7C8E_11DE_8A39_0800200C9A66
include/yaml-cpp/noncopyable.h
View file @
3355bbb3
#ifndef NONCOPYABLE_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#ifndef NONCOPYABLE_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#define 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
#if defined(_MSC_VER) || \
(defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \
(__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
#pragma once
#pragma once
#endif
#endif
#include "yaml-cpp/dll.h"
#include "yaml-cpp/dll.h"
namespace
YAML
namespace
YAML
{
{
// this is basically boost::noncopyable
// this is basically boost::noncopyable
class
YAML_CPP_API
noncopyable
{
class
YAML_CPP_API
noncopyable
{
protected:
protected:
noncopyable
()
{}
noncopyable
()
{}
~
noncopyable
()
{}
~
noncopyable
()
{}
private:
private:
noncopyable
(
const
noncopyable
&
);
noncopyable
(
const
noncopyable
&
);
const
noncopyable
&
operator
=
(
const
noncopyable
&
);
const
noncopyable
&
operator
=
(
const
noncopyable
&
);
};
};
}
}
#endif // NONCOPYABLE_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#endif // NONCOPYABLE_H_62B23520_7C8E_11DE_8A39_0800200C9A66
include/yaml-cpp/null.h
View file @
3355bbb3
#ifndef NULL_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#ifndef NULL_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#define 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
#if defined(_MSC_VER) || \
(defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \
(__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
#pragma once
#pragma once
#endif
#endif
#include "yaml-cpp/dll.h"
#include "yaml-cpp/dll.h"
namespace
YAML
namespace
YAML
{
{
class
Node
;
class
Node
;
struct
YAML_CPP_API
_Null
{};
struct
YAML_CPP_API
_Null
{};
inline
bool
operator
==
(
const
_Null
&
,
const
_Null
&
)
{
return
true
;
}
inline
bool
operator
==
(
const
_Null
&
,
const
_Null
&
)
{
return
true
;
}
inline
bool
operator
!=
(
const
_Null
&
,
const
_Null
&
)
{
return
false
;
}
inline
bool
operator
!=
(
const
_Null
&
,
const
_Null
&
)
{
return
false
;
}
YAML_CPP_API
bool
IsNull
(
const
Node
&
node
);
// old API only
YAML_CPP_API
bool
IsNull
(
const
Node
&
node
);
// old API only
extern
YAML_CPP_API
_Null
Null
;
extern
YAML_CPP_API
_Null
Null
;
}
}
#endif // NULL_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#endif // NULL_H_62B23520_7C8E_11DE_8A39_0800200C9A66
include/yaml-cpp/ostream_wrapper.h
View file @
3355bbb3
#ifndef OSTREAM_WRAPPER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#ifndef OSTREAM_WRAPPER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#define 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
#if defined(_MSC_VER) || \
(defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \
(__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
#pragma once
#pragma once
#endif
#endif
#include <string>
#include <string>
#include <vector>
#include <vector>
namespace
YAML
namespace
YAML
{
{
class
ostream_wrapper
{
class
ostream_wrapper
{
public:
public:
ostream_wrapper
();
ostream_wrapper
();
explicit
ostream_wrapper
(
std
::
ostream
&
stream
);
explicit
ostream_wrapper
(
std
::
ostream
&
stream
);
~
ostream_wrapper
();
~
ostream_wrapper
();
void
write
(
const
std
::
string
&
str
);
void
write
(
const
std
::
string
&
str
);
void
write
(
const
char
*
str
,
std
::
size_t
size
);
void
write
(
const
char
*
str
,
std
::
size_t
size
);
void
set_comment
()
{
m_comment
=
true
;
}
void
set_comment
()
{
m_comment
=
true
;
}
const
char
*
str
()
const
{
const
char
*
str
()
const
{
if
(
m_pStream
)
{
if
(
m_pStream
)
{
return
0
;
return
0
;
}
else
{
}
else
{
m_buffer
[
m_pos
]
=
'\0'
;
m_buffer
[
m_pos
]
=
'\0'
;
...
@@ -42,28 +41,30 @@ namespace YAML
...
@@ -42,28 +41,30 @@ namespace YAML
private:
private:
mutable
std
::
vector
<
char
>
m_buffer
;
mutable
std
::
vector
<
char
>
m_buffer
;
std
::
ostream
*
m_pStream
;
std
::
ostream
*
m_pStream
;
std
::
size_t
m_pos
;
std
::
size_t
m_pos
;
std
::
size_t
m_row
,
m_col
;
std
::
size_t
m_row
,
m_col
;
bool
m_comment
;
bool
m_comment
;
};
};
template
<
std
::
size_t
N
>
template
<
std
::
size_t
N
>
inline
ostream_wrapper
&
operator
<<
(
ostream_wrapper
&
stream
,
const
char
(
&
str
)[
N
])
{
inline
ostream_wrapper
&
operator
<<
(
ostream_wrapper
&
stream
,
stream
.
write
(
str
,
N
-
1
);
const
char
(
&
str
)[
N
])
{
stream
.
write
(
str
,
N
-
1
);
return
stream
;
return
stream
;
}
}
inline
ostream_wrapper
&
operator
<<
(
ostream_wrapper
&
stream
,
const
std
::
string
&
str
)
{
inline
ostream_wrapper
&
operator
<<
(
ostream_wrapper
&
stream
,
const
std
::
string
&
str
)
{
stream
.
write
(
str
);
stream
.
write
(
str
);
return
stream
;
return
stream
;
}
}
inline
ostream_wrapper
&
operator
<<
(
ostream_wrapper
&
stream
,
char
ch
)
{
inline
ostream_wrapper
&
operator
<<
(
ostream_wrapper
&
stream
,
char
ch
)
{
stream
.
write
(
&
ch
,
1
);
stream
.
write
(
&
ch
,
1
);
return
stream
;
return
stream
;
}
}
}
}
#endif // OSTREAM_WRAPPER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#endif // OSTREAM_WRAPPER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
include/yaml-cpp/stlemitter.h
View file @
3355bbb3
#ifndef STLEMITTER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#ifndef STLEMITTER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#define 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
#if defined(_MSC_VER) || \
(defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \
(__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
#pragma once
#pragma once
#endif
#endif
#include <vector>
#include <vector>
#include <list>
#include <list>
#include <set>
#include <set>
#include <map>
#include <map>
namespace
YAML
namespace
YAML
{
{
template
<
typename
Seq
>
template
<
typename
Seq
>
inline
Emitter
&
EmitSeq
(
Emitter
&
emitter
,
const
Seq
&
seq
)
{
inline
Emitter
&
EmitSeq
(
Emitter
&
emitter
,
const
Seq
&
seq
)
{
emitter
<<
BeginSeq
;
emitter
<<
BeginSeq
;
for
(
typename
Seq
::
const_iterator
it
=
seq
.
begin
();
it
!=
seq
.
end
();
++
it
)
for
(
typename
Seq
::
const_iterator
it
=
seq
.
begin
();
it
!=
seq
.
end
();
++
it
)
emitter
<<
*
it
;
emitter
<<
*
it
;
emitter
<<
EndSeq
;
emitter
<<
EndSeq
;
return
emitter
;
return
emitter
;
}
}
template
<
typename
T
>
template
<
typename
T
>
inline
Emitter
&
operator
<<
(
Emitter
&
emitter
,
const
std
::
vector
<
T
>&
v
)
{
inline
Emitter
&
operator
<<
(
Emitter
&
emitter
,
const
std
::
vector
<
T
>&
v
)
{
return
EmitSeq
(
emitter
,
v
);
return
EmitSeq
(
emitter
,
v
);
}
}
template
<
typename
T
>
template
<
typename
T
>
inline
Emitter
&
operator
<<
(
Emitter
&
emitter
,
const
std
::
list
<
T
>&
v
)
{
inline
Emitter
&
operator
<<
(
Emitter
&
emitter
,
const
std
::
list
<
T
>&
v
)
{
return
EmitSeq
(
emitter
,
v
);
return
EmitSeq
(
emitter
,
v
);
}
}
template
<
typename
T
>
template
<
typename
T
>
inline
Emitter
&
operator
<<
(
Emitter
&
emitter
,
const
std
::
set
<
T
>&
v
)
{
inline
Emitter
&
operator
<<
(
Emitter
&
emitter
,
const
std
::
set
<
T
>&
v
)
{
return
EmitSeq
(
emitter
,
v
);
return
EmitSeq
(
emitter
,
v
);
}
}
template
<
typename
K
,
typename
V
>
template
<
typename
K
,
typename
V
>
inline
Emitter
&
operator
<<
(
Emitter
&
emitter
,
const
std
::
map
<
K
,
V
>&
m
)
{
inline
Emitter
&
operator
<<
(
Emitter
&
emitter
,
const
std
::
map
<
K
,
V
>&
m
)
{
typedef
typename
std
::
map
<
K
,
V
>
map
;
typedef
typename
std
::
map
<
K
,
V
>
map
;
emitter
<<
BeginMap
;
emitter
<<
BeginMap
;
for
(
typename
map
::
const_iterator
it
=
m
.
begin
();
it
!=
m
.
end
();
++
it
)
for
(
typename
map
::
const_iterator
it
=
m
.
begin
();
it
!=
m
.
end
();
++
it
)
emitter
<<
Key
<<
it
->
first
<<
Value
<<
it
->
second
;
emitter
<<
Key
<<
it
->
first
<<
Value
<<
it
->
second
;
emitter
<<
EndMap
;
emitter
<<
EndMap
;
return
emitter
;
return
emitter
;
}
}
}
}
#endif // STLEMITTER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#endif // STLEMITTER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
include/yaml-cpp/traits.h
View file @
3355bbb3
#ifndef TRAITS_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#ifndef TRAITS_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#define 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
#if defined(_MSC_VER) || \
(defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \
(__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
#pragma once
#pragma once
#endif
#endif
namespace
YAML
{
template
<
typename
>
struct
is_numeric
{
enum
{
value
=
false
};
};
namespace
YAML
template
<
>
{
struct
is_numeric
<
char
>
{
template
<
typename
>
enum
{
struct
is_numeric
{
enum
{
value
=
false
};
};
value
=
true
};
template
<
>
struct
is_numeric
<
char
>
{
enum
{
value
=
true
};
};
};
template
<
>
struct
is_numeric
<
unsigned
char
>
{
enum
{
value
=
true
};
};
template
<
>
template
<
>
struct
is_numeric
<
int
>
{
enum
{
value
=
true
};
};
struct
is_numeric
<
unsigned
char
>
{
template
<
>
struct
is_numeric
<
unsigned
int
>
{
enum
{
value
=
true
};
};
enum
{
template
<
>
struct
is_numeric
<
long
int
>
{
enum
{
value
=
true
};
};
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
};
};
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)
#if defined(_MSC_VER) && (_MSC_VER < 1310)
template
<
>
struct
is_numeric
<
__int64
>
{
enum
{
value
=
true
};
};
template
<
>
template
<
>
struct
is_numeric
<
unsigned
__int64
>
{
enum
{
value
=
true
};
};
struct
is_numeric
<
__int64
>
{
enum
{
value
=
true
};
};
template
<
>
struct
is_numeric
<
unsigned
__int64
>
{
enum
{
value
=
true
};
};
#else
#else
template
<
>
struct
is_numeric
<
long
long
>
{
enum
{
value
=
true
};
};
template
<
>
template
<
>
struct
is_numeric
<
unsigned
long
long
>
{
enum
{
value
=
true
};
};
struct
is_numeric
<
long
long
>
{
enum
{
value
=
true
};
};
template
<
>
struct
is_numeric
<
unsigned
long
long
>
{
enum
{
value
=
true
};
};
#endif
#endif
template
<
>
struct
is_numeric
<
float
>
{
enum
{
value
=
true
};
};
template
<
>
template
<
>
struct
is_numeric
<
double
>
{
enum
{
value
=
true
};
};
struct
is_numeric
<
float
>
{
template
<
>
struct
is_numeric
<
long
double
>
{
enum
{
value
=
true
};
};
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
>
template
<
bool
,
class
T
=
void
>
struct
enable_if_c
{
struct
enable_if_c
{
typedef
T
type
;
typedef
T
type
;
};
};
template
<
class
T
>
template
<
class
T
>
struct
enable_if_c
<
false
,
T
>
{};
struct
enable_if_c
<
false
,
T
>
{};
template
<
class
Cond
,
class
T
=
void
>
template
<
class
Cond
,
class
T
=
void
>
struct
enable_if
:
public
enable_if_c
<
Cond
::
value
,
T
>
{};
struct
enable_if
:
public
enable_if_c
<
Cond
::
value
,
T
>
{};
template
<
bool
,
class
T
=
void
>
template
<
bool
,
class
T
=
void
>
struct
disable_if_c
{
struct
disable_if_c
{
typedef
T
type
;
typedef
T
type
;
};
};
template
<
class
T
>
template
<
class
T
>
struct
disable_if_c
<
true
,
T
>
{};
struct
disable_if_c
<
true
,
T
>
{};
template
<
class
Cond
,
class
T
=
void
>
template
<
class
Cond
,
class
T
=
void
>
struct
disable_if
:
public
disable_if_c
<
Cond
::
value
,
T
>
{};
struct
disable_if
:
public
disable_if_c
<
Cond
::
value
,
T
>
{};
}
}
#endif // TRAITS_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#endif // TRAITS_H_62B23520_7C8E_11DE_8A39_0800200C9A66
src/binary.cpp
View file @
3355bbb3
#include "yaml-cpp/binary.h"
#include "yaml-cpp/binary.h"
namespace
YAML
namespace
YAML
{
{
static
const
char
encoding
[]
=
static
const
char
encoding
[]
=
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
;
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
;
std
::
string
EncodeBase64
(
const
unsigned
char
*
data
,
std
::
size_t
size
)
std
::
string
EncodeBase64
(
const
unsigned
char
*
data
,
std
::
size_t
size
)
{
{
const
char
PAD
=
'='
;
const
char
PAD
=
'='
;
std
::
string
ret
;
std
::
string
ret
;
...
@@ -15,14 +14,14 @@ namespace YAML
...
@@ -15,14 +14,14 @@ namespace YAML
std
::
size_t
chunks
=
size
/
3
;
std
::
size_t
chunks
=
size
/
3
;
std
::
size_t
remainder
=
size
%
3
;
std
::
size_t
remainder
=
size
%
3
;
for
(
std
::
size_t
i
=
0
;
i
<
chunks
;
i
++
,
data
+=
3
)
{
for
(
std
::
size_t
i
=
0
;
i
<
chunks
;
i
++
,
data
+=
3
)
{
*
out
++
=
encoding
[
data
[
0
]
>>
2
];
*
out
++
=
encoding
[
data
[
0
]
>>
2
];
*
out
++
=
encoding
[((
data
[
0
]
&
0x3
)
<<
4
)
|
(
data
[
1
]
>>
4
)];
*
out
++
=
encoding
[((
data
[
0
]
&
0x3
)
<<
4
)
|
(
data
[
1
]
>>
4
)];
*
out
++
=
encoding
[((
data
[
1
]
&
0xf
)
<<
2
)
|
(
data
[
2
]
>>
6
)];
*
out
++
=
encoding
[((
data
[
1
]
&
0xf
)
<<
2
)
|
(
data
[
2
]
>>
6
)];
*
out
++
=
encoding
[
data
[
2
]
&
0x3f
];
*
out
++
=
encoding
[
data
[
2
]
&
0x3f
];
}
}
switch
(
remainder
)
{
switch
(
remainder
)
{
case
0
:
case
0
:
break
;
break
;
case
1
:
case
1
:
...
@@ -41,53 +40,53 @@ namespace YAML
...
@@ -41,53 +40,53 @@ namespace YAML
ret
.
resize
(
out
-
&
ret
[
0
]);
ret
.
resize
(
out
-
&
ret
[
0
]);
return
ret
;
return
ret
;
}
}
static
const
unsigned
char
decoding
[]
=
{
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
,
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
,
255
,
255
,
255
,
255
,
255
,
255
,
255
,
255
,
255
,
255
,
255
,
255
,
255
,
62
,
255
,
52
,
53
,
54
,
55
,
56
,
57
,
58
,
59
,
60
,
61
,
255
,
255
,
255
,
0
,
255
,
255
,
255
,
255
,
63
,
52
,
53
,
54
,
55
,
56
,
57
,
58
,
59
,
60
,
61
,
255
,
255
,
255
,
0
,
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
10
,
11
,
12
,
13
,
14
,
255
,
0
,
255
,
255
,
255
,
0
,
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
15
,
16
,
17
,
18
,
19
,
20
,
21
,
22
,
23
,
24
,
25
,
255
,
255
,
255
,
255
,
255
,
10
,
11
,
12
,
13
,
14
,
15
,
16
,
17
,
18
,
19
,
20
,
21
,
22
,
23
,
24
,
255
,
26
,
27
,
28
,
29
,
30
,
31
,
32
,
33
,
34
,
35
,
36
,
37
,
38
,
39
,
40
,
25
,
255
,
255
,
255
,
255
,
255
,
255
,
26
,
27
,
28
,
29
,
30
,
31
,
32
,
33
,
41
,
42
,
43
,
44
,
45
,
46
,
47
,
48
,
49
,
50
,
51
,
255
,
255
,
255
,
255
,
255
,
34
,
35
,
36
,
37
,
38
,
39
,
40
,
41
,
42
,
43
,
44
,
45
,
46
,
47
,
48
,
255
,
255
,
255
,
255
,
255
,
255
,
255
,
255
,
255
,
255
,
255
,
255
,
255
,
255
,
255
,
255
,
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
,
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
)
std
::
vector
<
unsigned
char
>
DecodeBase64
(
const
std
::
string
&
input
)
{
{
typedef
std
::
vector
<
unsigned
char
>
ret_type
;
typedef
std
::
vector
<
unsigned
char
>
ret_type
;
if
(
input
.
empty
())
if
(
input
.
empty
())
return
ret_type
();
return
ret_type
();
ret_type
ret
(
3
*
input
.
size
()
/
4
+
1
);
ret_type
ret
(
3
*
input
.
size
()
/
4
+
1
);
unsigned
char
*
out
=
&
ret
[
0
];
unsigned
char
*
out
=
&
ret
[
0
];
unsigned
value
=
0
;
unsigned
value
=
0
;
for
(
std
::
size_t
i
=
0
;
i
<
input
.
size
();
i
++
)
{
for
(
std
::
size_t
i
=
0
;
i
<
input
.
size
();
i
++
)
{
unsigned
char
d
=
decoding
[
static_cast
<
unsigned
>
(
input
[
i
])];
unsigned
char
d
=
decoding
[
static_cast
<
unsigned
>
(
input
[
i
])];
if
(
d
==
255
)
if
(
d
==
255
)
return
ret_type
();
return
ret_type
();
value
=
(
value
<<
6
)
|
d
;
value
=
(
value
<<
6
)
|
d
;
if
(
i
%
4
==
3
)
{
if
(
i
%
4
==
3
)
{
*
out
++
=
value
>>
16
;
*
out
++
=
value
>>
16
;
if
(
i
>
0
&&
input
[
i
-
1
]
!=
'='
)
if
(
i
>
0
&&
input
[
i
-
1
]
!=
'='
)
*
out
++
=
value
>>
8
;
*
out
++
=
value
>>
8
;
if
(
input
[
i
]
!=
'='
)
if
(
input
[
i
]
!=
'='
)
*
out
++
=
value
;
*
out
++
=
value
;
}
}
}
}
ret
.
resize
(
out
-
&
ret
[
0
]);
ret
.
resize
(
out
-
&
ret
[
0
]);
return
ret
;
return
ret
;
}
}
}
}
src/collectionstack.h
View file @
3355bbb3
#ifndef COLLECTIONSTACK_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#ifndef COLLECTIONSTACK_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#define 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
#if defined(_MSC_VER) || \
(defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \
(__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
#pragma once
#pragma once
#endif
#endif
#include <stack>
#include <stack>
#include <cassert>
#include <cassert>
namespace
YAML
namespace
YAML
{
{
struct
CollectionType
{
struct
CollectionType
{
enum
value
{
enum
value
{
None
,
BlockMap
,
BlockSeq
,
FlowMap
,
FlowSeq
,
CompactMap
};
None
,
BlockMap
,
BlockSeq
,
FlowMap
,
FlowSeq
,
CompactMap
};
};
};
class
CollectionStack
class
CollectionStack
{
{
public:
public:
CollectionType
::
value
GetCurCollectionType
()
const
{
CollectionType
::
value
GetCurCollectionType
()
const
{
if
(
collectionStack
.
empty
())
if
(
collectionStack
.
empty
())
return
CollectionType
::
None
;
return
CollectionType
::
None
;
return
collectionStack
.
top
();
return
collectionStack
.
top
();
}
}
void
PushCollectionType
(
CollectionType
::
value
type
)
{
collectionStack
.
push
(
type
);
}
void
PushCollectionType
(
CollectionType
::
value
type
)
{
void
PopCollectionType
(
CollectionType
::
value
type
)
{
assert
(
type
==
GetCurCollectionType
());
collectionStack
.
pop
();
}
collectionStack
.
push
(
type
);
}
void
PopCollectionType
(
CollectionType
::
value
type
)
{
assert
(
type
==
GetCurCollectionType
());
collectionStack
.
pop
();
}
private:
private:
std
::
stack
<
CollectionType
::
value
>
collectionStack
;
std
::
stack
<
CollectionType
::
value
>
collectionStack
;
};
};
}
}
#endif // COLLECTIONSTACK_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#endif // COLLECTIONSTACK_H_62B23520_7C8E_11DE_8A39_0800200C9A66
src/contrib/graphbuilder.cpp
View file @
3355bbb3
...
@@ -2,15 +2,14 @@
...
@@ -2,15 +2,14 @@
#include "yaml-cpp/contrib/graphbuilder.h"
#include "yaml-cpp/contrib/graphbuilder.h"
#include "graphbuilderadapter.h"
#include "graphbuilderadapter.h"
namespace
YAML
namespace
YAML
{
{
void
*
BuildGraphOfNextDocument
(
Parser
&
parser
,
void
*
BuildGraphOfNextDocument
(
Parser
&
parser
,
GraphBuilderInterface
&
graphBuilder
)
GraphBuilderInterface
&
graphBuilder
)
{
{
GraphBuilderAdapter
eventHandler
(
graphBuilder
);
GraphBuilderAdapter
eventHandler
(
graphBuilder
);
if
(
parser
.
HandleNextDocument
(
eventHandler
))
{
if
(
parser
.
HandleNextDocument
(
eventHandler
))
{
return
eventHandler
.
RootNode
();
return
eventHandler
.
RootNode
();
}
else
{
}
else
{
return
NULL
;
return
NULL
;
}
}
}
}
}
}
src/contrib/graphbuilderadapter.cpp
View file @
3355bbb3
#include "graphbuilderadapter.h"
#include "graphbuilderadapter.h"
namespace
YAML
namespace
YAML
{
{
int
GraphBuilderAdapter
::
ContainerFrame
::
sequenceMarker
;
int
GraphBuilderAdapter
::
ContainerFrame
::
sequenceMarker
;
void
GraphBuilderAdapter
::
OnNull
(
const
Mark
&
mark
,
anchor_t
anchor
)
void
GraphBuilderAdapter
::
OnNull
(
const
Mark
&
mark
,
anchor_t
anchor
)
{
{
void
*
pParent
=
GetCurrentParent
();
void
*
pParent
=
GetCurrentParent
();
void
*
pNode
=
m_builder
.
NewNull
(
mark
,
pParent
);
void
*
pNode
=
m_builder
.
NewNull
(
mark
,
pParent
);
RegisterAnchor
(
anchor
,
pNode
);
RegisterAnchor
(
anchor
,
pNode
);
DispositionNode
(
pNode
);
DispositionNode
(
pNode
);
}
}
void
GraphBuilderAdapter
::
OnAlias
(
const
Mark
&
mark
,
anchor_t
anchor
)
void
GraphBuilderAdapter
::
OnAlias
(
const
Mark
&
mark
,
anchor_t
anchor
)
{
{
void
*
pReffedNode
=
m_anchors
.
Get
(
anchor
);
void
*
pReffedNode
=
m_anchors
.
Get
(
anchor
);
DispositionNode
(
m_builder
.
AnchorReference
(
mark
,
pReffedNode
));
DispositionNode
(
m_builder
.
AnchorReference
(
mark
,
pReffedNode
));
}
}
void
GraphBuilderAdapter
::
OnScalar
(
const
Mark
&
mark
,
const
std
::
string
&
tag
,
anchor_t
anchor
,
const
std
::
string
&
value
)
void
GraphBuilderAdapter
::
OnScalar
(
const
Mark
&
mark
,
const
std
::
string
&
tag
,
{
anchor_t
anchor
,
const
std
::
string
&
value
)
{
void
*
pParent
=
GetCurrentParent
();
void
*
pParent
=
GetCurrentParent
();
void
*
pNode
=
m_builder
.
NewScalar
(
mark
,
tag
,
pParent
,
value
);
void
*
pNode
=
m_builder
.
NewScalar
(
mark
,
tag
,
pParent
,
value
);
RegisterAnchor
(
anchor
,
pNode
);
RegisterAnchor
(
anchor
,
pNode
);
DispositionNode
(
pNode
);
DispositionNode
(
pNode
);
}
}
void
GraphBuilderAdapter
::
OnSequenceStart
(
const
Mark
&
mark
,
const
std
::
string
&
tag
,
anchor_t
anchor
)
void
GraphBuilderAdapter
::
OnSequenceStart
(
const
Mark
&
mark
,
{
const
std
::
string
&
tag
,
anchor_t
anchor
)
{
void
*
pNode
=
m_builder
.
NewSequence
(
mark
,
tag
,
GetCurrentParent
());
void
*
pNode
=
m_builder
.
NewSequence
(
mark
,
tag
,
GetCurrentParent
());
m_containers
.
push
(
ContainerFrame
(
pNode
));
m_containers
.
push
(
ContainerFrame
(
pNode
));
RegisterAnchor
(
anchor
,
pNode
);
RegisterAnchor
(
anchor
,
pNode
);
}
}
void
GraphBuilderAdapter
::
OnSequenceEnd
()
void
GraphBuilderAdapter
::
OnSequenceEnd
()
{
{
void
*
pSequence
=
m_containers
.
top
().
pContainer
;
void
*
pSequence
=
m_containers
.
top
().
pContainer
;
m_containers
.
pop
();
m_containers
.
pop
();
DispositionNode
(
pSequence
);
DispositionNode
(
pSequence
);
}
}
void
GraphBuilderAdapter
::
OnMapStart
(
const
Mark
&
mark
,
const
std
::
string
&
tag
,
anchor_t
anchor
)
void
GraphBuilderAdapter
::
OnMapStart
(
const
Mark
&
mark
,
const
std
::
string
&
tag
,
{
anchor_t
anchor
)
{
void
*
pNode
=
m_builder
.
NewMap
(
mark
,
tag
,
GetCurrentParent
());
void
*
pNode
=
m_builder
.
NewMap
(
mark
,
tag
,
GetCurrentParent
());
m_containers
.
push
(
ContainerFrame
(
pNode
,
m_pKeyNode
));
m_containers
.
push
(
ContainerFrame
(
pNode
,
m_pKeyNode
));
m_pKeyNode
=
NULL
;
m_pKeyNode
=
NULL
;
RegisterAnchor
(
anchor
,
pNode
);
RegisterAnchor
(
anchor
,
pNode
);
}
}
void
GraphBuilderAdapter
::
OnMapEnd
()
void
GraphBuilderAdapter
::
OnMapEnd
()
{
{
void
*
pMap
=
m_containers
.
top
().
pContainer
;
void
*
pMap
=
m_containers
.
top
().
pContainer
;
m_pKeyNode
=
m_containers
.
top
().
pPrevKeyNode
;
m_pKeyNode
=
m_containers
.
top
().
pPrevKeyNode
;
m_containers
.
pop
();
m_containers
.
pop
();
DispositionNode
(
pMap
);
DispositionNode
(
pMap
);
}
}
void
*
GraphBuilderAdapter
::
GetCurrentParent
()
const
void
*
GraphBuilderAdapter
::
GetCurrentParent
()
const
{
{
if
(
m_containers
.
empty
())
{
if
(
m_containers
.
empty
())
{
return
NULL
;
return
NULL
;
}
}
return
m_containers
.
top
().
pContainer
;
return
m_containers
.
top
().
pContainer
;
}
}
void
GraphBuilderAdapter
::
RegisterAnchor
(
anchor_t
anchor
,
void
*
pNode
)
void
GraphBuilderAdapter
::
RegisterAnchor
(
anchor_t
anchor
,
void
*
pNode
)
{
{
if
(
anchor
)
{
if
(
anchor
)
{
m_anchors
.
Register
(
anchor
,
pNode
);
m_anchors
.
Register
(
anchor
,
pNode
);
}
}
}
}
void
GraphBuilderAdapter
::
DispositionNode
(
void
*
pNode
)
void
GraphBuilderAdapter
::
DispositionNode
(
void
*
pNode
)
{
{
if
(
m_containers
.
empty
())
{
if
(
m_containers
.
empty
())
{
m_pRootNode
=
pNode
;
m_pRootNode
=
pNode
;
return
;
return
;
...
@@ -92,5 +85,5 @@ namespace YAML
...
@@ -92,5 +85,5 @@ namespace YAML
}
else
{
}
else
{
m_builder
.
AppendToSequence
(
pContainer
,
pNode
);
m_builder
.
AppendToSequence
(
pContainer
,
pNode
);
}
}
}
}
}
}
Prev
1
2
3
4
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment