В репозиторий неофициальных дополнений к NHibernate одним из его ведущих разработчиков Fabio Maulo был добавлен проект Artorius. Проект призван решить давнюю проблему - отсутствие абстрактного синтаксического дерева внутреннего языка запросов. В текущей версии обе основных технологии запросов HQL и Criteria API используют свои уникальные методы трансляции в SQL. Предполагается реализация внутреннего nHQL-AST, именно в который и будут преобразовываться запросы созданные с помощью доступных технологий: HQL( имеются ввиду строковые запросы), Criteria API, LINQ или любого другого языка запросов(кроме нативного SQL).
На текущий момент в репозитории есть определенние грамматики HQL в форме Бэкуса — Наура и реализация ast, при создании ast из строки hql используется модифицированный парсер GOLD:
Все тесты проекта на данный момент направлены на тестирование грамматики, но как видно по коду разработка самого дерева тоже уже ушла достаточно далеко, что позволяет сделать вывод: ast в NHibernate быть.
I don't know what you wrote :) but if you want see the tree in the same way I see it set "Trim reductions" in the "Test" menu.
ReplyDeleteThanks, for comment, but the picture is not so important. What is important is that we are probably going to have ast in the NHibernate.
ReplyDeleteThat is what I wrote)).
папочка пиши новенькое!!!! а то совсем обленился!!!
ReplyDelete