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