I have committed a lot of work on this PoC to my upstream repo.
The initial walk to process the explicit from-clause is pretty much done.
Overall I really like the shape of FromClause, FromElementSpace and
FromElement. One question of structure here I have not decided yet is the
relationship of joins. At the moment I simply collect all joins for a
FromElementSpace
in a single List. So FromElementSpace has a root FromElement and then a
list of JoinedFromElements. The other option is to link up joins under
their corresponding "left hand side". This second option is harder, and I
am not sure what we gain specifically.
The FromClauses, etc ultimately become part of the semantic query
representation. The semantic tree is shaped by a second walk over the
parse tree. This part is still a work in progress, although it is pretty
far along. The current semantic tree is a first (rough) cut. Ultimately
I'd like to move the shape of the semantic tree more in the direction of
the JPA criteria contracts. Specifically, the parts I am missing right now
is the concept of a Path. A Path would help unify/centralize some of the
things from Expression and FromElement.
I will need to refocus back on 5.0 for the next week or so. Once CR2 is
done I will come back to this work, but soon we will need to have a
discussion/vote about the use of Antlr v3 versus v4 and, if we go with v4,
the specific approach. Also we need to prioritize this against the other
roadmap items. To me the 2 highest priorities need to be this work and the
Jandex/general-annotation-binding-redesign work. But we will need to rank
them all.
On Wed, Jun 17, 2015 at 7:47 AM Gunnar Morling <gunnar(a)hibernate.org> wrote:
This seems very similar to what I had in mind with the decorator
stuff.
The decorating elements would represent that manually implemented semantic
tree.
In the end it probably doesn't even matter whether the elements of that
tree would have links to the parse tree elements they originated from or
whether that tree is completely "stand-alone". As you say, we'd
traverse/alter it with our own listeners. In my understanding that's as
good as it gets with Antlr4.
2015-06-16 23:04 GMT+02:00 Steve Ebersole <steve(a)hibernate.org>:
> I am not so sure that manually building a tree that would work with
> listeners/visitors generated from a second grammar is going to be an
> option. I have asked on SO and on the Antlr discussion group and
> basically
> got no responses as to how that might be possible. See
>
https://groups.google.com/forum/#!topic/antlr-discussion/vBkwCovqHcI
>
> So the question is whether generating a semantic tree that is not Antlr
> specific is a viable alternative. I think it is. And we can still
> provide
> hand written listener and or visitor for processing this.
>
_______________________________________________
> hibernate-dev mailing list
> hibernate-dev(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/hibernate-dev
>