[antlr-interest] Tree output syntax
Terence Parr
parrt at cs.usfca.edu
Thu Apr 5 10:05:57 PDT 2007
Works for me.
Ter
--------------
/tmp $ java org.antlr.Tool A.g
ANTLR Parser Generator Version 3.0b7 (??, 2007) 1989-2007
error(106): A.g:7:15: reference to undefined rule: propertyDef
error(106): A.g:6:15: reference to undefined rule: fieldDef
error(106): A.g:5:15: reference to undefined rule: classDef
error(105): A.g:7:6: no lexer rule corresponding to token: K_PROP
error(105): A.g:5:6: no lexer rule corresponding to token: K_CLASS
error(105): A.g:6:6: no lexer rule corresponding to token: K_FIELD
/tmp $ cat A.g
grammar A;
options {output=AST;}
declaration
: K_CLASS^ classDef
| K_FIELD^ fieldDef
| K_PROP^ propertyDef
;
On Apr 5, 2007, at 4:41 AM, Gavin Lambert wrote:
> 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