2011-08-19 6 views
12

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) 

構文はちょうどテストのために、非常に簡単です:

grammar test; 

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

任意のアイデア?

答えて

16

混合文法(レクサーとパーサー)を指定しましたが、パーサールールは指定していません。

いずれか1つを追加または使用してください。lexer grammar test;