metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2010-08-06 11:53 am

T4

Вкуриваю полезную вещь, на которую мне кто-то когда-то дал ссылку - Text Template Transformation Toolkit - шаблонизатор-кодогенератор, встроенный в Visual Studio.

Всем полезная штука, но что-то мне кажется, что кодогенерация прямо в текст - это уныние и печаль. Вот генерить AST, а потом из него генерить код на целевом языке - более правильный подход. Правда, что в первом, что во втором случае, шаблоны для кодогенератора выглядят нечитабельным адом.

PS: Написал на T4 генератор иммутабельных классов:
ROEntity.tt - генератор
ROEntityTest.tt - пример использования
ROEntityTest.generated.cs - результат кодогенерации
wizzard: (Default)

[personal profile] wizzard 2010-08-06 12:37 pm (UTC)(link)
>> кодогенерация прямо в текст - это уныние и печаль

Полностью согласен; вот правда если бы был еще AST под всё что можно...

[identity profile] aamonster.livejournal.com 2010-08-06 01:19 pm (UTC)(link)
Не вижу существенной разницы, за исключением того, что их подход проще для освоения.