考虑以下语法:
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)
正则表达式组内的内容?