9#ifndef LLDB_SOURCE_PLUGINS_LANGUAGE_CPLUSPLUS_CPLUSPLUSNAMEPARSER_H
10#define LLDB_SOURCE_PLUGINS_LANGUAGE_CPLUSPLUS_CPLUSPLUSNAMEPARSER_H
12#include "clang/Lex/Lexer.h"
13#include "llvm/ADT/SmallVector.h"
14#include "llvm/ADT/StringRef.h"
122 template <
typename... Ts>
bool ConsumeToken(Ts... kinds);
125 clang::Token &
Peek();
126 bool ConsumeBrackets(clang::tok::TokenKind left, clang::tok::TokenKind right);
131 std::optional<ParsedFunction>
ParseFuncPtr(
bool expect_return_type);
Bookmark(size_t &position)
Bookmark & operator=(const Bookmark &)=delete
Bookmark(const Bookmark &)=delete
size_t GetSavedPosition()
Bookmark & operator=(Bookmark &&)=delete
size_t m_next_token_index
void SkipFunctionQualifiers()
std::optional< ParsedNameRanges > ParseFullNameImpl()
bool ConsumeToken(clang::tok::TokenKind kind)
bool ConsumeBuiltinType()
bool ConsumeAnonymousNamespace()
std::optional< ParsedFunction > ParseFunctionImpl(bool expect_return_type)
std::optional< ParsedFunction > ParseAsFunctionDefinition()
size_t GetCurrentPosition()
std::optional< ParsedName > ParseAsFullName()
bool ConsumeAbiTag()
Consumes ABI tags enclosed within '[abi:' ... ']'.
bool ConsumePtrsAndRefs()
bool ConsumeBrackets(clang::tok::TokenKind left, clang::tok::TokenKind right)
llvm::StringRef GetTextForRange(const Range &range)
bool ConsumeTemplateArgs()
CPlusPlusNameParser(llvm::StringRef text)
std::optional< ParsedFunction > ParseFuncPtr(bool expect_return_type)
void SkipTypeQualifiers()
llvm::SmallVector< clang::Token, 30 > m_tokens
A class that represents a running process on the host machine.
llvm::StringRef qualifiers
llvm::StringRef arguments
llvm::StringRef return_type
Range(size_t begin, size_t end)