gpt4 book ai didi

javascript - pegjs 正则表达式组内参数的深度标记

转载 作者:行者123 更新时间:2023-11-28 17:12:03 25 4
gpt4 key购买 nike

考虑以下语法:

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) 正则表达式组中的内容吗?

最佳答案

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

list
= head:item tail:(',' i:item {return i;})*
{ return [head].concat(tail); }

关于javascript - pegjs 正则表达式组内参数的深度标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54170326/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com