[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