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

Parsing EDIFACT in Python with syntax trees

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

Библиотека Edison от AmadeusITGroup моделирует сообщения EDIFACT не как плоский список сегментов, а как синтаксическое дерево с вложенными группами. Схема задаётся прямо в Python: сегменты могут быть условными, обязательными или повторяемыми, а к нужным узлам привязываются callback-функции. Парсер преобразует дерево в граф переходов, что позволяет валидировать сообщения, красиво их выводить и экспортировать графы через pydot. Поддерживаются экранированные разделители и EBCDIC.

Вместо того чтобы рассматривать сообщение как плоский список сегментов, библиотека моделирует сообщения как синтаксическое дерево: сегменты могут рекурсивно определять группы дочерних сегментов.
  1. CharlesW

    На случай, если другие HNers тоже не слышали об этом: https://en.wikipedia.org/wiki/EDIFACT

  2. LouDNL

    Действительно здорово! Я как раз готовился парсить это для возможного клиента на другом языке. Спасибо за инсайты.

  3. DonaldPShimoda

    Что такое «настоящее» синтаксическое дерево? Интересно, имелось ли в виду «конкретное» (в противоположность абстрактному синтаксическому дереву), или это сказано разговорно (в смысле «ты действительно получаешь синтаксическое дерево» или «ты получаешь фактическое синтаксическое дерево»), а не как технический термин.

Ещё за этот день

2026-10-24