首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Eclipse2.1:在ANTLRWorks中生成的Lexer+Parser导致UUID异常

Eclipse2.1:在ANTLRWorks中生成的Lexer+Parser导致UUID异常
EN

Stack Overflow用户
提问于 2014-06-28 22:53:36
回答 2查看 1.4K关注 0票数 1

我是新接触ANTLR和ANTLRWorks的,所以我对此感到非常困惑:我使用Java2.1创建语法以及随后创建词法分析器和解析器( ANTLRWorks目标)。然后,我创建了一个小的Eclipse项目,并从ANTLRWorks导入ANTLR,以手动调用ANTLR4书籍示例中描述的词法分析器和解析器。在运行应用程序时,我得到了以下异常:

代码语言:javascript
复制
Caused by: java.lang.UnsupportedOperationException: java.io.InvalidClassException: org.antlr.v4.runtime.atn.ATN; Could not  deserialize ATN with UUID 33761b2d-78bb-4a43-8b0b-4f5bee8aacf3 (expected e4178468-df95-44d0-ad87-f22a5d5fb6d3).
    at org.antlr.v4.runtime.atn.ATNSimulator.deserialize(ATNSimulator.java:111)
    at org.antlr.v4.runtime.atn.ATNSimulator.deserialize(ATNSimulator.java:90)
    at TestLexer.<clinit>(TestLexer.java:177)
    ... 1 more
Caused by: java.io.InvalidClassException: org.antlr.v4.runtime.atn.ATN; Could not deserialize ATN with UUID 33761b2d-78bb-4a43-8b0b-4f5bee8aacf3 (expected e4178468-df95-44d0-ad87-f22a5d5fb6d3).
    ... 4 more

但是,当在ANTLRWorks TestRig中运行相同的语法和输入数据时,一切工作正常。这里出了什么问题?我已经找到了关于版本控制问题的类似帖子,但是没有一篇涉及这个UUID问题。有人能帮我吗?

提前感谢!

EN

回答 2

Stack Overflow用户

发布于 2014-06-29 00:42:12

ANTLRWorks使用了一个非标准的ANTLR版本,以支持它的一些编辑器特性(代码完成等)。它的设计方式支持正确的代码生成,但是为了编译和运行您的解析器,您需要使用来自antlr.org的参考ANTLR库。

票数 2
EN

Stack Overflow用户

发布于 2014-06-28 23:19:06

最可能的原因是您在解析器生成时和运行时使用了不同版本的antlr运行时。

确保在两种情况下使用完全相同的antlr版本,这样错误就会消失。

免责声明:我可能错了,因为我在.Net中使用了antlr。

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

https://stackoverflow.com/questions/24468009

复制
相关文章

相似问题

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