xref: /freebsd/contrib/libucl/examples/ucl_cpp.cc (revision b626f5a73a48f44a31a200291b141e1da408a2ff)
1*39ee7a7aSBaptiste Daroussin #include <iostream>
2*39ee7a7aSBaptiste Daroussin #include <string>
3*39ee7a7aSBaptiste Daroussin #include "ucl++.h"
4*39ee7a7aSBaptiste Daroussin 
main(int argc,char ** argv)5*39ee7a7aSBaptiste Daroussin int main(int argc, char **argv)
6*39ee7a7aSBaptiste Daroussin {
7*39ee7a7aSBaptiste Daroussin 	std::string input, err;
8*39ee7a7aSBaptiste Daroussin 
9*39ee7a7aSBaptiste Daroussin 	input.assign((std::istreambuf_iterator<char>(std::cin)),
10*39ee7a7aSBaptiste Daroussin 		std::istreambuf_iterator<char>());
11*39ee7a7aSBaptiste Daroussin 
12*39ee7a7aSBaptiste Daroussin 	auto obj = ucl::Ucl::parse(input, err);
13*39ee7a7aSBaptiste Daroussin 
14*39ee7a7aSBaptiste Daroussin 	if (obj) {
15*39ee7a7aSBaptiste Daroussin 		std::cout << obj.dump(UCL_EMIT_CONFIG) << std::endl;
16*39ee7a7aSBaptiste Daroussin 
17*39ee7a7aSBaptiste Daroussin 		for (const auto &o : obj) {
18*39ee7a7aSBaptiste Daroussin 			std::cout << o.dump(UCL_EMIT_CONFIG) << std::endl;
19*39ee7a7aSBaptiste Daroussin 		}
20*39ee7a7aSBaptiste Daroussin 	}
21*39ee7a7aSBaptiste Daroussin 	else {
22*39ee7a7aSBaptiste Daroussin 		std::cerr << "Error: " << err << std::endl;
23*39ee7a7aSBaptiste Daroussin 
24*39ee7a7aSBaptiste Daroussin 		return 1;
25*39ee7a7aSBaptiste Daroussin 	}
26*39ee7a7aSBaptiste Daroussin }
27