2018-01-17 01:48:22 +00:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "serializer.h"
|
|
|
|
|
|
|
|
#include <stdint.h>
|
|
|
|
|
|
|
|
// TODO Rename query.h:SymbolKind to another name
|
|
|
|
// clang/Index/IndexSymbol.h clang::index::SymbolKind
|
|
|
|
enum class ClangSymbolKind : uint8_t {
|
|
|
|
Unknown,
|
|
|
|
|
|
|
|
Module = 1,
|
|
|
|
Namespace,
|
|
|
|
NamespaceAlias,
|
|
|
|
Macro,
|
|
|
|
|
|
|
|
Enum = 5,
|
|
|
|
Struct,
|
|
|
|
Class,
|
|
|
|
Protocol,
|
|
|
|
Extension,
|
|
|
|
Union,
|
|
|
|
TypeAlias,
|
|
|
|
|
|
|
|
Function = 12,
|
|
|
|
Variable,
|
|
|
|
Field,
|
|
|
|
EnumConstant,
|
|
|
|
|
|
|
|
InstanceMethod = 16,
|
|
|
|
ClassMethod,
|
|
|
|
StaticMethod,
|
|
|
|
InstanceProperty,
|
|
|
|
ClassProperty,
|
|
|
|
StaticProperty,
|
|
|
|
|
|
|
|
Constructor = 22,
|
|
|
|
Destructor,
|
|
|
|
ConversionFunction,
|
|
|
|
|
|
|
|
Parameter = 25,
|
|
|
|
Using,
|
|
|
|
};
|
|
|
|
MAKE_REFLECT_TYPE_PROXY(ClangSymbolKind,
|
|
|
|
std::underlying_type<ClangSymbolKind>::type);
|
|
|
|
|
2018-01-26 17:28:29 +00:00
|
|
|
// clang/Basic/Specifiers.h clang::StorageClass
|
2018-01-28 04:25:14 +00:00
|
|
|
enum class StorageClass : uint8_t {
|
2018-01-26 17:28:29 +00:00
|
|
|
// In |CX_StorageClass| but not in |clang::StorageClass|
|
2018-01-28 04:25:14 +00:00
|
|
|
// e.g. non-type template parameters
|
|
|
|
Invalid,
|
2018-01-26 17:28:29 +00:00
|
|
|
|
|
|
|
// These are legal on both functions and variables.
|
2018-01-28 04:25:14 +00:00
|
|
|
// e.g. global functions/variables, local variables
|
|
|
|
None,
|
|
|
|
Extern,
|
|
|
|
Static,
|
|
|
|
// e.g. |__private_extern__ int a;|
|
|
|
|
PrivateExtern,
|
2018-01-26 17:28:29 +00:00
|
|
|
|
|
|
|
// These are only legal on variables.
|
2018-01-28 04:25:14 +00:00
|
|
|
// e.g. explicit |auto int a;|
|
|
|
|
Auto,
|
|
|
|
Register
|
2018-01-26 17:28:29 +00:00
|
|
|
};
|
2018-01-28 04:25:14 +00:00
|
|
|
MAKE_REFLECT_TYPE_PROXY(StorageClass,
|
|
|
|
std::underlying_type<StorageClass>::type);
|