"vscode:/vscode.git/clone" did not exist on "a341b536a88272230bbc66554f97bf3b4b3ecf94"
Commit 65d80ebc authored by Jesse Beder's avatar Jesse Beder
Browse files

Started prepare node

parent 923ccc8f
......@@ -85,6 +85,13 @@ namespace YAML
void EmitKindTag();
void EmitTag(bool verbatim, const _Tag& tag);
void PrepareNode();
void PrepareTopNode();
void FlowSeqPrepareNode();
void BlockSeqPrepareNode();
void FlowMapPrepareNode();
void BlockMapPrepareNode();
const char *ComputeFullBoolName(bool b) const;
bool CanEmitNewline() const;
......
......@@ -210,6 +210,8 @@ namespace YAML
if(!good())
return;
PrepareNode();
m_pState->BeginGroup(GroupType::Seq);
}
......@@ -228,6 +230,8 @@ namespace YAML
if(!good())
return;
PrepareNode();
m_pState->BeginGroup(GroupType::Map);
}
......@@ -252,6 +256,61 @@ namespace YAML
return false;
}
// Put the stream in a state so we can simply write the next node
// E.g., if we're in a sequence, write the "- "
void Emitter::PrepareNode()
{
switch(m_pState->CurGroupType()) {
case GroupType::None:
PrepareTopNode();
break;
case GroupType::Seq:
switch(m_pState->CurGroupFlowType()) {
case FlowType::Flow:
FlowSeqPrepareNode();
break;
case FlowType::Block:
BlockSeqPrepareNode();
break;
case FlowType::None:
assert(false);
}
break;
case GroupType::Map:
switch(m_pState->CurGroupFlowType()) {
case FlowType::Flow:
FlowMapPrepareNode();
break;
case FlowType::Block:
BlockMapPrepareNode();
break;
case FlowType::None:
assert(false);
}
break;
}
}
void Emitter::PrepareTopNode()
{
}
void Emitter::FlowSeqPrepareNode()
{
}
void Emitter::BlockSeqPrepareNode()
{
}
void Emitter::FlowMapPrepareNode()
{
}
void Emitter::BlockMapPrepareNode()
{
}
// *******************************************************************************************
// overloads of Write
......@@ -260,6 +319,8 @@ namespace YAML
if(!good())
return *this;
PrepareNode();
m_pState->BeginScalar();
return *this;
......
......@@ -4,11 +4,7 @@
int main()
{
YAML::Emitter out;
out << YAML::BeginDoc;
out << YAML::BeginSeq;
out << "foo";
out << YAML::EndSeq;
out << YAML::EndDoc;
std::cout << out.c_str() << "\n";
return 0;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment