1 //===-- AttrSubjectMatchRules.h - Attribute subject match rules -*- C++ -*-===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 #ifndef LLVM_CLANG_BASIC_ATTRSUBJECTMATCHRULES_H 10 #define LLVM_CLANG_BASIC_ATTRSUBJECTMATCHRULES_H 11 12 #include "llvm/ADT/DenseMap.h" 13 14 namespace clang { 15 16 class SourceRange; 17 18 namespace attr { 19 20 /// A list of all the recognized kinds of attributes. 21 enum SubjectMatchRule { 22 #define ATTR_MATCH_RULE(X, Spelling, IsAbstract) X, 23 #include "clang/Basic/AttrSubMatchRulesList.inc" 24 SubjectMatchRule_Last = -1 25 #define ATTR_MATCH_RULE(X, Spelling, IsAbstract) +1 26 #include "clang/Basic/AttrSubMatchRulesList.inc" 27 }; 28 29 const char *getSubjectMatchRuleSpelling(SubjectMatchRule Rule); 30 31 using ParsedSubjectMatchRuleSet = llvm::DenseMap<int, SourceRange>; 32 33 } // end namespace attr 34 } // end namespace clang 35 36 #endif 37