DSL Kit
It is well known that the threshold for compiling macro features is relatively high. DSL can be considered as a larger macro, which requires more attention to details and is more complex.
As the complexity increases, developers need to invest more energy, some of which is necessary (in blue
) and some of which is extra (in yellow
). Capabilities of the expert compiler master level are not expected to be a must for DSL development.
Therefore, DSL Kit extracts some commonalities created of DSL creation and provides a toolkit to eliminate the extra unnecessary efforts (in yellow
).
In the first phase, it is expected to provide an easy declarative BNF syntax and automatically generate a syntax parser for the DSL, eliminating the complexity of manually writing parsers.
In the second phase, it is expected to provide more detailed check, analysis, and optimization capabilities. For example, semantics are added to the declarative syntax by referring to the attribute syntax, and the static check capability is provided with the compiler to help guarantee correctness of the DSL context for developers during compilation.