private ParsingEvent ParseBlockMappingValue()
{
if (GetCurrentToken() is Value)
{
Mark mark = GetCurrentToken().End;
Skip();
if (!(GetCurrentToken() is Key || GetCurrentToken() is Value || GetCurrentToken() is BlockEnd))
{
states.Push(ParserState.BlockMappingKey);
return ParseNode(true, true);
}
else
{
state = ParserState.BlockMappingKey;
return ProcessEmptyScalar(mark);
}
}
else
{
state = ParserState.BlockMappingKey;
return ProcessEmptyScalar(GetCurrentToken().Start);
}
}