我正在使用 Grako。在我的 EBNF 语法中,我有一个表达式,它由许多使用 OR 运算符连接的子表达式组成,如下所示:
expression = subexpressionA | subexpressionB | ... | subexpressionZ;
如果输入字符串包含后面的子表达式之一,例如 subexpressionZ,则解析过程总是失败。当我像这样重写语法时
expression = subexpressionZ | subexpressionB | ... | subexpressionA;
如果输入字符串包含 subexpressionZ,则解析过程成功完成,但如果它包含 subexpressionA,则现在将失败。
有没有人遇到过类似的问题?这是 Grako 中的错误(我使用的是 3.6.3。)还是我做错了什么?
非常感谢您的任何想法!