mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
974 lines
24 KiB
XML
974 lines
24 KiB
XML
<?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>
|
|
<!-- Everything else not explicitly mentioned below. -->
|
|
<ref name="Other" />
|
|
|
|
<ref name="Function" />
|
|
<ref name="Class" />
|
|
<ref name="Variable" />
|
|
<ref name="Namespace" />
|
|
<ref name="Typedef" />
|
|
<ref name="Enum" />
|
|
</choice>
|
|
</start>
|
|
|
|
<define name="Other">
|
|
<element name="Other">
|
|
<ref name="attrSourceLocation" />
|
|
<ref name="Name" />
|
|
<optional>
|
|
<ref name="USR" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="Headerfile" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="Declaration" />
|
|
</optional>
|
|
<element name="CommentParts">
|
|
<optional>
|
|
<ref name="Abstract" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="TemplateParameters" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="Parameters" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="ThrowsDiscussion" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="ResultDiscussion" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="Tags" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="Discussion" />
|
|
</optional>
|
|
</element>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="Function">
|
|
<element name="Function">
|
|
<optional>
|
|
<attribute name="templateKind">
|
|
<choice>
|
|
<value>template</value>
|
|
<value>specialization</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
<ref name="attrSourceLocation" />
|
|
|
|
<optional>
|
|
<attribute name="isInstanceMethod">
|
|
<data type="boolean" />
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="isClassMethod">
|
|
<data type="boolean" />
|
|
</attribute>
|
|
</optional>
|
|
|
|
<ref name="Name" />
|
|
<optional>
|
|
<ref name="USR" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="Headerfile" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="Declaration" />
|
|
</optional>
|
|
|
|
<element name="CommentParts">
|
|
<optional>
|
|
<ref name="Abstract" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="TemplateParameters" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="Parameters" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="Exceptions" />
|
|
</optional>
|
|
<zeroOrMore>
|
|
<ref name="Availability" />
|
|
</zeroOrMore>
|
|
<zeroOrMore>
|
|
<ref name="Deprecated" />
|
|
</zeroOrMore>
|
|
<zeroOrMore>
|
|
<ref name="Unavailable" />
|
|
</zeroOrMore>
|
|
<optional>
|
|
<ref name="ThrowsDiscussion" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="ResultDiscussion" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="Tags" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="Discussion" />
|
|
</optional>
|
|
</element>
|
|
|
|
</element>
|
|
</define>
|
|
|
|
<define name="Class">
|
|
<element name="Class">
|
|
<optional>
|
|
<attribute name="templateKind">
|
|
<choice>
|
|
<value>template</value>
|
|
<value>specialization</value>
|
|
<value>partialSpecialization</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
<ref name="attrSourceLocation" />
|
|
|
|
<ref name="Name" />
|
|
<optional>
|
|
<ref name="USR" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="Headerfile" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="Declaration" />
|
|
</optional>
|
|
|
|
<element name="CommentParts">
|
|
<optional>
|
|
<ref name="Abstract" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="TemplateParameters" />
|
|
</optional>
|
|
|
|
<!-- Parameters and results don't make sense for classes, but the user
|
|
can specify \param or \returns in a comment anyway. -->
|
|
<optional>
|
|
<ref name="Parameters" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="ThrowsDiscussion" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="ResultDiscussion" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="Tags" />
|
|
</optional>
|
|
|
|
<optional>
|
|
<ref name="Discussion" />
|
|
</optional>
|
|
</element>
|
|
|
|
</element>
|
|
</define>
|
|
|
|
<define name="Variable">
|
|
<element name="Variable">
|
|
<ref name="attrSourceLocation" />
|
|
<ref name="Name" />
|
|
<optional>
|
|
<ref name="USR" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="Headerfile" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="Declaration" />
|
|
</optional>
|
|
|
|
<element name="CommentParts">
|
|
<optional>
|
|
<ref name="Abstract" />
|
|
</optional>
|
|
|
|
<!-- Template parameters, parameters and results don't make sense for
|
|
variables, but the user can specify \tparam \param or \returns
|
|
in a comment anyway. -->
|
|
<optional>
|
|
<ref name="TemplateParameters" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="Parameters" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="ThrowsDiscussion" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="ResultDiscussion" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="Tags" />
|
|
</optional>
|
|
|
|
<optional>
|
|
<ref name="Discussion" />
|
|
</optional>
|
|
</element>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="Namespace">
|
|
<element name="Namespace">
|
|
<ref name="attrSourceLocation" />
|
|
<ref name="Name" />
|
|
<optional>
|
|
<ref name="USR" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="Headerfile" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="Declaration" />
|
|
</optional>
|
|
|
|
|
|
<element name="CommentParts">
|
|
<optional>
|
|
<ref name="Abstract" />
|
|
</optional>
|
|
|
|
<!-- Template parameters, parameters and results don't make sense for
|
|
namespaces, but the user can specify \tparam, \param or \returns
|
|
in a comment anyway. -->
|
|
<optional>
|
|
<ref name="TemplateParameters" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="Parameters" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="ThrowsDiscussion" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="ResultDiscussion" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="Tags" />
|
|
</optional>
|
|
|
|
<optional>
|
|
<ref name="Discussion" />
|
|
</optional>
|
|
</element>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="Typedef">
|
|
<element name="Typedef">
|
|
<ref name="attrSourceLocation" />
|
|
<ref name="Name" />
|
|
<optional>
|
|
<ref name="USR" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="Headerfile" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="Declaration" />
|
|
</optional>
|
|
|
|
<element name="CommentParts">
|
|
<optional>
|
|
<ref name="Abstract" />
|
|
</optional>
|
|
|
|
<optional>
|
|
<ref name="TemplateParameters" />
|
|
</optional>
|
|
|
|
<!-- Parameters and results might make sense for typedefs if the type is
|
|
a function pointer type. -->
|
|
<optional>
|
|
<ref name="Parameters" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="ThrowsDiscussion" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="ResultDiscussion" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="Tags" />
|
|
</optional>
|
|
|
|
<optional>
|
|
<ref name="Discussion" />
|
|
</optional>
|
|
</element>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="Enum">
|
|
<element name="Enum">
|
|
<ref name="attrSourceLocation" />
|
|
<ref name="Name" />
|
|
<optional>
|
|
<ref name="USR" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="Headerfile" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="Declaration" />
|
|
</optional>
|
|
|
|
|
|
<element name="CommentParts">
|
|
<optional>
|
|
<ref name="Abstract" />
|
|
</optional>
|
|
|
|
<!-- Template parameters, parameters and results don't make sense for
|
|
enums, but the user can specify \tparam \param or \returns in a
|
|
comment anyway. -->
|
|
<optional>
|
|
<ref name="TemplateParameters" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="Parameters" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="ThrowsDiscussion" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="ResultDiscussion" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="Tags" />
|
|
</optional>
|
|
|
|
<optional>
|
|
<ref name="Discussion" />
|
|
</optional>
|
|
</element>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="attrSourceLocation">
|
|
<optional>
|
|
<attribute name="file">
|
|
<!-- Non-empty text content. -->
|
|
<data type="string">
|
|
<param name="pattern">.*\S.*</param>
|
|
</data>
|
|
</attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="line">
|
|
<data type="positiveInteger" />
|
|
</attribute>
|
|
<attribute name="column">
|
|
<data type="positiveInteger" />
|
|
</attribute>
|
|
</optional>
|
|
</define>
|
|
|
|
<define name="Name">
|
|
<element name="Name">
|
|
<!-- Non-empty text content. -->
|
|
<data type="string">
|
|
<param name="pattern">.*\S.*</param>
|
|
</data>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="USR">
|
|
<element name="USR">
|
|
<!-- Non-empty text content. -->
|
|
<data type="string">
|
|
<param name="pattern">.*\S.*</param>
|
|
</data>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="Abstract">
|
|
<element name="Abstract">
|
|
<zeroOrMore>
|
|
<ref name="TextBlockContent" />
|
|
</zeroOrMore>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="Declaration">
|
|
<element name="Declaration">
|
|
<!-- Non-empty text content. -->
|
|
<data type="string"/>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="Headerfile">
|
|
<element name="Headerfile">
|
|
<oneOrMore>
|
|
<ref name="TextBlockContent" />
|
|
</oneOrMore>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="Discussion">
|
|
<element name="Discussion">
|
|
<zeroOrMore>
|
|
<choice>
|
|
<ref name="BlockContent" />
|
|
<ref name="TextInlineContent" />
|
|
</choice>
|
|
</zeroOrMore>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="List-Bullet">
|
|
<element name="List-Bullet">
|
|
<zeroOrMore>
|
|
<ref name="Item" />
|
|
</zeroOrMore>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="List-Number">
|
|
<element name="List-Number">
|
|
<zeroOrMore>
|
|
<ref name="Item" />
|
|
</zeroOrMore>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="Attention">
|
|
<element name="Attention">
|
|
<zeroOrMore>
|
|
<ref name="BlockContent"/>
|
|
</zeroOrMore>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="Author">
|
|
<element name="Author">
|
|
<zeroOrMore>
|
|
<ref name="BlockContent"/>
|
|
</zeroOrMore>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="Authors">
|
|
<element name="Authors">
|
|
<zeroOrMore>
|
|
<ref name="BlockContent"/>
|
|
</zeroOrMore>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="Bug">
|
|
<element name="Bug">
|
|
<zeroOrMore>
|
|
<ref name="BlockContent"/>
|
|
</zeroOrMore>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="Complexity">
|
|
<element name="Complexity">
|
|
<zeroOrMore>
|
|
<ref name="BlockContent"/>
|
|
</zeroOrMore>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="Copyright">
|
|
<element name="Copyright">
|
|
<zeroOrMore>
|
|
<ref name="BlockContent"/>
|
|
</zeroOrMore>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="Date">
|
|
<element name="Date">
|
|
<zeroOrMore>
|
|
<ref name="BlockContent"/>
|
|
</zeroOrMore>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="Experiment">
|
|
<element name="Experiment">
|
|
<zeroOrMore>
|
|
<ref name="BlockContent"/>
|
|
</zeroOrMore>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="Important">
|
|
<element name="Important">
|
|
<zeroOrMore>
|
|
<ref name="BlockContent"/>
|
|
</zeroOrMore>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="Invariant">
|
|
<element name="Invariant">
|
|
<zeroOrMore>
|
|
<ref name="BlockContent"/>
|
|
</zeroOrMore>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="Note">
|
|
<element name="Note">
|
|
<zeroOrMore>
|
|
<ref name="BlockContent"/>
|
|
</zeroOrMore>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="Postcondition">
|
|
<element name="Postcondition">
|
|
<zeroOrMore>
|
|
<ref name="BlockContent"/>
|
|
</zeroOrMore>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="Precondition">
|
|
<element name="Precondition">
|
|
<zeroOrMore>
|
|
<ref name="BlockContent"/>
|
|
</zeroOrMore>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="Remark">
|
|
<element name="Remark">
|
|
<zeroOrMore>
|
|
<ref name="BlockContent"/>
|
|
</zeroOrMore>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="Remarks">
|
|
<element name="Remarks">
|
|
<zeroOrMore>
|
|
<ref name="BlockContent"/>
|
|
</zeroOrMore>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="Requires">
|
|
<element name="Requires">
|
|
<zeroOrMore>
|
|
<ref name="BlockContent"/>
|
|
</zeroOrMore>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="See">
|
|
<element name="See">
|
|
<zeroOrMore>
|
|
<ref name="BlockContent"/>
|
|
</zeroOrMore>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="Since">
|
|
<element name="Since">
|
|
<zeroOrMore>
|
|
<ref name="BlockContent"/>
|
|
</zeroOrMore>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="TODO">
|
|
<element name="TODO">
|
|
<zeroOrMore>
|
|
<ref name="BlockContent"/>
|
|
</zeroOrMore>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="Version">
|
|
<element name="Version">
|
|
<zeroOrMore>
|
|
<ref name="BlockContent"/>
|
|
</zeroOrMore>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="Warning">
|
|
<element name="Warning">
|
|
<zeroOrMore>
|
|
<ref name="BlockContent"/>
|
|
</zeroOrMore>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="Item">
|
|
<element name="Item">
|
|
<zeroOrMore>
|
|
<ref name="BlockContent" />
|
|
</zeroOrMore>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="TemplateParameters">
|
|
<element name="TemplateParameters">
|
|
<!-- Parameter elements should be sorted according to position. -->
|
|
<oneOrMore>
|
|
<element name="Parameter">
|
|
<element name="Name">
|
|
<!-- Non-empty text content. -->
|
|
<data type="string">
|
|
<param name="pattern">.*\S.*</param>
|
|
</data>
|
|
</element>
|
|
<optional>
|
|
<!-- This is index at depth 0. libclang API can return more
|
|
information about position, but we expose only essential
|
|
information here, since "Parameter" elements are already
|
|
sorted.
|
|
|
|
"Position" element could be added in future if needed. -->
|
|
<element name="Index">
|
|
<data type="nonNegativeInteger" />
|
|
</element>
|
|
</optional>
|
|
<!-- In general, template parameters with whitespace discussion
|
|
should not be emitted. Schema might be more strict here. -->
|
|
<element name="Discussion">
|
|
<ref name="BlockContent" />
|
|
</element>
|
|
</element>
|
|
</oneOrMore>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="Tags">
|
|
<element name="Tags">
|
|
<oneOrMore>
|
|
<element name="Tag">
|
|
<data type="string" />
|
|
</element>
|
|
</oneOrMore>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="Parameters">
|
|
<element name="Parameters">
|
|
<!-- Parameter elements should be sorted according to index. -->
|
|
<oneOrMore>
|
|
<element name="Parameter">
|
|
<element name="Name">
|
|
<!-- Non-empty text content. -->
|
|
<data type="string">
|
|
<param name="pattern">.*\S.*</param>
|
|
</data>
|
|
</element>
|
|
<optional>
|
|
<choice>
|
|
<element name="Index">
|
|
<data type="nonNegativeInteger" />
|
|
</element>
|
|
<element name="IsVarArg">
|
|
<empty />
|
|
</element>
|
|
</choice>
|
|
</optional>
|
|
<element name="Direction">
|
|
<attribute name="isExplicit">
|
|
<data type="boolean" />
|
|
</attribute>
|
|
<choice>
|
|
<value>in</value>
|
|
<value>out</value>
|
|
<value>in,out</value>
|
|
</choice>
|
|
</element>
|
|
<!-- In general, template parameters with whitespace discussion
|
|
should not be emitted, unless direction is explicitly specified.
|
|
Schema might be more strict here. -->
|
|
<choice>
|
|
<element name="ClosureParameter">
|
|
<optional>
|
|
<ref name="Abstract" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="Parameters" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="ResultDiscussion" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="ThrowsDiscussion" />
|
|
</optional>
|
|
<optional>
|
|
<ref name="Discussion" />
|
|
</optional>
|
|
</element>
|
|
<element name="Discussion">
|
|
<ref name="BlockContent" />
|
|
</element>
|
|
</choice>
|
|
</element>
|
|
</oneOrMore>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="Exceptions">
|
|
<element name="Exceptions">
|
|
<oneOrMore>
|
|
<ref name="BlockContent" />
|
|
</oneOrMore>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="Availability">
|
|
<element name="Availability">
|
|
<attribute name="distribution">
|
|
<data type="string" />
|
|
</attribute>
|
|
<optional>
|
|
<element name="IntroducedInVersion">
|
|
<data type="string">
|
|
<param name="pattern">\d+|\d+\.\d+|\d+\.\d+.\d+</param>
|
|
</data>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="DeprecatedInVersion">
|
|
<data type="string">
|
|
<param name="pattern">\d+|\d+\.\d+|\d+\.\d+.\d+</param>
|
|
</data>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="RemovedAfterVersion">
|
|
<data type="string">
|
|
<param name="pattern">\d+|\d+\.\d+|\d+\.\d+.\d+</param>
|
|
</data>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name="DeprecationSummary">
|
|
<data type="string" />
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<ref name="Unavailable" />
|
|
</optional>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="Deprecated">
|
|
<element name="Deprecated">
|
|
<optional>
|
|
<data type="string" />
|
|
</optional>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="Unavailable">
|
|
<element name="Unavailable">
|
|
<optional>
|
|
<data type="string" />
|
|
</optional>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="ThrowsDiscussion">
|
|
<element name="ThrowsDiscussion">
|
|
<zeroOrMore>
|
|
<ref name="BlockContent" />
|
|
</zeroOrMore>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="ResultDiscussion">
|
|
<element name="ResultDiscussion">
|
|
<zeroOrMore>
|
|
<ref name="BlockContent" />
|
|
</zeroOrMore>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="BlockContent">
|
|
<choice>
|
|
<ref name="Attention"/>
|
|
<ref name="Author"/>
|
|
<ref name="Authors"/>
|
|
<ref name="Bug"/>
|
|
<ref name="Complexity"/>
|
|
<ref name="Copyright"/>
|
|
<ref name="Date"/>
|
|
<ref name="Experiment"/>
|
|
<ref name="Important"/>
|
|
<ref name="Invariant"/>
|
|
<ref name="Note"/>
|
|
<ref name="Postcondition"/>
|
|
<ref name="Precondition"/>
|
|
<ref name="Remark"/>
|
|
<ref name="Remarks"/>
|
|
<ref name="Requires"/>
|
|
<ref name="See"/>
|
|
<ref name="Since"/>
|
|
<ref name="TODO"/>
|
|
<ref name="Version"/>
|
|
<ref name="Warning"/>
|
|
<ref name="TextBlockContent"/>
|
|
<ref name="List-Bullet"/>
|
|
<ref name="List-Number"/>
|
|
<ref name="CodeListing"/>
|
|
</choice>
|
|
</define>
|
|
|
|
<define name="CodeListing">
|
|
<element name="CodeListing">
|
|
<attribute name="language">
|
|
<data type="string" />
|
|
</attribute>
|
|
<zeroOrMore>
|
|
<ref name="zCodeLineNumbered"/>
|
|
</zeroOrMore>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="zCodeLineNumbered">
|
|
<element name="zCodeLineNumbered">
|
|
<optional>
|
|
<data type="string" />
|
|
</optional>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="TextBlockContent">
|
|
<choice>
|
|
<element name="Para">
|
|
<optional>
|
|
<attribute name="kind">
|
|
<choice>
|
|
<value>attention</value>
|
|
<value>author</value>
|
|
<value>authors</value>
|
|
<value>bug</value>
|
|
<value>complexity</value>
|
|
<value>copyright</value>
|
|
<value>date</value>
|
|
<value>experiment</value>
|
|
<value>invariant</value>
|
|
<value>note</value>
|
|
<value>post</value>
|
|
<value>pre</value>
|
|
<value>remark</value>
|
|
<value>remarks</value>
|
|
<value>sa</value>
|
|
<value>see</value>
|
|
<value>since</value>
|
|
<value>todo</value>
|
|
<value>version</value>
|
|
<value>warning</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
<zeroOrMore>
|
|
<ref name="TextInlineContent" />
|
|
</zeroOrMore>
|
|
</element>
|
|
<element name="Verbatim">
|
|
<attribute name="xml:space">
|
|
<value>preserve</value>
|
|
</attribute>
|
|
<attribute name="kind">
|
|
<!-- TODO: add all Doxygen verbatim kinds -->
|
|
<choice>
|
|
<value>code</value>
|
|
<value>verbatim</value>
|
|
</choice>
|
|
</attribute>
|
|
<text />
|
|
</element>
|
|
</choice>
|
|
</define>
|
|
|
|
<define name="TextInlineContent">
|
|
<choice>
|
|
<text />
|
|
<element name="bold">
|
|
<!-- Non-empty text content. -->
|
|
<data type="string">
|
|
<param name="pattern">.*\S.*</param>
|
|
</data>
|
|
</element>
|
|
<element name="monospaced">
|
|
<!-- Non-empty text content. -->
|
|
<data type="string">
|
|
<param name="pattern">.*\S.*</param>
|
|
</data>
|
|
</element>
|
|
<element name="emphasized">
|
|
<!-- Non-empty text content. -->
|
|
<data type="string">
|
|
<param name="pattern">.*\S.*</param>
|
|
</data>
|
|
</element>
|
|
<element name="emphasis">
|
|
<!-- Non-empty text content. -->
|
|
<data type="string">
|
|
<param name="pattern">.*\S.*</param>
|
|
</data>
|
|
</element>
|
|
<element name="Link">
|
|
<attribute name="href"/>
|
|
<data type="string">
|
|
<param name="pattern">.*\S.*</param>
|
|
</data>
|
|
</element>
|
|
<element name="codeVoice">
|
|
<data type="string">
|
|
<param name="pattern">.*\S.*</param>
|
|
</data>
|
|
</element>
|
|
<element name="rawHTML">
|
|
<optional>
|
|
<!-- If not specified, the default value is 'false'. -->
|
|
<!-- The value 'false' or absence of the attribute does not imply
|
|
that the HTML is actually well-formed. -->
|
|
<attribute name="isMalformed">
|
|
<data type="boolean" />
|
|
</attribute>
|
|
</optional>
|
|
<!-- Non-empty text content. -->
|
|
<data type="string">
|
|
<param name="pattern">.*\S.*</param>
|
|
</data>
|
|
</element>
|
|
<element name="InlineAttributes">
|
|
<attribute name="attributes"/>
|
|
<!-- Non-empty text content. -->
|
|
<data type="string">
|
|
<param name="pattern">.*\S.*</param>
|
|
</data>
|
|
</element>
|
|
</choice>
|
|
</define>
|
|
|
|
</grammar>
|
|
|