• 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 Named : Decl<1>;
15  def Namespace : DDecl<Named>, DeclContext;
16  def UsingDirective : DDecl<Named>;
17  def NamespaceAlias : DDecl<Named>;
18  def Label : DDecl<Named>;
19  def Type : DDecl<Named, 1>;
20    def TypedefName : DDecl<Type, 1>;
21      def Typedef : DDecl<TypedefName>;
22      def TypeAlias : DDecl<TypedefName>;
23    def UnresolvedUsingTypename : DDecl<Type>;
24    def Tag : DDecl<Type, 1>, DeclContext;
25      def Enum : DDecl<Tag>;
26      def Record : DDecl<Tag>;
27        def CXXRecord : DDecl<Record>;
28          def ClassTemplateSpecialization : DDecl<CXXRecord>;
29            def ClassTemplatePartialSpecialization
30              : DDecl<ClassTemplateSpecialization>;
31    def TemplateTypeParm : DDecl<Type>;
32  def Value : DDecl<Named, 1>;
33    def EnumConstant : DDecl<Value>;
34    def UnresolvedUsingValue : DDecl<Value>;
35    def IndirectField : DDecl<Value>;
36    def Declarator : DDecl<Value, 1>;
37      def Function : DDecl<Declarator>, DeclContext;
38        def CXXMethod : DDecl<Function>;
39          def CXXConstructor : DDecl<CXXMethod>;
40          def CXXDestructor : DDecl<CXXMethod>;
41          def CXXConversion : DDecl<CXXMethod>;
42      def Field : DDecl<Declarator>;
43        def ObjCIvar : DDecl<Field>;
44        def ObjCAtDefsField : DDecl<Field>;
45      def Var : DDecl<Declarator>;
46        def ImplicitParam : DDecl<Var>;
47        def ParmVar : DDecl<Var>;
48      def NonTypeTemplateParm : DDecl<Declarator>;
49  def Template : DDecl<Named, 1>;
50    def RedeclarableTemplate : DDecl<Template, 1>;
51      def FunctionTemplate : DDecl<RedeclarableTemplate>;
52      def ClassTemplate : DDecl<RedeclarableTemplate>;
53      def TypeAliasTemplate : DDecl<RedeclarableTemplate>;
54    def TemplateTemplateParm : DDecl<Template>;
55  def Using : DDecl<Named>;
56  def UsingShadow : DDecl<Named>;
57  def ObjCMethod : DDecl<Named>, DeclContext;
58  def ObjCContainer : DDecl<Named, 1>, DeclContext;
59    def ObjCCategory : DDecl<ObjCContainer>;
60    def ObjCProtocol : DDecl<ObjCContainer>;
61    def ObjCInterface : DDecl<ObjCContainer>;
62    def ObjCImpl : DDecl<ObjCContainer, 1>;
63      def ObjCCategoryImpl : DDecl<ObjCImpl>;
64      def ObjCImplementation : DDecl<ObjCImpl>;
65  def ObjCProperty : DDecl<Named>;
66  def ObjCCompatibleAlias : DDecl<Named>;
67def LinkageSpec : Decl, DeclContext;
68def ObjCPropertyImpl : Decl;
69def FileScopeAsm : Decl;
70def AccessSpec : Decl;
71def Friend : Decl;
72def FriendTemplate : Decl;
73def StaticAssert : Decl;
74def Block : Decl, DeclContext;
75def ClassScopeFunctionSpecialization : Decl;
76def Import : Decl;
77
78