Что это за формат данных? - PullRequest
6 голосов
/ 14 апреля 2011

У меня есть куча файлов данных следующей формы:

("String"
    :tag1 (value)
    :tag2 (value2)
    :tag3 (
        :nested_tag1 (foo)
        :nested_tag2 (
            :nested2_tag1 (
                 : ( nested3_tag1
                          :baz (true)
                          :qux ("a really long block of text")

                 )
            )
        )
    )
)

Это всего лишь маленький пример. Реальные файлы имеют много тысяч строк.

Прости мое невежество, но я не узнаю формат. Это распространенный или известный формат? У него есть имя?

Я хочу обработать его с помощью Perl и подумать, есть ли какие-нибудь внешние модули, которые позволили бы мне легко превратить его в структуру данных Perl - без необходимости писать сам Parser. Ведь зачем заново изобретать колесо! ; -)

1 Ответ

7 голосов
/ 14 апреля 2011

Для меня это выглядит как Lisp-иш S-выражение . Emacs, например, прекрасно поймет ваш пример после цитирования его в виде списка.

S-выражения обычно очень легко анализировать, но также поиск CP-S-выражений должен дать вам достаточно, чтобы вам не пришлось писать синтаксический анализатор самостоятельно.

...