Альтернатива синтаксическому анализатору абстрактного синтаксического дерева Eclipse для манипулирования кодом

Предпосылки

Я пишу программу, которая будет выполнять массовое переименование элементов и функций в каталоге исходного кода Java для деобфускации кода на основе файла .csv таблицы поиска, переданного программе.

Это для того, что исходный код, который у меня был, был написан против обфусцированного jar-файла. У меня есть деобфусцированная версия jar, которая запускалась через настроенную версию RetroGaurd , и я хотел бы проанализировать файл сопоставления, который был передан RetroGaurd, чтобы деобфускировать вызовы функций, которые делает мой исходный код. в банку.Если я просто скомпилирую свой код и пропущу его через RetroGaurd при декомпиляции, я потеряю все мои приятные комментарии и форматирование (если в RetroGaurd нет опции, которую я пропустил).


Проблема

Я нашел синтаксический анализатор Abstract Syntax Tree , встроенный в Eclipse, и он выглядит идеально для моих целей, однако я не планирую писать свою программу как плагин для Eclipse, это будет быть автономной банкой, которую можно запустить на любой машине.

Меня больше всего беспокоит то, что когда я пишу свой код, я получаю множество зависимостей от внутренних jar-файлов, которые использует Eclipse. Я знаю, что если я буду соответствовать EPL для библиотечных jar-файлов, у меня не будет проблем с его распространением, но я обеспокоен тем, что этот проект становится все больше и больше, поскольку я пишу его как все больше и больше jar-файлов из Eclipse SDK. необходимы.

Существуют ли какие-либо другие проекты, которые дадут мне возможность анализировать исходный код Java для надежного поиска и замены, как это позволяет мне AST, или есть способ использовать RetroGaurd (или подобную программу) для выполнить ту же деобфускацию, но оставить мои комментарии и функции такими же без необходимости впоследствии запускать деобфускацию через декомпилятор?

6
задан Jim Garrison 20 February 2012 в 21:02
поделиться