Анализ исходного кода Java

Меня попросили разработать программное обеспечение, которое должно уметь создавать блок-схему / поток управления входящего исходного кода Java. Я начал исследовать это и пришел к следующим решениям:

Чтобы создать блок-схему / поток управления, я должен распознавать управляющие операторы и вызовы функций, сделанные в данном исходном коде. Теперь у меня есть два способа распознать:

  1. Анализировать исходный код путем написания моих собственных грамматик (сложное решение, которое я считать). Я думаю использовать для этого Antlr.
  2. Чтение файлов исходного кода в виде текста и поиск определенных шаблонов (может стать неэффективным)

Я здесь? Или мне не хватает чего-то очень фундаментального и простого? Какой подход займет меньше времени и сделает работу более эффективной? Любые другие предложения по этому поводу также будут приветствоваться. Любой другой эффективный подход может помочь, потому что исходный код ввода может охватывать несколько файлов и может быть довольно сложным.

Я хорошо владею языками .NET, но это мой первый большой проект на Java. У меня есть базовые знания в области проектирования компиляторов, поэтому написание грамматик для меня не должно быть невозможным.

Извините, если я не совсем понимаю. Обращайтесь за разъяснениями.

8
задан Joachim Sauer 31 March 2011 в 08:42
поделиться