我正在使用parsimonious进行一些解析,但我无法弄清楚如何正确解析在无序中共享第一个字符的替代方案:
例如:
文本:
2 > 3
2 >= 3
语法:
expr = ~"[0-9]+" space operator space ~"[0-9]+"
operator = ">" / "==" / "<" / ">=" / "<="
space = ~"[\\s]*"
文本的第一行将正确解析,但第二行不会。看起来它匹配“>”然后因为看到“=”而被卡住。它从不匹配 ">=" 作为一个整体。我如何做到这一点而不必仔细指定这些?我尝试使用“&”进行前瞻匹配,但这似乎不起作用。