root/trunk/xml/lgttxt.xsl

Revision 4662, 9.5 KB (checked in by pmoura, 6 days ago)

Updated copyright notice.

  • Property svn:eol-style set to native
Line 
1<?xml version="1.0" encoding="utf-8"?>
2<xsl:stylesheet
3    version="1.0"
4    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
5
6
7<!--
8================================================================
9Logtalk - Open source object-oriented logic programming language
10Release 2.35.0
11
12Copyright (c) 1998-2009 Paulo Moura.        All Rights Reserved.
13Logtalk is free software.  You can redistribute it and/or modify
14it under the terms of the "Artistic License 2.0" as published by
15The Perl Foundation. Consult the "LICENSE.txt" file for details.
16================================================================
17-->
18
19
20<xsl:output
21    method="text"
22    indent="yes"
23    encoding="utf-8"/>
24
25
26<xsl:variable name="nl">
27    <xsl:text>&#10;</xsl:text>
28</xsl:variable>
29
30<xsl:variable name="nl2">
31    <xsl:text>&#10;&#10;</xsl:text>
32</xsl:variable>
33
34<xsl:variable name="tab">
35    <xsl:text>&#9;</xsl:text>
36</xsl:variable>
37
38<xsl:variable name="tab2">
39    <xsl:text>&#9;&#9;</xsl:text>
40</xsl:variable>
41
42<xsl:variable name="hr1">
43    <xsl:text>===============================================================================&#10;</xsl:text>
44</xsl:variable>
45
46<xsl:variable name="hr2">
47    <xsl:text>-------------------------------------------------------------------------------&#10;</xsl:text>
48</xsl:variable>
49
50
51<xsl:template match="/">
52    <xsl:value-of select="$hr1" />
53    <xsl:value-of select="logtalk/entity/type" /><xsl:text>: </xsl:text><xsl:value-of select="logtalk/entity/name" /><xsl:value-of select="$nl" />
54    <xsl:if test="logtalk/entity/comment">
55        <xsl:value-of select="$tab" /><xsl:value-of select="logtalk/entity/comment" /><xsl:value-of select="$nl2" />
56    </xsl:if>
57    <xsl:if test="logtalk/entity/parameters">
58        <xsl:for-each select="logtalk/entity/parameters/parameter">
59            <xsl:text>  * </xsl:text><xsl:value-of select="name" /><xsl:text> - </xsl:text><xsl:value-of select="description" />
60        </xsl:for-each>
61    </xsl:if>
62    <xsl:apply-templates select="logtalk/entity" />
63    <xsl:apply-templates select="logtalk/relations" />
64    <xsl:apply-templates select="logtalk/predicates" />
65    <xsl:apply-templates select="logtalk/remarks" />
66    <xsl:value-of select="$hr1" />
67</xsl:template>
68
69
70<xsl:template match="logtalk/entity">
71    <xsl:if test="author">
72        <xsl:value-of select="$tab" /><xsl:text>author: </xsl:text><xsl:value-of select="author" /><xsl:value-of select="$nl" />
73    </xsl:if>
74    <xsl:if test="version">
75        <xsl:value-of select="$tab" /><xsl:text>version: </xsl:text><xsl:value-of select="version" /><xsl:value-of select="$nl" />
76    </xsl:if>
77    <xsl:if test="date">
78        <xsl:value-of select="$tab" /><xsl:text>date: </xsl:text><xsl:value-of select="date" /><xsl:value-of select="$nl" />
79    </xsl:if>
80    <xsl:if test="copyright">
81        <xsl:value-of select="$tab" /><xsl:text>copyright: </xsl:text><xsl:value-of select="copyright" /><xsl:value-of select="$nl" />
82    </xsl:if>
83    <xsl:if test="license">
84        <xsl:value-of select="$tab" /><xsl:text>license: </xsl:text><xsl:value-of select="license" /><xsl:value-of select="$nl" />
85    </xsl:if>
86    <xsl:value-of select="$tab" /><xsl:text>compilation: </xsl:text><xsl:value-of select="compilation" /><xsl:value-of select="$nl" />
87    <xsl:if test="info">
88        <xsl:for-each select="info">
89            <xsl:value-of select="$tab" /><xsl:value-of select="key" /><xsl:text>: </xsl:text><xsl:value-of select="value" /><xsl:value-of select="$nl" />
90        </xsl:for-each>
91    </xsl:if>
92    <xsl:value-of select="$nl" />
93</xsl:template>
94
95
96<xsl:template match="logtalk/relations">
97    <xsl:choose>
98        <xsl:when test="*">
99            <xsl:if test="implements">
100                <xsl:text>implements:</xsl:text><xsl:value-of select="$nl" />
101                <xsl:apply-templates select="implements" />
102            </xsl:if>
103            <xsl:if test="imports">
104                <xsl:text>imports:</xsl:text><xsl:value-of select="$nl" />
105                    <xsl:apply-templates select="imports" />
106            </xsl:if>
107            <xsl:if test="extends">
108                <xsl:text>extends:</xsl:text><xsl:value-of select="$nl" />
109                <xsl:apply-templates select="extends" />
110            </xsl:if>
111            <xsl:if test="instantiates">
112            <xsl:text>instantiates:</xsl:text><xsl:value-of select="$nl" />
113                <xsl:apply-templates select="instantiates" />
114            </xsl:if>
115            <xsl:if test="specializes">
116            <xsl:text>specializes:</xsl:text><xsl:value-of select="$nl" />
117                <xsl:apply-templates select="specializes" />
118            </xsl:if>
119            <xsl:if test="uses">
120            <xsl:text>uses:</xsl:text><xsl:value-of select="$nl" />
121                <xsl:apply-templates select="uses" />
122            </xsl:if>
123            <xsl:if test="calls">
124            <xsl:text>calls:</xsl:text><xsl:value-of select="$nl" />
125                <xsl:apply-templates select="calls" />
126            </xsl:if>
127        </xsl:when>
128        <xsl:otherwise> 
129            <xsl:text>(no dependencies on other files)</xsl:text><xsl:value-of select="$nl" />
130        </xsl:otherwise>
131    </xsl:choose>
132    <xsl:value-of select="$nl" />
133</xsl:template>
134
135
136<xsl:template match="logtalk/relations/uses">
137    <xsl:value-of select="$tab" /><xsl:value-of select="name" /><xsl:value-of select="$nl" />
138</xsl:template>
139
140
141<xsl:template match="logtalk/relations/calls">
142    <xsl:value-of select="$tab" /><xsl:value-of select="name" /><xsl:value-of select="$nl" />
143</xsl:template>
144
145
146<xsl:template match="logtalk/relations/*">
147    <xsl:value-of select="$tab" /><xsl:value-of select="scope" /><xsl:text> </xsl:text><xsl:value-of select="name" /><xsl:value-of select="$nl" />
148</xsl:template>
149
150
151<xsl:template match="logtalk/predicates">
152    <xsl:value-of select="$hr2" />
153    <xsl:text>Public interface</xsl:text><xsl:value-of select="$nl2" />
154    <xsl:choose>
155        <xsl:when test="public/predicate">
156            <xsl:apply-templates select="public/predicate" />
157        </xsl:when>
158        <xsl:when test="/logtalk/relations/*">     
159            <xsl:text>(see related entities)</xsl:text><xsl:value-of select="$nl2" />
160        </xsl:when>
161        <xsl:otherwise>
162            <xsl:text>(none)</xsl:text><xsl:value-of select="$nl2" />
163        </xsl:otherwise>
164    </xsl:choose>
165    <xsl:value-of select="$hr2" />
166    <xsl:text>Protected interface</xsl:text><xsl:value-of select="$nl2" />
167    <xsl:choose>
168        <xsl:when test="protected/predicate">
169            <xsl:apply-templates select="protected/predicate" />
170        </xsl:when>
171        <xsl:when test="/logtalk/relations/*">     
172            <xsl:text>(see related entities)</xsl:text><xsl:value-of select="$nl2" />
173        </xsl:when>
174        <xsl:otherwise>
175            <xsl:text>(none)</xsl:text><xsl:value-of select="$nl2" />
176        </xsl:otherwise>
177    </xsl:choose>
178    <xsl:value-of select="$hr2" />
179    <xsl:text>Private predicates</xsl:text><xsl:value-of select="$nl2" />
180    <xsl:choose>
181        <xsl:when test="private/predicate">
182            <xsl:apply-templates select="private/predicate" />
183        </xsl:when>
184        <xsl:when test="/logtalk/relations/*">     
185            <xsl:text>(see related entities)</xsl:text><xsl:value-of select="$nl2" />
186        </xsl:when>
187        <xsl:otherwise>
188            <xsl:text>(none)</xsl:text><xsl:value-of select="$nl2" />
189        </xsl:otherwise>
190    </xsl:choose>
191</xsl:template>
192
193
194<xsl:template match="*/predicate">
195    <xsl:value-of select="name" /><xsl:value-of select="$nl" />
196    <xsl:if test="comment">
197        <xsl:value-of select="$tab" /><xsl:value-of select="comment" /><xsl:value-of select="$nl" />
198    </xsl:if>
199    <xsl:text>compilation: </xsl:text><xsl:value-of select="$nl" />
200    <xsl:value-of select="$tab" /><xsl:value-of select="compilation" /><xsl:value-of select="$nl" />
201    <xsl:if test="template">
202        <xsl:text>template: </xsl:text><xsl:value-of select="$nl" />
203        <xsl:value-of select="$tab" /><xsl:value-of select="template" /><xsl:value-of select="$nl" />
204    </xsl:if>
205    <xsl:if test="arguments">
206        <xsl:for-each select="arguments/argument">
207            <xsl:value-of select="$tab2" /><xsl:value-of select="name" /><xsl:text> - </xsl:text><xsl:value-of select="description" /><xsl:value-of select="$nl" />
208        </xsl:for-each>
209    </xsl:if>
210    <xsl:if test="meta">
211        <xsl:text>meta-predicate template:</xsl:text><xsl:value-of select="$nl" />
212        <xsl:value-of select="$tab" /><xsl:value-of select="meta" /><xsl:value-of select="$nl" />
213    </xsl:if>
214    <xsl:if test="mode">
215        <xsl:text>mode - number of solutions:</xsl:text><xsl:value-of select="$nl" />
216        <xsl:for-each select="mode">
217            <xsl:value-of select="$tab" /><xsl:value-of select="template" /><xsl:text> - </xsl:text><xsl:value-of select="solutions" /><xsl:value-of select="$nl" />
218        </xsl:for-each>
219    </xsl:if>
220    <xsl:if test="exceptions">
221        <xsl:text>exceptions:</xsl:text><xsl:value-of select="$nl" />
222        <xsl:for-each select="exceptions/exception">
223            <xsl:value-of select="$tab" /><xsl:value-of select="condition" /><xsl:text>: </xsl:text><xsl:value-of select="term" /><xsl:value-of select="$nl" />
224        </xsl:for-each>
225    </xsl:if>
226    <xsl:if test="examples">
227        <xsl:text>examples:</xsl:text><xsl:value-of select="$nl" />
228        <xsl:for-each select="examples/example">
229            <xsl:value-of select="$tab" /><xsl:value-of select="description" /><xsl:value-of select="$nl" />
230                <xsl:value-of select="$tab2" /><xsl:value-of select="call" /><xsl:value-of select="$nl" />
231                <xsl:value-of select="$tab2" /><xsl:value-of select="bindings" /><xsl:value-of select="$nl" />
232        </xsl:for-each>
233    </xsl:if>
234    <xsl:if test="info">
235        <xsl:for-each select="info">
236            <xsl:value-of select="key" /><xsl:text>:</xsl:text><xsl:value-of select="$nl" />
237            <xsl:value-of select="$tab" /><xsl:value-of select="value" /><xsl:value-of select="$nl" />
238        </xsl:for-each>
239    </xsl:if>
240    <xsl:value-of select="$nl" />
241</xsl:template>
242
243
244<xsl:template match="logtalk/remarks">
245    <xsl:value-of select="$hr2" />
246    <xsl:text>Remarks</xsl:text><xsl:value-of select="$nl2" />
247    <xsl:choose>
248        <xsl:when test="remark">
249            <xsl:apply-templates select="remark" />
250        </xsl:when>
251        <xsl:otherwise>
252            <xsl:text>(none)</xsl:text><xsl:value-of select="$nl2" />
253        </xsl:otherwise>
254    </xsl:choose>
255</xsl:template>
256
257<xsl:template match="logtalk/remarks/remark">
258    <xsl:value-of select="topic" /><xsl:text> </xsl:text><xsl:value-of select="text" /><xsl:value-of select="$nl2" />
259</xsl:template>
260
261
262</xsl:stylesheet>
Note: See TracBrowser for help on using the browser.