本文整理汇总了C++中TextDiagnosticPrinter::BeginSourceFile方法的典型用法代码示例。如果您正苦于以下问题:C++ TextDiagnosticPrinter::BeginSourceFile方法的具体用法?C++ TextDiagnosticPrinter::BeginSourceFile怎么用?C++ TextDiagnosticPrinter::BeginSourceFile使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TextDiagnosticPrinter
的用法示例。
在下文中一共展示了TextDiagnosticPrinter::BeginSourceFile方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main()
{
llvm::raw_fd_ostream out_stream(1, false);
DiagnosticOptions diag_options;
TextDiagnosticPrinter *diagClient = new TextDiagnosticPrinter(out_stream, diag_options);
Diagnostic diags(diagClient);
LangOptions opts;
TargetOptions target_opts;
target_opts.Triple = LLVM_HOSTTRIPLE;
TargetInfo *target = TargetInfo::CreateTargetInfo(diags, target_opts);
FileManager fm;
SourceManager sm(diags);
HeaderSearch headers(fm);
Preprocessor pp(diags, opts, *target, sm, headers);
PreprocessorOptions preprocessor_options;
HeaderSearchOptions header_search_options;
FrontendOptions frontend_options;
InitializePreprocessor(
pp, preprocessor_options, header_search_options, frontend_options);
FileEntry const *file = fm.getFile("test.cpp");
FileID main_file = sm.createMainFileID(file);
diagClient->BeginSourceFile(opts, &pp);
pp.EnterMainSourceFile();
bool invalid = false;
llvm::StringRef sr = sm.getBufferData(main_file, &invalid);
(void) sr;
Token tok;
do {
pp.Lex(tok);
if (diags.hasErrorOccurred()) {
break;
}
pp.DumpToken(tok);
cerr << endl;
} while (tok.isNot(tok::eof));
}