O comunitate de entuziaști a creat un DSL propriu pe baza macrocomenzilor, care funcționează similar cu notarea do din limbajele funcționale. Se folosesc funcționalități avansate ale preprocesorului. În proiectul prezentat este implementată o nouă tehnică pentru parsarea DSL, ceea ce ar putea facilita crearea unor DSL ulterioare pe preprocesorul C și C++. Codul din depozit este scris în C++23 și este deschis sub licența MIT, iar tehnica în sine poate fi folosită și simplu în preprocesorul C. // Fără DSL: auto result = bind(mx, [&](auto x) { return bind(my, [&](auto y) { return make_value(x, y); }); }); // Cu DSL: auto result = DO( LET x IS(mx); LET y IS(my); return make_value(x, y); );
Sursa: opennet.ro