1 //===-- APINotesYAMLCompiler.h - API Notes YAML Format Reader ---*- C++ -*-===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 #ifndef LLVM_CLANG_APINOTES_APINOTESYAMLCOMPILER_H 10 #define LLVM_CLANG_APINOTES_APINOTESYAMLCOMPILER_H 11 12 #include "llvm/ADT/StringRef.h" 13 #include "llvm/Support/SourceMgr.h" 14 #include "llvm/Support/raw_ostream.h" 15 16 namespace clang { 17 class FileEntry; 18 } // namespace clang 19 20 namespace clang { 21 namespace api_notes { 22 /// Parses the APINotes YAML content and writes the representation back to the 23 /// specified stream. This provides a means of testing the YAML processing of 24 /// the APINotes format. 25 bool parseAndDumpAPINotes(llvm::StringRef YI, llvm::raw_ostream &OS); 26 27 /// Converts API notes from YAML format to binary format. 28 bool compileAPINotes(llvm::StringRef YAMLInput, const FileEntry *SourceFile, 29 llvm::raw_ostream &OS, 30 llvm::SourceMgr::DiagHandlerTy DiagHandler = nullptr, 31 void *DiagHandlerCtxt = nullptr); 32 } // namespace api_notes 33 } // namespace clang 34 35 #endif 36