code: public function getLocation($position)
      {
          $line   = 1;
          $column = $position + 1;
  
          $utfChars   = json_decode('"\u2028\u2029"');
          $lineRegexp = '/\r\n|[\n\r' . $utfChars . ']/su';
          $matches    = [];
          preg_match_all($lineRegexp, mb_substr($this->body, 0, $position, 'UTF-8'), $matches, PREG_OFFSET_CAPTURE);
  
          foreach ($matches[0] as $index => $match) {
              $line += 1;
  
              $column = $position + 1 - ($match[1] + mb_strlen($match[0], 'UTF-8'));
          }
  
          return new SourceLocation($line, $column);
      }
docs: @param int $position
  
  @return SourceLocation