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

如何解决 LR(1) 文法定义中的歧义?

如何解决 LR(1) 文法定义中的歧义?

Go
慕容708150 2021-08-16 19:35:56
我正在用 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 解析器生成器工具。
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 215 浏览
慕课专栏
更多

添加回答

举报

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