  Domain-specific languages (DSLs) are both pervasive and powerful, but remain
difficult to integrate into large projects. As a result, while DSLs can bring
distinct advantages in performance, reliability, and maintainability, their use
often involves trading off other good software-engineering practices. In this
paper, we describe an extension to the Clang C++ compiler to support syntax
plugins, and we demonstrate how this mechanism allows making use of DSLs inside
of a C++ code base without needing to separate the DSL source code from the
surrounding C++ code.
