Treetop website给出了我不理解的以下解释
省略号 空字符串在任何位置匹配,不消耗任何输入。当您希望将单个符号视为序列的一部分时,它非常有用,例如,当使用共享代码处理备用规则时。
规则等 (foo bar / baz'') { def值 elements.map {| E | e.text_value} 结束 } 端
何时将符号视为序列的一部分有用?任何人都能提供一个有意义的例子吗?
答案 0 :(得分:0)
我对Treetop并不熟悉。从示例中可以看出,( foo bar / baz '' )
会产生['foo', 'bar']
或['baz', '']
。
如果删除省略号,您将获得['foo', 'bar']
或'baz'
(无序列/列表/数组)。