Fællesskabet af entusiaster har skrevet deres egen DSL ved hjælp af makroer, der fungerer som do-notation fra funktionelle sprog. Der anvendes avancerede funktioner fra præprocessoren. I det præsenterede projekt er der implementeret en ny teknik til parsing af DSL, som kan fremme skabelsen af yderligere DSL'er på C- og C++-præprocessoren. Koden i repositoryet er skrevet i C++23 og er åben under MIT-licens, og selve teknikken kan også anvendes i en simpel C-præprocessor. // Uden DSL: auto result = bind(mx, [&](auto x) { return bind(my, [&](auto y) { return make_value(x, y); }); }); // Med DSL: auto result = DO( LET x IS(mx); LET y IS(my); return make_value(x, y); );
Kilde: opennet.ru