[antlr-interest] [stringtemplate-interest] howto set separator in parallel list iteration

Jens Boeykens jens.boeykens at gmail.com
Mon Jul 7 14:34:35 PDT 2008


And rewrite has an empty alternative, so doesn't this make the question 
mark unnecessary or am I overlooking something?

Jens Boeykens schreef:
> Hm I've writed a lot of unit tests and no exceptions occured even when 
> no rewrites were used.
> Can you give me an example input where you get exceptions?
>
> What I am working on now is to build a generator which generates an 
> antlrv3 grammar from a tree. This gives a grammar which is equivalent 
> to the original grammar used to build that tree but can be tweaked by 
> doing stuff with the tree like sorting rules.
> I'll post it to the community when it is sort of finished.
>
> Greetz
>
> Terence Parr schreef:
>>
>> On Jul 7, 2008, at 1:50 AM, Jens Boeykens wrote:
>>
>>> I think I solved the bug. In ANTLRv3.g I changed the rule "altList" 
>>> as follows:
>>>
>>> altList
>>> @init {
>>>     // must create root manually as it's used by invoked rules in 
>>> real antlr tool.
>>>     // leave here to demonstrate use of {...} in rewrite rule
>>>     // it's really BLOCK[firstToken,"BLOCK"]; set line/col to 
>>> previous ( or : token.
>>>     CommonTree blkRoot = 
>>> (CommonTree)adaptor.create(BLOCK,input.LT(-1),"BLOCK");
>>> }
>>>     :   a1=alternative rewrite ( '|' a2=alternative rewrite )*
>>>         -> ^( {blkRoot} (alternative rewrite)+ EOB["EOB"] )
>>>     ;
>>>
>>> I deleted the question mark after rewrite in the tree rewrite rule.
>>
>> Actually, that rewrite ? is necessary... if there is no rewrite, you 
>> will get an exception.
>> Ter
>>
>
>



More information about the antlr-interest mailing list