#ifndef NODE_KIND #define NODE_KIND(NAME) #endif #ifndef NODE_ANNOTATION #define NODE_ANNOTATION(NAME) #endif #ifndef DECL_ATTR #define DECL_ATTR(NAME) #endif #ifndef KEY #define KEY(NAME) #endif #ifndef KNOWN_TYPE #define KNOWN_TYPE(NAME) #endif NODE_KIND(Root) NODE_KIND(TypeDecl) NODE_KIND(TypeNominal) NODE_KIND(TypeFunc) NODE_KIND(TypeNameAlias) NODE_KIND(Function) NODE_KIND(Constructor) NODE_KIND(Getter) NODE_KIND(Setter) NODE_KIND(Var) NODE_KIND(TypeAlias) NODE_ANNOTATION(Added) NODE_ANNOTATION(Removed) NODE_ANNOTATION(Updated) NODE_ANNOTATION(RemovingErrorParam) NODE_ANNOTATION(ImplicitOptionalToOptional) NODE_ANNOTATION(OptionalToImplicitOptional) NODE_ANNOTATION(WrapOptional) NODE_ANNOTATION(WrapImplicitOptional) NODE_ANNOTATION(UnwrapOptional) NODE_ANNOTATION(GenericParamUpCast) NODE_ANNOTATION(GenericParamDownCast) NODE_ANNOTATION(TypeAliasChangeFromInt) NODE_ANNOTATION(GetterToProperty) NODE_ANNOTATION(SetterToProperty) NODE_ANNOTATION(TypeRewritten) NODE_ANNOTATION(TypeRewrittenLeft) NODE_ANNOTATION(TypeRewrittenRight) NODE_ANNOTATION(ModernizeEnum) NODE_ANNOTATION(UnwrapUnmanaged) NODE_ANNOTATION(RemovedDecl) NODE_ANNOTATION(Rename) NODE_ANNOTATION(RenameOldName) NODE_ANNOTATION(RenameNewName) NODE_ANNOTATION(NowThrowing) NODE_ANNOTATION(NowMutating) NODE_ANNOTATION(StaticChange) NODE_ANNOTATION(OwnershipChange) DECL_ATTR(deprecated) KEY(kind) KEY(name) KEY(selfIndex) KEY(usr) KEY(location) KEY(children) KEY(printedName) KEY(moduleName) KEY(throwing) KEY(mutating) KEY(static) KEY(typeAttributes) KEY(declAttributes) KEY(declKind) KEY(ownership) KNOWN_TYPE(Optional) KNOWN_TYPE(ImplicitlyUnwrappedOptional) KNOWN_TYPE(Void) KNOWN_TYPE(Unmanaged) KNOWN_TYPE(Function) #undef KNOWN_TYPE #undef KEY #undef DECL_ATTR #undef NODE_ANNOTATION #undef NODE_KIND