[antlr-interest] Rewrite rule problem
Roger Jack
rjack at elegancetech.com
Tue Nov 6 16:04:01 PST 2012
John,
That worked...thanks!
*Roger Jack*
On 11/6/2012 5:55 PM, John B. Brodie wrote:
> Greetings!
>
> use a sub-rule. apparently ANTLRv3 is unable to maintain the tuple
> relationship inside the loop.
>
> qualified_open_type_name: 'Global' helper+ ;
>
> helper : PERIOD identifier_or_keyword type_arity_list?
> -> ^(PERIOD identifier_or_keyword type_arity_list?) ;
>
> Hope this helps....
> -jbb
>
> On 11/05/2012 03:07 PM, Roger Jack wrote:
>> Bart,
>>
>> Thanks for the reply! I tried both
>>
>> -> ^('Global' (^(PERIOD identifier_or_keyword
>> type_arity_list?))+)
>>
>> and
>>
>> -> 'Global' (^(PERIOD identifier_or_keyword type_arity_list?))+
>>
>> and still had the same problem with type_arity_list.
>>
>> Any other suggestions?
>> *
>> Roger Jack*
>> On 11/5/2012 2:14 PM, Bart Kiers wrote:
>>> What happens if you try:
>>>
>>> qualified_open_type_name
>>> : 'Global' (PERIOD identifier_or_keyword type_arity_list?)+
>>> -> ^('Global' (^(PERIOD identifier_or_keyword
>>> type_arity_list?))+)
>>> ;
>>>
>>> ?
>>>
>>> Regards,
>>>
>>> Bart.
>>>
>>>
>>>
>>> On Mon, Nov 5, 2012 at 2:39 PM, Roger Jack <rjack at elegancetech.com
>>> <mailto:rjack at elegancetech.com>> wrote:
>>>
>>> Below are 3 rules from a grammar that I'm working on:
>>>
>>> Snippet qualified_open_type_name:
>>> 'Global' (PERIOD identifier_or_keyword type_arity_list?)+
>>> -> 'Global' ^(PERIOD identifier_or_keyword type_arity_list?)+;
>>>
>>> type_arity_list: OPEN_PARENTHESIS 'Of' comma_list?
>>> CLOSE_PARENTHESIS
>>> -> ^('Of' comma_list?);
>>>
>>> comma_list: COMMA+;
>>>
>>> When I call the qualified_open_type_name rule, I get the following
>>> results:
>>>
>>> input: Global.AnId1.AnId2
>>> tree: Global (. (ID AnId1)) (. (ID AnId2)) <- This is correct.
>>>
>>> input: Global.AnId1 (Of ,,,).AnId2
>>> tree: Global (. (ID AnId1) (Of , , ,)) (. (ID AnId2) (Of , ,
>>> ,)) <-
>>> Incorrect. The last (Of , , ,) should not be there.
>>>
>>> Is my grammar incorrect? Is this a known bug? If it matters I'm
>>> using C#
>>> as the output language.
>>>
>>> Thanks!
>>>
>>> --
>>> Roger Jack
>>>
>>>
>>> List: http://www.antlr.org/mailman/listinfo/antlr-interest
>>> Unsubscribe:
>>> http://www.antlr.org/mailman/options/antlr-interest/your-email-address
>>>
>>>
>>
>> List: http://www.antlr.org/mailman/listinfo/antlr-interest
>> Unsubscribe:
>> http://www.antlr.org/mailman/options/antlr-interest/your-email-address
>
>
More information about the antlr-interest
mailing list