title: How to manipulate C# AST?
body: <p>I am working on a Reverse Engineering school project, which requires to translate manipulate AST of compiled C# project. I have seen the post on "Translate C# code into AST?" in this website, but it doesn't look like the one I am looking for.</p>
  
  <p>According to what I know, currently C# doesn't provide a library class that does something like that for Java: <a href="http://help.eclipse.org/help33/index.jsp?topic=/org.eclipse.cdt.doc.isv/reference/api/org/eclipse/cdt/core/dom/ast/ASTVisitor.html" rel="nofollow noreferrer">http://help.eclipse.org/help33/index.jsp?topic=/org.eclipse.cdt.doc.isv/reference/api/org/eclipse/cdt/core/dom/ast/ASTVisitor.html</a>. If there is such library class in C#, everything here is solved.</p>
  
  <p>I have consulted with someone, and here are the possible solutions. But I have problems with working out on the solutions as well:</p>
  
  <ol>
  <li>Find another compiler that provides a library which allows its AST to be expose for manipulation. But I can't find a compiler like that.</li>
  <li>Use ANTLR Parser Generator to come out with my own compiler that does that (it will be a much more difficult and longer process). The download there provides sample grammars for different languages but not C# (it has grammars written in various languages including C# but not to produce C# grammar). Hence the problem is I can't find C# grammar.</li>
  </ol>
  
  <p>What is shortest and fastest way to approach this issue? If I really have to take one of the alternative above, how should I go about solving those problems I faced.</p>