DemangleNodes.h 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. //===--- DemangleNodes.def - Demangling Tree Metaprogramming ----*- C++ -*-===//
  2. //
  3. // This source file is part of the Swift.org open source project
  4. //
  5. // Copyright (c) 2014 - 2016 Apple Inc. and the Swift project authors
  6. // Licensed under Apache License v2.0 with Runtime Library Exception
  7. //
  8. // See http://swift.org/LICENSE.txt for license information
  9. // See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
  10. //
  11. //===----------------------------------------------------------------------===//
  12. //
  13. // This file defines macros useful for macro-metaprogramming with nodes in
  14. // the demangling tree.
  15. //
  16. //===----------------------------------------------------------------------===//
  17. /// NODE(ID)
  18. /// The node's enumerator value is Node::Kind::ID.
  19. /// CONTEXT_NODE(ID)
  20. /// Nodes that can serve as contexts for other entities.
  21. #ifndef CONTEXT_NODE
  22. #define CONTEXT_NODE(ID) NODE(ID)
  23. #endif
  24. CONTEXT_NODE(Allocator)
  25. NODE(Archetype)
  26. NODE(ArchetypeRef)
  27. NODE(ArgumentTuple)
  28. NODE(AssociatedType)
  29. NODE(AssociatedTypeRef)
  30. NODE(AssociatedTypeMetadataAccessor)
  31. NODE(AssociatedTypeWitnessTableAccessor)
  32. NODE(AutoClosureType)
  33. NODE(BoundGenericClass)
  34. NODE(BoundGenericEnum)
  35. NODE(BoundGenericStructure)
  36. NODE(BuiltinTypeName)
  37. NODE(CFunctionPointer)
  38. CONTEXT_NODE(Class)
  39. CONTEXT_NODE(Constructor)
  40. CONTEXT_NODE(Deallocator)
  41. NODE(DeclContext)
  42. CONTEXT_NODE(DefaultArgumentInitializer)
  43. NODE(DependentAssociatedTypeRef)
  44. NODE(DependentGenericConformanceRequirement)
  45. NODE(DependentGenericParamCount)
  46. NODE(DependentGenericParamType)
  47. NODE(DependentGenericSameTypeRequirement)
  48. NODE(DependentGenericSignature)
  49. NODE(DependentGenericType)
  50. NODE(DependentMemberType)
  51. NODE(DependentPseudogenericSignature)
  52. CONTEXT_NODE(Destructor)
  53. CONTEXT_NODE(DidSet)
  54. NODE(Directness)
  55. NODE(DynamicAttribute)
  56. NODE(DirectMethodReferenceAttribute)
  57. NODE(DynamicSelf)
  58. CONTEXT_NODE(Enum)
  59. NODE(ErrorType)
  60. NODE(ExistentialMetatype)
  61. CONTEXT_NODE(ExplicitClosure)
  62. CONTEXT_NODE(Extension)
  63. NODE(FieldOffset)
  64. NODE(FullTypeMetadata)
  65. CONTEXT_NODE(Function)
  66. NODE(FunctionSignatureSpecialization)
  67. NODE(FunctionSignatureSpecializationParam)
  68. NODE(FunctionSignatureSpecializationParamKind)
  69. NODE(FunctionSignatureSpecializationParamPayload)
  70. NODE(FunctionType)
  71. NODE(GenericProtocolWitnessTable)
  72. NODE(GenericProtocolWitnessTableInstantiationFunction)
  73. NODE(GenericSpecialization)
  74. NODE(GenericSpecializationNotReAbstracted)
  75. NODE(GenericSpecializationParam)
  76. NODE(GenericTypeMetadataPattern)
  77. CONTEXT_NODE(Getter)
  78. NODE(Global)
  79. CONTEXT_NODE(GlobalGetter)
  80. NODE(Identifier)
  81. NODE(Index)
  82. CONTEXT_NODE(IVarInitializer)
  83. CONTEXT_NODE(IVarDestroyer)
  84. NODE(ImplConvention)
  85. NODE(ImplFunctionAttribute)
  86. NODE(ImplFunctionType)
  87. CONTEXT_NODE(ImplicitClosure)
  88. NODE(ImplParameter)
  89. NODE(ImplResult)
  90. NODE(ImplErrorResult)
  91. NODE(InOut)
  92. NODE(InfixOperator)
  93. CONTEXT_NODE(Initializer)
  94. NODE(LazyProtocolWitnessTableAccessor)
  95. NODE(LazyProtocolWitnessTableCacheVariable)
  96. NODE(LocalDeclName)
  97. CONTEXT_NODE(MaterializeForSet)
  98. NODE(Metatype)
  99. NODE(MetatypeRepresentation)
  100. NODE(Metaclass)
  101. CONTEXT_NODE(Module)
  102. CONTEXT_NODE(NativeOwningAddressor)
  103. CONTEXT_NODE(NativeOwningMutableAddressor)
  104. CONTEXT_NODE(NativePinningAddressor)
  105. CONTEXT_NODE(NativePinningMutableAddressor)
  106. NODE(NominalTypeDescriptor)
  107. NODE(NonObjCAttribute)
  108. NODE(NonVariadicTuple)
  109. NODE(Number)
  110. NODE(ObjCAttribute)
  111. NODE(ObjCBlock)
  112. CONTEXT_NODE(OwningAddressor)
  113. CONTEXT_NODE(OwningMutableAddressor)
  114. NODE(PartialApplyForwarder)
  115. NODE(PartialApplyObjCForwarder)
  116. NODE(PostfixOperator)
  117. NODE(PrefixOperator)
  118. NODE(PrivateDeclName)
  119. CONTEXT_NODE(Protocol)
  120. NODE(ProtocolConformance)
  121. NODE(ProtocolDescriptor)
  122. NODE(ProtocolList)
  123. NODE(ProtocolWitness)
  124. NODE(ProtocolWitnessTable)
  125. NODE(ProtocolWitnessTableAccessor)
  126. NODE(QualifiedArchetype)
  127. NODE(ReabstractionThunk)
  128. NODE(ReabstractionThunkHelper)
  129. NODE(ReturnType)
  130. NODE(SILBoxType)
  131. NODE(SelfTypeRef)
  132. CONTEXT_NODE(Setter)
  133. NODE(SpecializationPassID)
  134. NODE(SpecializationIsFragile)
  135. CONTEXT_NODE(Static)
  136. CONTEXT_NODE(Structure)
  137. CONTEXT_NODE(Subscript)
  138. NODE(Suffix)
  139. NODE(ThinFunctionType)
  140. NODE(TupleElement)
  141. NODE(TupleElementName)
  142. NODE(Type)
  143. NODE(TypeAlias)
  144. NODE(TypeList)
  145. NODE(TypeMangling)
  146. NODE(TypeMetadata)
  147. NODE(TypeMetadataAccessFunction)
  148. NODE(TypeMetadataLazyCache)
  149. NODE(UncurriedFunctionType)
  150. NODE(Unmanaged)
  151. NODE(Unowned)
  152. CONTEXT_NODE(UnsafeAddressor)
  153. CONTEXT_NODE(UnsafeMutableAddressor)
  154. NODE(ValueWitness)
  155. NODE(ValueWitnessTable)
  156. CONTEXT_NODE(Variable)
  157. NODE(VariadicTuple)
  158. NODE(VTableAttribute)
  159. NODE(Weak)
  160. CONTEXT_NODE(WillSet)
  161. NODE(WitnessTableOffset)
  162. NODE(ThrowsAnnotation)
  163. #undef CONTEXT_NODE
  164. #undef NODE