2011-08-19 31 views
12

Tại sao tôi gặp lỗi này khi tạo mã trong 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) 

Cú pháp rất đơn giản, chỉ để thử nghiệm:

grammar test; 

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

Bất kỳ ý tưởng?

Trả lời

16

Bạn đã chỉ định ngữ pháp hỗn hợp (lexer và phân tích cú pháp), nhưng bạn không chỉ định quy tắc phân tích cú pháp.

Hoặc thêm một hoặc sử dụng lexer grammar test;

Các vấn đề liên quan