Domain-specific languages (DSLs) are increasingly used as embedded languages within general-purpose host languages. Editors, compilers and debuggers are either unaware of the extensions, or must be adapted at a non-trivial cost. We present lightweight approach to embed DSLs into an existing host language by leveraging the underlying representation of the host language used by these tools.
Helvetia is an extensible system that provides the tools necessary to seamlessly integrate language extensions with compiler and tools. Furthermore we demonstrate the language box model that offers a simple, modular mechanism to encapsulate (i) compositional changes to the host language, (ii) transformations to address various concerns such as compilation and syntax highlighting, and (iii) scoping languages to control visibility of fine-grained language extensions. The talk will also present the PetitParser infrastructure which combines various modern parsing technologies.