fun runParsingSequence()

in src/commonMain/kotlin/org/intellij/markdown/parser/sequentialparsers/SequentialParserManager.kt [18:42]


    fun runParsingSequence(
        tokensCache: TokensCache,
        rangesToParse: List<IntRange>,
        cancellationToken: CancellationToken
    ): Collection<SequentialParser.Node> {
        val result = ArrayList<SequentialParser.Node>()

        var parsingSpaces = ArrayList<List<IntRange>>()
        parsingSpaces.add(rangesToParse)

        for (sequentialParser in getParserSequence()) {
            cancellationToken.checkCancelled()
            val nextLevelSpaces = ArrayList<List<IntRange>>()

            for (parsingSpace in parsingSpaces) {
                val currentResult = sequentialParser.parse(tokensCache, parsingSpace)
                result.addAll(currentResult.parsedNodes)
                nextLevelSpaces.addAll(currentResult.rangesToProcessFurther)
            }

            parsingSpaces = nextLevelSpaces
        }

        return result
    }