Я работаю над проектом школы Reverse Engineering, который требует перевести манипулирование AST скомпилированного проекта C #. Я видел пост "Перевести код C # в AST?" на этом сайте, но он не похож на тот, который я ищу.
Согласно тому, что я знаю, в настоящее время C # не предоставляет библиотечный класс, который делает что-то подобное для Java: http://help.eclipse.org/help33/index.jsp?topic=/org.eclipse.cdt.doc.isv/reference/api/org/eclipse/cdt/core/dom/ast/ASTVisitor.html. Если в C # есть такой библиотечный класс, все здесь решено.
Я советовался с кем-то, и вот возможные решения. Но у меня тоже есть проблемы с разработкой решений:
- Найдите другой компилятор, который предоставляет библиотеку, которая позволяет использовать его AST для манипулирования. Но я не могу найти такой компилятор.
- Используйте ANTLR Parser Generator, чтобы выпустить свой собственный компилятор, который делает это (это будет гораздо более сложный и длительный процесс). Здесь есть примеры грамматик для разных языков, но не для C # (грамматики написаны на разных языках, включая C #, но не для создания грамматики C #). Следовательно, проблема в том, что я не могу найти грамматику C #.
Какой самый короткий и быстрый способ решения этой проблемы? Если мне действительно нужно выбрать одну из альтернатив, описанных выше, как мне решить эти проблемы, с которыми я столкнулся.