Lines Matching defs:Module
1 //===--- Module.h - Describe a module ---------------------------*- C++ -*-===//
11 /// \brief Defines the clang::Module class, which describes a module in the
45 class Module {
55 Module *Parent;
62 std::vector<Module *> SubModules;
143 SmallVector<Module *, 2> Imports;
149 typedef llvm::PointerIntPair<Module *, 1, bool> ExportDecl;
194 explicit Module(StringRef Name, SourceLocation DefinitionLoc,
203 Module(StringRef Name, SourceLocation DefinitionLoc, Module *Parent,
206 ~Module();
232 bool isSubModuleOf(Module *Other) const;
238 for (const Module *Mod = this; Mod; Mod = Mod->Parent)
257 Module *getTopLevelModule() {
258 return const_cast<Module *>(
259 const_cast<const Module *>(this)->getTopLevelModule());
264 const Module *getTopLevelModule() const;
330 Module *findSubmodule(StringRef Name) const;
332 typedef std::vector<Module *>::iterator submodule_iterator;
333 typedef std::vector<Module *>::const_iterator submodule_const_iterator;
341 void getExportedModules(SmallVectorImpl<Module *> &Exported) const;