我在用Grako。在我的EBNF语法中,我有一个表达式,该表达式由许多使用OR-运算符连接的子表达式组成,如下所示:
expression = subexpressionA | subexpressionB | ... | subexpressionZ;如果输入字符串包含后一个子表达式,比如subexpressionZ,解析过程总是失败的。当我像这样重写语法时
expression = subexpressionZ | subexpressionB | ... | subexpressionA;如果输入字符串包含subexpressionZ,解析过程将成功完成,但如果包含subexpressionA,则现在将失败。
有没有人遇到过类似的问题?是Grako中的一个bug (我使用的是3.6.3)。还是我做错什么了?
非常感谢你的任何想法!
发布于 2019-10-18 11:27:51
我解决了我的问题--很久以前:) --把这些表达式分成几个子表达式,例如:
expression1 = subexpressionA | subexpressionB | subexpressionC;
expression2 = subexpressionD | subexpressionE | ... | subexpressionZ;
expression = expression1 | expression2;出于某种原因,这是可行的..。
https://stackoverflow.com/questions/42803877
复制相似问题