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)
)
}