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, "all-members-list", "all-members-list" ) \
294 ML_TYPE(EnumFields, OnlyPublic, Invalid, Invalid, "enum-fields", "enum-fields" ) \
295 ML_TYPE(MemberGroup, OnlyPublic, Invalid, Invalid, "member-group", "member-group" ) \
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, "doc-typedef-members", "" ) \
315 ML_TYPE(EnumMembers, Detailed, Invalid, Invalid, "doc-enum-members", "" ) \
316 ML_TYPE(EnumValMembers, Detailed, Invalid, Invalid, "doc-enum-val-members", "" ) \
317 ML_TYPE(FunctionMembers, Detailed, Invalid, Invalid, "doc-func-members", "" ) \
318 ML_TYPE(RelatedMembers, Detailed, Invalid, Invalid, "doc-related-members", "" ) \
319 ML_TYPE(VariableMembers, Detailed, Invalid, Invalid, "doc-variable-members", "" ) \
320 ML_TYPE(PropertyMembers, Detailed, Invalid, Invalid, "doc-property-members", "" ) \
321 ML_TYPE(EventMembers, Detailed, Invalid, Invalid, "doc-event-members", "" ) \
322 ML_TYPE(Constructors, Detailed, Invalid, Invalid, "doc-constructors", "" ) \
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, "doc-define-members", "" ) \
326 ML_TYPE(DocProtoMembers, Documentation,Invalid, Invalid, "doc-proto-members", "" ) \
327 ML_TYPE(DocTypedefMembers, Documentation,Invalid, Invalid, "doc-typedef-members", "" ) \
328 ML_TYPE(DocEnumMembers, Documentation,Invalid, Invalid, "doc-enum-members", "" ) \
329 ML_TYPE(DocFuncMembers, Documentation,Invalid, Invalid, "doc-func-members", "" ) \
330 ML_TYPE(DocVarMembers, Documentation,Invalid, Invalid, "doc-var-members", "" ) \
331 ML_TYPE(DocEnumValMembers, Documentation,Invalid, Invalid, "doc-enum-val-members", "" ) \
332 ML_TYPE(DocPubSlotMembers, Documentation,Invalid, Invalid, "doc-pub-slot-members", "" ) \
333 ML_TYPE(DocProSlotMembers, Documentation,Invalid, Invalid, "doc-pro-slot-members", "" ) \
334 ML_TYPE(DocPriSlotMembers, Documentation,Invalid, Invalid, "doc-pri-slot-members", "" ) \
335 ML_TYPE(DocSignalMembers, Documentation,Invalid, Invalid, "doc-signal-members", "" ) \
336 ML_TYPE(DocEventMembers, Documentation,Invalid, Invalid, "doc-event-members", "" ) \
337 ML_TYPE(DocFriendMembers, Documentation,Invalid, Invalid, "doc-friend-members", "" ) \
338 ML_TYPE(DocPropMembers, Documentation,Invalid, Invalid, "doc-prop-members", "" ) \
339 ML_TYPE(DocSequenceMembers, Documentation,Invalid, Invalid, "doc-sequence-members", "" ) \
340 ML_TYPE(DocDictionaryMembers,Documentation,Invalid, Invalid, "doc-dictionary-members","" ) \
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 constexpr bool is##x() const noexcept { 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()+"]";
402 constexpr const char *
toLabel() const noexcept
407#define ML_TYPE(x,bits,to_pub,to_prot,label,xml_str) \
408 case x##_ : return label;
414 constexpr const char *
toXML() const noexcept
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();
551#define MEMBERTYPE_SPECIFICATIONS \
552 MEMBERTYPE(Define, define, false) \
553 MEMBERTYPE(Function, function, true) \
554 MEMBERTYPE(Variable, variable, false) \
555 MEMBERTYPE(Typedef, typedef, false) \
556 MEMBERTYPE(Enumeration, enum, false) \
557 MEMBERTYPE(EnumValue, enumvalue, false) \
558 MEMBERTYPE(Signal, signal, true) \
559 MEMBERTYPE(Slot, slot, true) \
560 MEMBERTYPE(Friend, friend, true) \
561 MEMBERTYPE(DCOP, dcop, true) \
562 MEMBERTYPE(Property, property, false) \
563 MEMBERTYPE(Event, event, false) \
564 MEMBERTYPE(Interface, interface, false) \
565 MEMBERTYPE(Service, service, false) \
566 MEMBERTYPE(Sequence, sequence, false) \
567 MEMBERTYPE(Dictionary, dictionary, false)
570#define MEMBERTYPE(x,y,z) x,
577 const char *result =
"Unknown";
580#define MEMBERTYPE(x,y,z) case MemberType::x: result = #x; break;
589 const char *result =
"unknown";
592#define MEMBERTYPE(x,y,z) case MemberType::x: result = #y; break;
604#define MEMBERTYPE(x,y,z) case MemberType::x: result = z; break;
673#define TYPE_SPECIFIERS \
674 TSPEC0(Template) TSPEC(Generic) TSPEC(Ref) TSPEC(Value) TSPEC(Interface) \
675 TSPEC(Struct) TSPEC(Union) TSPEC(Exception) TSPEC(Protocol) TSPEC(Category) \
676 TSPEC(SealedClass) TSPEC(AbstractClass) TSPEC(Enum) TSPEC(Service) TSPEC(Singleton) \
677 TSPEC(ForwardDecl) TSPEC(Local) TSPEC(EnumStruct) TSPEC(ConstExpr) TSPEC(PrivateGettable) \
678 TSPEC(ProtectedGettable) TSPEC(PrivateSettable) TSPEC(ProtectedSettable) TSPEC(Inline) TSPEC(Explicit) \
679 TSPEC(Mutable) TSPEC(Settable) TSPEC(Gettable) TSPEC(Readable) TSPEC(Writable) \
680 TSPEC(Final) TSPEC(Abstract) TSPEC(Addable) TSPEC(Removable) TSPEC(Raisable) \
681 TSPEC(Override) TSPEC(New) TSPEC(Sealed) TSPEC(Initonly) TSPEC(Optional) \
682 TSPEC(Required) TSPEC(NonAtomic) TSPEC(Copy) TSPEC(Retain) TSPEC(Assign) \
683 TSPEC(Strong) TSPEC(Weak) TSPEC(Unretained) TSPEC(Alias) TSPEC(ConstExp) \
684 TSPEC(Default) TSPEC(Delete) TSPEC(NoExcept) TSPEC(Attribute) TSPEC(Property) \
685 TSPEC(Readonly) TSPEC(Bound) TSPEC(Constrained) TSPEC(Transient) TSPEC(MaybeVoid) \
686 TSPEC(MaybeDefault) TSPEC(MaybeAmbiguous) TSPEC(Published) TSPEC(ConstEval) TSPEC(ConstInit) \
687 TSPEC(NoDiscard) TSPEC(ThreadLocal)
697#define TSPEC(x) ,m_is##x(0)
698#define TSPEC0(x) m_is##x(0)
704 constexpr void reset() noexcept
706#define TSPEC(x) m_is##x = 0;
707#define TSPEC0(x) TSPEC(x)
715#define TSPEC(x) m_is##x = m_is##x || other.is##x();
716#define TSPEC0(x) TSPEC(x)
725#define TSPEC(x) eq = eq && (t1.m_is##x == t2.m_is##x);
726#define TSPEC0(x) TSPEC(x)
740 std::string result=
"[";
744 if (!first) result+=","; \
745 result+=#x; first=false; \
747#define TSPEC0(x) TSPEC(x)
758 constexpr TypeSpecifier &set##x(bool b) noexcept { m_is##x = b; return *this; } \
759 constexpr bool is##x() const noexcept { return m_is##x; } \
762#define TSPEC0(x) TSPEC(x)
805 ETYPE(Class, Compound|Scope) \
806 ETYPE(Namespace, Scope) \
807 ETYPE(Concept, None) \
808 ETYPE(ConceptCodePart, None) \
809 ETYPE(ConceptDocPart, None) \
810 ETYPE(ClassDoc, CompoundDoc|Doc) \
811 ETYPE(StructDoc, CompoundDoc|Doc) \
812 ETYPE(UnionDoc, CompoundDoc|Doc) \
813 ETYPE(ExceptionDoc, CompoundDoc|Doc) \
814 ETYPE(InterfaceDoc, CompoundDoc|Doc) \
815 ETYPE(ProtocolDoc, CompoundDoc|Doc) \
816 ETYPE(CategoryDoc, CompoundDoc|Doc) \
817 ETYPE(ServiceDoc, CompoundDoc|Doc) \
818 ETYPE(SingletonDoc, CompoundDoc|Doc) \
819 ETYPE(Source, File) \
820 ETYPE(Header, File) \
821 ETYPE(ModuleDoc, Doc) \
822 ETYPE(ConceptDoc, Doc) \
823 ETYPE(NamespaceDoc, Doc) \
824 ETYPE(EnumDoc, Doc) \
825 ETYPE(PageDoc, Doc) \
826 ETYPE(MemberDoc, Doc) \
827 ETYPE(OverloadDoc, Doc) \
828 ETYPE(Example, Doc) \
829 ETYPE(VariableDoc, Doc) \
830 ETYPE(FileDoc, Doc) \
831 ETYPE(DefineDoc, Doc) \
832 ETYPE(GroupDoc, Doc) \
833 ETYPE(RequirementDoc, Doc) \
834 ETYPE(MainpageDoc, Doc) \
835 ETYPE(MemberGrp, Doc) \
836 ETYPE(PackageDoc, Doc) \
838 ETYPE(Variable, None) \
839 ETYPE(Function, None) \
840 ETYPE(Typedef, None) \
841 ETYPE(Include, None) \
843 ETYPE(Define, None) \
844 ETYPE(UsingDir, None) \
845 ETYPE(UsingDecl, None) \
846 ETYPE(Package, None) \
847 ETYPE(ObjcImpl, None) \
848 ETYPE(ExportedInterface, None) \
849 ETYPE(IncludedService, None) \
850 ETYPE(ExampleLineno, Doc) \
858#define ETYPE(x,bits) \
859 static constexpr EntryType make##x() noexcept { return EntryType(static_cast<int>(x)|static_cast<int>(bits)); } \
860 constexpr bool is##x() const noexcept { return (m_type&TypeMask)==x; }
872#define ETYPE(x,bits) \
873 case x : return "["+std::string(#x)+bits_to_string()+"]";
885#define ETYPE(x,bits) \
A class representing a macro definition.
constexpr bool isCompoundDoc() const noexcept
constexpr bool isFile() const noexcept
constexpr bool isDoc() const noexcept
ENTRY_TYPES constexpr bool isCompound() const noexcept
std::string to_string() const
friend bool operator!=(const EntryType &t1, const EntryType &t2)
constexpr EntryType(int t) noexcept
constexpr TypeName type() const noexcept
friend bool operator==(const EntryType &t1, const EntryType &t2)
std::string bits_to_string() const
constexpr bool isScope() const noexcept
constexpr int docbookLevel() const noexcept
constexpr void enableHtml(int level) noexcept
constexpr int latexLevel() const noexcept
constexpr bool isXmlEnabled() const noexcept
constexpr void enableLatex(int level) noexcept
constexpr void enableDocbook(int level) noexcept
constexpr bool nothingEnabled() const noexcept
constexpr int mask() const noexcept
constexpr void enableXml(int level) noexcept
constexpr bool isDocbookEnabled() const noexcept
constexpr bool isLatexEnabled() const noexcept
constexpr int htmlLevel() const noexcept
constexpr int xmlLevel() const noexcept
constexpr bool isHtmlEnabled() const noexcept
constexpr bool isDocumentation() const noexcept
constexpr bool isOnlyPublic() const noexcept
constexpr const char * toLabel() const noexcept
constexpr int to_int() const noexcept
constexpr bool isPrivate() const noexcept
constexpr MemberListType toPublic() const noexcept
constexpr bool isInvalid() const noexcept
constexpr bool isPackage() const noexcept
constexpr const char * toXML() const noexcept
static constexpr MemberListType Invalid() noexcept
friend bool operator==(const MemberListType &t1, const MemberListType &t2)
constexpr TypeName type() const noexcept
friend bool operator!=(const MemberListType &t1, const MemberListType &t2)
constexpr bool isDeclaration() const noexcept
std::string to_string() const
constexpr MemberListType toProtected() const noexcept
constexpr bool isProtected() const noexcept
constexpr bool isDetailed() const noexcept
std::string bits_to_string() const
constexpr MemberListType(int t) noexcept
ML_TYPES constexpr bool isPublic() const noexcept
This is an alternative implementation of QCString.
std::string to_string() const
constexpr TypeSpecifier() noexcept
friend bool operator!=(const TypeSpecifier &t1, const TypeSpecifier &t2)
bool operator==(const DirIterator &it1, const DirIterator &it2)
QCString groupname
name of the group
static constexpr const char * getGroupPriName(GroupPri_t priority) noexcept
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)
GroupPri_t pri
priority of this definition
static constexpr const char * to_string_lower_class(Protection prot) noexcept
#define PROTECTION_SPECIFICATIONS
Protection level of members.
constexpr const char * codeSymbolType2Str(CodeSymbolType type) noexcept
#define SRCLANGEXT_SPECIFICATIONS
Language as given by extension.
#define MEMBERTYPE_SPECIFICATIONS
#define RELATIONSHIP_SPECIFICATIONS
Kind of member relationship.
static constexpr bool to_isFunction(MemberType mt) noexcept
#define METHODTYPE_SPECIFICATIONS
Kind of method.
static constexpr const char * to_string_lower(Protection prot) noexcept
#define SPECIFIER_SPECIFICATIONS
Virtualness of a member.
static constexpr const char * to_string(Protection prot) noexcept
#define RELATESTYPE_SPECIFICATIONS
Type of member relation.