I recently published an article on Simple Talk where I step through creating a plug in for Reflector that will allow Reflector to translate an assembly into the CodeDom code needed to produce the original code. http://www.simple-talk.com/dotnet/.net-framework/-.net-reflector-meets-the-codedom/
The intention is to make CodeDom more accessible. Think of this as a Code Generator Generator. Instead of writing a full generator from scratch, we can start with code that does what we want and tweak the generated generator from there.
Obviously this is a much larger plugin than the article shows. There article outlined an approach to structuring the code and there is still much work to be done before the plugin can support every language structure that we are interested in.
I have setup a project on CodePlex to help facilitate filling in the missing functionality. If anyone is interested in assisting with filling in the gaps let me know. Here is the codeplex project http://reflectorcodedom.codeplex.com/