bool SC_LanguageConfig::writeLibraryConfigYAML(const char* fileName)
{
	using namespace YAML;
	Emitter out;
	out.SetIndent(4);
	out.SetMapFormat(Block);
	out.SetSeqFormat(Block);
	out.SetBoolFormat(TrueFalseBool);

	out << BeginMap;

	out << Key << "includePaths";
	out << Value << BeginSeq;
	for (DirVector::iterator it = gLanguageConfig->mIncludedDirectories.begin();
		 it != gLanguageConfig->mIncludedDirectories.end(); ++it)
		out << *it;
	out << EndSeq;

	out << Key << "excludePaths";
	out << Value << BeginSeq;
	for (DirVector::iterator it = gLanguageConfig->mExcludedDirectories.begin();
		 it != gLanguageConfig->mExcludedDirectories.end(); ++it)
		out << *it;
	out << EndSeq;

	out << Key << "postInlineWarnings";
	out << Value << gPostInlineWarnings;

	out << EndMap;
	ofstream fout(fileName);
	fout << out.c_str();
	return true;
}
bool SC_LanguageConfig::writeLibraryConfigYAML(const Path& fileName)
{
	using namespace YAML;
	Emitter out;
	out.SetIndent(4);
	out.SetMapFormat(Block);
	out.SetSeqFormat(Block);
	out.SetBoolFormat(TrueFalseBool);

	out << BeginMap;

	out << Key << INCLUDE_PATHS;
	out << Value << BeginSeq;
	for (const bfs::path& it : gLanguageConfig->mIncludedDirectories)
		out << SC_Codecvt::path_to_utf8_str(it);
	out << EndSeq;

	out << Key << EXCLUDE_PATHS;
	out << Value << BeginSeq;
	for (const bfs::path& it : gLanguageConfig->mExcludedDirectories)
		out << SC_Codecvt::path_to_utf8_str(it);
	out << EndSeq;

	out << Key << POST_INLINE_WARNINGS;
	out << Value << gPostInlineWarnings;

	out << EndMap;

	bfs::ofstream fout(fileName);
	fout << out.c_str();
	return true;
}