146 friend std::optional<size_t>
165 SymbolNode *demangleEncodedSymbol(std::string_view &MangledName,
167 SymbolNode *demangleDeclarator(std::string_view &MangledName);
168 SymbolNode *demangleMD5Name(std::string_view &MangledName);
169 SymbolNode *demangleTypeinfoName(std::string_view &MangledName);
175 Qualifiers demanglePointerExtQualifiers(std::string_view &MangledName);
177 bool isMemberPointer(std::string_view MangledName,
bool &
Error);
179 std::optional<PointerAuthQualifierNode::ArgArray>
180 demanglePointerAuthQualifier(std::string_view &MangledName);
183 createPointerAuthQualifier(std::string_view &MangledName);
186 TypeNode *demangleType(std::string_view &MangledName,
189 CustomTypeNode *demangleCustomType(std::string_view &MangledName);
190 TagTypeNode *demangleClassType(std::string_view &MangledName);
192 PointerTypeNode *demangleMemberPointerType(std::string_view &MangledName);
196 ArrayTypeNode *demangleArrayType(std::string_view &MangledName);
198 NodeArrayNode *demangleFunctionParameterList(std::string_view &MangledName,
200 NodeArrayNode *demangleTemplateParameterList(std::string_view &MangledName);
202 std::pair<uint64_t, bool> demangleNumber(std::string_view &MangledName);
203 uint64_t demangleUnsigned(std::string_view &MangledName);
204 int64_t demangleSigned(std::string_view &MangledName);
206 void memorizeString(std::string_view s);
210 std::string_view copyString(std::string_view Borrowed);
213 demangleFullyQualifiedTypeName(std::string_view &MangledName);
215 demangleFullyQualifiedSymbolName(std::string_view &MangledName);
217 IdentifierNode *demangleUnqualifiedTypeName(std::string_view &MangledName,
219 IdentifierNode *demangleUnqualifiedSymbolName(std::string_view &MangledName,
224 IdentifierNode *demangleNameScopePiece(std::string_view &MangledName);
228 demangleTemplateInstantiationName(std::string_view &MangledName,
232 IdentifierNode *demangleFunctionIdentifierCode(std::string_view &MangledName);
234 demangleFunctionIdentifierCode(std::string_view &MangledName,
237 demangleStructorIdentifier(std::string_view &MangledName,
bool IsDestructor);
239 demangleConversionOperatorIdentifier(std::string_view &MangledName);
241 demangleLiteralOperatorIdentifier(std::string_view &MangledName);
243 SymbolNode *demangleSpecialIntrinsic(std::string_view &MangledName);
245 demangleSpecialTableSymbolNode(std::string_view &MangledName,
248 demangleLocalStaticGuard(std::string_view &MangledName,
bool IsThread);
250 std::string_view &MangledName,
251 std::string_view VariableName);
254 std::string_view &MangledName);
261 demangleAnonymousNamespaceName(std::string_view &MangledName);
263 demangleLocallyScopedNamePiece(std::string_view &MangledName);
265 demangleStringLiteral(std::string_view &MangledName);
268 std::string_view demangleSimpleString(std::string_view &MangledName,
271 FuncClass demangleFunctionClass(std::string_view &MangledName);
272 CallingConv demangleCallingConvention(std::string_view &MangledName);
273 StorageClass demangleVariableStorageClass(std::string_view &MangledName);
274 bool demangleThrowSpecification(std::string_view &MangledName);
275 wchar_t demangleWcharLiteral(std::string_view &MangledName);
276 uint8_t demangleCharLiteral(std::string_view &MangledName);
278 std::pair<Qualifiers, bool> demangleQualifiers(std::string_view &MangledName);