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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]