void EmitPopulateLanguageMap (const RecordKeeper& Records, std::ostream& O)
{
// Generate code
- O << "namespace {\n\n";
O << "void PopulateLanguageMapLocal(LanguageMap& langMap) {\n";
// Get the relevant field out of RecordKeeper
}
}
- O << "}\n\n}\n\n";
+ O << "}\n\n";
}
/// IncDecWeight - Helper function passed to EmitCaseConstructHandler()
const ToolDescriptions& ToolDescs,
std::ostream& O)
{
- O << "namespace {\n\n";
O << "void PopulateCompilationGraphLocal(CompilationGraph& G) {\n";
for (ToolDescriptions::const_iterator B = ToolDescs.begin(),
++i;
}
- O << "}\n\n}\n\n";
+ O << "}\n\n";
}
/// ExtractHookNames - Extract the hook names from all instances of
/// EmitRegisterPlugin - Emit code to register this plugin.
void EmitRegisterPlugin(int Priority, std::ostream& O) {
- O << "namespace {\n\n"
- << "struct Plugin : public llvmc::BasePlugin {\n\n"
+ O << "struct Plugin : public llvmc::BasePlugin {\n\n"
<< Indent1 << "int Priority() const { return " << Priority << "; }\n\n"
<< Indent1 << "void PopulateLanguageMap(LanguageMap& langMap) const\n"
<< Indent1 << "{ PopulateLanguageMapLocal(langMap); }\n\n"
<< Indent1 << "{ PopulateCompilationGraphLocal(graph); }\n"
<< "};\n\n"
- << "static llvmc::RegisterPlugin<Plugin> RP;\n\n}\n\n";
+ << "static llvmc::RegisterPlugin<Plugin> RP;\n\n";
}
/// EmitIncludes - Emit necessary #include directives and some
// Emit hook declarations.
EmitHookDeclarations(Data.ToolDescs, O);
+ O << "namespace {\n\n";
+
// Emit PopulateLanguageMap() function
// (a language map maps from file extensions to language names).
EmitPopulateLanguageMap(Records, O);
// Emit code for plugin registration.
EmitRegisterPlugin(Data.Priority, O);
+ O << "} // End anonymous namespace.\n";
// EOF
}