  Domain-specific languages are becoming increasingly important. Almost every
application touches multiple domains. But how to define, use, and combine
multiple DSLs within the same application?
  The most common approach is to split the project along the domain boundaries
into multiple pieces and files. Each file is then compiled separately.
Alternatively, multiple languages can be embedded in a flexible host language:
within the same syntax a new domain semantic is provided. In this paper we
follow a less explored route of metamorphic languages. These languages are able
to modify their own syntax and semantics on the fly, thus becoming a more
flexible host for DSLs.
  Our language allows for dynamic creation of grammars and switching languages
where needed. We achieve this through a novel concept of Syntax-Directed
Execution. A language grammar includes semantic actions that are pieces of
functional code executed immediately during parsing. By avoiding additional
intermediate representation, connecting actions from different languages and
domains is greatly simplified. Still, actions can generate highly specialized
code though lambda encapsulation and Dynamic Staging.
