Java / Абстрактное Синтаксическое Дерево в представление XML - PullRequest
2 голосов
/ 25 октября 2011

знаете ли вы какой-либо инструмент, который создает AST из программы или класса Java и создает представление XML (коллекцию или отдельный документ XML) из AST?

С уважением,
Йоханнес

Ответы [ 2 ]

2 голосов
/ 25 октября 2011

Наш инструментарий реинжиниринга программного обеспечения DMS с интерфейсом Java может сделать это напрямую. Вы просите DMS проанализировать файл и создать дамп XML, используя ключ командной строки ++ XML.

См. Как будет выглядеть AST (абстрактное синтаксическое дерево) для объектно-ориентированного языка программирования? .

Как правило, мы не рекомендуем этого по нескольким причинам:

  • Вывод XML для реальных файлов действительно огромен, и его запись и чтение занимает много времени

  • Большинство людей делают это, потому что они верят с помощью представления XML, что лишь немного XSLT даст им то, что они хотят

  • Если вы намереваетесь изменить код, после того, как у вас есть XML, вы не сможете его регенерировать.

  • Механизм, который предоставляет DMS (грамматики атрибутов, таблицы символов, анализ потоков, сопоставление с образцом и преобразования источника в источник, регенерация источника из AST, - это то, что вам действительно нужно, и вы получите к нему доступ с помощью использование DMS после этапа синтаксического анализа без экспорта XML-данных

2 голосов
/ 25 октября 2011

Не любые инструменты напрямую, но http://www.antlr.org/ - это инструмент для создания AST из любого общего языка.И существует несколько файлов грамматики для Java, которые вы можете использовать для своих собственных программ.Так что возьмите ANTLR, используйте последнюю версию грамматики Java и запишите желаемое представление XML.

...