A DSL framework (ported to C++)