LLDB mainline
|
An OutputBuffer which keeps a record of where certain parts of a demangled name begin/end (e.g., basename, scope, argument list, etc.). More...
#include <DemangledNameInfo.h>
Public Member Functions | |
void | printLeft (const llvm::itanium_demangle::Node &N) override |
void | printRight (const llvm::itanium_demangle::Node &N) override |
Public Attributes | |
DemangledNameInfo | NameInfo |
Holds information about the demangled name that is being printed into this buffer. |
Private Member Functions | |
void | printLeftImpl (const llvm::itanium_demangle::FunctionType &N) |
void | printRightImpl (const llvm::itanium_demangle::FunctionType &N) |
void | printLeftImpl (const llvm::itanium_demangle::FunctionEncoding &N) |
void | printRightImpl (const llvm::itanium_demangle::FunctionEncoding &N) |
void | printLeftImpl (const llvm::itanium_demangle::NestedName &N) |
void | printLeftImpl (const llvm::itanium_demangle::NameWithTemplateArgs &N) |
llvm::itanium_demangle::ScopedOverride< unsigned > | enterFunctionTypePrinting () |
Called whenever we start printing a function type in the Itanium mangling scheme. | |
bool | isPrintingTopLevelFunctionType () const |
Returns true if we're not printing any nested function types, just a FunctionEncoding in the Itanium mangling scheme. | |
void | updateBasenameEnd () |
If this object shouldTrack, then update the end of the basename range to the current OB position. | |
void | updateScopeStart () |
If this object shouldTrack, then update the beginning of the scope range to the current OB position. | |
void | updateScopeEnd () |
If this object shouldTrack, then update the end of the scope range to the current OB position. | |
bool | shouldTrack () const |
Returns true if the members of this object can be updated. | |
void | finalizeArgumentEnd () |
Helpers called to track beginning and end of the function arguments. | |
void | finalizeStart () |
void | finalizeEnd () |
void | finalizeQualifiersStart () |
void | finalizeQualifiersEnd () |
bool | canFinalize () const |
Helper used in the finalize APIs. |
Private Attributes | |
unsigned | FunctionPrintingDepth = 0 |
Incremented each time we start printing a function type node in the Itanium mangling scheme (e.g., FunctionEncoding or FunctionType). |
An OutputBuffer which keeps a record of where certain parts of a demangled name begin/end (e.g., basename, scope, argument list, etc.).
The tracking occurs during printing of the Itanium demangle tree.
Usage:
Definition at line 150 of file DemangledNameInfo.h.
|
private |
Helper used in the finalize APIs.
Definition at line 28 of file DemangledNameInfo.cpp.
References isPrintingTopLevelFunctionType(), and NameInfo.
Referenced by finalizeArgumentEnd(), finalizeEnd(), finalizeQualifiersEnd(), finalizeQualifiersStart(), and finalizeStart().
|
nodiscardprivate |
Called whenever we start printing a function type in the Itanium mangling scheme.
Examples include FunctionEncoding, FunctionType, etc.
Definition at line 121 of file DemangledNameInfo.cpp.
References FunctionPrintingDepth.
|
private |
Helpers called to track beginning and end of the function arguments.
Definition at line 62 of file DemangledNameInfo.cpp.
References canFinalize(), and NameInfo.
|
private |
Definition at line 107 of file DemangledNameInfo.cpp.
References canFinalize(), and NameInfo.
|
private |
Definition at line 76 of file DemangledNameInfo.cpp.
References canFinalize(), and NameInfo.
|
private |
Definition at line 69 of file DemangledNameInfo.cpp.
References canFinalize(), and NameInfo.
|
private |
Definition at line 83 of file DemangledNameInfo.cpp.
References canFinalize(), NameInfo, and shouldTrack().
|
private |
Returns true
if we're not printing any nested function types, just a FunctionEncoding in the Itanium mangling scheme.
Definition at line 125 of file DemangledNameInfo.cpp.
References FunctionPrintingDepth.
Referenced by canFinalize(), and shouldTrack().
|
override |
Definition at line 129 of file DemangledNameInfo.cpp.
References NameInfo, and printLeftImpl().
|
private |
|
private |
Referenced by printLeft().
|
private |
|
private |
|
override |
Definition at line 151 of file DemangledNameInfo.cpp.
References NameInfo, and printRightImpl().
|
private |
|
private |
Referenced by printRight().
|
private |
Returns true
if the members of this object can be updated.
E.g., when we're printing nested template arguments, we don't need to be tracking basename locations.
Definition at line 15 of file DemangledNameInfo.cpp.
References isPrintingTopLevelFunctionType(), and NameInfo.
Referenced by finalizeStart(), updateBasenameEnd(), updateScopeEnd(), and updateScopeStart().
|
private |
If this object shouldTrack, then update the end of the basename range to the current OB
position.
Definition at line 41 of file DemangledNameInfo.cpp.
References NameInfo, and shouldTrack().
|
private |
If this object shouldTrack, then update the end of the scope range to the current OB
position.
Definition at line 55 of file DemangledNameInfo.cpp.
References NameInfo, and shouldTrack().
|
private |
If this object shouldTrack, then update the beginning of the scope range to the current OB
position.
Definition at line 48 of file DemangledNameInfo.cpp.
References NameInfo, and shouldTrack().
|
private |
Incremented each time we start printing a function type node in the Itanium mangling scheme (e.g., FunctionEncoding or FunctionType).
Definition at line 215 of file DemangledNameInfo.h.
Referenced by enterFunctionTypePrinting(), and isPrintingTopLevelFunctionType().
DemangledNameInfo lldb_private::TrackingOutputBuffer::NameInfo |
Holds information about the demangled name that is being printed into this buffer.
Definition at line 155 of file DemangledNameInfo.h.
Referenced by canFinalize(), finalizeArgumentEnd(), finalizeEnd(), finalizeQualifiersEnd(), finalizeQualifiersStart(), finalizeStart(), GetItaniumDemangledStr(), printLeft(), printRight(), shouldTrack(), updateBasenameEnd(), updateScopeEnd(), and updateScopeStart().