文档中描述了这种语法:
grammar
=
| ['()'] ['$'] {'#' &'#'} '#'
| ['()'] {'#' &'#'} '#%'
| ['()'] ['$'] {'0' &'0'} '0'
| ['()'] {'0' &'0%'} '0%'
| ['()'] ['$'] {'#' &'0'} {'0' &'0'} '0'
;
如何正确描述语法,以便在尝试解析字符串时得到以下结果:
对于字符串'######'
,我们得到的结果(['#', '#', '#', '#', '#'], '#')
是 True(第一个规则)
对于字符串'#####%'
,我们得到的结果(['#', '#', '#', '#'], '#')
是 False 它应该是(['#', '#', '#', '#'], '#%')
(首先工作,但应该是第二个规则)
对于字符串'000000'
,我们得到的结果(['0', '0', '0', '0', '0'], '0')
是 True(适用的第三条规则)
对于字符串'###000'
,我们得到的结果(['#', '#'], '#')
是 False (首先工作,但应该是第五条规则)
文档中给出的规则是荒谬的还是我做错了什么?