Правило с заголовком секции повторяться не будет, поскольку оно не подойдёт никуда, кроме как к началу секции. В тексте больше нету последовательностей токенов, которые соответствуют терминалу SECTION_NAME, значит и вывод будет выбран другой.
Впрочем, позже я добавлю SECTION_CONTENT – с ним правил вывода больше, зато они более читаемые.
В предложенной Вами интерпретации отсутствует интерпретация для корневого правила SECTION, что при попытке извлечения фактов ведёт к следующей ошибке. ValueError: no .interpretation(...) for root rule
Допущу, что подразумевалось, что интерпретация SECTION остаётся примерно такой же, как у меня:
В документации к yargy-парсеру почти нету разъяснений ошибок (эта ошибка там вообще не упоминается), но я полагаю, что её суть в том, что левую часть правила нельзя интерпретировать как атрибут факта.
А если интерпретировать SECTION_CONTENT как Node, а не как Node.successors, то получается дерево разбора 1, приведённое в вопросе, что проблему не решает.
Но спасибо за участие в обсуждении!
Это мой первый вопрос на Хабре. Почему-то думал, что мне по такой теме совсем никто не ответит.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
Впрочем, позже я добавлю SECTION_CONTENT – с ним правил вывода больше, зато они более читаемые.
В предложенной Вами интерпретации отсутствует интерпретация для корневого правила SECTION, что при попытке извлечения фактов ведёт к следующей ошибке.
ValueError: no .interpretation(...) for root rule
Допущу, что подразумевалось, что интерпретация SECTION остаётся примерно такой же, как у меня:
Тогда уже не будет работать интерпретация SECTION_CONTENT
В документации к yargy-парсеру почти нету разъяснений ошибок (эта ошибка там вообще не упоминается), но я полагаю, что её суть в том, что левую часть правила нельзя интерпретировать как атрибут факта.
А если интерпретировать SECTION_CONTENT как Node, а не как Node.successors, то получается дерево разбора 1, приведённое в вопросе, что проблему не решает.
Но спасибо за участие в обсуждении!
Это мой первый вопрос на Хабре. Почему-то думал, что мне по такой теме совсем никто не ответит.