为了账号安全,请及时绑定邮箱和手机立即绑定

为什么在定义更多类型时 go yacc 解析器会恐慌?

为什么在定义更多类型时 go yacc 解析器会恐慌?

Go
幕布斯6054654 2021-09-13 16:58:50
我写了一个更多类型的 test.y 文件。经过一定的限制,当我用命令编译文件时,go tool yacc test它恐慌,“在 yacc.go:891 中索引超出范围”当我查看文件https://golang.org/src/cmd/yacc/yacc.go 时,我在定义常量时看到了这个评论“以下可根据内存大小进行调整”是否有理由将第 74 行中的类型定义数量限制为 63(NTYPES = 63)(在上面链接中提到的文件中)
查看完整描述

2 回答

?
侃侃尔雅

TA贡献1801条经验 获得超16个赞

有趣 - 我已经使用了go tool yacc很多并且没有注意到这个限制。

之所以这样,是因为它是yacc.go从 C 程序移植过来的,你看到的是明显的直接移植。

查看yacc.go它的代码将非常简单地删除该限制并将typeset数组转换为切片。

我会做的是打开一个问题(检查一个问题是否存在 - 我没有看到一个,但我没有仔细看)。接下来,如果您觉得勇敢,请使用go 贡献指南提交补丁。这是为 go 本身做贡献的好方法。


查看完整回答
反对 回复 2021-09-13
  • 2 回答
  • 0 关注
  • 155 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信