You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by "Sergey Kalinichenko (JIRA)" <ji...@codehaus.org> on 2005/11/18 10:45:06 UTC

[jira] Created: (MNG-1612) ANTLR plugin does not track dependencies based on importVocab/exportVocab options

ANTLR plugin does not track dependencies based on importVocab/exportVocab options
---------------------------------------------------------------------------------

         Key: MNG-1612
         URL: http://jira.codehaus.org/browse/MNG-1612
     Project: Maven 2
        Type: Improvement
  Components: maven-antlr-plugin  
    Versions: 2.0    
 Environment: Win-XP
    Reporter: Sergey Kalinichenko
    Priority: Critical
 Attachments: bug.zip

When ANTLR parsers (e.g. the text parser and the tree parser) share token vocabularies through the importVocab/exportVocab options, ANTLR plugin does not recognize this as a dependency. As the result, the generated sources may not work as expected if some new tokens are added or tokens are re-arranged in the file with the exportVocab option. I don't know of a work-around that does not involve manual deletion of files or a clean build.

See http://www.antlr.org/doc/vocab.html for information on importVocab/exportVocab.

Steps to reproduce the bug:

1. Create a maven project 
2. Unzip the attached file into the src/main directory. This will create antlr directory with two files, bug.g and bugtree.g, in it.
3. Add maven-antlr-plugin to the POM with <grammars>bug.g,bugtree.g</grammars>
4. Run mvn compile
5. Find the BugTokensTokenTypes.java and BugTreeTokenTypes.java in the generated-sources directory; verify that in both files FALSE=4 and TRUE=5
6. Open bug.g file and uncomment the lines that define and reference the token called "NOTHING" (there are comments next to both places); save the file.
7. Run mvn compile again. Note that the plugin does not run antlr for bugtree.g, saying that the grammar is up to date
8. Verify that BugTokensTokenTypes.java and BugTreeTokenTypes.java set different values for the token TRUE: it is 6 in the newly generated BugTokensTokenTypes, but the old BugTreeTokenTypes still says TRUE=5.

Expected behavior:
Ideally, the plugin should recognize that the import vocabulary has changed and rerun the antlr for the file(s) with the corresponding importVocab option. Alternatively, rebuilding all grammars from the list when any of the sources is newer than its corresponding output grammar would be acceptable.

-- 
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, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[jira] Updated: (MANTLR-1) ANTLR plugin does not track dependencies based on importVocab/exportVocab options

Posted by "Jason van Zyl (JIRA)" <ji...@codehaus.org>.
     [ http://jira.codehaus.org/browse/MANTLR-1?page=all ]

Jason van Zyl updated MANTLR-1:
-------------------------------

    type: Bug  (was: Improvement)

> ANTLR plugin does not track dependencies based on importVocab/exportVocab options
> ---------------------------------------------------------------------------------
>
>          Key: MANTLR-1
>          URL: http://jira.codehaus.org/browse/MANTLR-1
>      Project: Maven 2.x Antlr Plugin
>         Type: Bug

>  Environment: Win-XP
>     Reporter: Sergey Kalinichenko
>     Priority: Critical
>  Attachments: bug.zip
>
>
> When ANTLR parsers (e.g. the text parser and the tree parser) share token vocabularies through the importVocab/exportVocab options, ANTLR plugin does not recognize this as a dependency. As the result, the generated sources may not work as expected if some new tokens are added or tokens are re-arranged in the file with the exportVocab option. I don't know of a work-around that does not involve manual deletion of files or a clean build.
> See http://www.antlr.org/doc/vocab.html for information on importVocab/exportVocab.
> Steps to reproduce the bug:
> 1. Create a maven project 
> 2. Unzip the attached file into the src/main directory. This will create antlr directory with two files, bug.g and bugtree.g, in it.
> 3. Add maven-antlr-plugin to the POM with <grammars>bug.g,bugtree.g</grammars>
> 4. Run mvn compile
> 5. Find the BugTokensTokenTypes.java and BugTreeTokenTypes.java in the generated-sources directory; verify that in both files FALSE=4 and TRUE=5
> 6. Open bug.g file and uncomment the lines that define and reference the token called "NOTHING" (there are comments next to both places); save the file.
> 7. Run mvn compile again. Note that the plugin does not run antlr for bugtree.g, saying that the grammar is up to date
> 8. Verify that BugTokensTokenTypes.java and BugTreeTokenTypes.java set different values for the token TRUE: it is 6 in the newly generated BugTokensTokenTypes, but the old BugTreeTokenTypes still says TRUE=5.
> Expected behavior:
> Ideally, the plugin should recognize that the import vocabulary has changed and rerun the antlr for the file(s) with the corresponding importVocab option. Alternatively, rebuilding all grammars from the list when any of the sources is newer than its corresponding output grammar would be acceptable.

-- 
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, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org