如何编写一个 LPeg 模式,它永远不会匹配任何内容?

有没有办法创建一个 LPeg 模式,它始终无法匹配任何内容?我不是说匹配空字符串,我是说一个始终失败的模式,所以如果将它放在有序选择中,它总是会退回到第二个选项。

原因是我正在使用 LPEG 编写一个小型解析器,我希望写成

 operators = empty_pattern + "==" + "~=" + "<=" + ">=" + "<" + ">"

而不是

 operators = lpeg.P("==") + "~=" + "<=" + ">=" + "<" + ">"
点赞
用户805875
用户805875

lpeg.P( false ) 是最简单的方式。

如果参数是布尔值,则结果是一个模式,根据布尔值始终成功或始终失败(不消耗任何输入)。

2017-02-13 22:00:43