Эмиттер Yaml в C++

Есть ли библиотека C++ для генерации YAML? В Википедии упоминается оболочка C++ для libyaml, но ссылка не работает. Официальный сайт YAML предлагает только yaml-cpp, что также было предложено в этот ТАК вопрос, но cpp-yaml - это только синтаксический анализатор, а не эмиттер. Мне не повезло?

Изменить: я ищу объектно-ориентированный интерфейс, поэтому требуется C++. Я знаю, что мог бы использовать интерфейс C libyaml в коде C++, но это далеко не идеально.


person Kyle Simek    schedule 16.04.2009    source источник
comment
Я автор yaml-cpp, и я уже давно собирался написать эмиттер, но, поскольку мои собственные проекты не требуют его, я не смог придумать хороший API. Что бы вы хотели излучать и какой пользовательский интерфейс был бы для вас идеальным? Если вы оставите комментарий на вики-странице Google Code, я буду очень признателен!   -  person Jesse Beder    schedule 08.05.2009
comment
Привет, Джесси. Приятно встретить смелую душу, пытающуюся создать библиотеку C++ YAML. Учитывая отсутствие ответа на мой вопрос, похоже, вы последняя надежда на то, что я ищу. Вчера поздно вечером я просмотрел страницу, но у меня не было хорошего API; В эти выходные я потрачу еще немного времени на размышления об этом.   -  person Kyle Simek    schedule 09.05.2009
comment
Здорово! Какие типы документов YAML вы пытаетесь создать? Я еще не видел неискусственно построенного примера.   -  person Jesse Beder    schedule 09.05.2009
comment
Я хочу использовать его как формат сериализации для чего угодно. Я начинаю новый проект и хочу сериализовать все свои классы в удобочитаемом формате. Я недоволен налогом на угловые скобки XML (спасибо, Джефф!), а необработанный текстовый вывод трудно разобрать для читателей.   -  person Kyle Simek    schedule 09.05.2009
comment
Хорошо, я подумал о сериализации, и это дало мне несколько идей. Проверьте вики и дайте мне знать, что вы думаете (я добавил метод Stream в конец).   -  person Jesse Beder    schedule 11.05.2009


Ответы (2)


По вашему предложению у yaml-cpp теперь есть эмиттер.

person Jesse Beder    schedule 01.06.2009

Как насчет libyaml?

LibYAML — это парсер и эмиттер YAML 1.1, написанный на C.

И, более конкретно, emitter.c?

person gimel    schedule 16.04.2009
comment
Я признаю libyaml в своем вопросе, но я ищу объектно-ориентированный интерфейс С++. - person Kyle Simek; 16.04.2009