<?xml version="1.0" encoding="UTF-8"?>
<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  <start><choice><ref name="Mrdocs"/><ref name="Tagfile"/></choice></start>
  <define name="Mrdocs"><element name="mrdocs"><optional><attribute name="noNamespaceSchemaLocation" ns="http://www.w3.org/2001/XMLSchema-instance"/></optional><zeroOrMore><ref name="AnySymbol"/></zeroOrMore></element></define>
  <define name="Tagfile"><element name="tagfile"><oneOrMore><ref name="TagCompound"/></oneOrMore></element></define>
  <define name="TagCompound"><element name="compound"><attribute name="kind"><choice><value>namespace</value><value>class</value></choice></attribute><element name="name"><text/></element><element name="filename"><text/></element><zeroOrMore><choice><ref name="TagClass"/><ref name="TagMember"/></choice></zeroOrMore></element></define>
  <define name="TagClass"><element name="class"><attribute name="kind"><value>class</value></attribute><text/></element></define>
  <define name="TagMember"><element name="member"><attribute name="kind"><value>function</value></attribute><element name="type"><text/></element><element name="name"><text/></element><element name="anchorfile"><text/></element><element name="anchor"><text/></element><element name="arglist"><text/></element></element></define>
  <define name="AnySymbol"><choice><element name="concept"><ref name="ConceptSymbol"/></element><element name="enumConstant"><ref name="EnumConstantSymbol"/></element><element name="enum"><ref name="EnumSymbol"/></element><element name="function"><ref name="FunctionSymbol"/></element><element name="guide"><ref name="GuideSymbol"/></element><element name="macro"><ref name="MacroSymbol"/></element><element name="namespaceAlias"><ref name="NamespaceAliasSymbol"/></element><element name="namespace"><ref name="NamespaceSymbol"/></element><element name="overloads"><ref name="OverloadsSymbol"/></element><element name="record"><ref name="RecordSymbol"/></element><element name="typedef"><ref name="TypedefSymbol"/></element><element name="using"><ref name="UsingSymbol"/></element><element name="variable"><ref name="VariableSymbol"/></element></choice></define>
  <define name="AnyType"><choice><element name="array"><ref name="ArrayType"/></element><element name="auto"><ref name="AutoType"/></element><element name="decltype"><ref name="DecltypeType"/></element><element name="function"><ref name="FunctionType"/></element><element name="lValueReference"><ref name="LValueReferenceType"/></element><element name="memberPointer"><ref name="MemberPointerType"/></element><element name="named"><ref name="NamedType"/></element><element name="pointer"><ref name="PointerType"/></element><element name="rValueReference"><ref name="RValueReferenceType"/></element></choice></define>
  <define name="AnyName"><choice><element name="identifier"><ref name="IdentifierName"/></element><element name="specialization"><ref name="SpecializationName"/></element></choice></define>
  <define name="AnyAttribute"><choice><element name="assume"><ref name="AssumeAttribute"/></element><element name="carriesDependency"><ref name="CarriesDependencyAttribute"/></element><element name="deprecated"><ref name="DeprecatedAttribute"/></element><element name="fallthrough"><ref name="FallthroughAttribute"/></element><element name="indeterminate"><ref name="IndeterminateAttribute"/></element><element name="likely"><ref name="LikelyAttribute"/></element><element name="maybeUnused"><ref name="MaybeUnusedAttribute"/></element><element name="noUniqueAddress"><ref name="NoUniqueAddressAttribute"/></element><element name="nodiscard"><ref name="NodiscardAttribute"/></element><element name="noreturn"><ref name="NoreturnAttribute"/></element><element name="other"><ref name="OtherAttribute"/></element><element name="unlikely"><ref name="UnlikelyAttribute"/></element></choice></define>
  <define name="AnyTArg"><choice><element name="constant"><ref name="ConstantTArg"/></element><element name="template"><ref name="TemplateTArg"/></element><element name="type"><ref name="TypeTArg"/></element></choice></define>
  <define name="AnyTParam"><choice><element name="constant"><ref name="ConstantTParam"/></element><element name="template"><ref name="TemplateTParam"/></element><element name="type"><ref name="TypeTParam"/></element></choice></define>
  <define name="AnyBlock"><choice><element name="admonition"><ref name="AdmonitionBlock"/></element><element name="brief"><ref name="BriefBlock"/></element><element name="code"><ref name="CodeBlock"/></element><element name="definitionList"><ref name="DefinitionListBlock"/></element><element name="footnoteDefinition"><ref name="FootnoteDefinitionBlock"/></element><element name="heading"><ref name="HeadingBlock"/></element><element name="list"><ref name="ListBlock"/></element><element name="math"><ref name="MathBlock"/></element><element name="paragraph"><ref name="ParagraphBlock"/></element><element name="param"><ref name="ParamBlock"/></element><element name="postcondition"><ref name="PostconditionBlock"/></element><element name="precondition"><ref name="PreconditionBlock"/></element><element name="quote"><ref name="QuoteBlock"/></element><element name="returns"><ref name="ReturnsBlock"/></element><element name="see"><ref name="SeeBlock"/></element><element name="tParam"><ref name="TParamBlock"/></element><element name="table"><ref name="TableBlock"/></element><element name="thematicBreak"><ref name="ThematicBreakBlock"/></element><element name="throws"><ref name="ThrowsBlock"/></element></choice></define>
  <define name="AnyInline"><choice><element name="code"><ref name="CodeInline"/></element><element name="copyDetails"><ref name="CopyDetailsInline"/></element><element name="emph"><ref name="EmphInline"/></element><element name="footnoteReference"><ref name="FootnoteReferenceInline"/></element><element name="highlight"><ref name="HighlightInline"/></element><element name="image"><ref name="ImageInline"/></element><element name="lineBreak"><ref name="LineBreakInline"/></element><element name="link"><ref name="LinkInline"/></element><element name="math"><ref name="MathInline"/></element><element name="reference"><ref name="ReferenceInline"/></element><element name="softBreak"><ref name="SoftBreakInline"/></element><element name="strikethrough"><ref name="StrikethroughInline"/></element><element name="strong"><ref name="StrongInline"/></element><element name="subscript"><ref name="SubscriptInline"/></element><element name="superscript"><ref name="SuperscriptInline"/></element><element name="text"><ref name="TextInline"/></element></choice></define>
  <define name="ConceptSymbol"><zeroOrMore><choice><element name="access"><text/></element><element name="anchor"><text/></element><element name="attributes"><zeroOrMore><ref name="AnyAttribute"/></zeroOrMore></element><element name="extraction"><text/></element><element name="isCopyFromInherited"><empty/></element><element name="kind"><text/></element><element name="loc"><ref name="SourceInfo"/></element><element name="name"><text/></element><element name="parent"><text/></element><element name="doc"><ref name="DocComment"/></element><element name="id"><text/></element><element name="constraint"><text/></element><element name="template"><ref name="TemplateInfo"/></element></choice></zeroOrMore></define>
  <define name="EnumConstantSymbol"><zeroOrMore><choice><element name="access"><text/></element><element name="anchor"><text/></element><element name="attributes"><zeroOrMore><ref name="AnyAttribute"/></zeroOrMore></element><element name="extraction"><text/></element><element name="isCopyFromInherited"><empty/></element><element name="kind"><text/></element><element name="loc"><ref name="SourceInfo"/></element><element name="name"><text/></element><element name="parent"><text/></element><element name="doc"><ref name="DocComment"/></element><element name="id"><text/></element><element name="initializer"><ref name="ConstantExprInfo"/></element></choice></zeroOrMore></define>
  <define name="EnumSymbol"><zeroOrMore><choice><element name="access"><text/></element><element name="anchor"><text/></element><element name="attributes"><zeroOrMore><ref name="AnyAttribute"/></zeroOrMore></element><element name="extraction"><text/></element><element name="isCopyFromInherited"><empty/></element><element name="kind"><text/></element><element name="loc"><ref name="SourceInfo"/></element><element name="name"><text/></element><element name="parent"><text/></element><element name="doc"><ref name="DocComment"/></element><element name="id"><text/></element><element name="constants"><text/></element><element name="scoped"><empty/></element><element name="underlyingType"><ref name="AnyType"/></element></choice></zeroOrMore></define>
  <define name="FunctionSymbol"><zeroOrMore><choice><element name="access"><text/></element><element name="anchor"><text/></element><element name="attributes"><zeroOrMore><ref name="AnyAttribute"/></zeroOrMore></element><element name="extraction"><text/></element><element name="isCopyFromInherited"><empty/></element><element name="kind"><text/></element><element name="loc"><ref name="SourceInfo"/></element><element name="name"><text/></element><element name="parent"><text/></element><element name="doc"><ref name="DocComment"/></element><element name="id"><text/></element><element name="constexpr"><text/></element><element name="explicit"><ref name="ExplicitInfo"/></element><element name="funcClass"><text/></element><element name="functionObjectImpl"><text/></element><element name="hasOverrideAttr"><empty/></element><element name="hasTrailingReturn"><empty/></element><element name="isConst"><empty/></element><element name="isDefaulted"><empty/></element><element name="isDeleted"><empty/></element><element name="isDeletedAsWritten"><empty/></element><element name="isExplicitObjectMemberFunction"><empty/></element><element name="isExplicitlyDefaulted"><empty/></element><element name="isFinal"><empty/></element><element name="isListedOnPrimary"><empty/></element><element name="isPure"><empty/></element><element name="isRecordMethod"><empty/></element><element name="isVariadic"><empty/></element><element name="isVirtual"><empty/></element><element name="isVirtualAsWritten"><empty/></element><element name="isVolatile"><empty/></element><element name="noexcept"><ref name="NoexceptInfo"/></element><element name="overloadedOperator"><text/></element><element name="params"><zeroOrMore><element name="param"><ref name="Param"/></element></zeroOrMore></element><element name="refQualifier"><text/></element><element name="requires"><text/></element><element name="returnType"><ref name="AnyType"/></element><element name="specializations"><text/></element><element name="storageClass"><text/></element><element name="template"><ref name="TemplateInfo"/></element></choice></zeroOrMore></define>
  <define name="GuideSymbol"><zeroOrMore><choice><element name="access"><text/></element><element name="anchor"><text/></element><element name="attributes"><zeroOrMore><ref name="AnyAttribute"/></zeroOrMore></element><element name="extraction"><text/></element><element name="isCopyFromInherited"><empty/></element><element name="kind"><text/></element><element name="loc"><ref name="SourceInfo"/></element><element name="name"><text/></element><element name="parent"><text/></element><element name="doc"><ref name="DocComment"/></element><element name="id"><text/></element><element name="deduced"><ref name="AnyType"/></element><element name="explicit"><ref name="ExplicitInfo"/></element><element name="params"><zeroOrMore><element name="param"><ref name="Param"/></element></zeroOrMore></element><element name="template"><ref name="TemplateInfo"/></element></choice></zeroOrMore></define>
  <define name="MacroSymbol"><zeroOrMore><choice><element name="access"><text/></element><element name="anchor"><text/></element><element name="attributes"><zeroOrMore><ref name="AnyAttribute"/></zeroOrMore></element><element name="extraction"><text/></element><element name="isCopyFromInherited"><empty/></element><element name="kind"><text/></element><element name="loc"><ref name="SourceInfo"/></element><element name="name"><text/></element><element name="parent"><text/></element><element name="doc"><ref name="DocComment"/></element><element name="id"><text/></element><element name="isFunctionLike"><empty/></element><element name="isVariadic"><empty/></element><element name="parameters"><zeroOrMore><element name="string"><text/></element></zeroOrMore></element></choice></zeroOrMore></define>
  <define name="NamespaceAliasSymbol"><zeroOrMore><choice><element name="access"><text/></element><element name="anchor"><text/></element><element name="attributes"><zeroOrMore><ref name="AnyAttribute"/></zeroOrMore></element><element name="extraction"><text/></element><element name="isCopyFromInherited"><empty/></element><element name="kind"><text/></element><element name="loc"><ref name="SourceInfo"/></element><element name="name"><text/></element><element name="parent"><text/></element><element name="doc"><ref name="DocComment"/></element><element name="id"><text/></element><element name="aliasedSymbol"><ref name="IdentifierName"/></element></choice></zeroOrMore></define>
  <define name="NamespaceSymbol"><zeroOrMore><choice><element name="access"><text/></element><element name="anchor"><text/></element><element name="attributes"><zeroOrMore><ref name="AnyAttribute"/></zeroOrMore></element><element name="extraction"><text/></element><element name="isCopyFromInherited"><empty/></element><element name="kind"><text/></element><element name="loc"><ref name="SourceInfo"/></element><element name="name"><text/></element><element name="parent"><text/></element><element name="doc"><ref name="DocComment"/></element><element name="id"><text/></element><element name="isAnonymous"><empty/></element><element name="isInline"><empty/></element><element name="members"><ref name="NamespaceTranche"/></element><element name="usingDirectives"><zeroOrMore><ref name="AnyName"/></zeroOrMore></element></choice></zeroOrMore></define>
  <define name="OverloadsSymbol"><zeroOrMore><choice><element name="access"><text/></element><element name="anchor"><text/></element><element name="attributes"><zeroOrMore><ref name="AnyAttribute"/></zeroOrMore></element><element name="extraction"><text/></element><element name="isCopyFromInherited"><empty/></element><element name="kind"><text/></element><element name="loc"><ref name="SourceInfo"/></element><element name="name"><text/></element><element name="parent"><text/></element><element name="doc"><ref name="DocComment"/></element><element name="id"><text/></element><element name="funcClass"><text/></element><element name="members"><text/></element><element name="overloadedOperator"><text/></element><element name="returnType"><ref name="AnyType"/></element></choice></zeroOrMore></define>
  <define name="RecordSymbol"><zeroOrMore><choice><element name="access"><text/></element><element name="anchor"><text/></element><element name="attributes"><zeroOrMore><ref name="AnyAttribute"/></zeroOrMore></element><element name="extraction"><text/></element><element name="isCopyFromInherited"><empty/></element><element name="kind"><text/></element><element name="loc"><ref name="SourceInfo"/></element><element name="name"><text/></element><element name="parent"><text/></element><element name="doc"><ref name="DocComment"/></element><element name="id"><text/></element><element name="bases"><zeroOrMore><element name="baseInfo"><ref name="BaseInfo"/></element></zeroOrMore></element><element name="deductionGuides"><text/></element><element name="derived"><text/></element><element name="friends"><zeroOrMore><element name="friendInfo"><ref name="FriendInfo"/></element></zeroOrMore></element><element name="interface"><ref name="RecordInterface"/></element><element name="isFinal"><empty/></element><element name="isFinalDestructor"><empty/></element><element name="isListedOnPrimary"><empty/></element><element name="isTypeDef"><empty/></element><element name="keyKind"><text/></element><element name="specializations"><text/></element><element name="template"><ref name="TemplateInfo"/></element></choice></zeroOrMore></define>
  <define name="TypedefSymbol"><zeroOrMore><choice><element name="access"><text/></element><element name="anchor"><text/></element><element name="attributes"><zeroOrMore><ref name="AnyAttribute"/></zeroOrMore></element><element name="extraction"><text/></element><element name="isCopyFromInherited"><empty/></element><element name="kind"><text/></element><element name="loc"><ref name="SourceInfo"/></element><element name="name"><text/></element><element name="parent"><text/></element><element name="doc"><ref name="DocComment"/></element><element name="id"><text/></element><element name="isUsing"><empty/></element><element name="template"><ref name="TemplateInfo"/></element><element name="type"><ref name="AnyType"/></element></choice></zeroOrMore></define>
  <define name="UsingSymbol"><zeroOrMore><choice><element name="access"><text/></element><element name="anchor"><text/></element><element name="attributes"><zeroOrMore><ref name="AnyAttribute"/></zeroOrMore></element><element name="extraction"><text/></element><element name="isCopyFromInherited"><empty/></element><element name="kind"><text/></element><element name="loc"><ref name="SourceInfo"/></element><element name="name"><text/></element><element name="parent"><text/></element><element name="doc"><ref name="DocComment"/></element><element name="id"><text/></element><element name="class"><text/></element><element name="introducedName"><ref name="AnyName"/></element><element name="shadowDeclarations"><text/></element></choice></zeroOrMore></define>
  <define name="VariableSymbol"><zeroOrMore><choice><element name="access"><text/></element><element name="anchor"><text/></element><element name="attributes"><zeroOrMore><ref name="AnyAttribute"/></zeroOrMore></element><element name="extraction"><text/></element><element name="isCopyFromInherited"><empty/></element><element name="kind"><text/></element><element name="loc"><ref name="SourceInfo"/></element><element name="name"><text/></element><element name="parent"><text/></element><element name="doc"><ref name="DocComment"/></element><element name="id"><text/></element><element name="bitfieldWidth"><ref name="ConstantExprInfo"/></element><element name="initializer"><text/></element><element name="isBitfield"><empty/></element><element name="isConstexpr"><empty/></element><element name="isConstinit"><empty/></element><element name="isInline"><empty/></element><element name="isMutable"><empty/></element><element name="isRecordField"><empty/></element><element name="isThreadLocal"><empty/></element><element name="isVariant"><empty/></element><element name="storageClass"><text/></element><element name="template"><ref name="TemplateInfo"/></element><element name="type"><ref name="AnyType"/></element></choice></zeroOrMore></define>
  <define name="ArrayType"><zeroOrMore><choice><element name="constraints"><zeroOrMore><element name="string"><text/></element></zeroOrMore></element><element name="isConst"><empty/></element><element name="isPackExpansion"><empty/></element><element name="isVolatile"><empty/></element><element name="kind"><text/></element><element name="bounds"><ref name="ConstantExprInfo"/></element><element name="elementType"><ref name="AnyType"/></element></choice></zeroOrMore></define>
  <define name="AutoType"><zeroOrMore><choice><element name="constraints"><zeroOrMore><element name="string"><text/></element></zeroOrMore></element><element name="isConst"><empty/></element><element name="isPackExpansion"><empty/></element><element name="isVolatile"><empty/></element><element name="kind"><text/></element><element name="constraint"><ref name="AnyName"/></element><element name="keyword"><text/></element></choice></zeroOrMore></define>
  <define name="DecltypeType"><zeroOrMore><choice><element name="constraints"><zeroOrMore><element name="string"><text/></element></zeroOrMore></element><element name="isConst"><empty/></element><element name="isPackExpansion"><empty/></element><element name="isVolatile"><empty/></element><element name="kind"><text/></element><element name="operand"><text/></element></choice></zeroOrMore></define>
  <define name="FunctionType"><zeroOrMore><choice><element name="constraints"><zeroOrMore><element name="string"><text/></element></zeroOrMore></element><element name="isConst"><empty/></element><element name="isPackExpansion"><empty/></element><element name="isVolatile"><empty/></element><element name="kind"><text/></element><element name="exceptionSpec"><ref name="NoexceptInfo"/></element><element name="isVariadic"><empty/></element><element name="paramTypes"><zeroOrMore><ref name="AnyType"/></zeroOrMore></element><element name="refQualifier"><text/></element><element name="returnType"><ref name="AnyType"/></element></choice></zeroOrMore></define>
  <define name="LValueReferenceType"><zeroOrMore><choice><element name="constraints"><zeroOrMore><element name="string"><text/></element></zeroOrMore></element><element name="isConst"><empty/></element><element name="isPackExpansion"><empty/></element><element name="isVolatile"><empty/></element><element name="kind"><text/></element><element name="pointeeType"><ref name="AnyType"/></element></choice></zeroOrMore></define>
  <define name="MemberPointerType"><zeroOrMore><choice><element name="constraints"><zeroOrMore><element name="string"><text/></element></zeroOrMore></element><element name="isConst"><empty/></element><element name="isPackExpansion"><empty/></element><element name="isVolatile"><empty/></element><element name="kind"><text/></element><element name="parentType"><ref name="AnyType"/></element><element name="pointeeType"><ref name="AnyType"/></element></choice></zeroOrMore></define>
  <define name="NamedType"><zeroOrMore><choice><element name="constraints"><zeroOrMore><element name="string"><text/></element></zeroOrMore></element><element name="isConst"><empty/></element><element name="isPackExpansion"><empty/></element><element name="isVolatile"><empty/></element><element name="kind"><text/></element><element name="fundamentalType"><text/></element><element name="name"><ref name="AnyName"/></element></choice></zeroOrMore></define>
  <define name="PointerType"><zeroOrMore><choice><element name="constraints"><zeroOrMore><element name="string"><text/></element></zeroOrMore></element><element name="isConst"><empty/></element><element name="isPackExpansion"><empty/></element><element name="isVolatile"><empty/></element><element name="kind"><text/></element><element name="pointeeType"><ref name="AnyType"/></element></choice></zeroOrMore></define>
  <define name="RValueReferenceType"><zeroOrMore><choice><element name="constraints"><zeroOrMore><element name="string"><text/></element></zeroOrMore></element><element name="isConst"><empty/></element><element name="isPackExpansion"><empty/></element><element name="isVolatile"><empty/></element><element name="kind"><text/></element><element name="pointeeType"><ref name="AnyType"/></element></choice></zeroOrMore></define>
  <define name="IdentifierName"><zeroOrMore><choice><element name="identifier"><text/></element><element name="kind"><text/></element><element name="prefix"><ref name="AnyName"/></element><element name="id"><text/></element></choice></zeroOrMore></define>
  <define name="SpecializationName"><zeroOrMore><choice><element name="identifier"><text/></element><element name="kind"><text/></element><element name="prefix"><ref name="AnyName"/></element><element name="id"><text/></element><element name="templateArgs"><zeroOrMore><ref name="AnyTArg"/></zeroOrMore></element><element name="specializationID"><text/></element></choice></zeroOrMore></define>
  <define name="AssumeAttribute"><zeroOrMore><choice><element name="kind"><text/></element><element name="name"><text/></element><element name="balancedTokens"><zeroOrMore><element name="string"><text/></element></zeroOrMore></element><element name="expression"><text/></element></choice></zeroOrMore></define>
  <define name="CarriesDependencyAttribute"><zeroOrMore><choice><element name="kind"><text/></element><element name="name"><text/></element><element name="balancedTokens"><zeroOrMore><element name="string"><text/></element></zeroOrMore></element></choice></zeroOrMore></define>
  <define name="DeprecatedAttribute"><zeroOrMore><choice><element name="kind"><text/></element><element name="name"><text/></element><element name="balancedTokens"><zeroOrMore><element name="string"><text/></element></zeroOrMore></element><element name="message"><text/></element></choice></zeroOrMore></define>
  <define name="FallthroughAttribute"><zeroOrMore><choice><element name="kind"><text/></element><element name="name"><text/></element><element name="balancedTokens"><zeroOrMore><element name="string"><text/></element></zeroOrMore></element></choice></zeroOrMore></define>
  <define name="IndeterminateAttribute"><zeroOrMore><choice><element name="kind"><text/></element><element name="name"><text/></element><element name="balancedTokens"><zeroOrMore><element name="string"><text/></element></zeroOrMore></element></choice></zeroOrMore></define>
  <define name="LikelyAttribute"><zeroOrMore><choice><element name="kind"><text/></element><element name="name"><text/></element><element name="balancedTokens"><zeroOrMore><element name="string"><text/></element></zeroOrMore></element></choice></zeroOrMore></define>
  <define name="MaybeUnusedAttribute"><zeroOrMore><choice><element name="kind"><text/></element><element name="name"><text/></element><element name="balancedTokens"><zeroOrMore><element name="string"><text/></element></zeroOrMore></element></choice></zeroOrMore></define>
  <define name="NoUniqueAddressAttribute"><zeroOrMore><choice><element name="kind"><text/></element><element name="name"><text/></element><element name="balancedTokens"><zeroOrMore><element name="string"><text/></element></zeroOrMore></element></choice></zeroOrMore></define>
  <define name="NodiscardAttribute"><zeroOrMore><choice><element name="kind"><text/></element><element name="name"><text/></element><element name="balancedTokens"><zeroOrMore><element name="string"><text/></element></zeroOrMore></element><element name="reason"><text/></element></choice></zeroOrMore></define>
  <define name="NoreturnAttribute"><zeroOrMore><choice><element name="kind"><text/></element><element name="name"><text/></element><element name="balancedTokens"><zeroOrMore><element name="string"><text/></element></zeroOrMore></element></choice></zeroOrMore></define>
  <define name="OtherAttribute"><zeroOrMore><choice><element name="kind"><text/></element><element name="name"><text/></element><element name="balancedTokens"><zeroOrMore><element name="string"><text/></element></zeroOrMore></element></choice></zeroOrMore></define>
  <define name="UnlikelyAttribute"><zeroOrMore><choice><element name="kind"><text/></element><element name="name"><text/></element><element name="balancedTokens"><zeroOrMore><element name="string"><text/></element></zeroOrMore></element></choice></zeroOrMore></define>
  <define name="ConstantTArg"><zeroOrMore><choice><element name="isPackExpansion"><empty/></element><element name="kind"><text/></element><element name="value"><text/></element></choice></zeroOrMore></define>
  <define name="TemplateTArg"><zeroOrMore><choice><element name="isPackExpansion"><empty/></element><element name="kind"><text/></element><element name="name"><text/></element><element name="template"><text/></element></choice></zeroOrMore></define>
  <define name="TypeTArg"><zeroOrMore><choice><element name="isPackExpansion"><empty/></element><element name="kind"><text/></element><element name="type"><ref name="AnyType"/></element></choice></zeroOrMore></define>
  <define name="ConstantTParam"><zeroOrMore><choice><element name="default"><ref name="AnyTArg"/></element><element name="isParameterPack"><empty/></element><element name="kind"><text/></element><element name="name"><text/></element><element name="type"><ref name="AnyType"/></element></choice></zeroOrMore></define>
  <define name="TemplateTParam"><zeroOrMore><choice><element name="default"><ref name="AnyTArg"/></element><element name="isParameterPack"><empty/></element><element name="kind"><text/></element><element name="name"><text/></element><element name="params"><zeroOrMore><ref name="AnyTParam"/></zeroOrMore></element></choice></zeroOrMore></define>
  <define name="TypeTParam"><zeroOrMore><choice><element name="default"><ref name="AnyTArg"/></element><element name="isParameterPack"><empty/></element><element name="kind"><text/></element><element name="name"><text/></element><element name="constraint"><ref name="AnyName"/></element><element name="keyKind"><text/></element></choice></zeroOrMore></define>
  <define name="AdmonitionBlock"><zeroOrMore><choice><element name="kind"><text/></element><element name="blocks"><zeroOrMore><ref name="AnyBlock"/></zeroOrMore></element><element name="title"><ref name="AnyInline"/></element><element name="admonish"><text/></element></choice></zeroOrMore></define>
  <define name="BriefBlock"><zeroOrMore><choice><element name="kind"><text/></element><element name="children"><zeroOrMore><ref name="AnyInline"/></zeroOrMore></element><element name="copiedFrom"><zeroOrMore><element name="string"><text/></element></zeroOrMore></element></choice></zeroOrMore></define>
  <define name="CodeBlock"><zeroOrMore><choice><element name="kind"><text/></element><element name="info"><text/></element><element name="literal"><text/></element></choice></zeroOrMore></define>
  <define name="DefinitionListBlock"><zeroOrMore><choice><element name="kind"><text/></element><element name="items"><zeroOrMore><element name="definitionListItem"><ref name="DefinitionListItem"/></element></zeroOrMore></element></choice></zeroOrMore></define>
  <define name="FootnoteDefinitionBlock"><zeroOrMore><choice><element name="kind"><text/></element><element name="blocks"><zeroOrMore><ref name="AnyBlock"/></zeroOrMore></element><element name="label"><text/></element></choice></zeroOrMore></define>
  <define name="HeadingBlock"><zeroOrMore><choice><element name="kind"><text/></element><element name="children"><zeroOrMore><ref name="AnyInline"/></zeroOrMore></element><element name="level"><data type="integer"/></element></choice></zeroOrMore></define>
  <define name="ListBlock"><zeroOrMore><choice><element name="kind"><text/></element><element name="items"><zeroOrMore><element name="listItem"><ref name="ListItem"/></element></zeroOrMore></element><element name="listKind"><text/></element></choice></zeroOrMore></define>
  <define name="MathBlock"><zeroOrMore><choice><element name="kind"><text/></element><element name="literal"><text/></element></choice></zeroOrMore></define>
  <define name="ParagraphBlock"><zeroOrMore><choice><element name="kind"><text/></element><element name="children"><zeroOrMore><ref name="AnyInline"/></zeroOrMore></element></choice></zeroOrMore></define>
  <define name="ParamBlock"><zeroOrMore><choice><element name="kind"><text/></element><element name="children"><zeroOrMore><ref name="AnyInline"/></zeroOrMore></element><element name="direction"><text/></element><element name="name"><text/></element></choice></zeroOrMore></define>
  <define name="PostconditionBlock"><zeroOrMore><choice><element name="kind"><text/></element><element name="children"><zeroOrMore><ref name="AnyInline"/></zeroOrMore></element></choice></zeroOrMore></define>
  <define name="PreconditionBlock"><zeroOrMore><choice><element name="kind"><text/></element><element name="children"><zeroOrMore><ref name="AnyInline"/></zeroOrMore></element></choice></zeroOrMore></define>
  <define name="QuoteBlock"><zeroOrMore><choice><element name="kind"><text/></element><element name="blocks"><zeroOrMore><ref name="AnyBlock"/></zeroOrMore></element></choice></zeroOrMore></define>
  <define name="ReturnsBlock"><zeroOrMore><choice><element name="kind"><text/></element><element name="children"><zeroOrMore><ref name="AnyInline"/></zeroOrMore></element></choice></zeroOrMore></define>
  <define name="SeeBlock"><zeroOrMore><choice><element name="kind"><text/></element><element name="children"><zeroOrMore><ref name="AnyInline"/></zeroOrMore></element></choice></zeroOrMore></define>
  <define name="TParamBlock"><zeroOrMore><choice><element name="kind"><text/></element><element name="children"><zeroOrMore><ref name="AnyInline"/></zeroOrMore></element><element name="name"><text/></element></choice></zeroOrMore></define>
  <define name="TableBlock"><zeroOrMore><choice><element name="kind"><text/></element><element name="alignments"><zeroOrMore><text/></zeroOrMore></element><element name="items"><zeroOrMore><element name="tableRow"><ref name="TableRow"/></element></zeroOrMore></element></choice></zeroOrMore></define>
  <define name="ThematicBreakBlock"><zeroOrMore><choice><element name="kind"><text/></element></choice></zeroOrMore></define>
  <define name="ThrowsBlock"><zeroOrMore><choice><element name="kind"><text/></element><element name="children"><zeroOrMore><ref name="AnyInline"/></zeroOrMore></element><element name="exception"><ref name="ReferenceInline"/></element></choice></zeroOrMore></define>
  <define name="CodeInline"><zeroOrMore><choice><element name="kind"><text/></element><element name="children"><zeroOrMore><ref name="AnyInline"/></zeroOrMore></element></choice></zeroOrMore></define>
  <define name="CopyDetailsInline"><zeroOrMore><choice><element name="kind"><text/></element><element name="id"><text/></element><element name="string"><text/></element></choice></zeroOrMore></define>
  <define name="EmphInline"><zeroOrMore><choice><element name="kind"><text/></element><element name="children"><zeroOrMore><ref name="AnyInline"/></zeroOrMore></element></choice></zeroOrMore></define>
  <define name="FootnoteReferenceInline"><zeroOrMore><choice><element name="kind"><text/></element><element name="label"><text/></element></choice></zeroOrMore></define>
  <define name="HighlightInline"><zeroOrMore><choice><element name="kind"><text/></element><element name="children"><zeroOrMore><ref name="AnyInline"/></zeroOrMore></element></choice></zeroOrMore></define>
  <define name="ImageInline"><zeroOrMore><choice><element name="kind"><text/></element><element name="children"><zeroOrMore><ref name="AnyInline"/></zeroOrMore></element><element name="alt"><text/></element><element name="src"><text/></element></choice></zeroOrMore></define>
  <define name="LineBreakInline"><zeroOrMore><choice><element name="kind"><text/></element></choice></zeroOrMore></define>
  <define name="LinkInline"><zeroOrMore><choice><element name="kind"><text/></element><element name="children"><zeroOrMore><ref name="AnyInline"/></zeroOrMore></element><element name="href"><text/></element></choice></zeroOrMore></define>
  <define name="MathInline"><zeroOrMore><choice><element name="kind"><text/></element><element name="literal"><text/></element></choice></zeroOrMore></define>
  <define name="ReferenceInline"><zeroOrMore><choice><element name="kind"><text/></element><element name="id"><text/></element><element name="literal"><text/></element></choice></zeroOrMore></define>
  <define name="SoftBreakInline"><zeroOrMore><choice><element name="kind"><text/></element></choice></zeroOrMore></define>
  <define name="StrikethroughInline"><zeroOrMore><choice><element name="kind"><text/></element><element name="children"><zeroOrMore><ref name="AnyInline"/></zeroOrMore></element></choice></zeroOrMore></define>
  <define name="StrongInline"><zeroOrMore><choice><element name="kind"><text/></element><element name="children"><zeroOrMore><ref name="AnyInline"/></zeroOrMore></element></choice></zeroOrMore></define>
  <define name="SubscriptInline"><zeroOrMore><choice><element name="kind"><text/></element><element name="children"><zeroOrMore><ref name="AnyInline"/></zeroOrMore></element></choice></zeroOrMore></define>
  <define name="SuperscriptInline"><zeroOrMore><choice><element name="kind"><text/></element><element name="children"><zeroOrMore><ref name="AnyInline"/></zeroOrMore></element></choice></zeroOrMore></define>
  <define name="TextInline"><zeroOrMore><choice><element name="kind"><text/></element><element name="literal"><text/></element></choice></zeroOrMore></define>
  <define name="SourceInfo"><zeroOrMore><choice><element name="defLoc"><ref name="Location"/></element><element name="loc"><zeroOrMore><element name="location"><ref name="Location"/></element></zeroOrMore></element></choice></zeroOrMore></define>
  <define name="DocComment"><zeroOrMore><choice><element name="document"><zeroOrMore><ref name="AnyBlock"/></zeroOrMore></element><element name="isFunctionObject"><empty/></element><element name="isImplementationDefined"><empty/></element><element name="isSeeBelow"><empty/></element><element name="brief"><ref name="BriefBlock"/></element><element name="exceptions"><zeroOrMore><element name="throws"><ref name="ThrowsBlock"/></element></zeroOrMore></element><element name="footnotes"><zeroOrMore><element name="footnoteDefinition"><ref name="FootnoteDefinitionBlock"/></element></zeroOrMore></element><element name="params"><zeroOrMore><element name="param"><ref name="ParamBlock"/></element></zeroOrMore></element><element name="postconditions"><zeroOrMore><element name="postcondition"><ref name="PostconditionBlock"/></element></zeroOrMore></element><element name="preconditions"><zeroOrMore><element name="precondition"><ref name="PreconditionBlock"/></element></zeroOrMore></element><element name="related"><zeroOrMore><element name="reference"><ref name="ReferenceInline"/></element></zeroOrMore></element><element name="relates"><zeroOrMore><element name="reference"><ref name="ReferenceInline"/></element></zeroOrMore></element><element name="returns"><zeroOrMore><element name="returns"><ref name="ReturnsBlock"/></element></zeroOrMore></element><element name="sees"><zeroOrMore><element name="see"><ref name="SeeBlock"/></element></zeroOrMore></element><element name="tparams"><zeroOrMore><element name="tParam"><ref name="TParamBlock"/></element></zeroOrMore></element></choice></zeroOrMore></define>
  <define name="TemplateInfo"><zeroOrMore><choice><element name="args"><zeroOrMore><ref name="AnyTArg"/></zeroOrMore></element><element name="params"><zeroOrMore><ref name="AnyTParam"/></zeroOrMore></element><element name="primary"><text/></element><element name="requires"><text/></element></choice></zeroOrMore></define>
  <define name="ConstantExprInfo"><zeroOrMore><choice><element name="written"><text/></element><element name="value"><text/></element></choice></zeroOrMore></define>
  <define name="ExplicitInfo"><zeroOrMore><choice><element name="implicit"><empty/></element><element name="kind"><text/></element><element name="operand"><text/></element></choice></zeroOrMore></define>
  <define name="NoexceptInfo"><zeroOrMore><choice><element name="implicit"><empty/></element><element name="kind"><text/></element><element name="operand"><text/></element></choice></zeroOrMore></define>
  <define name="Param"><zeroOrMore><choice><element name="default"><text/></element><element name="name"><text/></element><element name="type"><ref name="AnyType"/></element></choice></zeroOrMore></define>
  <define name="NamespaceTranche"><zeroOrMore><choice><element name="concepts"><text/></element><element name="enums"><text/></element><element name="functions"><text/></element><element name="guides"><text/></element><element name="macros"><text/></element><element name="namespaceAliases"><text/></element><element name="namespaces"><text/></element><element name="records"><text/></element><element name="typedefs"><text/></element><element name="usings"><text/></element><element name="variables"><text/></element></choice></zeroOrMore></define>
  <define name="BaseInfo"><zeroOrMore><choice><element name="access"><text/></element><element name="isVirtual"><empty/></element><element name="loc"><ref name="SourceInfo"/></element><element name="type"><ref name="AnyType"/></element></choice></zeroOrMore></define>
  <define name="FriendInfo"><zeroOrMore><choice><element name="type"><ref name="AnyType"/></element><element name="id"><text/></element></choice></zeroOrMore></define>
  <define name="RecordInterface"><zeroOrMore><choice><element name="private"><ref name="RecordTranche"/></element><element name="protected"><ref name="RecordTranche"/></element><element name="public"><ref name="RecordTranche"/></element></choice></zeroOrMore></define>
  <define name="DefinitionListItem"><zeroOrMore><choice><element name="blocks"><zeroOrMore><ref name="AnyBlock"/></zeroOrMore></element><element name="term"><ref name="InlineContainer"/></element></choice></zeroOrMore></define>
  <define name="ListItem"><zeroOrMore><choice><element name="blocks"><zeroOrMore><ref name="AnyBlock"/></zeroOrMore></element></choice></zeroOrMore></define>
  <define name="TableRow"><zeroOrMore><choice><element name="cells"><zeroOrMore><element name="tableCell"><ref name="TableCell"/></element></zeroOrMore></element><element name="isHeader"><empty/></element></choice></zeroOrMore></define>
  <define name="Location"><zeroOrMore><choice><element name="columnNumber"><data type="integer"/></element><element name="documented"><empty/></element><element name="fullPath"><text/></element><element name="lineNumber"><data type="integer"/></element><element name="shortPath"><text/></element><element name="sourcePath"><text/></element></choice></zeroOrMore></define>
  <define name="RecordTranche"><zeroOrMore><choice><element name="concepts"><text/></element><element name="enums"><text/></element><element name="functions"><text/></element><element name="guides"><text/></element><element name="namespaceAliases"><text/></element><element name="records"><text/></element><element name="staticFunctions"><text/></element><element name="staticVariables"><text/></element><element name="typedefs"><text/></element><element name="usings"><text/></element><element name="variables"><text/></element></choice></zeroOrMore></define>
  <define name="InlineContainer"><zeroOrMore><choice><element name="children"><zeroOrMore><ref name="AnyInline"/></zeroOrMore></element></choice></zeroOrMore></define>
  <define name="TableCell"><zeroOrMore><choice><element name="children"><zeroOrMore><ref name="AnyInline"/></zeroOrMore></element></choice></zeroOrMore></define>
</grammar>
