Steve Ebersole wrote:
> Is there a syntax to "explode" a subrule result (sorry don't know a
> better term).
>
> I have a rule:
>
> sortSpecification
>     : sortKey collationSpecification? orderingSpecification?
>         -> ^( SORT_SPEC sortKey collationSpecification?
> orderingSpecification? )
>     ;
>
> The result of the sortKey subrule could be a Tree of type VECTOR_EXPR
> (its a "row value constructor" for those familiar with SQL). 
>
> In terms of eventual output, this rule translates as "(sort_key1,
> sort_key2) asc" where "sort_key1, sort_key2)" is the VECTOR_EXPR.  
>
> Instead what I need to have happen is "sort_key1 asc, sort_key2 asc".
>
> I started down the path of trying an @after in the sortSpecification and
> calling out to some java code to mutate the tree manually.  But I'd
> prefer to keep this in the grammar if at all possible.
>
>
>   
I would need to see your sortKey rule but you can do things like this:

x : a+=something x? y? ->^(NODE $a $x? $y)+

That will probably get you on track. Also, you could reorder the tree 
and more easily pick up the order:

-> ^( SORT_SPEC collationSpecification?
orderingSpecification? sortKey)

Assuming the first two optional sequences have a root node. Then you could 
assume that the elements in sortKey have whatever you have established in the 
ordering.

If what you are trying to do is parse a SQL statement you could try inputting 
this into my online SQL parser and looking at the tree output:

http://www.temporal-wave.com

Jim

List: http://www.antlr.org/mailman/listinfo/antlr-interest
Unsubscribe: 
http://www.antlr.org/mailman/options/antlr-interest/your-email-address

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"il-antlr-interest" group.
To post to this group, send email to il-antlr-interest@googlegroups.com
To unsubscribe from this group, send email to 
il-antlr-interest+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/il-antlr-interest?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to