LLDB
mainline
|
#include <CPlusPlusNameParser.h>
Classes | |
class | Bookmark |
struct | ParsedFunction |
struct | ParsedName |
struct | ParsedNameRanges |
struct | Range |
Public Member Functions | |
CPlusPlusNameParser (llvm::StringRef text) | |
std::optional< ParsedFunction > | ParseAsFunctionDefinition () |
std::optional< ParsedName > | ParseAsFullName () |
Private Member Functions | |
bool | HasMoreTokens () |
void | Advance () |
void | TakeBack () |
bool | ConsumeToken (clang::tok::TokenKind kind) |
template<typename... Ts> | |
bool | ConsumeToken (Ts... kinds) |
Bookmark | SetBookmark () |
size_t | GetCurrentPosition () |
clang::Token & | Peek () |
bool | ConsumeBrackets (clang::tok::TokenKind left, clang::tok::TokenKind right) |
std::optional< ParsedFunction > | ParseFunctionImpl (bool expect_return_type) |
std::optional< ParsedFunction > | ParseFuncPtr (bool expect_return_type) |
bool | ConsumeArguments () |
bool | ConsumeTemplateArgs () |
bool | ConsumeAnonymousNamespace () |
bool | ConsumeLambda () |
bool | ConsumeOperator () |
void | SkipTypeQualifiers () |
void | SkipFunctionQualifiers () |
bool | ConsumeBuiltinType () |
bool | ConsumeDecltype () |
void | SkipPtrsAndRefs () |
bool | ConsumePtrsAndRefs () |
bool | ConsumeTypename () |
bool | ConsumeAbiTag () |
Consumes ABI tags enclosed within '[abi:' ... More... | |
std::optional< ParsedNameRanges > | ParseFullNameImpl () |
llvm::StringRef | GetTextForRange (const Range &range) |
void | ExtractTokens () |
Private Attributes | |
llvm::StringRef | m_text |
llvm::SmallVector< clang::Token, 30 > | m_tokens |
size_t | m_next_token_index = 0 |
Definition at line 23 of file CPlusPlusNameParser.h.
|
inline |
Definition at line 25 of file CPlusPlusNameParser.h.
References ExtractTokens().
|
private |
Definition at line 67 of file CPlusPlusNameParser.cpp.
|
private |
Consumes ABI tags enclosed within '[abi:' ...
']'
Since there is no restriction on what the ABI tag string may contain, this API supports parsing a small set of special characters.
The following regex describes the set of supported characters: [A-Za-z,.\s\d]+
Definition at line 302 of file CPlusPlusNameParser.cpp.
References lldb_private::CPlusPlusNameParser::Bookmark::Remove().
|
private |
Definition at line 328 of file CPlusPlusNameParser.cpp.
References lldb_private::CPlusPlusNameParser::Bookmark::Remove().
|
private |
Definition at line 219 of file CPlusPlusNameParser.cpp.
|
private |
Definition at line 374 of file CPlusPlusNameParser.cpp.
References lldb_private::CPlusPlusNameParser::Bookmark::Remove().
|
private |
Definition at line 495 of file CPlusPlusNameParser.cpp.
|
private |
Definition at line 547 of file CPlusPlusNameParser.cpp.
References lldb_private::CPlusPlusNameParser::Bookmark::Remove().
|
private |
Definition at line 352 of file CPlusPlusNameParser.cpp.
References lldb_private::CPlusPlusNameParser::Bookmark::Remove().
|
private |
Definition at line 399 of file CPlusPlusNameParser.cpp.
References lldb_private::CPlusPlusNameParser::Bookmark::Remove().
|
private |
Definition at line 536 of file CPlusPlusNameParser.cpp.
|
private |
Definition at line 223 of file CPlusPlusNameParser.cpp.
References lldb_private::CPlusPlusNameParser::Bookmark::Remove().
|
private |
|
private |
Definition at line 82 of file CPlusPlusNameParser.cpp.
|
private |
Definition at line 559 of file CPlusPlusNameParser.cpp.
References lldb_private::CPlusPlusNameParser::Bookmark::Remove().
|
private |
Definition at line 766 of file CPlusPlusNameParser.cpp.
References GetKeywordsMap(), and GetLangOptions().
Referenced by CPlusPlusNameParser().
|
private |
Definition at line 97 of file CPlusPlusNameParser.cpp.
|
private |
Definition at line 727 of file CPlusPlusNameParser.cpp.
References lldb_private::CPlusPlusNameParser::Range::begin_index, lldb_private::CPlusPlusNameParser::Range::empty(), and lldb_private::CPlusPlusNameParser::Range::end_index.
|
private |
Definition at line 63 of file CPlusPlusNameParser.cpp.
std::optional< ParsedName > CPlusPlusNameParser::ParseAsFullName | ( | ) |
Definition at line 50 of file CPlusPlusNameParser.cpp.
References lldb_private::CPlusPlusNameParser::ParsedName::basename, and lldb_private::CPlusPlusNameParser::ParsedName::context.
Referenced by lldb_private::CPlusPlusLanguage::ExtractContextAndIdentifier().
std::optional< ParsedFunction > CPlusPlusNameParser::ParseAsFunctionDefinition | ( | ) |
Definition at line 23 of file CPlusPlusNameParser.cpp.
Referenced by lldb_private::CPlusPlusLanguage::MethodName::Parse().
|
private |
Definition at line 572 of file CPlusPlusNameParser.cpp.
References lldb_private::CPlusPlusNameParser::ParsedNameRanges::basename_range, lldb_private::CPlusPlusNameParser::ParsedNameRanges::context_range, lldb_private::CPlusPlusNameParser::Bookmark::GetSavedPosition(), lldb_private::CPlusPlusNameParser::Bookmark::Remove(), and lldb_private::State.
|
private |
Definition at line 142 of file CPlusPlusNameParser.cpp.
References lldb_private::CPlusPlusNameParser::Bookmark::Remove().
|
private |
Definition at line 105 of file CPlusPlusNameParser.cpp.
References lldb_private::CPlusPlusNameParser::ParsedFunction::arguments, lldb_private::CPlusPlusNameParser::ParsedName::basename, lldb_private::CPlusPlusNameParser::ParsedName::context, lldb_private::CPlusPlusNameParser::ParsedFunction::name, lldb_private::CPlusPlusNameParser::ParsedFunction::qualifiers, lldb_private::CPlusPlusNameParser::Bookmark::Remove(), and lldb_private::CPlusPlusNameParser::ParsedFunction::return_type.
|
private |
Definition at line 99 of file CPlusPlusNameParser.cpp.
|
private |
Definition at line 93 of file CPlusPlusNameParser.cpp.
|
private |
Definition at line 490 of file CPlusPlusNameParser.cpp.
|
private |
Definition at line 531 of file CPlusPlusNameParser.cpp.
|
private |
Definition at line 485 of file CPlusPlusNameParser.cpp.
|
private |
Definition at line 69 of file CPlusPlusNameParser.cpp.
|
private |
Definition at line 66 of file CPlusPlusNameParser.h.
|
private |
Definition at line 62 of file CPlusPlusNameParser.h.
|
private |
Definition at line 64 of file CPlusPlusNameParser.h.