root/tags/lgt293/xml/texml.xsl

Revision 48, 7.1 KB (checked in by pmoura, 7 years ago)

Changed version number to 2.9.3.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1<?xml version="1.0"?>
2
3<xsl:stylesheet
4    version="1.0"
5    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
6
7
8<xsl:output method="xml"/>
9
10
11<!--
12%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13%
14%  Logtalk - Object oriented extension to Prolog
15%  Release 2.9.3
16%
17%  Copyright (c) 1998-2002 Paulo Moura.  All Rights Reserved.
18%
19%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
20-->
21
22
23<xsl:template match="/">
24    <TeXML>
25        <cmd name="documentclass">
26            <opt>10pt</opt>
27            <parm>report</parm>
28        </cmd>
29        <env name="document">
30            <cmd name="hrule"/>
31            <env name="flushright">
32                <cmd name="textbf"><parm><xsl:value-of select="logtalk/entity/type" /></parm></cmd>
33            </env>
34            <cmd name="section*">
35                <parm><xsl:value-of select="logtalk/entity/name" /></parm>
36            </cmd>
37            <xsl:apply-templates/>
38        </env>
39    </TeXML>
40</xsl:template>
41
42
43<xsl:template match="logtalk/entity">
44    <xsl:if test="comment">
45        <env name="quote"><xsl:value-of select="comment" /></env>
46    </xsl:if>
47    <xsl:if test="authors">
48        <cmd name="medskip"/>
49        <cmd name="noindent"/>
50        authors:
51        <cmd name="par"/>
52        <cmd name="texttt"><parm><xsl:value-of select="authors" /></parm></cmd>
53        <cmd name="par"/>
54    </xsl:if>
55    <xsl:if test="version">
56        <cmd name="medskip"/>
57        <cmd name="noindent"/>
58        version:
59        <cmd name="par"/>
60        <cmd name="texttt"><parm><xsl:value-of select="version" /></parm></cmd>
61        <cmd name="par"/>
62    </xsl:if>
63    <xsl:if test="date">
64        <cmd name="medskip"/>
65        <cmd name="noindent"/>
66        date:
67        <cmd name="par"/>
68        <cmd name="texttt"><parm><xsl:value-of select="date" /></parm></cmd>
69        <cmd name="par"/>
70    </xsl:if>
71    <cmd name="medskip"/>
72    <cmd name="noindent"/>
73    compilation:
74    <cmd name="par"/>
75    <cmd name="texttt"><parm><xsl:value-of select="compilation" /></parm></cmd>
76    <cmd name="par"/>
77    <xsl:for-each select="info">
78        <cmd name="medskip"/>
79        <cmd name="noindent"/>
80        <xsl:value-of select="key" />:
81        <cmd name="par"/>
82        <cmd name="texttt"><parm><xsl:value-of select="value" /></parm></cmd>
83        <cmd name="par"/>
84    </xsl:for-each>
85</xsl:template>
86
87
88<xsl:template match="logtalk/relations">
89    <cmd name="bigskip"/>
90    <cmd name="bigskip"/>
91    <cmd name="hrule"/>
92    <xsl:choose>
93        <xsl:when test="*">
94            <xsl:if test="implements">
95                <cmd name="bigskip"/>
96                <cmd name="noindent"/>
97                implements:
98                <cmd name="par"/>
99                <xsl:apply-templates select="implements" />
100                <cmd name="par"/>
101            </xsl:if>
102            <xsl:if test="imports">
103                <cmd name="bigskip"/>
104                <cmd name="noindent"/>
105                imports:
106                <cmd name="par"/>
107                <xsl:apply-templates select="imports" />
108                <cmd name="par"/>
109            </xsl:if>
110            <xsl:if test="extends">
111                <cmd name="bigskip"/>
112                <cmd name="noindent"/>
113                extends:
114                <cmd name="par"/>
115                <xsl:apply-templates select="extends" />
116                <cmd name="par"/>
117            </xsl:if>
118            <xsl:if test="instantiates">
119                <cmd name="bigskip"/>
120                <cmd name="noindent"/>
121                instantiates:
122                <cmd name="par"/>
123                <xsl:apply-templates select="instantiates" />
124                <cmd name="par"/>
125            </xsl:if>
126            <xsl:if test="specializes">
127                <cmd name="bigskip"/>
128                <cmd name="noindent"/>
129                specializes:
130                <cmd name="par"/>
131                <xsl:apply-templates select="specializes" />
132                <cmd name="par"/>
133            </xsl:if>
134            <xsl:if test="uses">
135                <cmd name="bigskip"/>
136                <cmd name="noindent"/>
137                uses:
138                <cmd name="par"/>
139                <xsl:apply-templates select="uses" />
140                <cmd name="par"/>
141            </xsl:if>
142            <xsl:if test="calls">
143                <cmd name="bigskip"/>
144                <cmd name="noindent"/>
145                calls:
146                <cmd name="par"/>
147                <xsl:apply-templates select="calls" />
148                <cmd name="par"/>
149            </xsl:if>
150        </xsl:when>
151        <xsl:otherwise> 
152            <cmd name="bigskip"/>
153            <cmd name="noindent"/>
154            <cmd name="textsf"><parm>(no dependencies on other files)</parm></cmd>
155            <cmd name="par"/>
156        </xsl:otherwise>
157    </xsl:choose>
158    <cmd name="bigskip"/>
159    <cmd name="hrule"/>
160    <cmd name="bigskip"/>
161</xsl:template>
162
163
164<xsl:template match="logtalk/relations/uses">
165    <cmd name="texttt"><parm><xsl:value-of select="name" /></parm></cmd>
166</xsl:template>
167
168
169<xsl:template match="logtalk/relations/calls">
170    <cmd name="texttt"><parm><xsl:value-of select="name" /></parm></cmd>
171</xsl:template>
172
173
174<xsl:template match="logtalk/relations/*" xml:space="preserve">
175    <cmd name="texttt"><parm><xsl:value-of select="scope" /> <xsl:value-of select="name" /></parm></cmd>
176</xsl:template>
177
178
179<xsl:template match="logtalk/predicates">
180    <cmd name="section*">
181        <parm>Public interface</parm>
182    </cmd>
183    <xsl:choose>
184        <xsl:when test="public/predicate">
185            <xsl:apply-templates select="public/predicate" />
186        </xsl:when>
187        <xsl:when test="/logtalk/relations/*">     
188            <cmd name="texttt"><parm>(see related entities)</parm></cmd>
189        </xsl:when>
190        <xsl:otherwise>
191            <cmd name="texttt"><parm>(none)</parm></cmd>
192        </xsl:otherwise>
193    </xsl:choose>
194    <cmd name="section*">
195        <parm>Protected interface</parm>
196    </cmd>
197    <xsl:choose>
198        <xsl:when test="protected/predicate">
199            <xsl:apply-templates select="protected/predicate" />
200        </xsl:when>
201        <xsl:when test="/logtalk/relations/*">     
202            <cmd name="texttt"><parm>(see related entities)</parm></cmd>
203        </xsl:when>
204        <xsl:otherwise>
205            <cmd name="texttt"><parm>(none)</parm></cmd>
206        </xsl:otherwise>
207    </xsl:choose>
208    <cmd name="section*">
209        <parm>Private predicates</parm>
210    </cmd>
211    <xsl:choose>
212        <xsl:when test="private/predicate">
213            <xsl:apply-templates select="private/predicate" />
214        </xsl:when>
215        <xsl:when test="/logtalk/relations/*">     
216            <cmd name="texttt"><parm>(see related entities)</parm></cmd>
217        </xsl:when>
218        <xsl:otherwise>
219            <cmd name="texttt"><parm>(none)</parm></cmd>
220        </xsl:otherwise>
221    </xsl:choose>
222    <cmd name="bigskip"/>
223    <cmd name="bigskip"/>
224    <cmd name="hrule"/>
225</xsl:template>
226
227
228<xsl:template match="*/predicate">
229    <cmd name="subsection*">
230        <parm><xsl:value-of select="name" /></parm>
231    </cmd>
232    <xsl:if test="comment">
233        <env name="quote"><xsl:value-of select="comment" /></env>
234    </xsl:if>
235    <cmd name="medskip"/>
236    <cmd name="noindent"/>
237    compilation:
238    <cmd name="par"/>
239    <cmd name="texttt"><parm><xsl:value-of select="compilation" /></parm></cmd>
240    <cmd name="par"/>
241    <xsl:if test="template">
242        <cmd name="medskip"/>
243        <cmd name="noindent"/>
244        template:
245        <cmd name="par"/>
246        <cmd name="texttt"><parm><xsl:value-of select="template" /></parm></cmd>
247        <cmd name="par"/>
248    </xsl:if>
249    <xsl:if test="meta">
250        <cmd name="medskip"/>
251        <cmd name="noindent"/>
252        metapredicate template:
253        <cmd name="par"/>
254        <cmd name="texttt"><parm><xsl:value-of select="meta" /></parm></cmd>
255        <cmd name="par"/>
256    </xsl:if>
257    <xsl:if test="mode">
258        <cmd name="medskip"/>
259        <cmd name="noindent"/>
260        mode <cmd name="textendash"/> <cmd name="space"/> number of solutions:
261        <cmd name="par"/>
262        <xsl:for-each select="mode">
263            <cmd name="texttt"><parm><xsl:value-of select="template" /></parm></cmd>
264            <cmd name="space"/> <cmd name="textendash"/> <cmd name="space"/>
265            <cmd name="texttt"><parm><xsl:value-of select="solutions" /></parm></cmd>
266        </xsl:for-each>
267    </xsl:if>
268    <xsl:for-each select="info">
269        <cmd name="noindent"/>
270        <cmd name="medskip"/>
271        <xsl:value-of select="key" />:
272        <cmd name="par"/>
273        <cmd name="texttt"><parm><xsl:value-of select="value" /></parm></cmd>
274        <cmd name="par"/>
275    </xsl:for-each>
276</xsl:template>
277
278
279</xsl:stylesheet>
Note: See TracBrowser for help on using the browser.