Самый лучший, как мне кажется, вариант - компилятор/анализатор Roslyn, который поддерживается Microsoft и, соответственно, будет работать с любым корректным кодом на C# (чего было бы сложно добиться с самодельным парсером/кодогенератором).
Roslyn на GitHub:
https://github.com/dotnet/roslyn
Полезные ссылки:
https://docs.microsoft.com/ru-ru/visualstudio/exte...
Статьи про генерацию кода:
1.
https://msdn.microsoft.com/ru-ru/magazine/mt707527.aspx
2.
https://msdn.microsoft.com/en-us/magazine/mt808499.aspx