ドキュメントで説明されているこの種の文法があります。
grammar
=
| ['()'] ['$'] {'#' &'#'} '#'
| ['()'] {'#' &'#'} '#%'
| ['()'] ['$'] {'0' &'0'} '0'
| ['()'] {'0' &'0%'} '0%'
| ['()'] ['$'] {'#' &'0'} {'0' &'0'} '0'
;
文字列を解析しようとしたときに次の結果が得られるように、文法を正しく記述する方法:
文字列の場合、True'######'
の結果が得られ(['#', '#', '#', '#', '#'], '#')
ます (最初のルールが機能します) 。
文字列の場合'#####%'
、結果(['#', '#', '#', '#'], '#')
は False になるはずです(['#', '#', '#', '#'], '#%')
(最初に機能しましたが、2 番目のルールである必要がありました)。
文字列の場合、True'000000'
という結果が得られ(['0', '0', '0', '0', '0'], '0')
ます (3 番目のルールが機能します) 。
文字列の場合、False'###000'
という結果が得られます(最初に機能しましたが、5 番目のルールである必要がありました)。(['#', '#'], '#')
ドキュメントに記載されているルールはばかげていますか、それとも何か間違っていますか?