我正在尝试使用这种 TatSu (grako) 中的 EBNF 语法来解析字符串“###”:
grammar = """mask =
| ['()'] ['$'] {'#'} '#'
| ['()'] {'#'} '#%'
| ['()'] ['$'] {'#'} {'0'} '0' '.#' {'#'}
"""
我收到一个错误:
tatsu.exceptions.FailedToken: (1:1) expecting '#' :
#
^
mask
start
我怀疑首先执行搜索{'#'}(匹配'#' 零次或多次),然后找不到'#'(必需的字符'#')。是否有可能以某种方式实现它,以便首先我看到所需的字符'#',然后才寻找{'#'}附加字符?