首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pegjs regex组内参数的深度标记

pegjs regex组内参数的深度标记
EN

Stack Overflow用户
提问于 2019-01-13 23:27:23
回答 1查看 61关注 0票数 0

考虑以下语法:

代码语言:javascript
复制
list
 = head:item (',' tail:item)*
 { return [head].concat(tail); }

item
 = $ ([0-9]*)

它应该描述正整数的列表。

问题是tail是未定义的,因为它在括号内。

因此,我被迫执行以下操作:

代码语言:javascript
复制
list
 = head:item tail:tail*
 { return [head].concat(tail); }

tail
 = ',' item:item
 { return item; }

item
 = $ ([0-9]*)

在较长的语法中,这可能会相当麻烦。

有没有办法标记(',' item)正则表达式组中的内容?

EN

回答 1

Stack Overflow用户

发布于 2019-01-29 00:04:04

您确实可以标签组中的内容(下面的i:),告诉PEGJS确切返回什么({return i;}),也可以标记结果(tail:)。

代码语言:javascript
复制
list
 = head:item tail:(',' i:item {return i;})*
 { return [head].concat(tail); }
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54170326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档