2011-08-19 4 views
12

Pourquoi j'obtiens cette erreur lors de la génération de code dans 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 syntaxe est très simple, il suffit pour le test:

grammar test; 

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

Toutes les idées?

Répondre

16

Vous avez spécifié une grammaire mixte (lexer et parser), mais vous n'avez pas spécifié de règle d'analyseur. Vous pouvez en ajouter un ou utiliser le code