205 ALIB_ASSERT(kindIdx>=0 && kindIdx <
int(
sizeof(
count)/
sizeof(
int)),
"DXL/TAGFILE" )
206 return count[kindIdx];
241 return (
unsigned(
kind) &
unsigned(aKind)) != 0;
249 return &RootNodeTarget;
360 :
Target(pKind, htmlFile, lineNo)
495template<
typename TGT,
typename TCheck= alib::CHK>
496requires std::derived_from<TGT, Target>
497 && ( std::is_same_v<TCheck, alib::CHK> || std::is_same_v<TCheck, alib::NC> )
499 if constexpr (std::is_same_v<TCheck, alib::CHK>) {
500 if constexpr (std::is_same_v<TGT, TGTGroup >) {
return target->
IsA(
Target::Group ) ?
static_cast<const TGT*
>(target) :
nullptr;}
501 if constexpr (std::is_same_v<TGT, TGTPage >) {
return target->
IsA(
Target::Page ) ?
static_cast<const TGT*
>(target) :
nullptr;}
502 if constexpr (std::is_same_v<TGT, TGTDocAnchor >) {
return target->
IsA(
Target::DocAnchor ) ?
static_cast<const TGT*
>(target) :
nullptr;}
503 if constexpr (std::is_same_v<TGT, TGTRecord >) {
return target->
IsA(
Target::RECORD ) ?
static_cast<const TGT*
>(target) :
nullptr;}
504 if constexpr (std::is_same_v<TGT, TGTMember >) {
return target->
IsA(
Target::MEMBER ) ?
static_cast<const TGT*
>(target) :
nullptr;}
505 if constexpr (std::is_same_v<TGT, TGTGenericMember>) {
return target->
IsA(
Target::GenericMember) ?
static_cast<const TGT*
>(target) :
nullptr;}
506 if constexpr (std::is_same_v<TGT, TGTMacro >) {
return target->
IsA(
Target::Macro ) ?
static_cast<const TGT*
>(target) :
nullptr;}
507 if constexpr (std::is_same_v<TGT, TGTTypedef >) {
return target->
IsA(
Target::Typedef ) ?
static_cast<const TGT*
>(target) :
nullptr;}
508 if constexpr (std::is_same_v<TGT, TGTEnumeration >) {
return target->
IsA(
Target::Enumeration ) ?
static_cast<const TGT*
>(target) :
nullptr;}
509 if constexpr (std::is_same_v<TGT, TGTVariable >) {
return target->
IsA(
Target::Variable ) ?
static_cast<const TGT*
>(target) :
nullptr;}
510 if constexpr (std::is_same_v<TGT, TGTFunction >) {
return target->
IsA(
Target::Function ) ?
static_cast<const TGT*
>(target) :
nullptr;}
511 ALIB_ERROR(
"DXL/TAGFILE",
"Cast not implemented yet." )
526 ,
"DXL/TAGFILE",
"Cast not implemented yet." )
528 return static_cast<const TGT*
>(target);
536template<
typename TGT>
537requires std::derived_from<TGT, Target>
#define ALIB_ASSERT(cond, domain)
#define ALIB_ERROR(domain,...)
#define ALIB_ASSERT_ERROR(cond, domain,...)
#define ALIB_CAMP_ENUM(T, TRecord, Camp, ResName)
int count[size_t(MAX_KIND)]
The counted number of elements for each kind.
int GetByIdx(int kindIdx)
static Target * GetRootNodeTarget()
Target(Kinds pKind, const alib::String &htmlFile, int lineNo)
bool IsA(Kinds aKind) const
Kinds kind
The kind of this target.
static size_t MAX_TEMPLATE_ARGS
alib::String HTMLFile
The HTML file that this target links to (or into).
Kinds
Enumerates the kinds of compounds found in a the Doxygen tagfile.
@ MAX_KIND
The highest bit defining a kind.
@ COMPOUND
Mask to identify compound types.
@ Struct
Denotes a struct.
@ Function
Denotes a namespace- or member-function.
@ Variable
Denotes a namespace- or member-variable.
@ UNSPECIFIED
Used with the field #"XLink::KindSpec;2".
@ Typedef
Denotes a type definition.
@ File
Denotes a source file.
@ EnumElement
Denotes an enumeration element.
@ UNRESOLVED
The kind attached to the root node of the tree.
@ Concept
Denotes a C++20 concept.
@ Macro
Denotes a preprocessor definition.
@ GenericMember
An unknown or uninteresting group member type.
@ Dir
Denotes a source folder.
@ ROOT
The kind attached to the root node of the tree.
@ Enumeration
Denotes an enumeration.
@ FILEPATH_COMPONENT
A node of a file path (not a doxygen kind).
@ Namespace
Denotes a namespace.
@ DocAnchor
Denotes a preprocessor definition.
@ RECORD
Mask to identify records types.
int LineNo
The line number in the Doxygen tag-file where this entity is defined.
#define ALIB_ENUMS_MAKE_BITWISE(TEnum)
constexpr int MSB(TIntegral value)
monomem::TMonoAllocator< lang::HeapAllocator > MonoAllocator
constexpr String NULL_STRING
containers::List< T, MonoAllocator, TRecycling > ListMA
strings::TString< character > String
app::AppCliCamp APPCLI_CAMP
strings::TSubstring< character > Substring
strings::TAString< character, lang::HeapAllocator > AString
const TGT * Cast(const Index::Node &node)
TGTConcept(const alib::String &htmlFile, int lineNo)
TGTDir(const alib::String &htmlFile, int lineNo)
alib::String Title
The title of the group.
TGTDocAnchor(const alib::String &htmlFile, int lineNo, alib::String &name, alib::String &title)
TGTEnumValue(const alib::String &htmlFile, int lineNo)
alib::String Type
The underlying type of the enum.
TGTEnumeration(const alib::String &htmlFile, int lineNo)
TGTFilePathComponent(int lineNo)
TGTFile(const alib::String &htmlFile, int lineNo)
FunctionArguments * Args
The list of arguments.
alib::String Type
The return type of the function or method.
TGTFunction(const alib::String &htmlFile, int lineNo)
alib::String Qualifiers
Additional qualifiers like const or nothrow.
Target::Kinds Kind
The kind of the member, which was not fully read.
TGTGenericMember(Kinds pKind, const alib::String &htmlFile, int lineNo)
TGTGroup(const alib::String &htmlFile, int lineNo, alib::String &title)
alib::String Title
The title of the group.
TGTMacro(const alib::String &htmlFile, int lineNo)
FunctionArguments * Args
The list of arguments.
TGTMember(Kinds pKind, const alib::String &htmlFile, int lineNo)
alib::String Anchor
The HTML anchor.
alib::String RefID
This ID is (sometimes) set if the member is read from a Doxygen group.
TGTNamespace(const alib::String &htmlFile, int lineNo)
TGTPage(const alib::String &htmlFile, int lineNo, alib::String &title)
alib::String Title
The title of the group.
TemplateArguments * SpecializationArgs
TGTRecord(alib::MonoAllocator &ma, Kinds pKind, const alib::String &htmlFile, int lineNo)
TemplateArguments * TemplateArgs
Template arguments provided with tags <templarg>.
alib::ListMA< alib::String > BaseTypes
The base type of the record.
TGTTypedef(const alib::String &htmlFile, int lineNo)
alib::String Type
The type of the definition.
alib::String Subscript
The subscript of the variable.
alib::String Type
The type of the variable.
TGTVariable(const alib::String &htmlFile, int lineNo)
FunctionArguments()=default
Constructor.
void Print(alib::AString &dest)
alib::String * Arguments
An array of length Count of strings.
static int MATCH(FunctionArguments *linkArgs, FunctionArguments *targetArgs)
int Count
The number of arguments.
static FunctionArguments * PARSE(alib::MonoAllocator &ma, alib::Substring &parser)
TemplateArguments()
Constructor.
int Count
The number of arguments.
static TemplateArguments * PARSE(alib::MonoAllocator &ma, alib::Substring &parser)
int Match(TemplateArguments &target)
void Print(alib::AString &dest)
alib::String * Arguments
An array of length Count of strings.