well-formness / схема S-выражений - PullRequest
       9

well-formness / схема S-выражений

3 голосов
/ 27 октября 2011

Я ищу инструменты, которые проверяют правильность / схему S-выражений.

Вам известны такие инструменты?

Как уточнил Пол Натан, я точно ищу валидатор Schema для sexp.

Ответы [ 2 ]

2 голосов
/ 07 ноября 2011

Я подозреваю, что вопрос OP касается замены стека технологии XML на S-выражения и Lisp.

Идиоматический подход с S-выражениями заключается в реализации специальных валидаторов и преобразователей, адаптированных для конкретных форматов данных. Поскольку Лиспы почти декларативны (и позволяют определять бесчисленные возможные декларативные языки поверх них), нет необходимости в специализированном, общем решении, таком как XML-схема или DTD.

В зависимости от используемого вами аромата Lisp, вы можете выбрать библиотеку соответствия шаблонов, соответствующую вашим потребностям. Также могут помочь встроенные реализации Prolog (например, Schelog).

0 голосов
/ 28 октября 2011

S-выражения на самом деле не имеют схем как таковых. Хорошо сформированные S-выражения в чем-то, приближающемся к нормальному грамматическому описанию, соответствуют (очень приблизительно):

atom := <character>+
sexp := atom | '(' sexp* ')'

То есть S-exp - это либо один атом, либо список из нуля или более S-выражений. Написание валидатора для этого не должно быть слишком сложным.

...