fun parseInlineLink()

in src/commonMain/kotlin/org/intellij/markdown/parser/sequentialparsers/impl/InlineLinkParser.kt [34:73]


        fun parseInlineLink(iterator: TokensCache.Iterator): LocalParsingResult? {
            val startIndex = iterator.index
            var it = iterator

            val linkText = LinkParserUtil.parseLinkText(it)
                    ?: return null
            it = linkText.iteratorPosition
            if (it.rawLookup(1) != MarkdownTokenTypes.LPAREN) {
                return null
            }

            it = it.advance().advance()
            if (it.type == MarkdownTokenTypes.EOL) {
                it = it.advance()
            }
            val linkDestination = LinkParserUtil.parseLinkDestination(it)
            if (linkDestination != null) {
                it = linkDestination.iteratorPosition.advance()
                if (it.type == MarkdownTokenTypes.EOL) {
                    it = it.advance()
                }
            }
            val linkTitle = LinkParserUtil.parseLinkTitle(it)
            if (linkTitle != null) {
                it = linkTitle.iteratorPosition.advance()
                if (it.type == MarkdownTokenTypes.EOL) {
                    it = it.advance()
                }
            }
            if (it.type != MarkdownTokenTypes.RPAREN) {
                return null
            }

            return LocalParsingResult(it,
                    linkText.parsedNodes
                            + (linkDestination?.parsedNodes ?: emptyList())
                            + (linkTitle?.parsedNodes ?: emptyList())
                            + SequentialParser.Node(startIndex..it.index + 1, MarkdownElementTypes.INLINE_LINK),
                    linkText.rangesToProcessFurther)
        }