Komunita nadšenců vytvořila vlastní DSL na makrech, který funguje jako do-notation z funkcionálních jazyků. Využívají se pokročilé vlastnosti preprocesoru. V tomto projektu byla implementována nová technika pro parsování DSL, což může napomoci vytvoření dalších DSL na preprocesoru C a C++. Kód v repozitáři je napsán v C++23 a je otevřen pod licencí MIT, přičemž tuto techniku lze použít také v C preprocesoru. // Bez DSL: auto result = bind(mx, [&](auto x) { return bind(my, [&](auto y) { return make_value(x, y); }); }); // S DSL: auto result = DO( LET x IS(mx); LET y IS(my); return make_value(x, y); );
Zdroj: opennet.ru