社区首页 >问答首页 >使用antlr4生成go代码获取符号类型冲突错误问使用antlr4生成go代码获取符号类型冲突错误ENStack Overflow用户提问于 2021-12-18 11:32:54回答 1查看 103关注 0票数 0我按照指南这里使用antlr生成go解析器代码,但是我得到了一些错误,如下所示:
代码语言:javascript运行复制C:\Users\moyuduo\Desktop\antlr\mysql>java org.antlr.v4.Tool -Dlanguage=Go MySQLLexer.g4
C:\Users\moyuduo\Desktop\antlr\mysql>java org.antlr.v4.Tool -Dlanguage=Go MySQLParser.g4
error(134): MySQLParser.g4:476:61: symbol type conflicts with generated code in target language or runtime
error(134): MySQLParser.g4:757:18: symbol type conflicts with generated code in target language or runtime
error(134): MySQLParser.g4:776:22: symbol type conflicts with generated code in target language or runtime
error(134): MySQLParser.g4:1301:6: symbol type conflicts with generated code in target language or runtime
error(134): MySQLParser.g4:1305:4: symbol type conflicts with generated code in target language or runtime
error(134): MySQLParser.g4:1687:4: symbol type conflicts with generated code in target language or runtime
...但是使用antlr来生成java代码是可以的,为什么?有人帮我吗?
antlrmysqlgo关注问题分享EN回答 1推荐最新Stack Overflow用户回答已采纳发布于 2021-12-18 14:01:14
type是Go上的关键字。MySQLParger.g4文件中的第476行是:
代码语言:javascript运行复制AGGREGATE_SYMBOL? FUNCTION_SYMBOL udfName RETURNS_SYMBOL type = (您需要将行中的type更改为与Go关键字不冲突的内容。
我相信你会在其他报告中找到类似的案例。
语法作者很难避免在所有目标语言中以避免冲突的方式命名事物,因此会出现这样的情况。
收藏分享票数 1EN页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持原文链接:https://stackoverflow.com/questions/70403065
复制相关文章