home *** CD-ROM | disk | FTP | other *** search
/ Chip 2005 February / CMCD0205.ISO / Software / Freeware / Programare / Sharp / SharpDevelop_1.0.3.1761_Setup.exe / syntax.xslt < prev    next >
Extensible Markup Language  |  2004-07-05  |  9KB  |  270 lines

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  3.  
  4. <xsl:template name="type-syntax">
  5.     <pre class="syntax">
  6.         <xsl:call-template name="type-access">
  7.             <xsl:with-param name="access" select="@access"/>
  8.         </xsl:call-template>
  9.         <xsl:text> </xsl:text>
  10.         <xsl:if test="local-name() != 'interface' and @isAbstract = '1'">abstract </xsl:if>
  11.         <xsl:choose>
  12.             <xsl:when test="local-name()='structure'">
  13.                 <xsl:text>struct</xsl:text>
  14.             </xsl:when>
  15.             <xsl:when test="local-name()='enumeration'">
  16.                 <xsl:text>enum</xsl:text>
  17.             </xsl:when>
  18.             <xsl:otherwise>
  19.                 <xsl:value-of select="local-name()"/>
  20.             </xsl:otherwise>
  21.         </xsl:choose>
  22.         <xsl:text> </xsl:text>
  23.         <xsl:if test="local-name()='delegate'">
  24.             <xsl:call-template name="get-datatype">
  25.                 <xsl:with-param name="datatype" select="@returnType"/>
  26.                 <xsl:with-param name="namespace-name" select="../@name"/>
  27.             </xsl:call-template>
  28.             <xsl:text> </xsl:text>
  29.         </xsl:if>
  30.         <xsl:value-of select="@name"/>
  31.         <xsl:if test="local-name() != 'enumeration' and local-name() != 'delegate'">
  32.             <xsl:call-template name="derivation"/>
  33.         </xsl:if>
  34.         <xsl:if test="local-name() = 'delegate'">
  35.             <xsl:call-template name="parameters">
  36.                 <xsl:with-param name="version">long</xsl:with-param>
  37.                 <xsl:with-param name="namespace-name" select="../@name"/>
  38.             </xsl:call-template>
  39.         </xsl:if>
  40.     </pre>
  41. </xsl:template>
  42.  
  43. <xsl:template name="derivation">
  44.     <xsl:if test="@baseType!='' or implements">
  45.         <xsl:text> : </xsl:text>
  46.         <xsl:if test="@baseType!=''">
  47.             <xsl:value-of select="@baseType"/>
  48.             <xsl:if test="implements">
  49.                 <xsl:text>, </xsl:text>
  50.             </xsl:if>
  51.         </xsl:if>
  52.         <xsl:for-each select="implements">
  53.             <xsl:value-of select="."/>
  54.             <xsl:if test="position()!=last()">
  55.                 <xsl:text>, </xsl:text>
  56.             </xsl:if>
  57.         </xsl:for-each>
  58.     </xsl:if>
  59. </xsl:template>
  60.  
  61. <xsl:template name="member-syntax">
  62. <pre class="syntax">
  63.     <xsl:if test="not(parent::interface)">
  64.         <xsl:call-template name="method-access">
  65.             <xsl:with-param name="access" select="@access"/>
  66.         </xsl:call-template>
  67.         <xsl:text> </xsl:text>
  68.         <xsl:if test="@contract and @contract!='Normal'">
  69.             <xsl:call-template name="contract">
  70.                 <xsl:with-param name="contract" select="@contract"/>
  71.             </xsl:call-template>
  72.             <xsl:text> </xsl:text>
  73.         </xsl:if>
  74.     </xsl:if>
  75.     <xsl:choose>
  76.         <xsl:when test="local-name()='constructor'">
  77.             <xsl:value-of select="../@name"/>
  78.         </xsl:when>
  79.         <xsl:otherwise>
  80.             <xsl:call-template name="get-datatype">
  81.                 <xsl:with-param name="datatype" select="@returnType"/>
  82.                 <xsl:with-param name="namespace-name" select="../../@name"/>
  83.             </xsl:call-template>
  84.             <xsl:text> </xsl:text>
  85.             <xsl:value-of select="@name"/>
  86.         </xsl:otherwise>
  87.     </xsl:choose>
  88.     <xsl:call-template name="parameters">
  89.         <xsl:with-param name="version">long</xsl:with-param>
  90.         <xsl:with-param name="namespace-name" select="../../@name"/>
  91.     </xsl:call-template>
  92. </pre>
  93. </xsl:template>
  94.  
  95. <xsl:template name="member-syntax2">
  96.     <xsl:call-template name="method-access">
  97.         <xsl:with-param name="access" select="@access"/>
  98.     </xsl:call-template>
  99.     <xsl:text> </xsl:text>
  100.     <xsl:choose>
  101.         <xsl:when test="local-name()='constructor'">
  102.             <xsl:value-of select="../@name"/>
  103.         </xsl:when>
  104.         <xsl:otherwise>
  105.             <xsl:call-template name="get-datatype">
  106.                 <xsl:with-param name="datatype" select="@returnType"/>
  107.                 <xsl:with-param name="namespace-name" select="../../@name"/>
  108.             </xsl:call-template>
  109.             <xsl:text> </xsl:text>
  110.             <xsl:value-of select="@name"/>
  111.         </xsl:otherwise>
  112.     </xsl:choose>
  113.     <xsl:call-template name="parameters">
  114.         <xsl:with-param name="version">short</xsl:with-param>
  115.         <xsl:with-param name="namespace-name" select="../../@name"/>
  116.     </xsl:call-template>
  117. </xsl:template>
  118.  
  119. <xsl:template name="field-or-event-syntax">
  120.     <pre class="syntax">
  121.         <xsl:call-template name="method-access">
  122.             <xsl:with-param name="access" select="@access"/>
  123.         </xsl:call-template>
  124.         <xsl:text> </xsl:text>
  125.         <xsl:if test="@static">
  126.             <xsl:text>static </xsl:text>
  127.         </xsl:if>
  128.         <xsl:if test="@initOnly">
  129.             <xsl:text>readonly </xsl:text>
  130.         </xsl:if>
  131.         <xsl:call-template name="get-datatype">
  132.             <xsl:with-param name="datatype" select="@type"/>
  133.             <xsl:with-param name="namespace-name" select="../../@name"/>
  134.         </xsl:call-template>
  135.         <xsl:text> </xsl:text>
  136.         <xsl:value-of select="@name"/>
  137.         <xsl:text>;</xsl:text>    
  138.     </pre>
  139. </xsl:template>
  140.  
  141. <xsl:template name="property-syntax">
  142.     <xsl:param name="indent" select="true()"/>
  143.     <xsl:param name="display-names" select="true()"/>
  144.     
  145.     <xsl:if test="not(parent::interface)">
  146.         <xsl:call-template name="method-access">
  147.             <xsl:with-param name="access" select="@access"/>
  148.         </xsl:call-template>
  149.         <xsl:text> </xsl:text>
  150.     </xsl:if>
  151.     <xsl:if test="@static">
  152.         <xsl:text>static </xsl:text>
  153.     </xsl:if>
  154.     <xsl:call-template name="value">
  155.         <xsl:with-param name="type" select="@value"/>
  156.     </xsl:call-template>
  157.     <xsl:text> </xsl:text>    
  158.     <xsl:choose>
  159.         <xsl:when test="@name='Item'">            
  160.             <xsl:text>this[</xsl:text>
  161.             <xsl:if test="$indent"> </xsl:if>
  162.             <xsl:for-each select="parameter">
  163.                 <xsl:if test="$indent"><xsl:text>   </xsl:text></xsl:if>
  164.                 <xsl:call-template name="csharp-type">
  165.                     <xsl:with-param name="runtime-type" select="@type"/>
  166.                 </xsl:call-template>
  167.                 <xsl:if test="$display-names">
  168.                     <xsl:text> </xsl:text>
  169.                     <xsl:value-of select="@name"/>
  170.                 </xsl:if>
  171.                 <xsl:if test="position() != last()">
  172.                     <xsl:text>, </xsl:text>
  173.                     <xsl:if test="$indent"> </xsl:if>
  174.                 </xsl:if>
  175.             </xsl:for-each>
  176.             <xsl:if test="$indent"> </xsl:if>
  177.             <xsl:text>]</xsl:text>
  178.         </xsl:when>
  179.         <xsl:otherwise><xsl:value-of select="@name"/></xsl:otherwise>
  180.     </xsl:choose>
  181.     <xsl:text> {</xsl:text>
  182.     <xsl:if test="get">
  183.         <xsl:if test="not(parent::interface)">
  184.             <xsl:if test="get/@contract!='Normal' and get/@contract!='Static'">
  185.                 <xsl:call-template name="contract">
  186.                     <xsl:with-param name="contract" select="get/@contract"/>
  187.                 </xsl:call-template>
  188.                 <xsl:text> </xsl:text>
  189.             </xsl:if>        
  190.         </xsl:if>
  191.         <xsl:text>get;</xsl:text>
  192.         <xsl:if test="set">
  193.             <xsl:text> </xsl:text>
  194.         </xsl:if>
  195.     </xsl:if>
  196.     <xsl:if test="set">
  197.         <xsl:if test="not(parent::interface)">
  198.             <xsl:if test="set/@contract!='Normal' and set/@contract!='Static'">
  199.                 <xsl:call-template name="contract">
  200.                     <xsl:with-param name="contract" select="set/@contract"/>
  201.                 </xsl:call-template>
  202.                 <xsl:text> </xsl:text>
  203.             </xsl:if>
  204.         </xsl:if>
  205.         <xsl:text>set;</xsl:text>
  206.     </xsl:if>
  207.     <xsl:text>}</xsl:text>
  208. </xsl:template>
  209.  
  210. <xsl:template name="parameters">
  211.     <xsl:param name="version"/>
  212.     <xsl:param name="namespace-name"/>
  213.     <xsl:text>(</xsl:text>
  214.     <xsl:if test="parameter">
  215.         <xsl:for-each select="parameter">
  216.             <xsl:if test="$version='long'">
  217.                 <br/>
  218.                 <xsl:text>   </xsl:text>
  219.                 <xsl:choose>
  220.                     <xsl:when test="@direction = 'ref'">ref </xsl:when>
  221.                     <xsl:when test="@direction = 'out'">out </xsl:when>
  222.                 </xsl:choose>
  223.             </xsl:if>
  224.             <xsl:call-template name="get-datatype">
  225.                 <xsl:with-param name="datatype" select="@type"/>
  226.                 <xsl:with-param name="namespace-name" select="$namespace-name"/>
  227.             </xsl:call-template>
  228.             <xsl:if test="$version='long'">
  229.                 <xsl:text> </xsl:text>
  230.                 <i><xsl:value-of select="@name"/></i>
  231.             </xsl:if>
  232.             <xsl:if test="position()!= last()">
  233.                 <xsl:text>,</xsl:text>
  234.             </xsl:if>
  235.         </xsl:for-each>
  236.         <xsl:if test="$version='long'">
  237.             <br/>
  238.         </xsl:if>
  239.     </xsl:if>
  240.     <xsl:text>);</xsl:text>
  241. </xsl:template>
  242.  
  243. <xsl:template name="get-datatype">
  244.     <xsl:param name="datatype"/>
  245.     <xsl:param name="namespace-name"/>
  246.     <xsl:choose>
  247.         <xsl:when test="contains($datatype, $namespace-name)">
  248.             <xsl:value-of select="substring-after($datatype, concat($namespace-name, '.'))"/>
  249.         </xsl:when>
  250.         <xsl:otherwise>
  251.             <xsl:call-template name="csharp-type">
  252.                 <xsl:with-param name="runtime-type" select="$datatype"/>
  253.             </xsl:call-template>
  254.         </xsl:otherwise>
  255.     </xsl:choose>
  256. </xsl:template>
  257.             
  258. <!-- member.xslt is using this for title and h1.  should try and use parameters template above. -->
  259. <xsl:template name="get-param-list">
  260.     (<xsl:for-each select="parameter">
  261.         <xsl:choose>
  262.             <xsl:when test="contains(@type, ../../@name)"><xsl:value-of select="substring-after(@type, concat(../../@name, '.'))"/></xsl:when>
  263.             <xsl:otherwise><xsl:value-of select="@type"/></xsl:otherwise>
  264.         </xsl:choose><xsl:if test="position()!=last()">,</xsl:if>
  265.     </xsl:for-each>)
  266. </xsl:template>
  267.  
  268. </xsl:stylesheet>
  269.  
  270.