I'm having a problem; I need to split my grammar into a lexer grammar and a parser grammar so I can specify a superClass option for the lexer grammar.
My source files are src/main/antlr/org/apache/tapestry5/internal/antlr/PropertyTokens.g and PropertyExpression.g. The plugin generates a PropertyTokens.tokens file as target/generated-sources/antlr/org/apache/tapestry5/internal/antlr/PropertyTokens.token So far, so good. However, in my PropertyExpression.g file I've tried options { tokenVocab=PropertyTokens; } and options { tokenVocab="org/apache/tapestry5/internal/antlr/PropertyTokens"; } and both fail. The first should work, but gets: [INFO] [antlr3:antlr {execution: default}] org/apache/tapestry5/internal/antlr/PropertyTokens.g org/apache/tapestry5/internal/antlr/PropertyExpression.g [ERROR] error(3): cannot find tokens file /Users/Howard/work/tapestry5/tapestry-core/target/generated-sources/antlr/PropertyTokens.tokens I think the plugin is not setting the -lib option correctly (see Definitive ANTLR Reference, p. 110). My workaround: <plugin> <groupId>org.antlr</groupId> <artifactId>antlr3-maven-plugin</artifactId> <version>3.1.1.2</version> <executions> <execution> <goals> <goal>antlr</goal> </goals> <configuration> <!-- This is a hack so that the parser grammar can locate the tokens file generated by the lexer grammar. --> <libDirectory>target/generated-sources/antlr/org/apache/tapestry5/internal/antlr</libDirectory> </configuration> </execution> </executions> </plugin> This feels like a bug in either the Maven plugin or in ANTLR; it should be able to find the .tokens file for a lexer grammar generated from the same package folder. If I ended up having multiple grammars in my project, I would have to put them all in a single package folder for the build to work. On Fri, Dec 5, 2008 at 10:13 AM, Jim Idle <[EMAIL PROTECTED]> wrote: > On Fri, 2008-12-05 at 09:57 -0800, Howard Lewis Ship wrote: > > Is this the right plugin artiface? > > <groupId>org.codehaus.mojo</groupId> > <artifactId>antlr3-maven-plugin</artifactId> > <version>3.1.1.1</version> > > > No it is org.antlr as per teh post to the group: > > <plugin> > <groupId>org.antlr</groupId> > <artifactId>antlr3-maven-plugin</artifactId> > <version>3.1.1.2</version> > > <configuration> > ... > </configuration> > > <executions> > > <execution> > <goals> > <goal>antlr</goal> > </goals> > </execution> > > </executions> > > </plugin> > > On Fri, Dec 5, 2008 at 9:39 AM, Jim Idle <[EMAIL PROTECTED]> wrote: >> On Fri, 2008-12-05 at 09:30 -0800, Howard Lewis Ship wrote: >> >> I don't see it here: >> >> >> http://mirrors.ibiblio.org/pub/mirrors/maven2/org/codehaus/mojo/antlr3-maven-plugin/ >> >> Where do you think it ended up? >> >> It is no longer in the codehaus repository, but maven central. Just >> reference it and it will be pulled in. It works for me and others on the >> list. >> >> Jim >> >> PS: There will be a 3.1.1.2 shortly as I found that 3.1.1.1 did not >> respect >> the conversionTimeout configuration. >> >> Jim >> >> On Wed, Dec 3, 2008 at 2:02 PM, Jim Idle <[EMAIL PROTECTED]> wrote: >>> I have just released org.antlr - antlr3-maven-plugin version 3.1.1.1, >>> which >>> should sync up with Maven central no later than 4 hours from now >>> (depending >>> on when in the sync cycle I deployed the artifacts). >>> >>> This release incorporates a few donated re-jigs, but more importantly I >>> have >>> re-implemented the dependency checking code as the previous >>> implementations >>> were using Collection sorting, which cannot handle interdependencies >>> correctly. The dependency resolution is now evaluated using a topological >>> sort and seems to work well. >>> >>> The release numbering reflects that this is the first revision to the >>> plugin >>> that processes .g files using ANTLR 3.1.1. >>> >>> Please let me know if you find errors of course. The generated usage web >>> site will be updated and deployed to somewhere on www.antlr.org when the >>> hardware for the web site is upgraded sometime this week. >>> >>> Jim >>> >>> List: http://www.antlr.org:8080/mailman/listinfo/antlr-interest >>> Unsubscribe: >>> >>> >>> http://www.antlr.org:8080/mailman/options/antlr-interest/your-email-address >>> >>> >>> >> >> >> >> >> > > > > > -- Howard M. Lewis Ship Creator Apache Tapestry and Apache HiveMind List: http://www.antlr.org:8080/mailman/listinfo/antlr-interest Unsubscribe: http://www.antlr.org:8080/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 [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/il-antlr-interest?hl=en -~----------~----~----~----~------~----~------~--~---