[antlr-interest] Fixed minor 3.1 compatibility issue with v2 v3 converter

Mark Helmstetter mark at helmstetter.com
Sun Oct 5 14:18:00 PDT 2008


I downloaded the v2 v3 migration tool from:
http://www.antlr.org/download/v2v3-0.2.tar.gz

And when running it using the antlr-3.1.1 jar I was getting the following
exception:

C:\tools\antlr-2.7.7\v2v3migration>java -cp
.;C:\tools\antlr-3.1.1\lib\antlr-3.1.1.jar v3me XQuery_0
_9.g
Exception in thread "main" java.lang.NoSuchFieldError: channel
        at ANTLRLexer.mML_COMMENT(ANTLRLexer.java:626)
        at ANTLRLexer.mTokens(ANTLRLexer.java:2920)
        at org.antlr.runtime.Lexer.nextToken(Lexer.java:84)
        at
org.antlr.runtime.CommonTokenStream.fillBuffer(CommonTokenStream.java:95)
        at
org.antlr.runtime.CommonTokenStream.LT(CommonTokenStream.java:238)
at
org.antlr.runtime.CommonTokenStream.LA(CommonTokenStream.java:300)
at ANTLRParser.antlrGrammar(ANTLRParser.java:124)
        at v3me.main(v3me.java:25)


After digging a little, it looks like this is caused by some minor changes
between 3.0 and 3.1.

I was able to fix the issue by:
1. Change "token=" with "$token=" in v2v3migration/ANTLR.g (lines 456 and
574)
2. Run antlr on ANTLR.g (java -cp antlr-3.1.1.jar org.antlr.Tool ANTLR.g)
3. Recompile v2v3migration sources


Just thought I'd share in case someone else encounters the same issue.

--Mark







More information about the antlr-interest mailing list