9#ifndef LLVM_CLANG_LEX_MODULEMAPFILE_H
10#define LLVM_CLANG_LEX_MODULEMAPFILE_H
17#include "llvm/ADT/StringRef.h"
24class DiagnosticsEngine;
53 std::optional<int64_t>
Size;
55 LLVM_PREFERRED_TYPE(
bool)
57 LLVM_PREFERRED_TYPE(
bool)
59 LLVM_PREFERRED_TYPE(
bool)
61 LLVM_PREFERRED_TYPE(
bool)
76 LLVM_PREFERRED_TYPE(
bool)
78 LLVM_PREFERRED_TYPE(
bool)
79 unsigned Framework : 1;
112 LLVM_PREFERRED_TYPE(
bool)
119 LLVM_PREFERRED_TYPE(
bool)
149 void dump(llvm::raw_ostream &out)
const;
164std::optional<ModuleMapFile>
static void dump(llvm::raw_ostream &OS, StringRef FunctionName, ArrayRef< CounterExpression > Expressions, ArrayRef< CounterMappingRegion > Regions)
Forward-declares and imports various common LLVM datatypes that clang wants to use unqualified.
Defines the clang::Module class, which describes a module in the source code.
Defines the clang::SourceLocation class and associated facilities.
Concrete class used by the front-end to report problems and issues.
A reference to a DirectoryEntry that includes the name of the directory as it was accessed by the Fil...
An opaque identifier used by SourceManager which refers to a source file (MemoryBuffer) along with it...
Encodes a location in the source.
This class handles loading and caching of source files into memory.
std::optional< ModuleMapFile > parseModuleMap(FileID ID, clang::DirectoryEntryRef Dir, SourceManager &SM, DiagnosticsEngine &Diags, bool IsSystem, unsigned *Offset)
Parse a module map file into an in memory representation.
std::variant< struct RequiresDecl, struct HeaderDecl, struct UmbrellaDirDecl, struct ModuleDecl, struct ExcludeDecl, struct ExportDecl, struct ExportAsDecl, struct ExternModuleDecl, struct UseDecl, struct LinkDecl, struct ConfigMacrosDecl, struct ConflictDecl > Decl
All declarations that can appear in a module declaration.
std::variant< ModuleDecl, ExternModuleDecl > TopLevelDecl
The JSON file list parser is used to communicate input to InstallAPI.
The set of attributes that can be attached to a module.
std::vector< StringRef > Macros
ModuleAttributes Attrs
Points to the first keyword in the decl.
std::vector< Decl > Decls
Represents the parsed form of a module map file.
SourceLocation Start
Beginning of the file, used for moduleMapFileRead callback.
std::vector< TopLevelDecl > Decls
FileID ID
The FileID used to parse this module map. This is always a local ID.
OptionalDirectoryEntryRef Dir
The directory in which the module map was discovered.
std::vector< RequiresFeature > Features