AmadeusITGroup выпустила парсер EDIFACT для Python, который строит настоящие синтаксические деревья
Parsing EDIFACT in Python with syntax trees

Библиотека Edison от AmadeusITGroup моделирует сообщения EDIFACT не как плоский список сегментов, а как синтаксическое дерево с вложенными группами. Схема задаётся прямо в Python: сегменты могут быть условными, обязательными или повторяемыми, а к нужным узлам привязываются callback-функции. Парсер преобразует дерево в граф переходов, что позволяет валидировать сообщения, красиво их выводить и экспортировать графы через pydot. Поддерживаются экранированные разделители и EBCDIC.
Вместо того чтобы рассматривать сообщение как плоский список сегментов, библиотека моделирует сообщения как синтаксическое дерево: сегменты могут рекурсивно определять группы дочерних сегментов.
- CharlesW
На случай, если другие HNers тоже не слышали об этом: https://en.wikipedia.org/wiki/EDIFACT
- LouDNL
Действительно здорово! Я как раз готовился парсить это для возможного клиента на другом языке. Спасибо за инсайты.
- DonaldPShimoda
Что такое «настоящее» синтаксическое дерево? Интересно, имелось ли в виду «конкретное» (в противоположность абстрактному синтаксическому дереву), или это сказано разговорно (в смысле «ты действительно получаешь синтаксическое дерево» или «ты получаешь фактическое синтаксическое дерево»), а не как технический термин.