[antlr-interest] V3.0b Internal Error...

David Holroyd dave at badgers-in-foil.co.uk
Mon Oct 9 14:56:17 PDT 2006


Oops,

On Mon, Oct 09, 2006 at 09:53:48PM +0000, David Holroyd wrote:
> On Mon, Oct 09, 2006 at 09:41:44PM +0100, Robert Hill wrote:
> > I have a rule in my grammar:
> > 
> > sqlTransfer[Service s]
> > 	:   ( Select |  Update | Insert | Delete )
> > 		param=Identifier Using mapping=Identifier Semi 	
> > 	{
> > 			//some Java Code...
> > 	}  
> > 	-> ^(SQLCODE )
> > 
> > Which generates the following
> > 
> > ANTLR Parser Generator   Early Access Version 3.0b4 (??, 2006)  1989-2006
> > internal error: D:\ActiveProjects\IdeaProjects\Jtest1\src\SGenParser.g :
> > java.lang.IllegalArgumentException: Can't find template matchSetTrack.st
> > org.antlr.stringtemplate.StringTemplateGroup.lookupTemplate(StringTemplateGr
> > oup.java:485)
> > ......
> > 
> > however if I remove the brackets round the first set (select..Delete) the
> > error goes away.
> > I'm just trying to get it to emit a branch for this rule, it doesn't matter
> > what I put in the re-write, I still get the error if the brackets are there.
> > Also, if I remove the rewrite , the error goes away.
> 
> Ter has said something about this in the past...
> 
>   http://www.antlr.org/pipermail/antlr-interest/2006-August/017341.html
> 
> ...seems it's something unfinished in current the v3 releases.
> 
> You may be able to work around it by putting Select|Update|Insert|Delete
> into a subrule (I've not tried it, so sorry if it doesn't actually work).

I should have said 'another rule', not 'a subrule'.


ta,
dave

-- 
http://david.holroyd.me.uk/


More information about the antlr-interest mailing list