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

ParseSingleQuotedMultiLineInner() private method

private ParseSingleQuotedMultiLineInner ( bool &success ) : string
success bool
return string
        private string ParseSingleQuotedMultiLineInner(out bool success)
        {
            int errorCount = Errors.Count;
            StringBuilder text = new StringBuilder();
            int start_position = position;

            ParseIndent(out success);
            if (!success)
            {
                Error("Failed to parse Indent of SingleQuotedMultiLineInner.");
                position = start_position;
                return text.ToString();
            }

            ParseIgnoredBlank(out success);

            int counter = 0;
            while (true)
            {
                ErrorStatck.Push(errorCount); errorCount = Errors.Count;
                while (true)
                {
                    char ch = MatchTerminalSet(" '\r\n", true, out success);
                    if (success)
                    {
                        ClearError(errorCount);
                        text.Append(ch);
                        break;
                    }

                    ch = ParseEscapedSingleQuote(out success);
                    if (success)
                    {
                        ClearError(errorCount);
                        text.Append(ch);
                        break;
                    }

                    while (true)
                    {
                        int seq_start_position1 = position;
                        ch = MatchTerminal(' ', out success);
                        if (success) { text.Append(ch); }
                        else
                        {
                            Error("Failed to parse ' ' of SingleQuotedMultiLineInner.");
                            break;
                        }

                        int not_start_position2 = position;
                        while (true)
                        {
                            ParseIgnoredBlank(out success);

                            ParseLineBreak(out success);
                            break;
                        }
                        position = not_start_position2;
                        success = !success;
                        if (!success)
                        {
                            Error("Failed to parse !((IgnoredBlank LineBreak)) of SingleQuotedMultiLineInner.");
                            position = seq_start_position1;
                        }
                        break;
                    }
                    if (success) { ClearError(errorCount); break; }

                    break;
                }
                errorCount = ErrorStatck.Pop();
                if (!success) { break; }
                counter++;
            }
            if (counter > 0) { success = true; }
            if (!success)
            {
                Error("Failed to parse ((-\" '\r\n\" / EscapedSingleQuote / ' ' !((IgnoredBlank LineBreak))))+ of SingleQuotedMultiLineInner.");
                position = start_position;
                return text.ToString();
            }

            ParseIgnoredBlank(out success);

            string fold = ParseLineFolding(out success);
            if (success) { text.Append(fold); }
            else
            {
                Error("Failed to parse fold of SingleQuotedMultiLineInner.");
                position = start_position;
            }

            if (success) { ClearError(errorCount); }
            return text.ToString();
        }
YamlParser