26#define PROTECTION_SPECIFICATIONS \
27 PROTSPEC(Public,public,public) \
28 PROTSPEC(Protected,protected,protected) \
29 PROTSPEC(Private,private,private) \
30 PROTSPEC(Package,package,protected)
33#define PROTSPEC(x,y,z) x,
40 const char *result =
"ERROR";
43#define PROTSPEC(x,y,z) case Protection::x: result = #x; break;
52 const char *result =
"error";
55#define PROTSPEC(x,y,z) case Protection::x: result = #y; break;
64 const char *result =
"error";
67#define PROTSPEC(x,y,z) case Protection::x: result = #z; break;
75#define SPECIFIER_SPECIFICATIONS \
76 SPECSPEC(Normal,non-virtual) \
77 SPECSPEC(Virtual,virtual) \
78 SPECSPEC(Pure,pure-virtual)
81#define SPECSPEC(x,y) x,
88 const char *result =
"ERROR";
91#define SPECSPEC(x,y) case Specifier::x: result = #x; break;
100 const char *result =
"error";
103#define SPECSPEC(x,y) case Specifier::x: result = #y; break;
111#define METHODTYPE_SPECIFICATIONS \
127 const char *result =
"ERROR";
130#define MTSPEC(x) case MethodTypes::x: result = #x; break;
138#define RELATESTYPE_SPECIFICATIONS \
151 const char *result =
"ERROR";
154#define RTSPEC(x) case RelatesType::x: result = #x; break;
162#define RELATIONSHIP_SPECIFICATIONS \
175 const char *result =
"ERROR";
178#define RSSPEC(x) case Relationship::x: result = #x; break;
186#define SRCLANGEXT_SPECIFICATIONS \
187 SRCLANGEXT(Unknown , 0x00000, Unknown) \
188 SRCLANGEXT(IDL , 0x00008, IDL) \
189 SRCLANGEXT(Java , 0x00010, Java) \
190 SRCLANGEXT(CSharp , 0x00020, C#) \
191 SRCLANGEXT(D , 0x00040, D) \
192 SRCLANGEXT(PHP , 0x00080, PHP) \
193 SRCLANGEXT(ObjC , 0x00100, Objective-C) \
194 SRCLANGEXT(Cpp , 0x00200, C++) \
195 SRCLANGEXT(JS , 0x00400, Javascript) \
196 SRCLANGEXT(Python , 0x00800, Python) \
197 SRCLANGEXT(Fortran , 0x01000, Fortran) \
198 SRCLANGEXT(VHDL , 0x02000, VHDL) \
199 SRCLANGEXT(XML , 0x04000, XML) \
200 SRCLANGEXT(Markdown , 0x10000, Markdown) \
201 SRCLANGEXT(SQL , 0x20000, SQL) \
202 SRCLANGEXT(Slice , 0x40000, Slice) \
203 SRCLANGEXT(Lex , 0x80000, Lex)
208#define SRCLANGEXT(x, v, z) x = v,
215 const char *result =
"ERROR";
218#define SRCLANGEXT(x,v,z) case SrcLangExt::x: result = #z; break;
247 return "@addtogroup";
264 ML_TYPE(PubMethods, Public, Invalid, Invalid, "pub-methods", "public-func" ) \
265 ML_TYPE(ProMethods, Protected, PubMethods, Invalid, "pro-methods", "protected-func" ) \
266 ML_TYPE(PacMethods, Package, Invalid, Invalid, "pac-methods", "package-func" ) \
267 ML_TYPE(PriMethods, Private, PubMethods, ProMethods, "pri-methods", "private-func" ) \
268 ML_TYPE(PubStaticMethods, Public, Invalid, Invalid, "pub-static-methods", "public-static-func" ) \
269 ML_TYPE(ProStaticMethods, Protected, PubStaticMethods, Invalid, "pro-static-methods", "protected-static-func" ) \
270 ML_TYPE(PacStaticMethods, Package, Invalid, Invalid, "pac-static-methods", "package-static-func" ) \
271 ML_TYPE(PriStaticMethods, Private, PubStaticMethods, ProStaticMethods, "pri-static-methods", "private-static-func" ) \
272 ML_TYPE(PubSlots, Public, Invalid, Invalid, "pub-slots", "public-slot" ) \
273 ML_TYPE(ProSlots, Protected, PubSlots, Invalid, "pro-slots", "protected-slot" ) \
274 ML_TYPE(PriSlots, Private, PubSlots, ProSlots, "pri-slots", "private-slot" ) \
275 ML_TYPE(PubAttribs, Public, Invalid, Invalid, "pub-attribs", "public-attrib" ) \
276 ML_TYPE(ProAttribs, Protected, PubAttribs, Invalid, "pro-attribs", "protected-attrib" ) \
277 ML_TYPE(PacAttribs, Package, Invalid, Invalid, "pac-attribs", "package-attrib" ) \
278 ML_TYPE(PriAttribs, Private, PubAttribs, ProAttribs, "pri-attribs", "private-attrib" ) \
279 ML_TYPE(PubStaticAttribs, Public, Invalid, Invalid, "pub-static-attribs", "public-static-attrib" ) \
280 ML_TYPE(ProStaticAttribs, Protected, PubStaticAttribs, Invalid, "pro-static-attribs", "protected-static-attrib" ) \
281 ML_TYPE(PacStaticAttribs, Package, Invalid, Invalid, "pac-static-attribs", "package-static-attrib" ) \
282 ML_TYPE(PriStaticAttribs, Private, PubStaticAttribs, ProStaticAttribs, "pri-static-attribs", "private-static-attrib" ) \
283 ML_TYPE(PubTypes, Public, Invalid, Invalid, "pub-types", "public-type" ) \
284 ML_TYPE(ProTypes, Protected, PubTypes, Invalid, "pro-types", "protected-type" ) \
285 ML_TYPE(PacTypes, Package, Invalid, Invalid, "pac-types", "package-type" ) \
286 ML_TYPE(PriTypes, Private, PubTypes, ProTypes, "pri-types", "private-type" ) \
287 ML_TYPE(Related, OnlyPublic, Invalid, Invalid, "related", "related" ) \
288 ML_TYPE(Signals, OnlyPublic, Invalid, Invalid, "signals", "signal" ) \
289 ML_TYPE(Friends, OnlyPublic, Invalid, Invalid, "friends", "friend" ) \
290 ML_TYPE(DcopMethods, OnlyPublic, Invalid, Invalid, "dcop-methods", "dcop-func" ) \
291 ML_TYPE(Properties, OnlyPublic, Invalid, Invalid, "properties", "property" ) \
292 ML_TYPE(Events, OnlyPublic, Invalid, Invalid, "events", "event" ) \
293 ML_TYPE(AllMembersList, OnlyPublic, Invalid, Invalid, "", "" ) \
294 ML_TYPE(EnumFields, OnlyPublic, Invalid, Invalid, "enum-fields", "" ) \
295 ML_TYPE(MemberGroup, OnlyPublic, Invalid, Invalid, "", "" ) \
296 ML_TYPE(Interfaces, OnlyPublic, Invalid, Invalid, "interfaces", "interfaces" ) \
297 ML_TYPE(Services, OnlyPublic, Invalid, Invalid, "services", "services" ) \
298 ML_TYPE(DecDefineMembers, Declaration, Invalid, Invalid, "define-members", "define" ) \
299 ML_TYPE(DecProtoMembers, Declaration, Invalid, Invalid, "proto-members", "prototype" ) \
300 ML_TYPE(DecTypedefMembers, Declaration, Invalid, Invalid, "typedef-members", "typedef" ) \
301 ML_TYPE(DecEnumMembers, Declaration, Invalid, Invalid, "enum-members", "enum" ) \
302 ML_TYPE(DecFuncMembers, Declaration, Invalid, Invalid, "func-members", "func" ) \
303 ML_TYPE(DecVarMembers, Declaration, Invalid, Invalid, "var-members", "var" ) \
304 ML_TYPE(DecEnumValMembers, Declaration, Invalid, Invalid, "enumval-members", "" ) \
305 ML_TYPE(DecPubSlotMembers, Declaration, Invalid, Invalid, "pub-slot-members", "" ) \
306 ML_TYPE(DecProSlotMembers, Declaration, Invalid, Invalid, "pro-slot-members", "" ) \
307 ML_TYPE(DecPriSlotMembers, Declaration, Invalid, Invalid, "pri-slot-members", "" ) \
308 ML_TYPE(DecSignalMembers, Declaration, Invalid, Invalid, "signal-members", "" ) \
309 ML_TYPE(DecEventMembers, Declaration, Invalid, Invalid, "event-members", "" ) \
310 ML_TYPE(DecFriendMembers, Declaration, Invalid, Invalid, "friend-members", "" ) \
311 ML_TYPE(DecPropMembers, Declaration, Invalid, Invalid, "prop-members", "" ) \
312 ML_TYPE(DecSequenceMembers, Declaration, Invalid, Invalid, "sequence-members", "sequence" ) \
313 ML_TYPE(DecDictionaryMembers,Declaration, Invalid, Invalid, "dictionary-members", "dictionary" ) \
314 ML_TYPE(TypedefMembers, Detailed, Invalid, Invalid, "", "" ) \
315 ML_TYPE(EnumMembers, Detailed, Invalid, Invalid, "", "" ) \
316 ML_TYPE(EnumValMembers, Detailed, Invalid, Invalid, "", "" ) \
317 ML_TYPE(FunctionMembers, Detailed, Invalid, Invalid, "", "" ) \
318 ML_TYPE(RelatedMembers, Detailed, Invalid, Invalid, "", "" ) \
319 ML_TYPE(VariableMembers, Detailed, Invalid, Invalid, "", "" ) \
320 ML_TYPE(PropertyMembers, Detailed, Invalid, Invalid, "", "" ) \
321 ML_TYPE(EventMembers, Detailed, Invalid, Invalid, "", "" ) \
322 ML_TYPE(Constructors, Detailed, Invalid, Invalid, "", "" ) \
323 ML_TYPE(InterfaceMembers, Detailed, Invalid, Invalid, "interface-members", "" ) \
324 ML_TYPE(ServiceMembers, Detailed, Invalid, Invalid, "service-members", "" ) \
325 ML_TYPE(DocDefineMembers, Documentation,Invalid, Invalid, "", "" ) \
326 ML_TYPE(DocProtoMembers, Documentation,Invalid, Invalid, "", "" ) \
327 ML_TYPE(DocTypedefMembers, Documentation,Invalid, Invalid, "", "" ) \
328 ML_TYPE(DocEnumMembers, Documentation,Invalid, Invalid, "", "" ) \
329 ML_TYPE(DocFuncMembers, Documentation,Invalid, Invalid, "", "" ) \
330 ML_TYPE(DocVarMembers, Documentation,Invalid, Invalid, "", "" ) \
331 ML_TYPE(DocEnumValMembers, Documentation,Invalid, Invalid, "", "" ) \
332 ML_TYPE(DocPubSlotMembers, Documentation,Invalid, Invalid, "", "" ) \
333 ML_TYPE(DocProSlotMembers, Documentation,Invalid, Invalid, "", "" ) \
334 ML_TYPE(DocPriSlotMembers, Documentation,Invalid, Invalid, "", "" ) \
335 ML_TYPE(DocSignalMembers, Documentation,Invalid, Invalid, "", "" ) \
336 ML_TYPE(DocEventMembers, Documentation,Invalid, Invalid, "", "" ) \
337 ML_TYPE(DocFriendMembers, Documentation,Invalid, Invalid, "", "" ) \
338 ML_TYPE(DocPropMembers, Documentation,Invalid, Invalid, "", "" ) \
339 ML_TYPE(DocSequenceMembers, Documentation,Invalid, Invalid, "", "" ) \
340 ML_TYPE(DocDictionaryMembers,Documentation,Invalid, Invalid, "", "" ) \
364#define ML_TYPE(x,bits,to_pub,to_prot,label,xml_str) \
373#define ML_TYPE(x,bits,to_pub,to_prot,label,xml_str) \
374 static MemberListType x() { return MemberListType(static_cast<int>(x##_)|static_cast<int>(bits)); } \
375 bool is##x() const { return (m_type&TypeMask)==x##_; }
391#define ML_TYPE(x,bits,to_pub,to_prot,label,xml_str) \
392 case x##_ : return "["+std::string(#x)+bits_to_string()+"]";
407#define ML_TYPE(x,bits,to_pub,to_prot,label,xml_str) \
408 case x##_ : return label;
419#define ML_TYPE(x,bits,to_pub,to_prot,label,xml_str) \
420 case x##_ : return xml_str;
431#define ML_TYPE(x,bits,to_pub,to_prot,label,xml_str) \
432 case x##_ : return to_pub();
443#define ML_TYPE(x,bits,to_pub,to_prot,label,xml_str) \
444 case x##_ : return to_prot();
634#define TYPE_SPECIFIERS \
635 TSPEC(Template) TSPEC(Generic) TSPEC(Ref) TSPEC(Value) TSPEC(Interface) \
636 TSPEC(Struct) TSPEC(Union) TSPEC(Exception) TSPEC(Protocol) TSPEC(Category) \
637 TSPEC(SealedClass) TSPEC(AbstractClass) TSPEC(Enum) TSPEC(Service) TSPEC(Singleton) \
638 TSPEC(ForwardDecl) TSPEC(Local) TSPEC(EnumStruct) TSPEC(ConstExpr) TSPEC(PrivateGettable) \
639 TSPEC(ProtectedGettable) TSPEC(PrivateSettable) TSPEC(ProtectedSettable) TSPEC(Inline) TSPEC(Explicit) \
640 TSPEC(Mutable) TSPEC(Settable) TSPEC(Gettable) TSPEC(Readable) TSPEC(Writable) \
641 TSPEC(Final) TSPEC(Abstract) TSPEC(Addable) TSPEC(Removable) TSPEC(Raisable) \
642 TSPEC(Override) TSPEC(New) TSPEC(Sealed) TSPEC(Initonly) TSPEC(Optional) \
643 TSPEC(Required) TSPEC(NonAtomic) TSPEC(Copy) TSPEC(Retain) TSPEC(Assign) \
644 TSPEC(Strong) TSPEC(Weak) TSPEC(Unretained) TSPEC(Alias) TSPEC(ConstExp) \
645 TSPEC(Default) TSPEC(Delete) TSPEC(NoExcept) TSPEC(Attribute) TSPEC(Property) \
646 TSPEC(Readonly) TSPEC(Bound) TSPEC(Constrained) TSPEC(Transient) TSPEC(MaybeVoid) \
647 TSPEC(MaybeDefault) TSPEC(MaybeAmbiguous) TSPEC(Published) TSPEC(ConstEval) TSPEC(ConstInit) \
658 void reset() { std::memset(
this, 0,
sizeof(*
this)); }
662#define TSPEC(x) m_is##x = m_is##x || other.is##x();
670#define TSPEC(x) eq = eq && (t1.m_is##x == t2.m_is##x);
684 std::string result=
"[";
688 if (!first) result+=","; \
689 result+=#x; first=false; \
700 TypeSpecifier &set##x(bool b) { m_is##x = b; return *this; } \
701 bool is##x() const { return m_is##x; } \
745 ETYPE(Class, Compound|Scope) \
746 ETYPE(Namespace, Scope) \
747 ETYPE(Concept, None) \
748 ETYPE(ClassDoc, CompoundDoc|Doc) \
749 ETYPE(StructDoc, CompoundDoc|Doc) \
750 ETYPE(UnionDoc, CompoundDoc|Doc) \
751 ETYPE(ExceptionDoc, CompoundDoc|Doc) \
752 ETYPE(InterfaceDoc, CompoundDoc|Doc) \
753 ETYPE(ProtocolDoc, CompoundDoc|Doc) \
754 ETYPE(CategoryDoc, CompoundDoc|Doc) \
755 ETYPE(ServiceDoc, CompoundDoc|Doc) \
756 ETYPE(SingletonDoc, CompoundDoc|Doc) \
757 ETYPE(Source, File) \
758 ETYPE(Header, File) \
759 ETYPE(ModuleDoc, Doc) \
760 ETYPE(ConceptDoc, Doc) \
761 ETYPE(NamespaceDoc, Doc) \
762 ETYPE(EnumDoc, Doc) \
763 ETYPE(PageDoc, Doc) \
764 ETYPE(MemberDoc, Doc) \
765 ETYPE(OverloadDoc, Doc) \
766 ETYPE(Example, Doc) \
767 ETYPE(VariableDoc, Doc) \
768 ETYPE(FileDoc, Doc) \
769 ETYPE(DefineDoc, Doc) \
770 ETYPE(GroupDoc, Doc) \
771 ETYPE(MainpageDoc, Doc) \
772 ETYPE(MemberGrp, Doc) \
773 ETYPE(PackageDoc, Doc) \
775 ETYPE(Variable, None) \
776 ETYPE(Function, None) \
777 ETYPE(Typedef, None) \
778 ETYPE(Include, None) \
780 ETYPE(Define, None) \
781 ETYPE(UsingDir, None) \
782 ETYPE(UsingDecl, None) \
783 ETYPE(Package, None) \
784 ETYPE(ObjcImpl, None) \
785 ETYPE(ExportedInterface, None) \
786 ETYPE(IncludedService, None) \
787 ETYPE(ExampleLineno, None) \
795#define ETYPE(x,bits) \
796 static EntryType make##x() { return EntryType(static_cast<int>(x)|static_cast<int>(bits)); } \
797 bool is##x() const { return (m_type&TypeMask)==x; }
809#define ETYPE(x,bits) \
810 case x : return "["+std::string(#x)+bits_to_string()+"]";
822#define ETYPE(x,bits) \
A class representing a macro definition.
ENTRY_TYPES bool isCompound() const
std::string to_string() const
friend bool operator!=(const EntryType &t1, const EntryType &t2)
friend bool operator==(const EntryType &t1, const EntryType &t2)
std::string bits_to_string() const
bool isCompoundDoc() const
bool isHtmlEnabled() const
void enableXml(int level)
bool isXmlEnabled() const
void enableLatex(int level)
void enableDocbook(int level)
void enableHtml(int level)
bool nothingEnabled() const
bool isDocbookEnabled() const
bool isLatexEnabled() const
constexpr bool isProtected() const
constexpr bool isOnlyPublic() const
MemberListType toProtected() const
constexpr bool isDetailed() const
MemberListType toPublic() const
static MemberListType Invalid()
friend bool operator==(const MemberListType &t1, const MemberListType &t2)
constexpr const char * toXML() const
friend bool operator!=(const MemberListType &t1, const MemberListType &t2)
constexpr const char * toLabel() const
constexpr bool isPrivate() const
ML_TYPES constexpr bool isPublic() const
constexpr bool isPackage() const
constexpr bool isInvalid() const
std::string to_string() const
constexpr bool isDocumentation() const
constexpr bool isDeclaration() const
std::string bits_to_string() const
constexpr TypeName type() const
This is an alternative implementation of QCString.
std::string to_string() const
friend bool operator==(const TypeSpecifier &t1, const TypeSpecifier &t2)
friend bool operator!=(const TypeSpecifier &t1, const TypeSpecifier &t2)
void merge(const TypeSpecifier &other)
QCString groupname
name of the group
GroupPri_t
Grouping priority.
@ GROUPING_AUTO_ADD
membership in group was defined via @add[to]group
@ GROUPING_INGROUP
membership in group was defined by @ingroup
@ GROUPING_AUTO_WEAK
membership in group was defined via @weakgroup
@ GROUPING_AUTO_DEF
membership in group was defined via @defgroup
Grouping(const QCString &gn, GroupPri_t p)
static const char * getGroupPriName(GroupPri_t priority)
GroupPri_t pri
priority of this definition
#define PROTECTION_SPECIFICATIONS
Protection level of members.
constexpr const char * codeSymbolType2Str(CodeSymbolType type)
#define SRCLANGEXT_SPECIFICATIONS
Language as given by extension.
#define RELATIONSHIP_SPECIFICATIONS
Kind of member relationship.
static const char * to_string_lower_class(Protection prot)
static const char * to_string(Protection prot)
#define METHODTYPE_SPECIFICATIONS
Kind of method.
#define SPECIFIER_SPECIFICATIONS
Virtualness of a member.
static const char * to_string_lower(Protection prot)
#define RELATESTYPE_SPECIFICATIONS
Type of member relation.