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

我写了一个更多类型的 test.y 文件。经过一定的限制,当我用命令编译文件时,go tool yacc test

它恐慌,“在 yacc.go:891 中索引超出范围”当我查看文件https://golang.org/src/cmd/yacc/yacc.go 时,我在定义常量时看到了这个评论“以下可根据内存大小进行调整”是否有理由将第 74 行中的类型定义数量限制为 63(NTYPES = 63)(在上面链接中提到的文件中)


幕布斯6054654
浏览 156回答 2
2回答

侃侃尔雅

有趣 - 我已经使用了go tool yacc很多并且没有注意到这个限制。之所以这样,是因为它是yacc.go从 C 程序移植过来的,你看到的是明显的直接移植。查看yacc.go它的代码将非常简单地删除该限制并将typeset数组转换为切片。我会做的是打开一个问题(检查一个问题是否存在 - 我没有看到一个,但我没有仔细看)。接下来,如果您觉得勇敢,请使用go 贡献指南提交补丁。这是为 go 本身做贡献的好方法。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go