clang-tools  12.0.0git
Public Member Functions | Static Public Member Functions | List of all members
clang::clangd::ParsedAST Class Reference

Stores and provides access to parsed AST. More...

#include <ParsedAST.h>

Public Member Functions

 ParsedAST (ParsedAST &&Other)
 
ParsedASToperator= (ParsedAST &&Other)
 
 ~ParsedAST ()
 
ASTContext & getASTContext ()
 Note that the returned ast will not contain decls from the preamble that were not deserialized during parsing. More...
 
const ASTContext & getASTContext () const
 
Preprocessor & getPreprocessor ()
 
std::shared_ptr< Preprocessor > getPreprocessorPtr ()
 
const Preprocessor & getPreprocessor () const
 
SourceManager & getSourceManager ()
 
const SourceManager & getSourceManager () const
 
const LangOptions & getLangOpts () const
 
ArrayRef< Decl * > getLocalTopLevelDecls ()
 This function returns top-level decls present in the main file of the AST. More...
 
const std::vector< Diag > & getDiagnostics () const
 
std::size_t getUsedBytes () const
 Returns the estimated size of the AST and the accessory structures, in bytes. More...
 
const IncludeStructuregetIncludeStructure () const
 
const CanonicalIncludesgetCanonicalIncludes () const
 
const MainFileMacrosgetMacros () const
 Gets all macro references (definition, expansions) present in the main file, including those in the preamble region. More...
 
const syntax::TokenBuffer & getTokens () const
 Tokens recorded while parsing the main file. More...
 
llvm::StringRef version () const
 Returns the version of the ParseInputs this AST was built from. More...
 
llvm::Optional< llvm::StringRef > preambleVersion () const
 Returns the version of the ParseInputs used to build Preamble part of this AST. More...
 

Static Public Member Functions

static llvm::Optional< ParsedASTbuild (llvm::StringRef Filename, const ParseInputs &Inputs, std::unique_ptr< clang::CompilerInvocation > CI, llvm::ArrayRef< Diag > CompilerInvocationDiags, std::shared_ptr< const PreambleData > Preamble)
 Attempts to run Clang and store the parsed AST. More...
 

Detailed Description

Stores and provides access to parsed AST.

Definition at line 48 of file ParsedAST.h.

Constructor & Destructor Documentation

◆ ParsedAST()

clang::clangd::ParsedAST::ParsedAST ( ParsedAST &&  Other)
default

Referenced by version().

◆ ~ParsedAST()

clang::clangd::ParsedAST::~ParsedAST ( )

Definition at line 460 of file ParsedAST.cpp.

References Action.

Member Function Documentation

◆ build()

llvm::Optional< ParsedAST > clang::clangd::ParsedAST::build ( llvm::StringRef  Filename,
const ParseInputs Inputs,
std::unique_ptr< clang::CompilerInvocation >  CI,
llvm::ArrayRef< Diag CompilerInvocationDiags,
std::shared_ptr< const PreambleData Preamble 
)
static

◆ getASTContext() [1/2]

ASTContext & clang::clangd::ParsedAST::getASTContext ( )

Note that the returned ast will not contain decls from the preamble that were not deserialized during parsing.

Clients should expect only decls from the main file to be in the AST.

Definition at line 471 of file ParsedAST.cpp.

Referenced by clang::clangd::dumpAST(), clang::clangd::findDecl(), getLangOpts(), clang::clangd::getSemanticHighlightings(), getSourceManager(), clang::clangd::getTypeHierarchy(), and clang::clangd::indexMainDecls().

◆ getASTContext() [2/2]

const ASTContext & clang::clangd::ParsedAST::getASTContext ( ) const

Definition at line 473 of file ParsedAST.cpp.

◆ getCanonicalIncludes()

const CanonicalIncludes & clang::clangd::ParsedAST::getCanonicalIncludes ( ) const

Definition at line 531 of file ParsedAST.cpp.

Referenced by getLangOpts(), and clang::clangd::indexMainDecls().

◆ getDiagnostics()

