我正在用 OCaml 编写 Golang 编译器,参数列表让我有点头疼。在 Go 中,您可以通过以下方式对相同类型的连续参数名称进行分组:
func f(a, b, c int) === func f(a int, b int, c int)
你也可以有一个类型列表,没有参数名称:
func g(int, string, int)
两种款式不能混搭;要么所有参数都被命名,要么没有。
我的问题是,当解析器看到逗号时,它不知道该怎么做。在第一个示例中,是a
类型的名称还是带有更多变量的变量的名称?逗号有双重作用,我不知道如何解决这个问题。
我正在使用 OCaml 的 Menhir 解析器生成器工具。
相关分类