clang: include/clang/Lex/ModuleMapFile.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9#ifndef LLVM_CLANG_LEX_MODULEMAPFILE_H

10#define LLVM_CLANG_LEX_MODULEMAPFILE_H

11

13

14

17#include "llvm/ADT/StringRef.h"

18

19#include

20#include

21

23

26

28

30

31

37

43

48

53 std::optional<int64_t> Size;

54 std::optional<int64_t> MTime;

55 LLVM_PREFERRED_TYPE(bool)

57 LLVM_PREFERRED_TYPE(bool)

59 LLVM_PREFERRED_TYPE(bool)

61 LLVM_PREFERRED_TYPE(bool)

63};

64

69

75

76 LLVM_PREFERRED_TYPE(bool)

78 LLVM_PREFERRED_TYPE(bool)

80};

81

86

92

97

103

108

112 LLVM_PREFERRED_TYPE(bool)

114};

115

119 LLVM_PREFERRED_TYPE(bool)

121};

122

128

129using TopLevelDecl = std::variant<ModuleDecl, ExternModuleDecl>;

130

131

132

133

134

136

138

139

140

142

143

145

147 std::vector Decls;

148

149 void dump(llvm::raw_ostream &out) const;

150};

151

152

153

154

155

156

157

158

159

160

161

162

163

164std::optional

167

168}

169}

170

171#endif

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.

Definition ModuleMapFile.h:27

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.

Definition ModuleMapFile.h:32

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< ModuleDecl, ExternModuleDecl > TopLevelDecl

Definition ModuleMapFile.h:129

The JSON file list parser is used to communicate input to InstallAPI.

SmallVector< std::pair< std::string, SourceLocation >, 2 > ModuleId

Describes the name of a module.

CustomizableOptional< DirectoryEntryRef > OptionalDirectoryEntryRef

The set of attributes that can be attached to a module.

Definition ModuleMapFile.h:116

std::vector< StringRef > Macros

Definition ModuleMapFile.h:117

SourceLocation Location

Definition ModuleMapFile.h:118

unsigned Exhaustive

Definition ModuleMapFile.h:120

Definition ModuleMapFile.h:123

SourceLocation Location

Definition ModuleMapFile.h:124

ModuleId Id

Definition ModuleMapFile.h:125

StringRef Message

Definition ModuleMapFile.h:126

Definition ModuleMapFile.h:82

StringRef Module

Definition ModuleMapFile.h:84

SourceLocation Location

Definition ModuleMapFile.h:83

Definition ModuleMapFile.h:93

SourceLocation Location

Definition ModuleMapFile.h:94

ModuleId Id

Definition ModuleMapFile.h:95

Definition ModuleMapFile.h:87

SourceLocation Location

Definition ModuleMapFile.h:89

ModuleId Id

Definition ModuleMapFile.h:88

bool Wildcard

Definition ModuleMapFile.h:90

Definition ModuleMapFile.h:98

SourceLocation Location

Definition ModuleMapFile.h:99

StringRef Path

Definition ModuleMapFile.h:101

ModuleId Id

Definition ModuleMapFile.h:100

Definition ModuleMapFile.h:109

StringRef Library

Definition ModuleMapFile.h:110

unsigned Framework

Definition ModuleMapFile.h:113

SourceLocation Location

Definition ModuleMapFile.h:111

Definition ModuleMapFile.h:70

ModuleAttributes Attrs

Points to the first keyword in the decl.

Definition ModuleMapFile.h:73

SourceLocation Location

Definition ModuleMapFile.h:72

ModuleId Id

Definition ModuleMapFile.h:71

unsigned Explicit

Definition ModuleMapFile.h:77

unsigned Framework

Definition ModuleMapFile.h:79

std::vector< Decl > Decls

Definition ModuleMapFile.h:74

Represents the parsed form of a module map file.

Definition ModuleMapFile.h:135

SourceLocation Start

Beginning of the file, used for moduleMapFileRead callback.

Definition ModuleMapFile.h:144

bool IsSystem

Definition ModuleMapFile.h:146

std::vector< TopLevelDecl > Decls

Definition ModuleMapFile.h:147

FileID ID

The FileID used to parse this module map. This is always a local ID.

Definition ModuleMapFile.h:137

OptionalDirectoryEntryRef Dir

The directory in which the module map was discovered.

Definition ModuleMapFile.h:141

Definition ModuleMapFile.h:44

std::vector< RequiresFeature > Features

Definition ModuleMapFile.h:46

SourceLocation Location

Definition ModuleMapFile.h:45

Definition ModuleMapFile.h:38

StringRef Feature

Definition ModuleMapFile.h:39

bool RequiredState

Definition ModuleMapFile.h:41

SourceLocation Location

Definition ModuleMapFile.h:40

Definition ModuleMapFile.h:65

SourceLocation Location

Definition ModuleMapFile.h:67

StringRef Path

Definition ModuleMapFile.h:66

Definition ModuleMapFile.h:104

ModuleId Id

Definition ModuleMapFile.h:106

SourceLocation Location

Definition ModuleMapFile.h:105