Парсер с Леплом - PullRequest
       38

Парсер с Леплом

1 голос
/ 28 ноября 2010

Я хочу разобрать текстовый файл, например, что-то вроде этого:

div::
    class:yo-d
    text:example
    id:my-class
    h1:: Title
        href:http://www.example.com
    div::
        class:class1
        id:my-class2

Это похоже на reStructuredText.
Каждый тег заканчивается :: и может иметь некоторые атрибуты attr:value. Я хочу получить что-то вроде этого, словарь Python:

{'div': {'attrs': {'text': 'example', 'class': 'yo-d', 'id': 'my-class'},
         'sub': {'h1': {'content': 'Title', 'attrs': {'href': 'http://www.example.com'}},
                 'div': {'attrs': {'class': 'class1', 'id': 'my-class2'}},
                },
        }
}

После sub имеются теги с отступом, и если что-то следует за тегом ::, оно входит в 'content'.

Я бы использовал Lepl, но я даже не знаю, с чего начать, какие-либо предложения?

Спасибо
рубик

1 Ответ

2 голосов
/ 28 ноября 2010

Альтернативой использованию Lepl является Pyparsing: http://pyparsing.wikispaces.com/

В настоящее время я успешно использую Pyparsing, и если вы называете результаты, вы можете получить словари именованных результатов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...