树梢网站提供了以下我不理解的解释

省略号 空字符串在任何位置都匹配,并且不消耗任何输入。当您希望将单个符号视为序列的一部分时,例如当将使用共享代码处理替代规则时,此功能很有用。

规则替代 (foo bar / baz'') { 定义值 elements.map {| e |e.text_value} 结束 } 结束

什么时候将符号视为序列的一部分有用?有人可以提供一个有意义的例子吗?

有帮助吗?

解决方案

我不熟悉Treetop。从该示例中可以看出,( foo bar / baz '' )可能会产生['foo', 'bar']或generaodicetagcode。

如果删除省略号,您将获得['baz', '']或仅['foo', 'bar'](无序列/列表/数组)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top