1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
#define XERR "generator"
#include "generator.ih"
ofstream Generator::tokenPath() const
{
error_code ec;
path tokenPath{ d_options.tokenPath() };
path parent = tokenPath.parent_path();
if (not parent.empty())
create_directories(parent, ec);
if (ec.value() != 0)
throw Exception{} << "cannot create path to `" <<
tokenPath.string() << '\'';
ofstream ret = Exception::factory<ofstream>(d_options.tokenPath());
string stem = String::uc(tokenPath.stem().string());
ret << "#ifndef INCLUDED_" << stem << "_\n"
"#define INCLUDED_" << stem << "_\n"
"\n";
if (string const &ns = d_options.tokenNameSpace(); not ns.empty())
ret << "namespace " << ns << "\n"
"{\n"
"\n";
ret << "struct " << d_options.tokenClass() << "\n"
"{";
return ret;
}
|