3 <!-- Copyright (C) 2000, HELM Team -->
5 <!-- This file is part of HELM, an Hypertextual, Electronic -->
6 <!-- Library of Mathematics, developed at the Computer Science -->
7 <!-- Department, University of Bologna, Italy. -->
9 <!-- HELM is free software; you can redistribute it and/or -->
10 <!-- modify it under the terms of the GNU General Public License -->
11 <!-- as published by the Free Software Foundation; either version 2 -->
12 <!-- of the License, or (at your option) any later version. -->
14 <!-- HELM is distributed in the hope that it will be useful, -->
15 <!-- but WITHOUT ANY WARRANTY; without even the implied warranty of -->
16 <!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -->
17 <!-- GNU General Public License for more details. -->
19 <!-- You should have received a copy of the GNU General Public License -->
20 <!-- along with HELM; if not, write to the Free Software -->
21 <!-- Foundation, Inc., 59 Temple Place - Suite 330, Boston, -->
22 <!-- MA 02111-1307, USA. -->
24 <!-- For details, see the HELM World-Wide-Web page, -->
25 <!-- http://cs.unibo.it/helm/. -->
27 <!--******************************************************************-->
28 <!-- Library for MML Content -->
29 <!-- First draft: March 20 2001, Ferruccio Guidi -->
30 <!--******************************************************************-->
32 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
33 xmlns:m="http://www.w3.org/1998/Math/MathML"
34 xmlns:helm="http://www.cs.unibo.it/helm">
36 <xsl:template name="out-mml-op"> <!-- outputs MML nodes for operators -->
37 <xsl:param name="arity"/> <!-- operator arity -->
38 <xsl:param name="c-tag"/> <!-- CIC tag -->
39 <xsl:param name="m-tag"/> <!-- MathML tag -->
40 <xsl:param name="mbody"/> <!-- other sons of m:apply -->
42 <xsl:when test="count(child::*) = $arity + 1">
43 <m:apply helm:xref="{@id}">
44 <xsl:element name="{concat('m:',$m-tag)}">
45 <xsl:attribute name="definitionURL">
46 <xsl:value-of select="$c-tag/@uri"/>
48 <xsl:attribute name="helm:xref">
49 <xsl:value-of select="$c-tag/@id"/>
52 <xsl:copy-of select="$mbody"/>
63 <xsl:template name="mk-mml-op-noannot"> <!-- makes MML nodes for operators (noannot mode) -->
64 <xsl:param name="arity"/> <!-- operator arity -->
65 <xsl:param name="c-tag"/> <!-- CIC tag -->
66 <xsl:param name="m-tag"/> <!-- MathML tag -->
67 <xsl:param name="rnset"
68 select="*[position() > 1]"/> <!-- nodes for recursion -->
69 <xsl:variable name="mbody">
70 <xsl:apply-templates select="$rnset" mode="noannot"/>
72 <xsl:call-template name="out-mml-op">
73 <xsl:with-param name="arity" select="$arity"/>
74 <xsl:with-param name="c-tag" select="$c-tag"/>
75 <xsl:with-param name="m-tag" select="$m-tag"/>
76 <xsl:with-param name="mbody" select="$mbody"/>
82 <xsl:template name="start-interp"> <!-- interp mode starter -->
83 <xsl:param name="rtree"/>
84 <xsl:param name="atree"/>
85 <m:apply helm:xref="{@id}">
86 <m:csymbol>interp</m:csymbol>
87 <xsl:apply-templates mode="interp" select="$rtree">
88 <xsl:with-param name="atree" select="$atree"/>
89 </xsl:apply-templates>
93 <xsl:template name="mk-mml-op-interp"> <!-- make MML node for operators (interp mode) -->
94 <xsl:param name="arity"/> <!-- operator arity -->
95 <xsl:param name="c-tag"/> <!-- CIC tag -->
96 <xsl:param name="m-tag"/> <!-- MathML tag -->
97 <xsl:param name="atree"/> <!-- abstract tree pointer -->
98 <xsl:variable name="mbody">
99 <xsl:apply-templates select="*[position() > 1]" mode="interp">
100 <xsl:with-param name="atree" select="$atree"/>
101 </xsl:apply-templates>
103 <xsl:call-template name="out-mml-op">
104 <xsl:with-param name="arity" select="$arity"/>
105 <xsl:with-param name="c-tag" select="$c-tag"/>
106 <xsl:with-param name="m-tag" select="$m-tag"/>
107 <xsl:with-param name="mbody" select="$mbody"/>