[ 
http://jira.codehaus.org/browse/MANTLRTHREE-4?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Silvester Pozarnik closed MANTLRTHREE-4.
----------------------------------------

    Resolution: Fixed

The plugin is now aware of grammar interdependencies and process the grammars 
in correct order.

> Unable to force the processing sequence of several interdependent grammar 
> files
> -------------------------------------------------------------------------------
>
>                 Key: MANTLRTHREE-4
>                 URL: http://jira.codehaus.org/browse/MANTLRTHREE-4
>             Project: Maven 2.x Antlr3 Plugin
>          Issue Type: Bug
>          Components: antlr
>    Affects Versions: 1.0-beta-1
>            Reporter: Silvester Pozarnik
>            Assignee: David Holroyd
>             Fix For: 1.0-beta-2
>
>
> As from antlr 3.0, you have to have at least two grammar files if you are 
> using the tree parser. As the Tree parser usually uses a Token file generated 
> by the parser, the tree parser grammar file _must_ be processed after the 
> parser file.  The implementation of plugin uses a 
> SimpleSourceInclusionScanner class in processGrammarFiles() and iterator 
> through the set runs completely randomly. We experienced that on WINDOWS it 
> runs ok, but on Linux it runs OK when you build the module, but fails due to 
> other sorting order if you are using reactor build. The reason for this is 
> different relevant paths to grammar files which will generate different hash 
> values. If for example your "TreeParser.g3" grammar is dependent on tokens 
> generated by compiling the "Parser.g3" file, you should be able to force the 
> processing order by calling the plugin as f.ex.:
>  
> <plugin>
>   <groupId>org.codehaus.mojo</groupId>
>   <artifactId>antlr3-maven-plugin</artifactId>
> ...
> <includes>
>   <include>**/Parser.g3</include>
>   <include>**/TreeParser.g3</include>
> </includes>
> This does not work now, as "TreeParser.g3" may get processed before the 
> "Parser.g3".
> The problem is also that even if you get message regarding the missing token 
> file (easy to miss) - the build will succeed and you get a strange message( 
> ".. expecting token X, got token X..."!?) from antlr tree parser in run time.
> The work around is to run antlr3-maven-plugin in two pases:
> ...
>            <executions>
>            <execution>
>            <id>run-antlr-step1</id>
>           <phase>generate-sources</phase> <!-- for "Parser.g3" -->
> ...
>            <include>**/Parser.g3</include>
> and
>           <execution>
>            <id>run-antlr-step2</id>
>            <phase>process-sources</phase> <!-- for "TreeParser.g3" -->
> ...
>           <include>**/TreeParser.g3</include>
> But this is ugly way of solving the problem.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to