Как кодировать правила синтаксического анализа в python?

Учитывая объекты XML многих классов (скажем, типы изображений документов), мне нужно сгенерировать некоторые выходные данные в зависимости от класса объекта и сложный набор математических правил, касающихся содержимого файла XML.

Каково общее название этой задачи (разбор?) И как проще всего кодировать отдельные правила для каждого класса, учитывая, что правила могут включать математические отношения. Я думаю, что я должен создать файл для каждого класса, чтобы сохранить его управляемость с помощью DSL, но я не уверен. Кто-то предложил включить полноценного интерпретатора Lua или Javascript. Это хорошая идея? Я хочу, чтобы все было легко и просто.

1 ответ

Решение

Синтаксический анализ относится к чтению ряда токенов и правил сопоставления в грамматике. Если вы можете указать свою проблему таким образом, вы можете написать грамматику, используя pyparsing.

Если вы заинтересованы в извлечении структуры XML-документа, то вы можете использовать стандартный модуль Python xml.etree.ElementTree. Также посмотрите на BeautifulSoup.

Другие вопросы по тегам