private ParsingEvent StateMachine()
{
switch (state)
{
case ParserState.StreamStart:
return ParseStreamStart();
case ParserState.ImplicitDocumentStart:
return ParseDocumentStart(true);
case ParserState.DocumentStart:
return ParseDocumentStart(false);
case ParserState.DocumentContent:
return ParseDocumentContent();
case ParserState.DocumentEnd:
return ParseDocumentEnd();
case ParserState.BlockNode:
return ParseNode(true, false);
case ParserState.BlockNodeOrIndentlessSequence:
return ParseNode(true, true);
case ParserState.FlowNode:
return ParseNode(false, false);
case ParserState.BlockSequenceFirstEntry:
return ParseBlockSequenceEntry(true);
case ParserState.BlockSequenceEntry:
return ParseBlockSequenceEntry(false);
case ParserState.IndentlessSequenceEntry:
return ParseIndentlessSequenceEntry();
case ParserState.BlockMappingFirstKey:
return ParseBlockMappingKey(true);
case ParserState.BlockMappingKey:
return ParseBlockMappingKey(false);
case ParserState.BlockMappingValue:
return ParseBlockMappingValue();
case ParserState.FlowSequenceFirstEntry:
return ParseFlowSequenceEntry(true);
case ParserState.FlowSequenceEntry:
return ParseFlowSequenceEntry(false);
case ParserState.FlowSequenceEntryMappingKey:
return ParseFlowSequenceEntryMappingKey();
case ParserState.FlowSequenceEntryMappingValue:
return ParseFlowSequenceEntryMappingValue();
case ParserState.FlowSequenceEntryMappingEnd:
return ParseFlowSequenceEntryMappingEnd();
case ParserState.FlowMappingFirstKey:
return ParseFlowMappingKey(true);
case ParserState.FlowMappingKey:
return ParseFlowMappingKey(false);
case ParserState.FlowMappingValue:
return ParseFlowMappingValue(false);
case ParserState.FlowMappingEmptyValue:
return ParseFlowMappingValue(true);
default:
Debug.Assert(false, "Invalid state"); // Invalid state.
throw new InvalidOperationException();
}
}