首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编译ANTLRWorks生成的类文件

编译ANTLRWorks生成的类文件
EN

Stack Overflow用户
提问于 2008-11-21 13:55:36
回答 2查看 1.2K关注 0票数 0

我正在使用ANTLRWorks创建ANTLR语法。我有一个有效的语法,解析器和词法分析器的源文件也是生成的。我还尝试了调试生成的代码,结果与调试器输出中的预期一致。

但是,当我尝试调用调试器生成的__Test__类时,控制台中没有任何内容。我已经正确地设置了类路径,因为我可以使用相同的类路径成功编译__Test__.java。

会有什么问题呢?有没有用antlr和antlrworks编写和编译示例解析器的明确教程?

EN

回答 2

Stack Overflow用户

发布于 2008-12-02 22:03:21

你期望控制台上会出现什么?

看看this project吧。ANTLRWorks生成的解析器是here。正如您从POM中的依赖关系中看到的,您需要确保antlr位于类路径中。然后使用解析器,如this class所示。

代码语言:javascript
复制
final DriftLexer lexer = new DriftLexer(new ANTLRInputStream(inputStream));
final CommonTokenStream tokens = new CommonTokenStream(lexer);        
final DriftParser parser = new DriftParser(tokens);
parser.file();

这应该足以让你的东西也能正常工作。

票数 1
EN

Stack Overflow用户

发布于 2010-05-01 05:58:24

ANTLRWorks生成用于创建回ANTLRWorks的套接字连接的测试类,因此无法从控制台使用它们。您可以编辑生成的测试类,使其不使用调试端口(套接字连接)选项。

要编辑的行为:

代码语言:javascript
复制
FormalSpecParser g = new FormalSpecParser(tokens, 49100, null);

您可以将其更改为:

代码语言:javascript
复制
FormalSpecParser g = new FormalSpecParser(tokens, null);

它使用调试侦听器对象而不是端口,"null“表示您没有为它提供调试侦听器,因此调试输出将被忽略。您可以编写自己的调试侦听器,以便将消息输出到控制台。

有关更多信息,请参阅ANTLR文档:http://www.antlr.org/api/Java/namespaces.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/308845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档