парсинг выражений xpath - PullRequest
1 голос
/ 29 июня 2011

Я хочу разобрать выражения XPath Я ищу реализацию лексера / парсера в C ++ или Python

Вот вся информация о парсерах XPath, которые мне удалось собрать:

Кто-нибудь знает другие реализации? в С ++?

PS: я не хочу оценивать выражения XPath, но ставлю их на токены

Ответы [ 3 ]

2 голосов
/ 01 июля 2011

Основываясь на комментарии OP,

Я работаю над переписыванием и эквивалентностью запросов XPath

ему нужен анализатор, который создает деревья абстрактного синтаксиса, испособы проанализировать эти деревья и преобразовать их.Анализаторы и «переписывание» могут быть затем выполнены процедурно путем ходьбы / изменения AST;это традиционный способ сделать это.

Но, похоже, основное внимание должно уделяться целям ОП.Для этого ему нужен анализ и переписывание.Но это не должно быть полностью сделано традиционным, процедурным способом.Скорее, было бы неплохо, если бы анализ / переписывание можно было выполнить непосредственно с использованием нотации XPath.

Я предлагаю ему взглянуть на наш DMS Software Reengineering Toolkit , который анализирует, создает AST, но в частностипозволяет «переписывать» на AST, используя синтаксис поверхности.Тогда XPath «переписывает» может быть написано непосредственно как эквивалент по выражениям XPath.Мотивирующим примером того, как это работает, можно считать переписывание уравнений алгебры с использованием DMS .Из этого примера должно быть очевидно, что грамматика для XPath легко определяется.

0 голосов
/ 29 июня 2011

У Xerces есть ответвление, xalan-c, для этого:

http://xml.apache.org/xalan-c/overview.html

0 голосов
/ 29 июня 2011

Оформить заказ XQilla http://xqilla.sourceforge.net/HomePage

...