тогда тебе нужен парсинг всего кода рекурсивно, и определение классов. задача очень сложная, на ее реализацию уйдут месяцы. составь массив ручками, быстрее будет, инфа сотка.
по сути тебе нужно разбить код на методы, и для каждого метода составить 2 списка: 1) используемые классы 2) вызываемые методы. потом рекурсивно собираешь классы. но это в теории. а на практике это все сделать будет очень трудно и долго.
профилирование если сделать - там строится дерево вызовов. по сути там нужная инфа есть. возможно распасить файл с профилированием и вытащить эту инфу можно. но это все равно ситуация разовая, можно написать на это отдельную консольную команду..