Примеры / учебные пособия по использованию javax.lang.model или ANTLR JavaParser для получения информации об исходном коде Java - PullRequest
4 голосов
/ 21 марта 2011

Я хотел бы создать автоматическую визуализацию, похожую на блок-схему, в простую Java-логику, для этого мне нужно проанализировать исходный код Java, у меня есть 2 кандидата: ANTLR и javax.lang.model Java 6. Ни то, ни другое не просто.

Мне еще предстоит найти один работающий пример, который хотя бы отдаленно приблизился к тому, чего я хочу достичь.

Я хочу найти простые объявления переменных, присваивания и потоки (если, для, switch, логические условия и т. Д.)

Есть ли простой пример или учебное пособие для любого из них? Я нашел очень мало примеров ANTLR (ни один из них не работает "из коробки" без значительной "домашней работы") и абсолютно ни одного для javax.lang.model

Ответы [ 3 ]

2 голосов
/ 22 марта 2011

Есть ли конкретная причина, по которой вы хотите создать парсер самостоятельно? IMO, было бы проще позволить существующему парсеру создать для вас AST, который вы «просто» просматриваете, чтобы собрать ваши данные об исходном файле (ах). Использование вашей любимой поисковой системы с ключевыми словами «get ast java source» приведет к множеству релевантных хитов.

На первый взгляд, они выглядят как подходящие кандидаты:

Конечно, вы можете использовать ANTLR, есть много ANTLR грамматик для Java, доступных для вас, но является вполне кривой обучения при выборе этого инструмента (или другого генератора парсера) , в этом отношении). Если вы выберете ANTLR, я с радостью отвечу на любые вопросы по этому поводу.

Удачи!

1 голос
/ 21 марта 2011

Я бы попробовал это с Eclipse Xtext, он использует ANTLR под капотом, его также (относительно) легко использовать вместе с Eclipse GMF для визуализации.

1 голос
/ 21 марта 2011

Я предлагаю вам использовать Java Soot и Java Optimization Framework .Который поможет вам разобрать исходный код Java, может сгенерировать CFG и различные доступные варианты.

Также вы можете найти плагин eclipse здесь

...