Для чего используется многоточие (пустая строка) в грамматике Treetop (PEG)?

веб-сайт Treetop дает следующее объяснение, которое я не понимаю

Многоточие Пустая строка соответствует любой позиции и не требует ввода. Это полезно, когда вы хотите рассматривать один символ как часть последовательности, например, когда альтернативное правило будет обрабатываться с использованием общего кода.

правила alts (foo bar / baz '') { def value elements.map{|e| e.text_value } конец } конец

когда полезно рассматривать символ как часть последовательности? Может ли кто-нибудь привести содержательный пример этого?


person RubenLaguna    schedule 11.01.2012    source источник


Ответы (1)


Я не знаком с Treetop. Из примера может показаться, что ( foo bar / baz '' ) выдает либо ['foo', 'bar'], либо ['baz', ''].

Если вы удалите многоточие, вы получите либо ['foo', 'bar'], либо просто 'baz' (без последовательности/списка/массива).

person Markus Jarderot    schedule 29.02.2012
comment
Итак, кажется, что это просто способ убедиться, что он создает массив, даже если есть только одна вещь. В случае, если вы хотите иметь общий код, который всегда ожидает ввода в виде массива. Теперь я понимаю. - person RubenLaguna; 29.02.2012