[antlr-interest] Problems w/ tokenVocab in 3ea10

Brian Cox coxbrian at msu.edu
Sun Jun 4 08:24:06 PDT 2006


I'm trying to import a set of common tokens between languages using the 
tokenVocab option, but I'm receiving errors from ANTLR when I try this. 
Oddly enough, it appears as if the tokens are being properly imported 
anyway.  Here's the output I get from ANTLR:

-----
% java org.antlr.Tool etl.g
ANTLR Parser Generator   Early Access Version 3.0ea10 (June 2, 2006) 
1989-2006
problem reading token vocabulary file Common.tokens: 
java.lang.NullPointerException
org.antlr.tool.Grammar.importTokenVocabulary(Grammar.java:1528)
org.antlr.tool.AssignTokenTypesWalker.option(AssignTokenTypesWalker.java:660)
org.antlr.tool.AssignTokenTypesWalker.optionsSpec(AssignTokenTypesWalker.java:522)
org.antlr.tool.AssignTokenTypesWalker.grammarSpec(AssignTokenTypesWalker.java:429)
org.antlr.tool.AssignTokenTypesWalker.grammar(AssignTokenTypesWalker.java:328)
org.antlr.tool.Grammar.setGrammarContent(Grammar.java:461)
org.antlr.Tool.process(Tool.java:254)
org.antlr.Tool.main(Tool.java:72)
-----

Here's the relevant portion of etl.g:

-----
grammar Etl;

options {
         output=AST;
         superClass='net.sf.confection.parsers.AbstractParser';
         tokenVocab='Common';
}

tokens {
     IMPORT_FUNCTION_CLAUSE;
     SINGLE_IDENTIFIER_OR_INDEXED_COMPONENT;
}
-----

Here's all of common.g:

-----
grammar Common;

tokens {
     ARGUMENT_DEFINITION;
     ARGUMENT_LIST;
     BLOCK;
     FUNCTION_DEFINITION;
     FUNCTION_DECLARATION;
     FUNCTION_HEADER;
     TYPE_DECLARATION;
     VARIABLE_DECLARATION;
}

start : ;
-----

.... which produces this Common.tokens:

-----
VARIABLE_DECLARATION=11
BLOCK=6
TYPE_DECLARATION=10
FUNCTION_DEFINITION=7
FUNCTION_HEADER=9
FUNCTION_DECLARATION=8
ARGUMENT_LIST=5
ARGUMENT_DEFINITION=4
-----

Now, despite the error messages I get when trying to process etl.g, the 
tokens from Common are being imported anyway as can be seen from this 
small snippet of Etl.tokens:

-----
LESS_THAN=24
FUNCTION_DEFINITION=7
BLOCK=6
VARIABLE_DECLARATION=11
EQUALS=23
-----

Likewise, it appears that everything is as it should be in the Etl.java 
and EtlLexer.java sources.

Is the error something to worry about (such as there possibly being 
something missing from Etl's output that I'm not seeing) or should I 
ignore the error and assume everything's okay?

- Brian



More information about the antlr-interest mailing list