Кажется, я полностью застрял в понимании, почему это не удается разобрать.Ниже приведена моя простая грамматика (просто пытаюсь понять скупость и, следовательно, грамматика может не иметь смысла).
from parsimonious.grammar import Grammar
from parsimonious.nodes import NodeVisitor
sql_grammar = Grammar(
"""
select_statement = "SELECT" ("ALL" / "DISTINCT")? object_alias_section
object_alias_section = object_name / alias
object_name = ~"[ 0-9]*"
alias = ~"[ A-Z]*"
"""
)
data = """SELECT A"""
tree = sql_grammar.parse(data)
print("tree:", tree, "\n")
A SELECT 10
парсит, но по какой-то причине SELECT A
не удается разобрать.Я понимаю, что или 1006 * или alias
должны присутствовать.Что я делаю неправильно?Заранее спасибо.