Задать вопрос

Как реализовать грамматику EBNF такого вида?

Пытаюсь распарсить строку "###" использую правила EBNF грамматики в библиотеке TatSu (grako):
grammar = """mask =
                  | ['()'] ['$'] {'#'} '#'
                  | ['()'] {'#'} '#%'
                  | ['()'] ['$'] {'#'} {'0'} '0' '.#' {'#'}
"""

Получаю ошибку:
tatsu.exceptions.FailedToken: (1:1) expecting '#' :
#
^
mask
start

Я догадываюсь что выполняется сначала {'#'} (находит '#' ноль или больше раз) и уже после этого пытается найти '#' (обязательный символ '#').
Поэтому как реализовать чтобы сначала находился обязательный символ '#' и уже после этого искал дополнительные символы '#' ?
  • Вопрос задан
  • 66 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы