From e3d5ec189ddc16204ee40abbaed6569158679b01 Mon Sep 17 00:00:00 2001 From: Jesse Beder Date: Tue, 13 Sep 2011 14:24:47 -0500 Subject: [PATCH] Switched YAML::Parse to YAML::Load, and added LoadAll --- include/yaml-cpp/node/parse.h | 13 ++- src/node/parse.cpp | 34 +++++- test/new-api/spectests.cpp | 214 +++++++++++++++++----------------- util/parse.cpp | 2 +- 4 files changed, 146 insertions(+), 117 deletions(-) diff --git a/include/yaml-cpp/node/parse.h b/include/yaml-cpp/node/parse.h index e18607d..1a8304b 100644 --- a/include/yaml-cpp/node/parse.h +++ b/include/yaml-cpp/node/parse.h @@ -5,16 +5,21 @@ #pragma once #endif -#include #include +#include +#include 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 LoadAll(const std::string& input); + std::vector LoadAll(const char *input); + std::vector LoadAll(std::istream& input); } #endif // VALUE_PARSE_H_62B23520_7C8E_11DE_8A39_0800200C9A66 diff --git a/src/node/parse.cpp b/src/node/parse.cpp index 1a81003..3cbf196 100644 --- a/src/node/parse.cpp +++ b/src/node/parse.cpp @@ -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 LoadAll(const std::string& input) { + std::stringstream stream(input); + return LoadAll(stream); + } + + std::vector LoadAll(const char *input) { + std::stringstream stream(input); + return LoadAll(stream); + } + + std::vector LoadAll(std::istream& input) { + std::vector docs; + + Parser parser(input); + while(1) { + NodeBuilder builder; + if(!parser.HandleNextDocument(builder)) + break; + docs.push_back(builder.Root()); + } + + return docs; + } } diff --git a/test/new-api/spectests.cpp b/test/new-api/spectests.cpp index 13359c2..034f796 100644 --- a/test/new-api/spectests.cpp +++ b/test/new-api/spectests.cpp @@ -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() == "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() == "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() == "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() == "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() == "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() == "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() == "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 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() == "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() == "\\//||\\/||\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() == "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() == "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() == "Mark McGwire"); YAML_ASSERT(doc["accomplishment"].as() == "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() == "Sosa did fine.\xe2\x98\xba"); YAML_ASSERT(doc["control"].as() == "\b1998\t1999\t2000\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() == "This unquoted scalar spans many lines."); YAML_ASSERT(doc["quoted"].as() == "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() == "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() == 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() == "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() == "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() == "value"); // TODO: assert tag YAML_ASSERT(doc["alias"].as() == "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() == "some\ntext\n"); YAML_ASSERT(doc["folded"].as() == "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() == "text"); YAML_ASSERT(doc["double"].as() == "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() == "Line break (no glyph)\nLine 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() == "Quoted\t"); YAML_ASSERT(doc["block"].as() == @@ -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() == "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() == "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() == "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() == "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() == "text lines"); YAML_ASSERT(doc["quoted"].as() == "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() == "Empty line\nas a line feed"); YAML_ASSERT(doc["Chomping"].as() == "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() == "trimmed\n\n\nas 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() == "foo \n\n\t bar\n\nbaz\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() == " foo\nbar\nbaz "); 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() == "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() == "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 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() == "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() == "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() == "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() == "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() == "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() == "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() == "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() == "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() == "12"); // TODO: check tags. How? YAML_ASSERT(doc[1].as() == 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() == "Value"); YAML_ASSERT(doc["Second occurrence"].as() == "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() == "Foo"); YAML_ASSERT(doc["Second occurrence"].as() == "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() == "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() == "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() == "folded to a space,\nto a line feed, or \t \tnon-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() == " 1st non-empty\n2nd 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() == "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() == " 1st non-empty\n2nd 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() == "::vector"); YAML_ASSERT(doc[1].as() == ": - ()"); @@ -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() == "1st non-empty\n2nd 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() == "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() == "double quoted"); YAML_ASSERT(doc[1].as() == "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() == "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() == "entry"); YAML_ASSERT(doc["implicit"].as() == "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() == "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() == "value"); YAML_ASSERT(doc["readable"].as() == "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() == "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() == "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() == "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() == "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() == "literal\n"); YAML_ASSERT(doc[1].as() == " 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() == "detected\n"); YAML_ASSERT(doc[1].as() == "\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() == "text"); YAML_ASSERT(doc["clip"].as() == "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() == "# text"); YAML_ASSERT(doc["clip"].as() == "# 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() == ""); YAML_ASSERT(doc["clip"].as() == ""); @@ -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() == "literal\n\ttext\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() == "\n\nliteral\n \n\ntext\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() == "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() == "\nfolded line\nnext line\n * bullet\n\n * list\n * lines\n\nlast 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() == "\nfolded line\nnext line\n * bullet\n\n * list\n * lines\n\nlast 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() == "\nfolded line\nnext line\n * bullet\n\n * list\n * lines\n\nlast 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() == "\nfolded line\nnext line\n * bullet\n\n * list\n * lines\n\nlast 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() == "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() == "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() == "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() == "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() == "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() == "flow in block"); YAML_ASSERT(doc[1].as() == "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() == "value"); // Note: I believe this is a bug in the YAML spec - it should be "value\n" YAML_ASSERT(doc["folded"].as() == "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() == "entry"); diff --git a/util/parse.cpp b/util/parse.cpp index 1ca20e3..0653c2a 100644 --- a/util/parse.cpp +++ b/util/parse.cpp @@ -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) {