const std::vector< Diag > & clang::clangd::ParsedAST::getDiagnostics ( ) const

Definition at line 493 of file ParsedAST.cpp.

References Diags.

Referenced by getLangOpts().

◆ getIncludeStructure()

const IncludeStructure & clang::clangd::ParsedAST::getIncludeStructure ( ) const

Definition at line 527 of file ParsedAST.cpp.

Referenced by getLangOpts().

◆ getLangOpts()

const LangOptions& clang::clangd::ParsedAST::getLangOpts ( ) const
inline

◆ getLocalTopLevelDecls()

llvm::ArrayRef< Decl * > clang::clangd::ParsedAST::getLocalTopLevelDecls ( )

This function returns top-level decls present in the main file of the AST.

The result does not include the decls that come from the preamble. (These should be const, but RecursiveASTVisitor requires Decl*).

Definition at line 487 of file ParsedAST.cpp.

Referenced by clang::clangd::getIndexableLocalDecls(), getLangOpts(), and clang::clangd::indexMainDecls().

◆ getMacros()

const MainFileMacros & clang::clangd::ParsedAST::getMacros ( ) const

Gets all macro references (definition, expansions) present in the main file, including those in the preamble region.

Definition at line 491 of file ParsedAST.cpp.

Referenced by getLangOpts(), clang::clangd::getSemanticHighlightings(), and clang::clangd::indexMainDecls().

◆ getPreprocessor() [1/2]

Preprocessor & clang::clangd::ParsedAST::getPreprocessor ( )

Definition at line 477 of file ParsedAST.cpp.

Referenced by clang::clangd::getSymbolInfo().

◆ getPreprocessor() [2/2]

const Preprocessor & clang::clangd::ParsedAST::getPreprocessor ( ) const

Definition at line 483 of file ParsedAST.cpp.

◆ getPreprocessorPtr()

std::shared_ptr< Preprocessor > clang::clangd::ParsedAST::getPreprocessorPtr ( )

Definition at line 479 of file ParsedAST.cpp.

Referenced by clang::clangd::indexMainDecls().

◆ getSourceManager() [1/2]

SourceManager& clang::clangd::ParsedAST::getSourceManager ( )
inline

◆ getSourceManager() [2/2]

const SourceManager& clang::clangd::ParsedAST::getSourceManager ( ) const
inline

Definition at line 77 of file ParsedAST.h.

References getASTContext().

◆ getTokens()

const syntax::TokenBuffer& clang::clangd::ParsedAST::getTokens ( ) const
inline

Tokens recorded while parsing the main file.

(!) does not have tokens from the preamble.

Definition at line 103 of file ParsedAST.h.

Referenced by clang::clangd::getSymbolInfo(), clang::clangd::getTypeHierarchy(), and clang::clangd::locateSymbolAt().

◆ getUsedBytes()

std::size_t clang::clangd::ParsedAST::getUsedBytes ( ) const

Returns the estimated size of the AST and the accessory structures, in bytes.

Does not include the size of the preamble.

Definition at line 495 of file ParsedAST.cpp.

References clang::clangd::AST, and Diags.

Referenced by getLangOpts().

◆ operator=()

ParsedAST & clang::clangd::ParsedAST::operator= ( ParsedAST &&  Other)
default

◆ preambleVersion()

llvm::Optional< llvm::StringRef > clang::clangd::ParsedAST::preambleVersion ( ) const

Returns the version of the ParseInputs used to build Preamble part of this AST.

Might be None if no Preamble is used.

Definition at line 552 of file ParsedAST.cpp.

References clang::clangd::None.

Referenced by version().

◆ version()

llvm::StringRef clang::clangd::ParsedAST::version ( ) const
inline

Returns the version of the ParseInputs this AST was built from.

Definition at line 106 of file ParsedAST.h.

References clang::clangd::AST, clang::clangd::dumpAST(), OS, ParsedAST(), and preambleVersion().

Referenced by clang::clangd::indexMainDecls().


The documentation for this class was generated from the following files: