|
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 195 of file DemangledNameInfo.h.
|
private |
Helper used in the finalize APIs.
Definition at line 104 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 197 of file DemangledNameInfo.cpp.
References FunctionPrintingDepth.
|
private |
Helpers called to track beginning and end of the function arguments.
Definition at line 138 of file DemangledNameInfo.cpp.
References canFinalize(), and NameInfo.
|
private |
Definition at line 183 of file DemangledNameInfo.cpp.
References canFinalize(), and NameInfo.
|
private |
Definition at line 152 of file DemangledNameInfo.cpp.
References canFinalize(), and NameInfo.
|
private |
Definition at line 145 of file DemangledNameInfo.cpp.
References canFinalize(), and NameInfo.
|
private |
Definition at line 159 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 201 of file DemangledNameInfo.cpp.
References FunctionPrintingDepth.
Referenced by canFinalize(), and shouldTrack().
|
override |
Definition at line 205 of file DemangledNameInfo.cpp.
References NameInfo, and printLeftImpl().
|
private |
|
private |
Referenced by printLeft().
|
private |
|
private |
|
override |
Definition at line 227 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 91 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 117 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 131 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 124 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 260 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 200 of file DemangledNameInfo.h.
Referenced by canFinalize(), finalizeArgumentEnd(), finalizeEnd(), finalizeQualifiersEnd(), finalizeQualifiersStart(), finalizeStart(), GetItaniumDemangledStr(), printLeft(), printRight(), shouldTrack(), updateBasenameEnd(), updateScopeEnd(), and updateScopeStart().