【发布时间】:2014-08-19 20:45:31
【问题描述】:
我刚开始使用 antlr,我使用的是 4.2。简单的猜测说它在基础上会像 antlr3。所以我遵循this问题的公认答案。 (但不是Exp,我换成了Java,意思是我要解析Java)一切都很好,直到我想编译ANTLRDemo.java的例子。
当我编译它时,我得到 4 个错误:
ANTLRStringStream in = new ANTLRStringStream("some random text");
JavaLexer lexer = new JavaLexer(in);
-
第一个错误:类 JavaLexer 中的构造函数 JavaLexer 无法应用于 给定类型; JavaLexer 词法分析器 = 新的 JavaLexer(in);必需的: CharStream 发现:ANTLRStringStream 原因:实际参数 ANTLRStringStream 无法通过方法转换为 CharStream 调用转换(我知道这个错误是什么;-)
CommonTokenStream tokens = new CommonTokenStream( lexer); JavaParser parser = new JavaParser(tokens); System.out.println(parser.eval());
简而言之,假设每一行都有自己类似的错误。例如,“parser”没有“eval()”方法。
我错过了什么?我猜 antlr4 不像 3 那样运行。有什么想法吗?请考虑我的初学者状态。
【问题讨论】: