private bool FillSourceBuffer()
{
if (sourceString != null)
{
Kit.CodeBug();
}
if (sourceEnd == sourceBuffer.Length)
{
if (lineStart != 0 && !IsMarkingComment())
{
System.Array.Copy(sourceBuffer, lineStart, sourceBuffer, 0, sourceEnd - lineStart);
sourceEnd -= lineStart;
sourceCursor -= lineStart;
lineStart = 0;
}
else
{
char[] tmp = new char[sourceBuffer.Length * 2];
System.Array.Copy(sourceBuffer, 0, tmp, 0, sourceEnd);
sourceBuffer = tmp;
}
}
int n = sourceReader.Read(sourceBuffer, sourceEnd, sourceBuffer.Length - sourceEnd);
if (n < 0)
{
return false;
}
sourceEnd += n;
return true;
}