protected function unexpected(?Token $atToken = null): SyntaxErrorException
    {
        $token = $atToken ?? $this->lexer->getToken();

        return $this->lexer->createSyntaxErrorException(\sprintf('Unexpected %s', $token));
    }