public void AdjustBeginLineColumn()

in src/main/csharp/Selector/SimpleCharStream.cs [328:364]


  public void AdjustBeginLineColumn(int newLine, int newCol) {
     int start = tokenBegin;
     int len;

     if (bufpos >= tokenBegin) {
        len = bufpos - tokenBegin + inBuf + 1;
     } else {
        len = bufsize - tokenBegin + bufpos + 1 + inBuf;
     }

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

     while (i < len &&
            bufline[j = start % bufsize] == bufline[k = ++start % bufsize]) {
        bufline[j] = newLine;
        nextColDiff = columnDiff + bufcolumn[k] - bufcolumn[j];
        bufcolumn[j] = newCol + columnDiff;
        columnDiff = nextColDiff;
        i++;
     } 

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

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

     charLine = bufline[j];
     charColumn = bufcolumn[j];
  }