protected function processPointerPartState(): int
    {
        $lexer = $this->getLexer();
        if ($lexer->isEnd()) {
            // End of text is found, expecting successful finish.
            return self::STATE_FINISH;
        }
        $token = $lexer->readToken();
        if ($token->isSlash()) {
            // Slash found, expecting reference token part
            return self::STATE_REFERENCE_PART;
        }
        throw new SyntaxException(
            "Symbol '/' expected at position #{$token->getPosition()}",
            $token->getPosition()
        );
    }