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();
}