[antlr-interest] Tree output syntax

Gavin Lambert antlr at mirality.co.nz
Thu Apr 5 04:41:16 PDT 2007


Yesterday, I wrote:
 >I can't quite work out how to do the tree output syntax for an
 >optional case.
[...]
 >compoundString: STRING (PLUS^ STRING)*;

In fact that syntax as a whole seems to give grief -- for example 
when I try to do this:

declaration
   :  K_CLASS^ classDef
   |  K_FIELD^ fieldDef
   |  K_PROP^  propertyDef
   ;

ANTLR simply spews this out:

error(100): .\Test.g3:0:0: syntax error: assign.types: <AST>:0:0: 
unexpected end of subtree
error(10):  internal error: .\Test.g3 : 
java.lang.ClassCastException: antlr.ASTNULLType
org.antlr.tool.AssignTokenTypesWalker.block(AssignTokenTypesWalker.java:1215)
org.antlr.tool.AssignTokenTypesWalker.rule(AssignTokenTypesWalker.java:1030)
org.antlr.tool.AssignTokenTypesWalker.rules(AssignTokenTypesWalker.java:610)
org.antlr.tool.AssignTokenTypesWalker.grammarSpec(AssignTokenTypesWalker.java:492)
org.antlr.tool.AssignTokenTypesWalker.grammar(AssignTokenTypesWalker.java:363)
org.antlr.tool.Grammar.setGrammarContent(Grammar.java:533)
org.antlr.tool.Grammar.<init>(Grammar.java:443)
org.antlr.Tool.getGrammar(Tool.java:331)
org.antlr.Tool.process(Tool.java:267)
org.antlr.Tool.main(Tool.java:70)

(Note in particular that there's no line information for the 
grammar file, which made this *really* hard to track down the 
first time I encountered it).



More information about the antlr-interest mailing list