2011-08-19 18 views
12

¿Por qué obtengo este error al generar código en ANTLR?ANTLR ClassCastException

[16:06:38] error(10): internal error: C:\Users\user\Desktop\test.g : java.lang.ClassCastException: org.antlr.runtime.tree.CommonTree cannot be cast to org.antlr.tool.GrammarAST 
org.antlr.grammar.v3.CodeGenTreeWalker.rules(CodeGenTreeWalker.java:1467) 
org.antlr.grammar.v3.CodeGenTreeWalker.grammarSpec(CodeGenTreeWalker.java:1441) 
org.antlr.grammar.v3.CodeGenTreeWalker.grammar_(CodeGenTreeWalker.java:509) 
org.antlr.codegen.CodeGenerator.genRecognizer(CodeGenerator.java:421) 
org.antlr.Tool.generateRecognizer(Tool.java:655) 
org.antlr.Tool.process(Tool.java:468) 
org.antlr.works.generate.CodeGenerate.generate(CodeGenerate.java:104) 
org.antlr.works.generate.CodeGenerate.run(CodeGenerate.java:185) 
java.lang.Thread.run(Unknown Source) 

La sintaxis es muy simple, sólo para las pruebas:

grammar test; 

ID : ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'0'..'9'|'_')* 
    ; 

¿Alguna idea?

Respuesta

16

Has especificado una gramática mixta (lexer y analizador), pero no has especificado una regla de analizador.

O agregue uno o use lexer grammar test;