• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1class AttrSubject;
2
3class Decl<bit abstract = 0> : AttrSubject {
4  bit Abstract = abstract;
5}
6
7class DDecl<Decl base, bit abstract = 0> : Decl<abstract> {
8  Decl Base = base;
9}
10
11class DeclContext { }
12
13def TranslationUnit : Decl, DeclContext;
14def ExternCContext : Decl, DeclContext;
15def Named : Decl<1>;
16  def Namespace : DDecl<Named>, DeclContext;
17  def UsingDirective : DDecl<Named>;
18  def NamespaceAlias : DDecl<Named>;
19  def Label : DDecl<Named>;
20  def Type : DDecl<Named, 1>;
21    def TypedefName : DDecl<Type, 1>;
22      def Typedef : DDecl<TypedefName>;
23      def TypeAlias : DDecl<TypedefName>;
24    def UnresolvedUsingTypename : DDecl<Type>;
25    def Tag : DDecl<Type, 1>, DeclContext;
26      def Enum : DDecl<Tag>;
27      def Record : DDecl<Tag>;
28        def CXXRecord : DDecl<Record>;
29          def ClassTemplateSpecialization : DDecl<CXXRecord>;
30            def ClassTemplatePartialSpecialization
31              : DDecl<ClassTemplateSpecialization>;
32    def TemplateTypeParm : DDecl<Type>;
33  def Value : DDecl<Named, 1>;
34    def EnumConstant : DDecl<Value>;
35    def UnresolvedUsingValue : DDecl<Value>;
36    def IndirectField : DDecl<Value>;
37    def Declarator : DDecl<Value, 1>;
38      def Field : DDecl<Declarator>;
39        def ObjCIvar : DDecl<Field>;
40        def ObjCAtDefsField : DDecl<Field>;
41      def MSProperty : DDecl<Declarator>;
42      def Function : DDecl<Declarator>, DeclContext;
43        def CXXMethod : DDecl<Function>;
44          def CXXConstructor : DDecl<CXXMethod>;
45          def CXXDestructor : DDecl<CXXMethod>;
46          def CXXConversion : DDecl<CXXMethod>;
47      def Var : DDecl<Declarator>;
48        def VarTemplateSpecialization : DDecl<Var>;
49          def VarTemplatePartialSpecialization
50            : DDecl<VarTemplateSpecialization>;
51        def ImplicitParam : DDecl<Var>;
52        def ParmVar : DDecl<Var>;
53      def NonTypeTemplateParm : DDecl<Declarator>;
54  def Template : DDecl<Named, 1>;
55    def RedeclarableTemplate : DDecl<Template, 1>;
56      def FunctionTemplate : DDecl<RedeclarableTemplate>;
57      def ClassTemplate : DDecl<RedeclarableTemplate>;
58      def VarTemplate : DDecl<RedeclarableTemplate>;
59      def TypeAliasTemplate : DDecl<RedeclarableTemplate>;
60    def TemplateTemplateParm : DDecl<Template>;
61  def Using : DDecl<Named>;
62  def UsingShadow : DDecl<Named>;
63  def ObjCMethod : DDecl<Named>, DeclContext;
64  def ObjCContainer : DDecl<Named, 1>, DeclContext;
65    def ObjCCategory : DDecl<ObjCContainer>;
66    def ObjCProtocol : DDecl<ObjCContainer>;
67    def ObjCInterface : DDecl<ObjCContainer>;
68    def ObjCImpl : DDecl<ObjCContainer, 1>;
69      def ObjCCategoryImpl : DDecl<ObjCImpl>;
70      def ObjCImplementation : DDecl<ObjCImpl>;
71  def ObjCProperty : DDecl<Named>;
72  def ObjCCompatibleAlias : DDecl<Named>;
73def LinkageSpec : Decl, DeclContext;
74def ObjCPropertyImpl : Decl;
75def FileScopeAsm : Decl;
76def AccessSpec : Decl;
77def Friend : Decl;
78def FriendTemplate : Decl;
79def StaticAssert : Decl;
80def Block : Decl, DeclContext;
81def Captured : Decl, DeclContext;
82def ClassScopeFunctionSpecialization : Decl;
83def Import : Decl;
84def OMPThreadPrivate : Decl;
85def Empty : Decl;
86
87