什么是树梢(PEG)语法中使用的省略号(空字符串)?

时间:2012-01-11 23:28:36

标签: treetop peg

Treetop website给出了我不理解的以下解释

  

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

     规则等        (foo bar / baz'')        {          def值            elements.map {| E | e.text_value}          结束        }      端

何时将符号视为序列的一部分有用?任何人都能提供一个有意义的例子吗?

1 个答案:

答案 0 :(得分:0)

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

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