273 lines
9.2 KiB
XML
273 lines
9.2 KiB
XML
<?xml version="1.0"?>
|
|
<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
|
<start>
|
|
<element name="def">
|
|
<optional>
|
|
<attribute name="format"><data type="integer"/></attribute>
|
|
</optional>
|
|
<zeroOrMore>
|
|
<choice>
|
|
<element name="define">
|
|
<attribute name="name"><text/></attribute>
|
|
<attribute name="value"><text/></attribute>
|
|
</element>
|
|
|
|
<element name="memory">
|
|
<zeroOrMore>
|
|
<choice>
|
|
<element name="dealloc"><ref name="DATA-NAME"/></element>
|
|
<element name="alloc">
|
|
<optional>
|
|
<attribute name="init"><ref name="DATA-BOOL"/></attribute>
|
|
</optional>
|
|
<ref name="DATA-NAME"/>
|
|
</element>
|
|
<element name="use"><ref name="DATA-NAME"/></element>
|
|
</choice>
|
|
</zeroOrMore>
|
|
</element>
|
|
|
|
<element name="resource">
|
|
<zeroOrMore>
|
|
<choice>
|
|
<element name="dealloc"><ref name="DATA-NAME"/></element>
|
|
<element name="alloc">
|
|
<optional>
|
|
<attribute name="init"><ref name="DATA-BOOL"/></attribute>
|
|
</optional>
|
|
<ref name="DATA-NAME"/>
|
|
</element>
|
|
<element name="use"><ref name="DATA-NAME"/></element>
|
|
</choice>
|
|
</zeroOrMore>
|
|
</element>
|
|
|
|
<element name="function">
|
|
<attribute name="name">
|
|
<ref name="DATA-NAME"/>
|
|
</attribute>
|
|
|
|
<zeroOrMore>
|
|
<choice>
|
|
<element name="noreturn"><ref name="DATA-BOOL"/></element>
|
|
<element name="pure"><empty/></element>
|
|
<element name="ignorefunction"><ref name="DATA-BOOL"/></element>
|
|
<element name="leak-ignore"><empty/></element>
|
|
<element name="use-retval"><empty/></element>
|
|
<element name="formatstr">
|
|
<optional>
|
|
<attribute name="scan"><ref name="DATA-BOOL"/></attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="secure"><ref name="DATA-BOOL"/></attribute>
|
|
</optional>
|
|
<empty/>
|
|
</element>
|
|
<element name="arg">
|
|
<attribute name="nr">
|
|
<choice>
|
|
<data type="integer">
|
|
<param name="minInclusive">1</param>
|
|
<param name="maxInclusive">20</param>
|
|
</data>
|
|
<value>any</value>
|
|
</choice>
|
|
</attribute>
|
|
<zeroOrMore>
|
|
<choice>
|
|
<element name="formatstr"><empty/></element>
|
|
<element name="strz"><empty/></element>
|
|
<element name="not-bool"><empty/></element>
|
|
<element name="not-null"><empty/></element>
|
|
<element name="not-uninit"><empty/></element>
|
|
<element name="valid"><text/></element>
|
|
<element name="minsize">
|
|
<attribute name="type">
|
|
<ref name="DATA-NAME"/>
|
|
</attribute>
|
|
<attribute name="arg">
|
|
<text/>
|
|
</attribute>
|
|
<optional>
|
|
<attribute name="arg2"><text/></attribute>
|
|
</optional>
|
|
</element>
|
|
</choice>
|
|
</zeroOrMore>
|
|
</element>
|
|
</choice>
|
|
</zeroOrMore>
|
|
</element>
|
|
|
|
<element name="markup">
|
|
<attribute name="ext">
|
|
<data type="string">
|
|
<param name="pattern">[.][a-z]+</param>
|
|
</data>
|
|
</attribute>
|
|
<attribute name="aftercode"><ref name="DATA-BOOL"/></attribute>
|
|
<attribute name="reporterrors"><ref name="DATA-BOOL"/></attribute>
|
|
|
|
<optional>
|
|
<element name="keywords">
|
|
<zeroOrMore>
|
|
<element name="keyword">
|
|
<attribute name="name"><ref name="DATA-NAME"/></attribute>
|
|
</element>
|
|
</zeroOrMore>
|
|
</element>
|
|
</optional>
|
|
|
|
<zeroOrMore>
|
|
<element name="codeblocks">
|
|
<zeroOrMore>
|
|
<element name="block">
|
|
<attribute name="name"><ref name="DATA-NAME"/></attribute>
|
|
</element>
|
|
</zeroOrMore>
|
|
<optional>
|
|
<element name="structure">
|
|
<attribute name="offset"><data type="integer"/></attribute>
|
|
<attribute name="start"><text/></attribute>
|
|
<attribute name="end"><text/></attribute>
|
|
</element>
|
|
</optional>
|
|
</element>
|
|
</zeroOrMore>
|
|
|
|
<optional>
|
|
<element name="exported">
|
|
<zeroOrMore>
|
|
<element name="exporter">
|
|
<attribute name="prefix"><ref name="DATA-NAME"/></attribute>
|
|
<zeroOrMore>
|
|
<choice>
|
|
<element name="prefix"><ref name="DATA-NAME"/></element>
|
|
<element name="suffix"><ref name="DATA-NAME"/></element>
|
|
</choice>
|
|
</zeroOrMore>
|
|
</element>
|
|
</zeroOrMore>
|
|
</element>
|
|
</optional>
|
|
|
|
<optional>
|
|
<element name="imported">
|
|
<zeroOrMore>
|
|
<element name="importer"><ref name="DATA-NAME"/></element>
|
|
</zeroOrMore>
|
|
</element>
|
|
</optional>
|
|
</element>
|
|
|
|
<element name="reflection">
|
|
<zeroOrMore>
|
|
<element name="call">
|
|
<attribute name="arg"><data type="integer"/></attribute>
|
|
<ref name="DATA-NAME"/>
|
|
</element>
|
|
</zeroOrMore>
|
|
</element>
|
|
|
|
<element name="container">
|
|
<attribute name="id"><text/></attribute>
|
|
<optional>
|
|
<attribute name="endPattern"><text/></attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="startPattern"><text/></attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="inherits"><text/></attribute>
|
|
</optional>
|
|
<zeroOrMore>
|
|
<choice>
|
|
<element name="type">
|
|
<choice>
|
|
<attribute name="templateParameter"><text/></attribute>
|
|
<attribute name="string"><text/></attribute>
|
|
</choice>
|
|
<empty/>
|
|
</element>
|
|
<element name="size">
|
|
<optional>
|
|
<attribute name="templateParameter"><data type="integer"/></attribute>
|
|
</optional>
|
|
<zeroOrMore>
|
|
<element name="function">
|
|
<attribute name="name"><ref name="DATA-NAME"/></attribute>
|
|
<choice>
|
|
<attribute name="action"><text/></attribute>
|
|
<attribute name="yields"><text/></attribute>
|
|
</choice>
|
|
<empty/>
|
|
</element>
|
|
</zeroOrMore>
|
|
</element>
|
|
<element name="access">
|
|
<optional>
|
|
<attribute name="indexOperator"><text/></attribute>
|
|
</optional>
|
|
<zeroOrMore>
|
|
<element name="function">
|
|
<attribute name="name"><ref name="DATA-NAME"/></attribute>
|
|
<choice>
|
|
<attribute name="action"><text/></attribute>
|
|
<attribute name="yields"><text/></attribute>
|
|
</choice>
|
|
<empty/>
|
|
</element>
|
|
</zeroOrMore>
|
|
</element>
|
|
</choice>
|
|
</zeroOrMore>
|
|
</element>
|
|
|
|
<element name="podtype">
|
|
<attribute name="name"><ref name="DATA-NAME"/></attribute>
|
|
<optional>
|
|
<attribute name="size"><text/></attribute>
|
|
</optional>
|
|
<optional>
|
|
<attribute name="sign"><ref name="DATA-NAME"/></attribute>
|
|
</optional>
|
|
<empty/>
|
|
</element>
|
|
|
|
<element name="platformtype">
|
|
<attribute name="name"><ref name="DATA-NAME"/></attribute>
|
|
<attribute name="value"><ref name="DATA-NAME"/></attribute>
|
|
<oneOrMore>
|
|
<choice>
|
|
<element name="unsigned"><empty/></element>
|
|
<element name="long"><empty/></element>
|
|
<element name="pointer"><empty/></element>
|
|
<element name="const_ptr"><empty/></element>
|
|
<element name="ptr_ptr"><empty/></element>
|
|
<element name="platform">
|
|
<attribute name="type"><ref name="DATA-NAME"/></attribute>
|
|
<empty/>
|
|
</element>
|
|
</choice>
|
|
</oneOrMore>
|
|
</element>
|
|
|
|
</choice>
|
|
</zeroOrMore>
|
|
</element>
|
|
</start>
|
|
|
|
<define name="DATA-BOOL">
|
|
<choice>
|
|
<value>true</value>
|
|
<value>false</value>
|
|
</choice>
|
|
</define>
|
|
|
|
<define name="DATA-NAME">
|
|
<data type="string">
|
|
<param name="pattern">[a-zA-Z_][a-zA-Z_0-9]*</param>
|
|
</data>
|
|
</define>
|
|
</grammar>
|