NVelocity.Runtime.Parser.VelocityCharStream.AdjustBeginLineColumn C# (CSharp) Method

AdjustBeginLineColumn() public method

Method to adjust line and column numbers for the start of a token.
public AdjustBeginLineColumn ( int newLine, int newCol ) : void
newLine int
newCol int
return void
        public void AdjustBeginLineColumn(int newLine, int newCol)
        {
            int start = tokenBegin;
            int len;

            if (bufferPosition >= tokenBegin)
            {
                len = bufferPosition - tokenBegin + inBuf + 1;
            }
            else
            {
                len = bufferSize - tokenBegin + bufferPosition + 1 + inBuf;
            }

            int i = 0;
            int j = 0;
            int k;
            int columnDiff = 0;

            while(i < len && bufferLine[j = start % bufferSize] == bufferLine[k = ++start % bufferSize])
            {
                bufferLine[j] = newLine;
                int nextColDiff = columnDiff + bufferColumn[k] - bufferColumn[j];
                bufferColumn[j] = newCol + columnDiff;
                columnDiff = nextColDiff;
                i++;
            }

            if (i < len)
            {
                bufferLine[j] = newLine++;
                bufferColumn[j] = newCol + columnDiff;

                while(i++ < len)
                {
                    if (bufferLine[j = start % bufferSize] != bufferLine[++start % bufferSize])
                        bufferLine[j] = newLine++;
                    else
                        bufferLine[j] = newLine;
                }
            }

            line = bufferLine[j];
            column = bufferColumn[j];
        }