private function getIdentifier()
    {
        // grab the first bit of the identifier
        if ($this->lexer->isNextTokenAny(self::$classIdentifiers)) {
            $this->lexer->moveNext();

            $name = $this->lexer->token['value'];
        } else {
            throw SyntaxException::expectedToken(
                'namespace separator or identifier',
                null,
                $this->lexer
            );
        }

        // grab the remaining bits
        $position = $this->lexer->token['position']
                  + strlen($this->lexer->token['value']);

        while (($this->lexer->lookahead['position'] === $position)
            && $this->lexer->isNextToken(DocLexer::T_NAMESPACE_SEPARATOR)) {
            $this->match(DocLexer::T_NAMESPACE_SEPARATOR);
            $this->matchAny(self::$classIdentifiers);

            $name .= '\\' . $this->lexer->token['value'];
        }

        return $name;
    }