Я не могу заставить Тацу разобрать грамматику, которая включает в себя литерал '#'.
Вот минимальный пример:
G = r'''
atom = /[0-9]+/
| '#' atom
;
'''
p = tatsu.compile(G)
p.parse('#345', trace=True)
При разборе возникает исключение FailedParse .Трассировка, кажется, показывает, что синтаксический анализатор не соответствует литералу '#':
<atom ~1:1
#345
!'' /[0-9]+/
!'#'
!atom ~1:1
#345
Если я изменю грамматику, чтобы использовать символ, отличный от '#, он работает нормально.Например, это работает:
G1 = r'''
atom = /[0-9]+/
| '@' atom
;
'''
tatsu.parse(G1, '@345') --> ['@', '345']
К сожалению, я не могу изменить формат входных данных.