1

MKS Yacc 支持他们的网站称为“选择首选项语法”的符号。它没有说明,但它由方括号中的标记组成,可选地带有插入符号,它表示特定标记需要遵循或不遵循其余规则:

non_terminal:  TOKEN1 non_terminal2 TOKEN2 [TOKEN3]

non_terminal:  TOKEN1 non_terminal2 TOKEN2 [^TOKEN3]

(我不清楚括号中的项目是否可以是非终端。我看到的使用符号的代码总是使用一个标记或几个空格分隔的标记,而不是非终端。)

是否有人知道提供相同支持(符号可以不同 - 功能不能)的替代 Yacc 兼容系统(最好是开源),在 Unix 或 Linux 机器上运行,最好以源格式提供?

(MKS Yacc 在处理错误和调整错误行为方面也提供了一些灵活性。可以使用的一种方法是,当关键字在被视为关键字时毫无意义的位置遇到时,将其视为标识符。我是能够将其改造成byacc- Berkeley Yacc - 但我没有花足够的时间来研究如何处理“选择偏好”。)


另见:有没有人使用过 MKS Yacc 提供的“选择偏好”机制?

4

1 回答 1

1

为了完整起见,由于我在答案中将其链接到您的其他版本,Thinkage似乎有一个名为YAY的产品,它类似于 yacc 并支持选择器语法。他们在 Kitchner,显然与 MKS 密切相关,但从网站上看,他们似乎也负责 MKS 的文档,所以如果其他所有方法都失败了,你可以打电话给他们,问他们这些选择偏好到底是什么意思。;-)

于 2009-01-26T08:54:43.647 回答