使用 ANTLR for Go 未解析的引用“DeserializeFromUInt16”

问题描述 投票:0回答:1

我正在创建一个语法来运行控制台应用程序,使用 VSCode 或 IntelliJ 扩展,我的 .g4 语法文件一切似乎都很好。但是当我执行命令获取antlr/parser文件夹时:

antlr4 -Dlanguage=Go -o parser items.g4

我从 items_lexer.go 和 items_parser.go 文件中收到以下错误:

  • 未解析的参考“DeserializeFromUInt16”
  • 未解决的参考“DecisionToState”
  • 未解决的参考“DecisionToState”

第一个出现在以下行中:

var lexerAtn = lexerDeserializer.DeserializeFromUInt16(serializedLexerAtn)

其中使用了上一行中声明的 var: lexerDeserializer:

var lexerDeserializer = antlr.NewATNDeserializer(nil)

这是问题的根源,由于某种原因直接来自antlr lib,未找到DeserializeFromUInt16 函数。我已经尝试过使用另一种语法。我使用的是 ANTRL 4.7.2,并且我确保在我的项目中安装了 jdk、

go get github.com/antlr/antlr4/runtime/Go/antlr
和 .jar 文件夹。

我将不胜感激任何关于如何使我的文件免受错误的建议。

go antlr antlr4
1个回答
0
投票

我今天遇到了同样的问题,因为我使用 ANTLR 4.7 进行代码生成,并使用 v1.4.10 作为 golang 依赖项(请参阅 go.mod 文件)。

更新到 ANTLR 4.10 以进行代码生成有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.