code: private function readName($line, $col, Token $prev)
      {
          $value         = '';
          $start         = $this->position;
          [$char, $code] = $this->readChar();
  
          while ($code && (
                  $code === 95 || // _
                  $code >= 48 && $code <= 57 || // 0-9
                  $code >= 65 && $code <= 90 || // A-Z
                  $code >= 97 && $code <= 122 // a-z
              )) {
              $value        .= $char;
              [$char, $code] = $this->moveStringCursor(1, 1)->readChar();
          }
  
          return new Token(
              Token::NAME,
              $start,
              $this->position,
              $line,
              $col,
              $prev,
              $value
          );
      }
docs: Reads an alphanumeric + underscore name from the source.
  
  [_A-Za-z][_0-9A-Za-z]*
  
  @param int $line
  @param int $col
  
  @return Token