本文整理汇总了C++中Analyser::manager方法的典型用法代码示例。如果您正苦于以下问题:C++ Analyser::manager方法的具体用法?C++ Analyser::manager怎么用?C++ Analyser::manager使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Analyser
的用法示例。
在下文中一共展示了Analyser::manager方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: open_file
static void open_file(Analyser& analyser,
SourceLocation where,
const std::string&,
const std::string& name)
{
FileName fn(name);
std::string filename = fn.name();
if (analyser.is_component_header(filename) ||
name == analyser.toplevel()) {
const SourceManager &m = analyser.manager();
llvm::StringRef buf = m.getBuffer(m.getFileID(where))->getBuffer();
if (buf.size() == 0) {
return;
}
buf = buf.substr(0, buf.find('\n')).rtrim();
std::string expectcpp("// " + filename);
expectcpp.resize(70, ' ');
expectcpp += "-*-C++-*-";
std::string expectc("/* " + filename);
expectc.resize(69, ' ');
expectc += "-*-C-*- */";
if ( !buf.equals(expectcpp)
&& !buf.equals(expectc)
&& buf.find("GENERATED") == buf.npos) {
std::pair<size_t, size_t> mcpp = mid_mismatch(buf, expectcpp);
std::pair<size_t, size_t> mc = mid_mismatch(buf, expectc);
std::pair<size_t, size_t> m;
std::string expect;
if (mcpp.first >= mc.first || mcpp.second >= mc.second) {
m = mcpp;
expect = expectcpp;
} else {
m = mc;
expect = expectc;
}
analyser.report(where.getLocWithOffset(m.first),
check_name, "HL01",
"File headline incorrect", true);
analyser.report(where.getLocWithOffset(m.first),
check_name, "HL01",
"Correct format is\n%0",
true, DiagnosticIDs::Note)
<< expect;
if (m.first == 0) {
analyser.InsertTextAfter(
where.getLocWithOffset(m.first), expect + "\n");
} else {
analyser.ReplaceText(analyser.get_line_range(where), expect);
}
}
}
}