Пытаюсь распарсить строку "###" использую правила EBNF грамматики в библиотеке TatSu (grako):
grammar = """mask =
| ['()'] ['$'] {'#'} '#'
| ['()'] {'#'} '#%'
| ['()'] ['$'] {'#'} {'0'} '0' '.#' {'#'}
"""
Получаю ошибку:
tatsu.exceptions.FailedToken: (1:1) expecting '#' :
#
^
mask
start
Я догадываюсь что выполняется сначала {'#'} (находит '#' ноль или больше раз) и уже после этого пытается найти '#' (обязательный символ '#').
Поэтому как реализовать чтобы сначала находился обязательный символ '#' и уже после этого искал дополнительные символы '#' ?