YAML parser and emitter in C++