protected void loadNextCharacterFromInput()
{
bool eofEncountered = false;
for (int i = 0; i < _lookAhead - 1; i++)
{
lookAheadBuffer[i] = lookAheadBuffer[i + 1];
if (isEndOfFile(lookAheadBuffer[i]))
{
eofEncountered = true;
break;
}
}
if (!eofEncountered)
{
lookAheadBuffer[_lookAhead - 1] = input.Read();
}
}