diff --git a/src/yaml/scalarMappingParser.cc b/src/yaml/scalarMappingParser.cc index f06fa2a..5de7050 100644 --- a/src/yaml/scalarMappingParser.cc +++ b/src/yaml/scalarMappingParser.cc @@ -28,7 +28,12 @@ ScalarMappingParser::~ScalarMappingParser() void ScalarMappingParser::HandleEvent(yaml_event_t& event) { - if (event.type == YAML_MAPPING_END_EVENT) { + if (mShouldExpectKey && event.type == YAML_MAPPING_START_EVENT) { + printf("%s: start scalar mapping: tag = %s\n", __PRETTY_FUNCTION__, + event.data.mapping_start.tag); + return; + } + else if (mShouldExpectKey && event.type == YAML_MAPPING_END_EVENT) { SetDone(true); return; } @@ -36,6 +41,7 @@ ScalarMappingParser::HandleEvent(yaml_event_t& event) if (mShouldExpectKey && event.type == YAML_SCALAR_EVENT) { HandleKeyEvent(std::string((char*)event.data.scalar.value, event.data.scalar.length)); + mShouldExpectKey = false; } else { HandleValueEvent(event);