Sunday, December 14, 2008

Artorius: абстрактному синтаксическому дереву(AST) быть в NHibernate.

В репозиторий неофициальных дополнений к NHibernate одним из его ведущих разработчиков Fabio Maulo был добавлен проект Artorius. Проект призван решить давнюю проблему - отсутствие  абстрактного синтаксического дерева внутреннего языка запросов. В текущей версии обе основных технологии запросов HQL и Criteria API используют свои уникальные методы трансляции в SQL. Предполагается реализация внутреннего nHQL-AST, именно в который и будут преобразовываться запросы созданные с помощью доступных технологий: HQL( имеются ввиду строковые запросы), Criteria API, LINQ или любого другого языка запросов(кроме нативного SQL).

На текущий момент в репозитории есть определенние грамматики HQL в форме Бэкуса — Наура и реализация ast, при создании ast из строки hql используется модифицированный парсер GOLD:

image

Все тесты проекта на данный момент  направлены на тестирование грамматики, но как видно по коду разработка самого дерева тоже уже ушла  достаточно далеко, что позволяет сделать вывод: ast в NHibernate быть.

3 comments:

  1. 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.

    ReplyDelete
  2. Thanks, for comment, but the picture is not so important. What is important is that we are probably going to have ast in the NHibernate.
    That is what I wrote)).

    ReplyDelete
  3. папочка пиши новенькое!!!! а то совсем обленился!!!

    ReplyDelete