Генерация Java кодирует деревья синтаксического анализа и оценку его для тестирования

Если Вы захотите иметь тот же встраиваемый тип объекта дважды в том же объекте, установка по умолчанию имени столбца не будет работать: по крайней мере один из столбцов должен будет быть явным. Будьте в спящем режиме идет вне спецификации EJB3 и позволяет Вам улучшать принимающий значение по умолчанию механизм через NamingStrategy. DefaultComponentSafeNamingStrategy является маленьким улучшением по сравнению с EJB3NamingStrategy по умолчанию, который позволяет внедренным объектам быть принятыми значение по умолчанию даже если используемый дважды в том же объекте.

От В спящем режиме Документ Аннотаций: http://docs.jboss.org/hibernate/stable/annotations/reference/en/html_single/#d0e714

11
задан Christian 16 September 2009 в 09:37
поделиться

2 ответа

Для оценки Java вам потребуется весь сопутствующий семантический анализ («какова область действия этого идентификатора? Какой у него тип?»), А также интерпретатор.

Чтобы получить этот семантический анализ, вам нужно больше, чем просто AST: вам нужно полное разрешение имен (построение таблицы символов) и разрешение типов (определение типов выражений и проверка того, что выражения действительны в контексте, в котором они найдены) , , а также поиск класса (к какому фактическому методу относится foo ?)

При этом вы можете подумать о создании интерпретатора, обходя деревья в порядке выполнения. Вам также потребуется создать диспетчер хранилища; вам может не понадобиться делать полный сборщик мусора, но вам что-то понадобится. Вам также понадобится интерпретатор для файлов .class, если вы действительно хотите что-то запустить, а это значит, что вам понадобится синтаксический анализатор (а также разрешение имени / типа для файлов классов).

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

DMS Software Reengineering Toolkit также является программным анализом / преобразованием, который обрабатывает множество языков. Он имеет полный интерфейс Java , включая синтаксический анализ, построение AST, построение таблицы символов и разрешение имен, разрешение типов, построение графов вызовов (необходимых для разрешения вызовов виртуальных функций) и имеет загрузочную программу чтения файлов .class. с разрешением имени.Так что это будет хорошая основа для создания переводчика.

DMS также может создавать произвольные AST, а затем генерировать из них исходный код, так что он отлично справится и с концом генерации кода.

[Причина, по которой существует DMS, - это "очень разочарованная" часть].

2
ответ дан 3 December 2019 в 11:52
поделиться

Я не уверен, что это то, что вы ищете, но проект JDT Eclipse дает очень хорошее представление о Java AST (включая функции Java 5 и 6). В нем есть ряд утилит и инструментов для просмотра / перезаписи кода (не обязательно генерации). Все они находятся под лицензией Eclipse Public License.

Вы можете получить дополнительную информацию по адресу http://eclipse.org/jdt/

2
ответ дан 3 December 2019 в 11:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: