Una comunidad de entusiastas ha creado su propio DSL basado en macros, que funciona como una notación 'do' de lenguajes funcionales. Se utilizan características avanzadas del preprocesador. El proyecto presentado implementa una nueva técnica para analizar DSL, lo que podría facilitar la creación de futuros DSL en el preprocesador de C y C++. El código en el repositorio está escrito en C++23 y se encuentra bajo la licencia MIT, y la técnica puede ser utilizada también en el preprocesador de C. // Sin DSL: auto result = bind(mx, [&](auto x) { return bind(my, [&](auto y) { return make_value(x, y); }); }); // Con DSL: auto result = DO( LET x IS(mx); LET y IS(my); return make_value(x, y); );
Fuente: opennet.ru