Ich arbeite an einem Reverse Engineering Schulprojekt, das die Übersetzung von AST des kompilierten C# -Projekts erfordert. Ich habe den Beitrag auf "Übersetzen C# -Code in AST?" auf dieser Website, aber es sieht nicht so aus, wie ich es suche. Nach dem, was ich wusste, stellt C# derzeit keine Bibliotheksklasse zur Verfügung, die das für Java so ähnlich macht: http://help.eclipse.org/help33/index.jsp?topic=/org.eclipse.cdt.doc.isv/reference/api/org/eclipse/cdt/core/dom/ast/ASTVisitor.html Wenn es in C# eine solche Bibliotheksklasse gibt, ist hier alles gelöst.Wie manipuliert man C# AST?
Ich habe mit jemandem beraten, und hier sind die möglichen Lösungen. Aber ich habe Probleme mit der Ausarbeitung der Lösungen. 1) Finden Sie einen anderen Compiler, der eine Bibliothek zur Verfügung stellt, die es ermöglicht, dass seine AST für die Manipulation verfügbar gemacht wird. Aber ich kann einen Compiler wie diesen nicht finden. 2) Verwenden Sie ANTLR Parser Generator, um mit meinem eigenen Compiler zu kommen, der das tut (es wird ein viel schwierigerer und längerer Prozess sein). Der Download dort bietet Beispielgrammatiken für verschiedene Sprachen, aber nicht C# (es hat Grammatiken in verschiedenen Sprachen einschließlich C# geschrieben, aber nicht C# Grammatik zu produzieren). Daher ist das Problem, ich kann C# Grammatik nicht finden.
Was ist der kürzeste und schnellste Weg, dieses Problem anzugehen? Wenn ich wirklich eine der oben genannten Alternativen wählen muss, wie sollte ich dann die Probleme lösen, mit denen ich konfrontiert war?
Ich wäre Ihnen sehr dankbar, wenn Sie mir helfen können, mein Problem gelöst zu bekommen!
Ich bin unklar, ob Sie C# Äste mit C#, oder einfach nur Äste manipulieren den Einsatz von Werkzeugen überhaupt zu manipulieren. Und ich bin verwirrt über Ihre Bemerkung zu ANTLR: Ich dachte, es gäbe eine C# 3.0-Grammatik, die ANTLR verarbeiten könnte, um C# -Bäume zu parsen und zu erstellen. –