Альтернативный скрипт для YAML? - PullRequest
0 голосов
/ 28 февраля 2011

Я собирался использовать yaml, потому что у него есть замечательная функция, называемая слиянием! (клавиша «<<») </p>

И я использую 'yaml-cpp' для парсера, так как работаю над cpp.

Но! yaml-cpp не поддерживает слияние. Что я могу сделать для альтернатив?

Другие скрипты, другой парсер, другой способ синтаксического анализа или что-то хорошее, если я могу использовать функцию слияния.

НО мне не нужно объединять более одного объекта. Мне просто нужно определить что-то и создать другой объект, унаследованный от первого, и переопределить некоторые значения. Вот оно.

Спасибо за чтение.

Ответы [ 3 ]

0 голосов
/ 01 марта 2011

Если вы не можете ждать и нуждаетесь в слияниях, вы можете следовать предложению "barma" в вопросе yaml-cpp: http://code.google.com/p/yaml-cpp/issues/detail?id=41#c12

Изменение заключается в вставке строк нижев шаблон FindValueForKey (между циклом for и return 0):

const Node *pValueMerge = FindValueForKey(std::string("<<"));
if(pValueMerge) {
    return pValueMerge->FindValueForKey(key);
}

Проблема (как я уже упоминал на странице проблемы) заключается в том, что спецификация допускает

<<: [*dict1, *dict2]

объединить несколько словарей;но, похоже, тебе это не нужно.

0 голосов
/ 12 апреля 2019

Задача

Использование ключей слияния YAML.

Решение

Другие скрипты, другой парсер, другой способ синтаксического анализа или что-то хорошее, если я могу использовать функцию слияния.

Следующие реализации YAML поддерживают желаемую функцию на момент написания

  • Ruby 2.x
  • Python 2.x // 3.x
0 голосов
/ 28 февраля 2011

Попросите yaml-cpp реализовать эту функцию.

...