gpt4 book ai didi

javascript - 在 PEG.js 中测试所有替代模式

转载 作者:行者123 更新时间:2023-11-30 15:56:01 27 4
gpt4 key购买 nike

我想使用 PEG.js 识别几种不同格式的数字:

number = integer
/ real
/ (integer/real) '^' (integer/real)
/ (integer/real) '^^' (integer/real)

real = [0-9]+ '.' [0-9]*
/ [0-9]* '.' [0-9]+

integer = [0-9]+

如果备选序列中较早的部分匹配,则 PEG.js 不会寻找备选方案。大多数数字以整数开头,如果不是,则以实数开头。我如何重写它以便它单独测试每个备选方案? (我对将规则复合成更少的规则不感兴趣。)

最佳答案

首先尝试匹配更具体的表达式(因为规则之间存在重叠,所以您希望 PEG 首先匹配更具体以防止部分匹配):

number = ( real / integer ) '^' ( real / integer )
/ ( real / integer ) '^^' ( real / integer )
/ real
/ integer

关于javascript - 在 PEG.js 中测试所有替代模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38529348/

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