|
1 <?xml version="1.0" encoding="iso-8859-2"?> |
|
2 <xsl:stylesheet |
|
3 version="1.0" |
|
4 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> |
|
5 <xsl:import href="gccxml2def-utils.xsl"/> |
|
6 |
|
7 <xsl:template name="function"> |
|
8 <xsl:text>(function </xsl:text> |
|
9 <xsl:call-template name="function-selector"/> |
|
10 <xsl:text>) </xsl:text> |
|
11 </xsl:template> |
|
12 |
|
13 |
|
14 <xsl:template name="function-selector"> |
|
15 <xsl:value-of select="./@name"/> |
|
16 <xsl:text> 	(</xsl:text> |
|
17 |
|
18 <xsl:for-each select="./Argument"> |
|
19 <xsl:call-template name="function-argument"/> |
|
20 </xsl:for-each> |
|
21 |
|
22 <xsl:text>) 	(return </xsl:text> |
|
23 <xsl:call-template name="c-type-string"> |
|
24 <xsl:with-param name="c-type-id" select="./@returns"/> |
|
25 </xsl:call-template> |
|
26 <xsl:text>)</xsl:text> |
|
27 </xsl:template> |
|
28 |
|
29 |
|
30 <xsl:template name="function-argument"> |
|
31 <xsl:text> 		(argument (</xsl:text> |
|
32 <xsl:call-template name="c-type-string"> |
|
33 <xsl:with-param name="c-type-id" select="./@type"/> |
|
34 </xsl:call-template> |
|
35 <xsl:text>) </xsl:text> |
|
36 |
|
37 <xsl:if test="@name or not(@name='')"> |
|
38 <xsl:if test="starts-with(./@name,'_')"> |
|
39 <xsl:text>arg_</xsl:text> |
|
40 </xsl:if> |
|
41 <xsl:value-of select="./@name"/> |
|
42 </xsl:if> |
|
43 <xsl:if test="not(@name) or @name=''"> |
|
44 <xsl:text>arg</xsl:text> |
|
45 <xsl:value-of select="position()"/> |
|
46 </xsl:if> |
|
47 |
|
48 <xsl:text>)</xsl:text> |
|
49 </xsl:template> |
|
50 |
|
51 </xsl:stylesheet> |