#ifndef LLVM_DEMANGLE_MICROSOFTDEMANGLENODES_H
#define LLVM_DEMANGLE_MICROSOFTDEMANGLENODES_H
#include <array>
#include <cstdint>
#include <string>
#include <string_view>
namespace llvm {
namespace itanium_demangle {
class OutputBuffer;
}
}
OutputBuffer;
namespace llvm {
namespace ms_demangle {
enum Qualifiers : uint8_t { … };
enum class StorageClass : uint8_t { … };
enum class PointerAffinity { … };
enum class FunctionRefQualifier { … };
enum class CallingConv : uint8_t { … };
enum class ReferenceKind : uint8_t { … };
enum OutputFlags { … };
enum class PrimitiveKind { … };
enum class CharKind { … };
enum class IntrinsicFunctionKind : uint8_t { … };
enum class SpecialIntrinsicKind { … };
enum FuncClass : uint16_t { … };
enum class TagKind { … };
enum class NodeKind { … };
struct Node { … };
struct TypeNode;
struct PrimitiveTypeNode;
struct FunctionSignatureNode;
struct IdentifierNode;
struct NamedIdentifierNode;
struct VcallThunkIdentifierNode;
struct IntrinsicFunctionIdentifierNode;
struct LiteralOperatorIdentifierNode;
struct ConversionOperatorIdentifierNode;
struct StructorIdentifierNode;
struct ThunkSignatureNode;
struct PointerTypeNode;
struct ArrayTypeNode;
struct TagTypeNode;
struct NodeArrayNode;
struct QualifiedNameNode;
struct TemplateParameterReferenceNode;
struct EncodedStringLiteralNode;
struct IntegerLiteralNode;
struct RttiBaseClassDescriptorNode;
struct LocalStaticGuardVariableNode;
struct SymbolNode;
struct FunctionSymbolNode;
struct VariableSymbolNode;
struct SpecialTableSymbolNode;
struct TypeNode : public Node { … };
struct PrimitiveTypeNode : public TypeNode { … };
struct FunctionSignatureNode : public TypeNode { … };
struct IdentifierNode : public Node { … };
struct VcallThunkIdentifierNode : public IdentifierNode { … };
struct DynamicStructorIdentifierNode : public IdentifierNode { … };
struct NamedIdentifierNode : public IdentifierNode { … };
struct IntrinsicFunctionIdentifierNode : public IdentifierNode { … };
struct LiteralOperatorIdentifierNode : public IdentifierNode { … };
struct LocalStaticGuardIdentifierNode : public IdentifierNode { … };
struct ConversionOperatorIdentifierNode : public IdentifierNode { … };
struct StructorIdentifierNode : public IdentifierNode { … };
struct ThunkSignatureNode : public FunctionSignatureNode { … };
struct PointerTypeNode : public TypeNode { … };
struct TagTypeNode : public TypeNode { … };
struct ArrayTypeNode : public TypeNode { … };
struct IntrinsicNode : public TypeNode { … };
struct CustomTypeNode : public TypeNode { … };
struct NodeArrayNode : public Node { … };
struct QualifiedNameNode : public Node { … };
struct TemplateParameterReferenceNode : public Node { … };
struct IntegerLiteralNode : public Node { … };
struct RttiBaseClassDescriptorNode : public IdentifierNode { … };
struct SymbolNode : public Node { … };
struct SpecialTableSymbolNode : public SymbolNode { … };
struct LocalStaticGuardVariableNode : public SymbolNode { … };
struct EncodedStringLiteralNode : public SymbolNode { … };
struct VariableSymbolNode : public SymbolNode { … };
struct FunctionSymbolNode : public SymbolNode { … };
}
}
#endif