In dagger 2, we had code generation at compile time. According to the Koin library website, Koin doesn't do any code generation and is a "DSL, a lightweight container and a pragmatic API".
After reading Martin Fowlers Blog regarding DSL, It appears to me that DSL can be generated into code, or interpreted at run-time.
From Martins article:
DSLs can be implemented either by interpretation or code generation. Interpretation (reading in the DSL script and executing it at run time) is usually easiest, but code-generation is sometimes essential. Usually the generated code is itself a high level language, such as Java or C.
But if Koin doesn't generate any code, Is Koin interpreted at runtime? Does it mean Koin comes with some kind of parser? As I have seen, there is no parser, so does it mean that Kotlin itself is the parser?
Thank you