]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - contrib/llvm/tools/clang/include/clang/AST/TypeLocNodes.def
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / contrib / llvm / tools / clang / include / clang / AST / TypeLocNodes.def
1 //===-- TypeLocNodes.def - Metadata about TypeLoc wrappers ------*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 //
10 //  This file defines the TypeLoc info database.  Each node is
11 //  enumerated by providing its core name (e.g., "Pointer" for "PointerTypeLoc")
12 //  and base class (e.g., "DeclaratorLoc").  All nodes except QualifiedTypeLoc
13 //  are associated
14 //
15 //    TYPELOC(Class, Base) - A TypeLoc subclass.  If UNQUAL_TYPELOC is
16 //      provided, there will be exactly one of these, Qualified.
17 //
18 //    UNQUAL_TYPELOC(Class, Base, Type) - An UnqualTypeLoc subclass.
19 //
20 //    ABSTRACT_TYPELOC(Class) - Refers to TypeSpecLoc and DeclaratorLoc.
21 //
22 //===----------------------------------------------------------------------===//
23
24 #ifndef UNQUAL_TYPELOC
25 #  define UNQUAL_TYPELOC(Class, Base) TYPELOC(Class, Base)
26 #endif
27
28 #ifndef ABSTRACT_TYPELOC
29 #  define ABSTRACT_TYPELOC(Class, Base) UNQUAL_TYPELOC(Class, Base)
30 #endif
31
32 TYPELOC(Qualified, TypeLoc)
33 #define TYPE(Class, Base) UNQUAL_TYPELOC(Class, Base##Loc)
34 #define ABSTRACT_TYPE(Class, Base) ABSTRACT_TYPELOC(Class, Base##Loc)
35 #include "clang/AST/TypeNodes.def"
36
37 #undef DECLARATOR_TYPELOC
38 #undef TYPESPEC_TYPELOC
39 #undef ABSTRACT_TYPELOC
40 #undef UNQUAL_TYPELOC
41 #undef TYPELOC