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
e3d5ec18
Commit
e3d5ec18
authored
Sep 13, 2011
by
Jesse Beder
Browse files
Switched YAML::Parse to YAML::Load, and added LoadAll
parent
5be19ccb
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
146 additions
and
117 deletions
+146
-117
include/yaml-cpp/node/parse.h
include/yaml-cpp/node/parse.h
+9
-4
src/node/parse.cpp
src/node/parse.cpp
+29
-5
test/new-api/spectests.cpp
test/new-api/spectests.cpp
+107
-107
util/parse.cpp
util/parse.cpp
+1
-1
No files found.
include/yaml-cpp/node/parse.h
View file @
e3d5ec18
...
...
@@ -5,16 +5,21 @@
#pragma once
#endif
#include <string>
#include <iosfwd>
#include <string>
#include <vector>
namespace
YAML
{
class
Node
;
Node
Parse
(
const
std
::
string
&
input
);
Node
Parse
(
const
char
*
input
);
Node
Parse
(
std
::
istream
&
input
);
Node
Load
(
const
std
::
string
&
input
);
Node
Load
(
const
char
*
input
);
Node
Load
(
std
::
istream
&
input
);
std
::
vector
<
Node
>
LoadAll
(
const
std
::
string
&
input
);
std
::
vector
<
Node
>
LoadAll
(
const
char
*
input
);
std
::
vector
<
Node
>
LoadAll
(
std
::
istream
&
input
);
}
#endif // VALUE_PARSE_H_62B23520_7C8E_11DE_8A39_0800200C9A66
...
...
src/node/parse.cpp
View file @
e3d5ec18
...
...
@@ -8,17 +8,17 @@
namespace
YAML
{
Node
Parse
(
const
std
::
string
&
input
)
{
Node
Load
(
const
std
::
string
&
input
)
{
std
::
stringstream
stream
(
input
);
return
Parse
(
stream
);
return
Load
(
stream
);
}
Node
Parse
(
const
char
*
input
)
{
Node
Load
(
const
char
*
input
)
{
std
::
stringstream
stream
(
input
);
return
Parse
(
stream
);
return
Load
(
stream
);
}
Node
Parse
(
std
::
istream
&
input
)
{
Node
Load
(
std
::
istream
&
input
)
{
Parser
parser
(
input
);
NodeBuilder
builder
;
if
(
!
parser
.
HandleNextDocument
(
builder
))
...
...
@@ -26,4 +26,28 @@ namespace YAML
return
builder
.
Root
();
}
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
;
}
}
test/new-api/spectests.cpp
View file @
e3d5ec18
...
...
@@ -10,7 +10,7 @@ namespace Test
{
// 2.1
TEST
SeqScalars
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex2_1
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex2_1
);
YAML_ASSERT
(
doc
.
IsSequence
());
YAML_ASSERT
(
doc
.
size
()
==
3
);
YAML_ASSERT
(
doc
[
0
].
as
<
std
::
string
>
()
==
"Mark McGwire"
);
...
...
@@ -21,7 +21,7 @@ namespace Test
// 2.2
TEST
MappingScalarsToScalars
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex2_2
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex2_2
);
YAML_ASSERT
(
doc
.
IsMap
());
YAML_ASSERT
(
doc
.
size
()
==
3
);
YAML_ASSERT
(
doc
[
"hr"
].
as
<
std
::
string
>
()
==
"65"
);
...
...
@@ -32,7 +32,7 @@ namespace Test
// 2.3
TEST
MappingScalarsToSequences
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex2_3
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex2_3
);
YAML_ASSERT
(
doc
.
IsMap
());
YAML_ASSERT
(
doc
.
size
()
==
2
);
YAML_ASSERT
(
doc
[
"american"
].
size
()
==
3
);
...
...
@@ -48,7 +48,7 @@ namespace Test
// 2.4
TEST
SequenceOfMappings
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex2_4
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex2_4
);
YAML_ASSERT
(
doc
.
size
()
==
2
);
YAML_ASSERT
(
doc
[
0
].
size
()
==
3
);
YAML_ASSERT
(
doc
[
0
][
"name"
].
as
<
std
::
string
>
()
==
"Mark McGwire"
);
...
...
@@ -63,7 +63,7 @@ namespace Test
// 2.5
TEST
SequenceOfSequences
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex2_5
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex2_5
);
YAML_ASSERT
(
doc
.
size
()
==
3
);
YAML_ASSERT
(
doc
[
0
].
size
()
==
3
);
YAML_ASSERT
(
doc
[
0
][
0
].
as
<
std
::
string
>
()
==
"name"
);
...
...
@@ -82,7 +82,7 @@ namespace Test
// 2.6
TEST
MappingOfMappings
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex2_6
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex2_6
);
YAML_ASSERT
(
doc
.
size
()
==
2
);
YAML_ASSERT
(
doc
[
"Mark McGwire"
].
size
()
==
2
);
YAML_ASSERT
(
doc
[
"Mark McGwire"
][
"hr"
].
as
<
std
::
string
>
()
==
"65"
);
...
...
@@ -105,7 +105,7 @@ namespace Test
// 2.9
TEST
SingleDocumentWithTwoComments
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex2_9
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex2_9
);
YAML_ASSERT
(
doc
.
size
()
==
2
);
YAML_ASSERT
(
doc
[
"hr"
].
size
()
==
2
);
YAML_ASSERT
(
doc
[
"hr"
][
0
].
as
<
std
::
string
>
()
==
"Mark McGwire"
);
...
...
@@ -118,7 +118,7 @@ namespace Test
// 2.10
TEST
SimpleAnchor
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex2_10
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex2_10
);
YAML_ASSERT
(
doc
.
size
()
==
2
);
YAML_ASSERT
(
doc
[
"hr"
].
size
()
==
2
);
YAML_ASSERT
(
doc
[
"hr"
][
0
].
as
<
std
::
string
>
()
==
"Mark McGwire"
);
...
...
@@ -131,7 +131,7 @@ namespace Test
// 2.11
TEST
MappingBetweenSequences
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex2_11
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex2_11
);
std
::
vector
<
std
::
string
>
tigers_cubs
;
tigers_cubs
.
push_back
(
"Detroit Tigers"
);
...
...
@@ -154,7 +154,7 @@ namespace Test
// 2.12
TEST
CompactNestedMapping
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex2_12
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex2_12
);
YAML_ASSERT
(
doc
.
size
()
==
3
);
YAML_ASSERT
(
doc
[
0
].
size
()
==
2
);
YAML_ASSERT
(
doc
[
0
][
"item"
].
as
<
std
::
string
>
()
==
"Super Hoop"
);
...
...
@@ -170,7 +170,7 @@ namespace Test
// 2.13
TEST
InLiteralsNewlinesArePreserved
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex2_13
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex2_13
);
YAML_ASSERT
(
doc
.
as
<
std
::
string
>
()
==
"
\\
//||
\\
/||
\n
"
"// || ||__"
);
...
...
@@ -179,14 +179,14 @@ namespace Test
// 2.14
TEST
InFoldedScalarsNewlinesBecomeSpaces
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex2_14
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex2_14
);
YAML_ASSERT
(
doc
.
as
<
std
::
string
>
()
==
"Mark McGwire's year was crippled by a knee injury."
);
return
true
;
}
// 2.15
TEST
FoldedNewlinesArePreservedForMoreIndentedAndBlankLines
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex2_15
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex2_15
);
YAML_ASSERT
(
doc
.
as
<
std
::
string
>
()
==
"Sammy Sosa completed another fine season with great stats.
\n\n
"
" 63 Home Runs
\n
"
...
...
@@ -197,7 +197,7 @@ namespace Test
// 2.16
TEST
IndentationDeterminesScope
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex2_16
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex2_16
);
YAML_ASSERT
(
doc
.
size
()
==
3
);
YAML_ASSERT
(
doc
[
"name"
].
as
<
std
::
string
>
()
==
"Mark McGwire"
);
YAML_ASSERT
(
doc
[
"accomplishment"
].
as
<
std
::
string
>
()
==
"Mark set a major league home run record in 1998.
\n
"
);
...
...
@@ -207,7 +207,7 @@ namespace Test
// 2.17
TEST
QuotedScalars
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex2_17
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex2_17
);
YAML_ASSERT
(
doc
.
size
()
==
6
);
YAML_ASSERT
(
doc
[
"unicode"
].
as
<
std
::
string
>
()
==
"Sosa did fine.
\xe2\x98\xba
"
);
YAML_ASSERT
(
doc
[
"control"
].
as
<
std
::
string
>
()
==
"
\b
1998
\t
1999
\t
2000
\n
"
);
...
...
@@ -220,7 +220,7 @@ namespace Test
// 2.18
TEST
MultiLineFlowScalars
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex2_18
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex2_18
);
YAML_ASSERT
(
doc
.
size
()
==
2
);
YAML_ASSERT
(
doc
[
"plain"
].
as
<
std
::
string
>
()
==
"This unquoted scalar spans many lines."
);
YAML_ASSERT
(
doc
[
"quoted"
].
as
<
std
::
string
>
()
==
"So does this quoted scalar.
\n
"
);
...
...
@@ -231,7 +231,7 @@ namespace Test
// 2.23
TEST
VariousExplicitTags
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex2_23
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex2_23
);
YAML_ASSERT
(
doc
.
size
()
==
3
);
YAML_ASSERT
(
doc
[
"not-date"
].
Tag
()
==
"tag:yaml.org,2002:str"
);
YAML_ASSERT
(
doc
[
"not-date"
].
as
<
std
::
string
>
()
==
"2002-04-28"
);
...
...
@@ -253,7 +253,7 @@ namespace Test
// 2.24
TEST
GlobalTags
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex2_24
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex2_24
);
YAML_ASSERT
(
doc
.
Tag
()
==
"tag:clarkevans.com,2002:shape"
);
YAML_ASSERT
(
doc
.
size
()
==
3
);
YAML_ASSERT
(
doc
[
0
].
Tag
()
==
"tag:clarkevans.com,2002:circle"
);
...
...
@@ -282,7 +282,7 @@ namespace Test
// 2.25
TEST
UnorderedSets
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex2_25
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex2_25
);
YAML_ASSERT
(
doc
.
Tag
()
==
"tag:yaml.org,2002:set"
);
YAML_ASSERT
(
doc
.
size
()
==
3
);
YAML_ASSERT
(
doc
[
"Mark McGwire"
].
IsNull
());
...
...
@@ -293,7 +293,7 @@ namespace Test
// 2.26
TEST
OrderedMappings
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex2_26
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex2_26
);
YAML_ASSERT
(
doc
.
Tag
()
==
"tag:yaml.org,2002:omap"
);
YAML_ASSERT
(
doc
.
size
()
==
3
);
YAML_ASSERT
(
doc
[
0
].
size
()
==
1
);
...
...
@@ -307,7 +307,7 @@ namespace Test
// 2.27
TEST
Invoice
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex2_27
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex2_27
);
YAML_ASSERT
(
doc
.
Tag
()
==
"tag:clarkevans.com,2002:invoice"
);
YAML_ASSERT
(
doc
.
size
()
==
8
);
YAML_ASSERT
(
doc
[
"invoice"
].
as
<
int
>
()
==
34843
);
...
...
@@ -352,7 +352,7 @@ namespace Test
// 5.3
TEST
BlockStructureIndicators
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex5_3
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex5_3
);
YAML_ASSERT
(
doc
.
size
()
==
2
);
YAML_ASSERT
(
doc
[
"sequence"
].
size
()
==
2
);
YAML_ASSERT
(
doc
[
"sequence"
][
0
].
as
<
std
::
string
>
()
==
"one"
);
...
...
@@ -365,7 +365,7 @@ namespace Test
// 5.4
TEST
FlowStructureIndicators
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex5_4
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex5_4
);
YAML_ASSERT
(
doc
.
size
()
==
2
);
YAML_ASSERT
(
doc
[
"sequence"
].
size
()
==
2
);
YAML_ASSERT
(
doc
[
"sequence"
][
0
].
as
<
std
::
string
>
()
==
"one"
);
...
...
@@ -378,14 +378,14 @@ namespace Test
// 5.5
TEST
CommentIndicator
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex5_5
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex5_5
);
YAML_ASSERT
(
doc
.
IsNull
());
return
true
;
}
// 5.6
TEST
NodePropertyIndicators
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex5_6
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex5_6
);
YAML_ASSERT
(
doc
.
size
()
==
2
);
YAML_ASSERT
(
doc
[
"anchored"
].
as
<
std
::
string
>
()
==
"value"
);
// TODO: assert tag
YAML_ASSERT
(
doc
[
"alias"
].
as
<
std
::
string
>
()
==
"value"
);
...
...
@@ -394,7 +394,7 @@ namespace Test
// 5.7
TEST
BlockScalarIndicators
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex5_7
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex5_7
);
YAML_ASSERT
(
doc
.
size
()
==
2
);
YAML_ASSERT
(
doc
[
"literal"
].
as
<
std
::
string
>
()
==
"some
\n
text
\n
"
);
YAML_ASSERT
(
doc
[
"folded"
].
as
<
std
::
string
>
()
==
"some text
\n
"
);
...
...
@@ -403,7 +403,7 @@ namespace Test
// 5.8
TEST
QuotedScalarIndicators
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex5_8
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex5_8
);
YAML_ASSERT
(
doc
.
size
()
==
2
);
YAML_ASSERT
(
doc
[
"single"
].
as
<
std
::
string
>
()
==
"text"
);
YAML_ASSERT
(
doc
[
"double"
].
as
<
std
::
string
>
()
==
"text"
);
...
...
@@ -415,14 +415,14 @@ namespace Test
// 5.11
TEST
LineBreakCharacters
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex5_11
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex5_11
);
YAML_ASSERT
(
doc
.
as
<
std
::
string
>
()
==
"Line break (no glyph)
\n
Line break (glyphed)
\n
"
);
return
true
;
}
// 5.12
TEST
TabsAndSpaces
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex5_12
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex5_12
);
YAML_ASSERT
(
doc
.
size
()
==
2
);
YAML_ASSERT
(
doc
[
"quoted"
].
as
<
std
::
string
>
()
==
"Quoted
\t
"
);
YAML_ASSERT
(
doc
[
"block"
].
as
<
std
::
string
>
()
==
...
...
@@ -434,7 +434,7 @@ namespace Test
// 5.13
TEST
EscapedCharacters
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex5_13
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex5_13
);
YAML_ASSERT
(
doc
.
as
<
std
::
string
>
()
==
"Fun with
\x5C
\x22
\x07
\x08
\x1B
\x0C
\x0A
\x0D
\x09
\x0B
"
+
std
::
string
(
"
\x00
"
,
1
)
+
"
\x20
\xA0
\x85
\xe2\x80\xa8
\xe2\x80\xa9
A A A"
);
return
true
;
}
...
...
@@ -442,7 +442,7 @@ namespace Test
// 5.14
TEST
InvalidEscapedCharacters
()
{
try
{
YAML
::
Parse
(
ex5_14
);
YAML
::
Load
(
ex5_14
);
}
catch
(
const
YAML
::
ParserException
&
e
)
{
YAML_ASSERT
(
e
.
msg
==
std
::
string
(
YAML
::
ErrorMsg
::
INVALID_ESCAPE
)
+
"c"
);
return
true
;
...
...
@@ -453,7 +453,7 @@ namespace Test
// 6.1
TEST
IndentationSpaces
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex6_1
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex6_1
);
YAML_ASSERT
(
doc
.
size
()
==
1
);
YAML_ASSERT
(
doc
[
"Not indented"
].
size
()
==
2
);
YAML_ASSERT
(
doc
[
"Not indented"
][
"By one space"
].
as
<
std
::
string
>
()
==
"By four
\n
spaces
\n
"
);
...
...
@@ -466,7 +466,7 @@ namespace Test
// 6.2
TEST
IndentationIndicators
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex6_2
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex6_2
);
YAML_ASSERT
(
doc
.
size
()
==
1
);
YAML_ASSERT
(
doc
[
"a"
].
size
()
==
2
);
YAML_ASSERT
(
doc
[
"a"
][
0
].
as
<
std
::
string
>
()
==
"b"
);
...
...
@@ -478,7 +478,7 @@ namespace Test
// 6.3
TEST
SeparationSpaces
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex6_3
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex6_3
);
YAML_ASSERT
(
doc
.
size
()
==
2
);
YAML_ASSERT
(
doc
[
0
].
size
()
==
1
);
YAML_ASSERT
(
doc
[
0
][
"foo"
].
as
<
std
::
string
>
()
==
"bar"
);
...
...
@@ -490,7 +490,7 @@ namespace Test
// 6.4
TEST
LinePrefixes
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex6_4
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex6_4
);
YAML_ASSERT
(
doc
.
size
()
==
3
);
YAML_ASSERT
(
doc
[
"plain"
].
as
<
std
::
string
>
()
==
"text lines"
);
YAML_ASSERT
(
doc
[
"quoted"
].
as
<
std
::
string
>
()
==
"text lines"
);
...
...
@@ -500,7 +500,7 @@ namespace Test
// 6.5
TEST
EmptyLines
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex6_5
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex6_5
);
YAML_ASSERT
(
doc
.
size
()
==
2
);
YAML_ASSERT
(
doc
[
"Folding"
].
as
<
std
::
string
>
()
==
"Empty line
\n
as a line feed"
);
YAML_ASSERT
(
doc
[
"Chomping"
].
as
<
std
::
string
>
()
==
"Clipped empty lines
\n
"
);
...
...
@@ -509,28 +509,28 @@ namespace Test
// 6.6
TEST
LineFolding
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex6_6
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex6_6
);
YAML_ASSERT
(
doc
.
as
<
std
::
string
>
()
==
"trimmed
\n\n\n
as space"
);
return
true
;
}
// 6.7
TEST
BlockFolding
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex6_7
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex6_7
);
YAML_ASSERT
(
doc
.
as
<
std
::
string
>
()
==
"foo
\n\n\t
bar
\n\n
baz
\n
"
);
return
true
;
}
// 6.8
TEST
FlowFolding
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex6_8
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex6_8
);
YAML_ASSERT
(
doc
.
as
<
std
::
string
>
()
==
" foo
\n
bar
\n
baz "
);
return
true
;
}
// 6.9
TEST
SeparatedComment
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex6_9
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex6_9
);
YAML_ASSERT
(
doc
.
size
()
==
1
);
YAML_ASSERT
(
doc
[
"key"
].
as
<
std
::
string
>
()
==
"value"
);
return
true
;
...
...
@@ -538,14 +538,14 @@ namespace Test
// 6.10
TEST
CommentLines
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex6_10
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex6_10
);
YAML_ASSERT
(
doc
.
IsNull
());
return
true
;
}
// 6.11
TEST
MultiLineComments
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex6_11
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex6_11
);
YAML_ASSERT
(
doc
.
size
()
==
1
);
YAML_ASSERT
(
doc
[
"key"
].
as
<
std
::
string
>
()
==
"value"
);
return
true
;
...
...
@@ -553,7 +553,7 @@ namespace Test
// 6.12
TEST
SeparationSpacesII
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex6_12
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex6_12
);
std
::
map
<
std
::
string
,
std
::
string
>
sammy
;
sammy
[
"first"
]
=
"Sammy"
;
...
...
@@ -568,14 +568,14 @@ namespace Test
// 6.13
TEST
ReservedDirectives
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex6_13
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex6_13
);
YAML_ASSERT
(
doc
.
as
<
std
::
string
>
()
==
"foo"
);
return
true
;
}
// 6.14
TEST
YAMLDirective
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex6_14
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex6_14
);
YAML_ASSERT
(
doc
.
as
<
std
::
string
>
()
==
"foo"
);
return
true
;
}
...
...
@@ -583,7 +583,7 @@ namespace Test
// 6.15
TEST
InvalidRepeatedYAMLDirective
()
{
try
{
YAML
::
Parse
(
ex6_15
);
YAML
::
Load
(
ex6_15
);
}
catch
(
const
YAML
::
ParserException
&
e
)
{
YAML_ASSERT
(
e
.
msg
==
YAML
::
ErrorMsg
::
REPEATED_YAML_DIRECTIVE
);
return
true
;
...
...
@@ -594,7 +594,7 @@ namespace Test
// 6.16
TEST
TagDirective
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex6_16
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex6_16
);
YAML_ASSERT
(
doc
.
Tag
()
==
"tag:yaml.org,2002:str"
);
YAML_ASSERT
(
doc
.
as
<
std
::
string
>
()
==
"foo"
);
return
true
;
...
...
@@ -603,7 +603,7 @@ namespace Test
// 6.17
TEST
InvalidRepeatedTagDirective
()
{
try
{
YAML
::
Parse
(
ex6_17
);
YAML
::
Load
(
ex6_17
);
}
catch
(
const
YAML
::
ParserException
&
e
)
{
if
(
e
.
msg
==
YAML
::
ErrorMsg
::
REPEATED_TAG_DIRECTIVE
)
return
true
;
...
...
@@ -619,7 +619,7 @@ namespace Test
// 6.19
TEST
SecondaryTagHandle
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex6_19
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex6_19
);
YAML_ASSERT
(
doc
.
Tag
()
==
"tag:example.com,2000:app/int"
);
YAML_ASSERT
(
doc
.
as
<
std
::
string
>
()
==
"1 - 3"
);
return
true
;
...
...
@@ -627,7 +627,7 @@ namespace Test
// 6.20
TEST
TagHandles
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex6_20
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex6_20
);
YAML_ASSERT
(
doc
.
Tag
()
==
"tag:example.com,2000:app/foo"
);
YAML_ASSERT
(
doc
.
as
<
std
::
string
>
()
==
"bar"
);
return
true
;
...
...
@@ -638,7 +638,7 @@ namespace Test
// 6.22
TEST
GlobalTagPrefix
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex6_22
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex6_22
);
YAML_ASSERT
(
doc
.
size
()
==
1
);
YAML_ASSERT
(
doc
[
0
].
Tag
()
==
"tag:example.com,2000:app/foo"
);
YAML_ASSERT
(
doc
[
0
].
as
<
std
::
string
>
()
==
"bar"
);
...
...
@@ -647,7 +647,7 @@ namespace Test
// 6.23
TEST
NodeProperties
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex6_23
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex6_23
);
YAML_ASSERT
(
doc
.
size
()
==
2
);
for
(
YAML
::
const_iterator
it
=
doc
.
begin
();
it
!=
doc
.
end
();
++
it
)
{
if
(
it
->
first
.
as
<
std
::
string
>
()
==
"foo"
)
{
...
...
@@ -665,7 +665,7 @@ namespace Test
// 6.24
TEST
VerbatimTags
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex6_24
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex6_24
);
YAML_ASSERT
(
doc
.
size
()
==
1
);
for
(
YAML
::
const_iterator
it
=
doc
.
begin
();
it
!=
doc
.
end
();
++
it
)
{
YAML_ASSERT
(
it
->
first
.
Tag
()
==
"tag:yaml.org,2002:str"
);
...
...
@@ -678,13 +678,13 @@ namespace Test
// 6.25
TEST
InvalidVerbatimTags
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex6_25
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex6_25
);
return
" not implemented yet"
;
// TODO: check tags (but we probably will say these are valid, I think)
}
// 6.26
TEST
TagShorthands
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex6_26
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex6_26
);
YAML_ASSERT
(
doc
.
size
()
==
3
);
YAML_ASSERT
(
doc
[
0
].
Tag
()
==
"!local"
);
YAML_ASSERT
(
doc
[
0
].
as
<
std
::
string
>
()
==
"foo"
);
...
...
@@ -699,7 +699,7 @@ namespace Test
TEST
InvalidTagShorthands
()
{
bool
threw
=
false
;
try
{
YAML
::
Parse
(
ex6_27a
);
YAML
::
Load
(
ex6_27a
);
}
catch
(
const
YAML
::
ParserException
&
e
)
{
threw
=
true
;
if
(
e
.
msg
!=
YAML
::
ErrorMsg
::
TAG_WITH_NO_SUFFIX
)
...
...
@@ -709,13 +709,13 @@ namespace Test
if
(
!
threw
)
return
" No exception was thrown for a tag with no suffix"
;
YAML
::
Parse
(
ex6_27b
);
// TODO: should we reject this one (since !h! is not declared)?
YAML
::
Load
(
ex6_27b
);
// TODO: should we reject this one (since !h! is not declared)?
return
" not implemented yet"
;
}
// 6.28
TEST
NonSpecificTags
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex6_28
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex6_28
);
YAML_ASSERT
(
doc
.
size
()
==
3
);
YAML_ASSERT
(
doc
[
0
].
as
<
std
::
string
>
()
==
"12"
);
// TODO: check tags. How?
YAML_ASSERT
(
doc
[
1
].
as
<
int
>
()
==
12
);
...
...
@@ -725,7 +725,7 @@ namespace Test
// 6.29
TEST
NodeAnchors
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex6_29
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex6_29
);
YAML_ASSERT
(
doc
.
size
()
==
2
);
YAML_ASSERT
(
doc
[
"First occurrence"
].
as
<
std
::
string
>
()
==
"Value"
);
YAML_ASSERT
(
doc
[
"Second occurrence"
].
as
<
std
::
string
>
()
==
"Value"
);
...
...
@@ -734,7 +734,7 @@ namespace Test
// 7.1
TEST
AliasNodes
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex7_1
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex7_1
);
YAML_ASSERT
(
doc
.
size
()
==
4
);
YAML_ASSERT
(
doc
[
"First occurrence"
].
as
<
std
::
string
>
()
==
"Foo"
);
YAML_ASSERT
(
doc
[
"Second occurrence"
].
as
<
std
::
string
>
()
==
"Foo"
);
...
...
@@ -745,7 +745,7 @@ namespace Test
// 7.2
TEST
EmptyNodes
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex7_2
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex7_2
);
YAML_ASSERT
(
doc
.
size
()
==
2
);
for
(
YAML
::
const_iterator
it
=
doc
.
begin
();
it
!=
doc
.
end
();
++
it
)
{
if
(
it
->
first
.
as
<
std
::
string
>
()
==
"foo"
)
{
...
...
@@ -762,7 +762,7 @@ namespace Test
// 7.3
TEST
CompletelyEmptyNodes
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex7_3
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex7_3
);
YAML_ASSERT
(
doc
.
size
()
==
2
);
YAML_ASSERT
(
doc
[
"foo"
].
IsNull
());
YAML_ASSERT
(
doc
[
YAML
::
Null
].
as
<
std
::
string
>
()
==
"bar"
);
...
...
@@ -771,7 +771,7 @@ namespace Test
// 7.4
TEST
DoubleQuotedImplicitKeys
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex7_4
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex7_4
);
YAML_ASSERT
(
doc
.
size
()
==
1
);
YAML_ASSERT
(
doc
[
"implicit block key"
].
size
()
==
1
);
YAML_ASSERT
(
doc
[
"implicit block key"
][
0
].
size
()
==
1
);
...
...
@@ -781,28 +781,28 @@ namespace Test
// 7.5
TEST
DoubleQuotedLineBreaks
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex7_5
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex7_5
);
YAML_ASSERT
(
doc
.
as
<
std
::
string
>
()
==
"folded to a space,
\n
to a line feed, or
\t
\t
non-content"
);
return
true
;
}
// 7.6
TEST
DoubleQuotedLines
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex7_6
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex7_6
);
YAML_ASSERT
(
doc
.
as
<
std
::
string
>
()
==
" 1st non-empty
\n
2nd non-empty 3rd non-empty "
);
return
true
;
}
// 7.7
TEST
SingleQuotedCharacters
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex7_7
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex7_7
);
YAML_ASSERT
(
doc
.
as
<
std
::
string
>
()
==
"here's to
\"
quotes
\"
"
);
return
true
;
}
// 7.8
TEST
SingleQuotedImplicitKeys
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex7_8
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex7_8
);
YAML_ASSERT
(
doc
.
size
()
==
1
);
YAML_ASSERT
(
doc
[
"implicit block key"
].
size
()
==
1
);
YAML_ASSERT
(
doc
[
"implicit block key"
][
0
].
size
()
==
1
);
...
...
@@ -812,14 +812,14 @@ namespace Test
// 7.9
TEST
SingleQuotedLines
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex7_9
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex7_9
);
YAML_ASSERT
(
doc
.
as
<
std
::
string
>
()
==
" 1st non-empty
\n
2nd non-empty 3rd non-empty "
);
return
true
;
}
// 7.10
TEST
PlainCharacters
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex7_10
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex7_10
);
YAML_ASSERT
(
doc
.
size
()
==
6
);
YAML_ASSERT
(
doc
[
0
].
as
<
std
::
string
>
()
==
"::vector"
);
YAML_ASSERT
(
doc
[
1
].
as
<
std
::
string
>
()
==
": - ()"
);
...
...
@@ -837,7 +837,7 @@ namespace Test
// 7.11
TEST
PlainImplicitKeys
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex7_11
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex7_11
);
YAML_ASSERT
(
doc
.
size
()
==
1
);
YAML_ASSERT
(
doc
[
"implicit block key"
].
size
()
==
1
);
YAML_ASSERT
(
doc
[
"implicit block key"
][
0
].
size
()
==
1
);
...
...
@@ -847,14 +847,14 @@ namespace Test
// 7.12
TEST
PlainLines
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex7_12
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex7_12
);
YAML_ASSERT
(
doc
.
as
<
std
::
string
>
()
==
"1st non-empty
\n
2nd non-empty 3rd non-empty"
);
return
true
;
}
// 7.13
TEST
FlowSequence
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex7_13
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex7_13
);
YAML_ASSERT
(
doc
.
size
()
==
2
);
YAML_ASSERT
(
doc
[
0
].
size
()
==
2
);
YAML_ASSERT
(
doc
[
0
][
0
].
as
<
std
::
string
>
()
==
"one"
);
...
...
@@ -867,7 +867,7 @@ namespace Test
// 7.14
TEST
FlowSequenceEntries
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex7_14
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex7_14
);
YAML_ASSERT
(
doc
.
size
()
==
5
);
YAML_ASSERT
(
doc
[
0
].
as
<
std
::
string
>
()
==
"double quoted"
);
YAML_ASSERT
(
doc
[
1
].
as
<
std
::
string
>
()
==
"single quoted"
);
...
...
@@ -881,7 +881,7 @@ namespace Test
// 7.15
TEST
FlowMappings
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex7_15
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex7_15
);
YAML_ASSERT
(
doc
.
size
()
==
2
);
YAML_ASSERT
(
doc
[
0
].
size
()
==
2
);
YAML_ASSERT
(
doc
[
0
][
"one"
].
as
<
std
::
string
>
()
==
"two"
);
...
...
@@ -894,7 +894,7 @@ namespace Test
// 7.16
TEST
FlowMappingEntries
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex7_16
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex7_16
);
YAML_ASSERT
(
doc
.
size
()
==
3
);
YAML_ASSERT
(
doc
[
"explicit"
].
as
<
std
::
string
>
()
==
"entry"
);
YAML_ASSERT
(
doc
[
"implicit"
].
as
<
std
::
string
>
()
==
"entry"
);
...
...
@@ -904,7 +904,7 @@ namespace Test
// 7.17
TEST
FlowMappingSeparateValues
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex7_17
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex7_17
);
YAML_ASSERT
(
doc
.
size
()
==
4
);
YAML_ASSERT
(
doc
[
"unquoted"
].
as
<
std
::
string
>
()
==
"separate"
);
YAML_ASSERT
(
doc
[
"http://foo.com"
].
IsNull
());
...
...
@@ -915,7 +915,7 @@ namespace Test
// 7.18
TEST
FlowMappingAdjacentValues
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex7_18
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex7_18
);
YAML_ASSERT
(
doc
.
size
()
==
3
);
YAML_ASSERT
(
doc
[
"adjacent"
].
as
<
std
::
string
>
()
==
"value"
);
YAML_ASSERT
(
doc
[
"readable"
].
as
<
std
::
string
>
()
==
"value"
);
...
...
@@ -925,7 +925,7 @@ namespace Test
// 7.19
TEST
SinglePairFlowMappings
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex7_19
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex7_19
);
YAML_ASSERT
(
doc
.
size
()
==
1
);
YAML_ASSERT
(
doc
[
0
].
size
()
==
1
);
YAML_ASSERT
(
doc
[
0
][
"foo"
].
as
<
std
::
string
>
()
==
"bar"
);
...
...
@@ -934,7 +934,7 @@ namespace Test
// 7.20
TEST
SinglePairExplicitEntry
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex7_20
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex7_20
);
YAML_ASSERT
(
doc
.
size
()
==
1
);
YAML_ASSERT
(
doc
[
0
].
size
()
==
1
);
YAML_ASSERT
(
doc
[
0
][
"foo bar"
].
as
<
std
::
string
>
()
==
"baz"
);
...
...
@@ -943,7 +943,7 @@ namespace Test
// 7.21
TEST
SinglePairImplicitEntries
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex7_21
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex7_21
);
YAML_ASSERT
(
doc
.
size
()
==
3
);
YAML_ASSERT
(
doc
[
0
].
size
()
==
1
);
YAML_ASSERT
(
doc
[
0
][
0
].
size
()
==
1
);
...
...
@@ -963,7 +963,7 @@ namespace Test
// 7.22
TEST
InvalidImplicitKeys
()
{
try
{
YAML
::
Parse
(
ex7_22
);
YAML
::
Load
(
ex7_22
);
}
catch
(
const
YAML
::
Exception
&
e
)
{
if
(
e
.
msg
==
YAML
::
ErrorMsg
::
END_OF_SEQ_FLOW
)
return
true
;
...
...
@@ -975,7 +975,7 @@ namespace Test
// 7.23
TEST
FlowContent
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex7_23
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex7_23
);
YAML_ASSERT
(
doc
.
size
()
==
5
);
YAML_ASSERT
(
doc
[
0
].
size
()
==
2
);
YAML_ASSERT
(
doc
[
0
][
0
].
as
<
std
::
string
>
()
==
"a"
);
...
...
@@ -990,7 +990,7 @@ namespace Test
// 7.24
TEST
FlowNodes
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex7_24
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex7_24
);
YAML_ASSERT
(
doc
.
size
()
==
5
);
YAML_ASSERT
(
doc
[
0
].
Tag
()
==
"tag:yaml.org,2002:str"
);
YAML_ASSERT
(
doc
[
0
].
as
<
std
::
string
>
()
==
"a"
);
...
...
@@ -1004,7 +1004,7 @@ namespace Test
// 8.1
TEST
BlockScalarHeader
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex8_1
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex8_1
);
YAML_ASSERT
(
doc
.
size
()
==
4
);
YAML_ASSERT
(
doc
[
0
].
as
<
std
::
string
>
()
==
"literal
\n
"
);
YAML_ASSERT
(
doc
[
1
].
as
<
std
::
string
>
()
==
" folded
\n
"
);
...
...
@@ -1015,7 +1015,7 @@ namespace Test
// 8.2
TEST
BlockIndentationHeader
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex8_2
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex8_2
);
YAML_ASSERT
(
doc
.
size
()
==
4
);
YAML_ASSERT
(
doc
[
0
].
as
<
std
::
string
>
()
==
"detected
\n
"
);
YAML_ASSERT
(
doc
[
1
].
as
<
std
::
string
>
()
==
"
\n\n
# detected
\n
"
);
...
...
@@ -1029,7 +1029,7 @@ namespace Test
{
bool
threw
=
false
;
try
{
YAML
::
Parse
(
ex8_3a
);
YAML
::
Load
(
ex8_3a
);
}
catch
(
const
YAML
::
Exception
&
e
)
{
if
(
e
.
msg
!=
YAML
::
ErrorMsg
::
END_OF_SEQ
)
throw
;
...
...
@@ -1044,7 +1044,7 @@ namespace Test
{
bool
threw
=
false
;
try
{
YAML
::
Parse
(
ex8_3b
);
YAML
::
Load
(
ex8_3b
);
}
catch
(
const
YAML
::
Exception
&
e
)
{
if
(
e
.
msg
!=
YAML
::
ErrorMsg
::
END_OF_SEQ
)
throw
;
...
...
@@ -1059,7 +1059,7 @@ namespace Test
{
bool
threw
=
false
;
try
{
YAML
::
Parse
(
ex8_3c
);
YAML
::
Load
(
ex8_3c
);
}
catch
(
const
YAML
::
Exception
&
e
)
{
if
(
e
.
msg
!=
YAML
::
ErrorMsg
::
END_OF_SEQ
)
throw
;
...
...
@@ -1076,7 +1076,7 @@ namespace Test
// 8.4
TEST
ChompingFinalLineBreak
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex8_4
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex8_4
);
YAML_ASSERT
(
doc
.
size
()
==
3
);
YAML_ASSERT
(
doc
[
"strip"
].
as
<
std
::
string
>
()
==
"text"
);
YAML_ASSERT
(
doc
[
"clip"
].
as
<
std
::
string
>
()
==
"text
\n
"
);
...
...
@@ -1086,7 +1086,7 @@ namespace Test
// 8.5
TEST
ChompingTrailingLines
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex8_5
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex8_5
);
YAML_ASSERT
(
doc
.
size
()
==
3
);
YAML_ASSERT
(
doc
[
"strip"
].
as
<
std
::
string
>
()
==
"# text"
);
YAML_ASSERT
(
doc
[
"clip"
].
as
<
std
::
string
>
()
==
"# text
\n
"
);
...
...
@@ -1096,7 +1096,7 @@ namespace Test
// 8.6
TEST
EmptyScalarChomping
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex8_6
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex8_6
);
YAML_ASSERT
(
doc
.
size
()
==
3
);
YAML_ASSERT
(
doc
[
"strip"
].
as
<
std
::
string
>
()
==
""
);
YAML_ASSERT
(
doc
[
"clip"
].
as
<
std
::
string
>
()
==
""
);
...
...
@@ -1106,56 +1106,56 @@ namespace Test
// 8.7
TEST
LiteralScalar
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex8_7
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex8_7
);
YAML_ASSERT
(
doc
.
as
<
std
::
string
>
()
==
"literal
\n\t
text
\n
"
);
return
true
;
}
// 8.8
TEST
LiteralContent
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex8_8
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex8_8
);
YAML_ASSERT
(
doc
.
as
<
std
::
string
>
()
==
"
\n\n
literal
\n
\n\n
text
\n
"
);
return
true
;
}
// 8.9
TEST
FoldedScalar
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex8_9
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex8_9
);
YAML_ASSERT
(
doc
.
as
<
std
::
string
>
()
==
"folded text
\n
"
);
return
true
;
}
// 8.10
TEST
FoldedLines
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex8_10
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex8_10
);
YAML_ASSERT
(
doc
.
as
<
std
::
string
>
()
==
"
\n
folded line
\n
next line
\n
* bullet
\n\n
* list
\n
* lines
\n\n
last line
\n
"
);
return
true
;
}
// 8.11
TEST
MoreIndentedLines
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex8_11
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex8_11
);
YAML_ASSERT
(
doc
.
as
<
std
::
string
>
()
==
"
\n
folded line
\n
next line
\n
* bullet
\n\n
* list
\n
* lines
\n\n
last line
\n
"
);
return
true
;
}
// 8.12
TEST
EmptySeparationLines
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex8_12
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex8_12
);
YAML_ASSERT
(
doc
.
as
<
std
::
string
>
()
==
"
\n
folded line
\n
next line
\n
* bullet
\n\n
* list
\n
* lines
\n\n
last line
\n
"
);
return
true
;
}
// 8.13
TEST
FinalEmptyLines
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex8_13
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex8_13
);
YAML_ASSERT
(
doc
.
as
<
std
::
string
>
()
==
"
\n
folded line
\n
next line
\n
* bullet
\n\n
* list
\n
* lines
\n\n
last line
\n
"
);
return
true
;
}
// 8.14
TEST
BlockSequence
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex8_14
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex8_14
);
YAML_ASSERT
(
doc
.
size
()
==
1
);
YAML_ASSERT
(
doc
[
"block sequence"
].
size
()
==
2
);
YAML_ASSERT
(
doc
[
"block sequence"
][
0
].
as
<
std
::
string
>
()
==
"one"
);
...
...
@@ -1166,7 +1166,7 @@ namespace Test
// 8.15
TEST
BlockSequenceEntryTypes
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex8_15
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex8_15
);
YAML_ASSERT
(
doc
.
size
()
==
4
);
YAML_ASSERT
(
doc
[
0
].
IsNull
());
YAML_ASSERT
(
doc
[
1
].
as
<
std
::
string
>
()
==
"block node
\n
"
);
...
...
@@ -1180,7 +1180,7 @@ namespace Test
// 8.16
TEST
BlockMappings
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex8_16
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex8_16
);
YAML_ASSERT
(
doc
.
size
()
==
1
);
YAML_ASSERT
(
doc
[
"block mapping"
].
size
()
==
1
);
YAML_ASSERT
(
doc
[
"block mapping"
][
"key"
].
as
<
std
::
string
>
()
==
"value"
);
...
...
@@ -1189,7 +1189,7 @@ namespace Test
// 8.17
TEST
ExplicitBlockMappingEntries
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex8_17
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex8_17
);
YAML_ASSERT
(
doc
.
size
()
==
2
);
YAML_ASSERT
(
doc
[
"explicit key"
].
IsNull
());
YAML_ASSERT
(
doc
[
"block key
\n
"
].
size
()
==
2
);
...
...
@@ -1200,7 +1200,7 @@ namespace Test
// 8.18
TEST
ImplicitBlockMappingEntries
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex8_18
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex8_18
);
YAML_ASSERT
(
doc
.
size
()
==
3
);
YAML_ASSERT
(
doc
[
"plain key"
].
as
<
std
::
string
>
()
==
"in-line value"
);
YAML_ASSERT
(
doc
[
YAML
::
Null
].
IsNull
());
...
...
@@ -1211,7 +1211,7 @@ namespace Test
// 8.19
TEST
CompactBlockMappings
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex8_19
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex8_19
);
YAML_ASSERT
(
doc
.
size
()
==
2
);
YAML_ASSERT
(
doc
[
0
].
size
()
==
1
);
YAML_ASSERT
(
doc
[
0
][
"sun"
].
as
<
std
::
string
>
()
==
"yellow"
);
...
...
@@ -1225,7 +1225,7 @@ namespace Test
// 8.20
TEST
BlockNodeTypes
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex8_20
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex8_20
);
YAML_ASSERT
(
doc
.
size
()
==
3
);
YAML_ASSERT
(
doc
[
0
].
as
<
std
::
string
>
()
==
"flow in block"
);
YAML_ASSERT
(
doc
[
1
].
as
<
std
::
string
>
()
==
"Block scalar
\n
"
);
...
...
@@ -1236,7 +1236,7 @@ namespace Test
// 8.21
TEST
BlockScalarNodes
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex8_21
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex8_21
);
YAML_ASSERT
(
doc
.
size
()
==
2
);
YAML_ASSERT
(
doc
[
"literal"
].
as
<
std
::
string
>
()
==
"value"
);
// Note: I believe this is a bug in the YAML spec - it should be "value\n"
YAML_ASSERT
(
doc
[
"folded"
].
as
<
std
::
string
>
()
==
"value"
);
...
...
@@ -1246,7 +1246,7 @@ namespace Test
// 8.22
TEST
BlockCollectionNodes
()
{
YAML
::
Node
doc
=
YAML
::
Parse
(
ex8_22
);
YAML
::
Node
doc
=
YAML
::
Load
(
ex8_22
);
YAML_ASSERT
(
doc
.
size
()
==
2
);
YAML_ASSERT
(
doc
[
"sequence"
].
size
()
==
2
);
YAML_ASSERT
(
doc
[
"sequence"
][
0
].
as
<
std
::
string
>
()
==
"entry"
);
...
...
util/parse.cpp
View file @
e3d5ec18
...
...
@@ -46,7 +46,7 @@ void parse(std::istream& input)
std
::
cout
<<
emitter
.
c_str
()
<<
"
\n
"
;
}
#else
YAML
::
Node
doc
=
YAML
::
Parse
(
input
);
YAML
::
Node
doc
=
YAML
::
Load
(
input
);
std
::
cout
<<
doc
<<
"
\n
"
;
#endif
}
catch
(
const
YAML
::
Exception
&
e
)
{
...
...
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