Веб-сайт Treetop дает следующее объяснение, которое я не понимаю
Многоточие Пустая строка совпадает в любой позиции и не требует ввода.Это полезно, когда вы хотите обрабатывать отдельный символ как часть последовательности, например, когда альтернативное правило будет обрабатываться с использованием общего кода. rule alts (foo bar / baz '') {def value elements.отображение {| е |e.text_value} end} end
Многоточие Пустая строка совпадает в любой позиции и не требует ввода.Это полезно, когда вы хотите обрабатывать отдельный символ как часть последовательности, например, когда альтернативное правило будет обрабатываться с использованием общего кода.
rule alts (foo bar / baz '') {def value elements.отображение {| е |e.text_value} end} end
когда полезно обрабатывать символ как часть последовательности?Кто-нибудь может привести значимый пример этого?
Я не знаком с Treetop. Из примера может показаться, что ( foo bar / baz '' ) выдаст либо ['foo', 'bar'], либо ['baz', ''].
( foo bar / baz '' )
['foo', 'bar']
['baz', '']
Если вы удалите многоточие, вы получите либо ['foo', 'bar'], либо просто 'baz' (без последовательности / списка / массива).
'baz'