//===-- TypeLocNodes.def - Metadata about TypeLoc wrappers ------*- C++ -*-===//
//
//                     The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
//  This file defines the TypeLoc info database.  Each node is
//  enumerated by providing its core name (e.g., "Pointer" for "PointerTypeLoc")
//  and base class (e.g., "DeclaratorLoc").  All nodes except QualifiedTypeLoc
//  are associated
//
//    TYPELOC(Class, Base) - A TypeLoc subclass.  If UNQUAL_TYPELOC is
//      provided, there will be exactly one of these, Qualified.
//
//    UNQUAL_TYPELOC(Class, Base, Type) - An UnqualTypeLoc subclass.
//
//    ABSTRACT_TYPELOC(Class) - Refers to TypeSpecLoc and DeclaratorLoc.
//
//===----------------------------------------------------------------------===//

#ifndef UNQUAL_TYPELOC
#  define UNQUAL_TYPELOC(Class, Base) TYPELOC(Class, Base)
#endif

#ifndef ABSTRACT_TYPELOC
#  define ABSTRACT_TYPELOC(Class, Base) UNQUAL_TYPELOC(Class, Base)
#endif

TYPELOC(Qualified, TypeLoc)
#define TYPE(Class, Base) UNQUAL_TYPELOC(Class, Base##Loc)
#define ABSTRACT_TYPE(Class, Base) ABSTRACT_TYPELOC(Class, Base##Loc)
#include "clang/AST/TypeNodes.def"

#undef DECLARATOR_TYPELOC
#undef TYPESPEC_TYPELOC
#undef ABSTRACT_TYPELOC
#undef UNQUAL_TYPELOC
#undef TYPELOC
