[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