fun parse()

in dsl/common/dsl-parser-common/src/main/kotlin/io/kotless/parser/Parser.kt [27:53]


    fun parse(sources: Set<File>, resources: Set<File>, jar: File, config: KotlessConfig, lambda: Lambda.Config, libs: Set<File>): Result {
        val environment = EnvironmentManager.create(libs)

        val ktFiles = ParseUtil.analyze(sources, environment)
        val binding = ResolveUtil.analyze(ktFiles, environment).bindingContext

        val context = ProcessorContext(jar, config, lambda)

        processResources(resources, context)

        var newExecuted = true
        while (newExecuted) {
            newExecuted = false
            for (processor in processors) {
                if (!processor.hasRan(context) && processor.mayRun(context)) {
                    newExecuted = true
                    processor.run(ktFiles, binding, context)
                }
            }
        }

        return Result(
            Result.Routes(context.routes.dynamics, context.routes.statics),
            Result.Resources(context.resources.dynamics, context.resources.statics),
            Result.Events(context.events.scheduled)
        )
    }