Node parseYAML(const string &filename) { std::ifstream fin(filename); YAML::Parser parser(fin); YAML::Node doc; if(!parser.GetNextDocument(doc)) throw BadNode(filename + ": not a YAML file!"); return asNode(doc); }
void LazyNode::dump(PrintStream& out) const { if (!*this) out.print("LazyNode:0"); else { if (isNode()) out.print("LazyNode:@", asNode()->index()); else out.print("LazyNode:FrozenValue:", Graph::opName(op()), ", ", pointerDump(asValue())); out.print(")"); } }
Node parseYAML(fs::DataFile &datafile, const string &filename) { fs::DataStream ds(datafile, filename); if(ds->isError()) throw BadNode("Unable to open configuration file: " + filename); YAML::Node doc; YAML::Parser parser(ds); if(!parser.GetNextDocument(doc)) throw BadNode(filename + ": not a YAML file!"); return asNode(doc); }
std::vector<Node> parseMultiDocYAML(fs::DataFile &datafile, const string &filename) { fs::DataStream ds(datafile, filename); if(ds->isError()) throw BadNode("Unable to open configuration file: " + filename); YAML::Parser parser(ds); std::vector<Node> nodes; YAML::Node doc; while(parser.GetNextDocument(doc)) { nodes.push_back(asNode(doc)); } return nodes; }