YamlUtility.Grammar.YamlParser.ParseSeparatedBlock C# (CSharp) Method

ParseSeparatedBlock() private method

private ParseSeparatedBlock ( bool &success ) : YamlUtility.Grammar.DataItem
success bool
return YamlUtility.Grammar.DataItem
        private DataItem ParseSeparatedBlock(out bool success)
        {
            int errorCount = Errors.Count;
            DataItem dataItem = null;

            dataItem = ParseSeparatedContent(out success);
            if (success) { ClearError(errorCount); return dataItem; }

            while (true)
            {
                int seq_start_position1 = position;
                ParseSeparationLines(out success);
                if (!success)
                {
                    Error("Failed to parse SeparationLines of SeparatedBlock.");
                    break;
                }

                dataItem = ParseAliasNode(out success);
                if (!success)
                {
                    Error("Failed to parse AliasNode of SeparatedBlock.");
                    position = seq_start_position1;
                    break;
                }

                ParseInlineComments(out success);
                if (!success)
                {
                    Error("Failed to parse InlineComments of SeparatedBlock.");
                    position = seq_start_position1;
                }
                break;
            }
            if (success) { ClearError(errorCount); return dataItem; }

            while (true)
            {
                int seq_start_position2 = position;
                ParseSeparationSpace(out success);
                if (!success)
                {
                    Error("Failed to parse SeparationSpace of SeparatedBlock.");
                    break;
                }

                NodeProperty property = ParseNodeProperty(out success);
                if (!success)
                {
                    Error("Failed to parse property of SeparatedBlock.");
                    position = seq_start_position2;
                    break;
                }

                dataItem = ParseSeparatedContent(out success);
                if (success) { SetDataItemProperty(dataItem, property); }
                success = true;
                break;
            }
            if (success) { ClearError(errorCount); return dataItem; }

            dataItem = ParseEmptyBlock(out success);
            if (success) { ClearError(errorCount); return dataItem; }

            return dataItem;
        }
YamlParser