Рассмотрим следующую грамматику:
list
= head:item (',' tail:item)*
{ return [head].concat(tail); }
item
= $ ([0-9]*)
Должен описывать списки натуральных чисел.
Проблема в том, что tail
не определено, так как оно внутри паренов.
Так что я вынужден сделать следующее:
list
= head:item tail:tail*
{ return [head].concat(tail); }
tail
= ',' item:item
{ return item; }
item
= $ ([0-9]*)
Это может быть довольно громоздким в более длинных грамматиках.
Есть ли способ обозначить, что находится внутри (',' item)
группы регулярных выражений?